[U-Boot] [PATCH] arm: Allow u-boot to run from offset base address

Darwin Rambo drambo at broadcom.com
Mon May 26 18:11:35 CEST 2014


Hi Albert,

The previous stage bootloader (which I had no control over) wanted it's 
header to be aligned to a 512 byte MMC block boundary, presumably since 
this allowed DMA operations without copy/shifting. At the same time, I 
didn't want to hack a header into start.S because I didn't want to carry 
another downstream patch. So I investigated if I could shift u-boot's 
base address as a feature that would allow an aligned header to be used 
without the start.S patch.

I know that a custom header patch to start.S would work, and that a 
header plus padding will also work. But I found out that you can align 
the base on certain smaller offsets if you keep the relocation offset at 
nice boundaries like 0x1000 and if the relocation offset is a multiple 
of the maximum alignment requirements of the image.

The original patch I submitted didn't handle an end condition properly, 
was ARM64-specific (wasn't tested on other architectures), and because 
the patch was NAK'd, I didn't bother to submit a v2 patch and consider 
the idea to be dead. I'm happy to abandon the patch. I hope this helps.

Best regards,
Darwin

On 14-05-26 02:50 AM, Albert ARIBAUD wrote:
> Hi Wolfgang, Darwin,
>
> On Thu, 15 May 2014 21:19:57 +0200, Wolfgang Denk <wd at denx.de> wrote:
>
>> Setting CONFIG_SYS_TEXT_BASE to something like 0x88000020 is extremly
>> fishy.  If you want to add some header data to your image, you should
>> not shift the text segment, but rather include your header in the
>> start of the text segment.  Or keep it completely separate, without
>> messing with CONFIG_SYS_TEXT_BASE.
>
> Back to the origin of the discussion and patch:
>
> Darwin, can you describe the actual technical difficulty which caused
> you to you write and submitting this patch?
>
>> Best regards,
>>
>> Wolfgang Denk
>
> Amicalement,
>


More information about the U-Boot mailing list