Message ID | 1405052613-20987-6-git-send-email-sjg@chromium.org |
---|---|
State | Accepted |
Delegated to: | Simon Glass |
Headers | show |
+Tom Hi Albert, On 10 July 2014 22:23, Simon Glass <sjg@chromium.org> wrote: > Add support for re-relocation malloc() in arm's start-up code. > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > Changes in v3: > - Rebase on earlier patch Can you please take a look at this patch? I would like to apply it to the dm repo. > > Changes in v2: None > > README | 3 +++ > arch/arm/lib/crt0.S | 5 ++++- > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/README b/README > index 11e9d31..73abbf0 100644 > --- a/README > +++ b/README > @@ -3749,6 +3749,9 @@ Configuration Settings: > The memory will be freed (or in fact just forgotton) when > U-Boot relocates itself. > > + Pre-relocation malloc() is only supported on ARM at present > + but is fairly easy to enable for other archs. > + > - CONFIG_SYS_BOOTM_LEN: > Normally compressed uImages are limited to an > uncompressed size of 8 MBytes. If this is not enough, > diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S > index 43aa212..29cdad0 100644 > --- a/arch/arm/lib/crt0.S > +++ b/arch/arm/lib/crt0.S > @@ -78,7 +78,10 @@ clr_gd: > strlo r0, [r1] /* clear 32-bit GD word */ > addlo r1, r1, #4 /* move to next */ > blo clr_gd > - > +#if defined(CONFIG_SYS_MALLOC_F_LEN) && !defined(CONFIG_SPL_BUILD) > + sub sp, sp, #CONFIG_SYS_MALLOC_F_LEN > + str sp, [r9, #GD_MALLOC_BASE] > +#endif > /* mov r0, #0 not needed due to above code */ > bl board_init_f > > -- > 2.0.0.526.g5318336 > Regards, Simon
Applied to u-boot-dm/master.
diff --git a/README b/README index 11e9d31..73abbf0 100644 --- a/README +++ b/README @@ -3749,6 +3749,9 @@ Configuration Settings: The memory will be freed (or in fact just forgotton) when U-Boot relocates itself. + Pre-relocation malloc() is only supported on ARM at present + but is fairly easy to enable for other archs. + - CONFIG_SYS_BOOTM_LEN: Normally compressed uImages are limited to an uncompressed size of 8 MBytes. If this is not enough, diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S index 43aa212..29cdad0 100644 --- a/arch/arm/lib/crt0.S +++ b/arch/arm/lib/crt0.S @@ -78,7 +78,10 @@ clr_gd: strlo r0, [r1] /* clear 32-bit GD word */ addlo r1, r1, #4 /* move to next */ blo clr_gd - +#if defined(CONFIG_SYS_MALLOC_F_LEN) && !defined(CONFIG_SPL_BUILD) + sub sp, sp, #CONFIG_SYS_MALLOC_F_LEN + str sp, [r9, #GD_MALLOC_BASE] +#endif /* mov r0, #0 not needed due to above code */ bl board_init_f
Add support for re-relocation malloc() in arm's start-up code. Signed-off-by: Simon Glass <sjg@chromium.org> --- Changes in v3: - Rebase on earlier patch Changes in v2: None README | 3 +++ arch/arm/lib/crt0.S | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-)