[U-Boot] [PATCH v4 0/4] Factorize ARM relocate_code instances

Albert ARIBAUD albert.u.boot at aribaud.net
Mon May 20 11:26:10 CEST 2013


Hi Benoît,

On Sun, 19 May 2013 17:57:59 +0200 (CEST), Benoît Thébaudeau
<benoit.thebaudeau at advansee.com> wrote:

> Hi Albert,
> 
> On Sunday, May 19, 2013 1:48:11 PM, Albert ARIBAUD wrote:
> > This series replaces all instances of relocate_code in
> > various start.S files from the ARM architecture with a
> > single instance in arch/arm/lib/relocate.S.
> > 
> > This is done in steps, each step keeping the whole of ARM
> > U-Boot buildable and runnable and touching as little code
> > as necessary.
> > 
> > 1. Drop mx31pdk SPL call to relocate_code
> > 
> > In SPL of mx31pdk, board_init_f calls relocate_code to
> > move SPL from the NAND read buffer to SRAM. This move
> > is not a relocation and is thus better implemented as
> > a simple ad hoc copy loop.
> > 
> > 2. Drop tx25 SPL call to relocate_code
> > 
> > Same as mx31pdk.
> > 
> > 3. Prevent all SPLs from assembling relocate_code
> > 
> > Now that no SPL uses relocate_code any more, remove
> > it completely from SPL builds by putting it entirely
> > between #ifndef CONFIG_SPL_BUILD and #endif preprocessor
> > conditional.
> > 
> > 4. Actual factorization of relocate_code
> > 
> > Remove all instances of relocate_code from start.S and
> > create a new file, arch/arm/lib/relocate.S, to provide
> > the new single instance of relocate_code.
> > 
> > The only non-trivial change is that for PXA25X, a call
> > to unlock (actually disable) dcache is moved from before
> > relocating to after relocating. As this cache is either
> > locked-as-RAM or disabled, but never used as actual DDR
> > cache, this move has no performance effect on relocation
> > and no functional impact either.
> > 
> > The relocation routine was step-tested on versatileqemu
> > under gdb. Especially, both relocation offset (from
> > _start to addr_moni and local offsets (from relocate_code
> > to several linker script symbols) have been verified.
> > 
> > Changes in v4:
> > - added blank line after PXA25X conditional code
> > - fixed typos in relocate_code comments
> > - brought back 'mov pc,lr' instead of 'bx lr' for ARMv4
> 
> [...]
> 
> Perfect!
> 
> For this v4 series:
> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau at advansee.com>

Thanks Benoît!

Now I need some people to regression-test it on their
HW, both ARM and non-ARM just in case.

> Best regards,
> Benoît

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list