[PATCH v2] Porting barebox to a new SoC

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Jun 12 05:28:36 PDT 2023

Hello Lior,

On 12.06.23 11:27, Lior Weintraub wrote:
> Hi Ahmad,
> Regarding the rootfs and Linux run question:
> Our board doesn't include eMMC\SD card. 
> We only have our NOR Flash to store the binaries and our BL1 code will make sure to copy those blobs into DRAM.

How could BL1 copy artifacts in DRAM when BL2 first needs to set up DRAM?

> The use of QEMU needs to be as simple as possible so no hidden virtio drivers and such because we would like to simulate the real HW flow.

cfi-flash is just memory-mapped flash, which is the next simplest thing
after BL1 copies stuff into (limited-to-4M) on-chip SRAM.

> Our DTS file now includes the GIC, timer and arm,psci-1.0.
> We have an initial build of Linux kernel Image (using buildroot) and a rootfs.cpio.xz.
> I assume we can somehow reserve a portion of the DRAM to store those binaries and let barebox boot this Linux.

You can make this work, but this is not how your actual system will
look like and trying to make this work is harder than it needs to be.

Just add a cfi-flash that corresponds to the Linux/rootfs flash in
your actual system, then boot with bootm (type help bootm for info
on how to use it). You don't need to hardcode the load addresses,
barebox will determine them automatically.

> Can you please advise how to make it work?

For completion's sake, if you have 64M of RAM that's preloaded with
boot images:

  - Remove the 64M from the barebox /memory node. You can use a different
    DT for kernel, but if you have memory that barebox shouldn't override,
    you need to tell it that.

  - Add a mtd-rom node that describes these 64M that you have. You can
    add partitions for the region used for kernel and oftree

  - boot with bootm -o /dev/mtdrom0.oftree -r /dev/mtdrom0.initrd \

That's admittedly cumbersome, but necessary, so barebox knows what memory
it may use for itself and what memory may be used for boot.

Correct solution is to use cfi-flash or similar.

Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

More information about the barebox mailing list