3.11-rc7 big endian - atags and bootloader updates

Ben Dooks ben.dooks at codethink.co.uk
Tue Sep 3 12:15:42 EDT 2013


On 03/09/13 11:40, Dave Martin wrote:
> On Fri, Aug 30, 2013 at 08:17:56PM +0100, Ben Dooks wrote:
>> This series is to better support older bootloaders, especially the
>> ones that still pass some information in the ATAGS structure used
>> by pre-fdt booting. The series is available at:
>>
>> 	git://git.baserock.org/delta/linux baserock/311-rc7/be/atags-v2
>
> This seems a good idea, but it is a change to the boot protocol which
> may break any existing BE bootloader today.  Are you sure this won't
> cause problems for anyone?

You have to manually select it, so not really.

> One partial solution could be to make the ATAGs endianness-agnostic.
>
> Since the ATAGs start with ATAG core, we know that the word at offset
> <atags base + 4>  must have the value 0x54410001.  If we see a backwards
> value, we know the ATAGs are wrong-endian and every word must must be
> swabbed.

That would be possible, I will look into that.

> What to do about the zImage magic is less clear.  Up to this point,
> BE kernels have always had backwards magic.  Changing the magic might
> upset existing bootloaders, but I've never used a BE be bootloader, so
> I can't really comment on that...

This series uses a specific configuration to change both the ATAG
and magic if the system is meant to be big-endian, but booted on
a little-endian system.

>
> Documentation/arm/Booting should also be updated to reflect any change.
> In fact, what's already there could use clarification, since there is
> no statement about endianness at all yet.

Ok, good idea.


-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius



More information about the linux-arm-kernel mailing list