Thread (1 message) 1 message, 1 author, 2013-09-03

3.11-rc7 big endian - atags and bootloader updates

From: Ben Dooks <hidden>
Date: 2013-09-03 16:15:42

On 03/09/13 11:40, Dave Martin wrote:
On Fri, Aug 30, 2013 at 08:17:56PM +0100, Ben Dooks wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help