[U-Boot] [RFC PATCH 00/10] sunxi: Allwinner A64 SPL support

Andre Przywara andre.przywara at arm.com
Thu Nov 3 10:38:43 CET 2016


Hi,

On 03/11/16 08:49, Alexander Graf wrote:
> On 11/03/2016 02:36 AM, Andre Przywara wrote:
>> Hi,
>>
>> this is my first take on the SPL support for the Allwinner A64 SoC.
>> The actual meat - the DRAM initialization code - has been provided
>> by Jens - many thanks for that!
>> The rest of the patches mostly deal with the 32-bit/64-bit switch.
>>
>> While it is possible and seems natural to let the SPL also run in 64-bit,
>> this creates a really large binary (32600 Bytes in my case). With some
>> hacks (plus some fixes to make the SPL 64-bit safe) I got this to work,
> 
> So how about we merge the 64bit version first (since that's *way* easier
> to compile for everyone) and then consider the move to 32bit afterwards?

Mmmh, interesting idea, may be worth a try alone for the sake of the
64-bit fixes to the SPL code I have done in this process.
But I am not sure it doesn't already break for people using just a
different compiler. I even started to chop of some bytes here and there
to bring the size down (I gained 200 Bytes at the ctype implementation,
yeah!)

> I don't even want to start to imagine how to squeeze a 32bit SPL build
> into the build process for our U-Boot binaries.

I totally agree, even for me it's quite a pain, because a "make clean"
(which you need in between) removes the build result of that other
bitness, so you always have to remember to copy the binaries first (and
then up using stale copies afterwards).

>> but any addition will probably break it and exceed the 32KB limit that
>> the BROM imposes. Debug is the first obvious victim here.
> 
> Do you have some section size comparisons between the two?

I spent some time into looking at readelf dumps to find the reason for
the bigger size, but nothing really stood out. Still it is a bit odd,
since the size ratio for U-Boot proper is much better (like +20% for
64-bit).
A promising approach I then tried was to use -mabi=ilp32, which GCC
itself supports for quite a while already. But that was running into
ICEs, with no obviously bogus code. If someone more compiler-savvy could
take a look later, I'd be grateful.

That being said I will try to revive the AArch64 port tonight and push
this somewhere, so that people can have a look.

Cheers,
Andre.


More information about the U-Boot mailing list