[U-Boot] booting sunxi in falcon mode

Bjørnar Ness bjornar.ness at gmail.com
Sat Sep 30 13:29:39 UTC 2017


Hello!

The last couple evenings I have been experimenting with booting Linux
from spl on
a opiz board (sun8i/allwinner H2+)

I am using FIT with kernel/fdt and status is I can boot this from
within uboot using:

mmc read $ramdisk_addr_r 0x1000 0x2000
bootm $ramdisk_addr_r

but:

After preparing fdt:
mmc read $ramdisk_addr_r 0x1000 0x2000
spl export fdt $ramdisk_addr_r
mmc write $ramdisk_addr_r 0x2000 0x100

..and then placing this fdt into the FIT, I confirm the fdt is
actually passed to the Linux kernel,
and that it has been prepared (correctly?) by "spl export", but in Linux I get:

ERROR: Failed to allocate 0x0000000000002000 bytes below 0x0000000000000000

So seems there is some issues with memory. The fdt has:

        memory {
                reg = <0x40000000 0x20000000>;
                device_type = "memory";
        };

One difference I see when booting Linux from uboot is the following extra line:

[    0.000000] OF: fdt: Ignoring memory range 0x40000000 - 0x48000000

Where from spl, I only see:

[    0.000000] OF: fdt: Machine model: Xunlong Orange Pi Zero Hero

I have also tried to prepare the fdt using the method described under
"Example with FDT: a3m071 board" in doc/README.falcon, but with no
success (and it does not add /memory at all)

After trying to read trough most of the code to figure out if the
board is doing something special
before handing over control to Linux from uboot, I cant really find
anything of interest.

Hope someone is able to guide me in the right direction!

-- 
Bj(/)rnar


More information about the U-Boot mailing list