Patchwork [U-Boot,04/22] armv7: start.S: provide a hook for saving boot params

login
register
mail settings
Submitter Aneesh V
Date Feb. 28, 2011, 11:46 a.m.
Message ID <1298893591-17636-5-git-send-email-aneesh@ti.com>
Download mbox | patch
Permalink /patch/84800/
State Superseded
Delegated to: Sandeep Paulraj
Headers show

Comments

Aneesh V - Feb. 28, 2011, 11:46 a.m.
Provide a means by which u-boot/SPL can save parameters passed
to it by ROM code or the pre-loader.

A new function 'save_boot_params' has been defined and a default
implentation provided. Please note that we do not have a stack yet.
So, any implementation of this function should not use stack.

Signed-off-by: Aneesh V <aneesh@ti.com>
---
 arch/arm/cpu/armv7/cpu.c   |    7 +++++++
 arch/arm/cpu/armv7/start.S |    1 +
 2 files changed, 8 insertions(+), 0 deletions(-)
Bedia, Vaibhav - March 1, 2011, 2:27 p.m.
On Monday, February 28, 2011 5:16 PM, V, Aneesh wrote:
> Provide a means by which u-boot/SPL can save parameters passed
> to it by ROM code or the pre-loader. 
> 
> A new function 'save_boot_params' has been defined and a
> default implentation provided. Please note that we do not have
> a stack yet. So, any implementation of this function should
> not use stack.  
> 
> Signed-off-by: Aneesh V <aneesh@ti.com>
> ---

This is an essential feature when there no x-loader in the picture.
Thanks for posting a patch for this :)

Regards,
Vaibhav

Patch

diff --git a/arch/arm/cpu/armv7/cpu.c b/arch/arm/cpu/armv7/cpu.c
index a01e0d6..54533fc 100644
--- a/arch/arm/cpu/armv7/cpu.c
+++ b/arch/arm/cpu/armv7/cpu.c
@@ -41,6 +41,13 @@ 
 
 static void cache_flush(void);
 
+void save_boot_params_default(u32 r0, u32 r1, u32 r2, u32 r3)
+{
+}
+
+void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3)
+	__attribute__((weak, alias("save_boot_params_default")));
+
 int cleanup_before_linux(void)
 {
 	unsigned int i;
diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index cb4f92f..3618190 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -103,6 +103,7 @@  IRQ_STACK_START_IN:
  */
 
 reset:
+	bl	save_boot_params
 	/*
 	 * set the cpu to SVC32 mode
 	 */