Oftree from memory and access to start arguments

Sascha Hauer s.hauer at pengutronix.de
Thu Jun 7 00:31:13 PDT 2018

Hi Pascal,

On Wed, Jun 06, 2018 at 01:07:27AM +0200, Pascal Vizeli wrote:
> Hi,
> I'm working on a functionality to load a device tree with oftree from
> memory. The use case is like raspberry platform they have his own
> device tree for linux kernel. If I known the address (config.txt), I
> will load this from memory and read out the dynamic linux args and use
> other overlays for states with bootchoiser and boot the kernel
> correctly.
> On raspberry, I can write the device-tree to a memory address with
> config.txt. It would be nice, if I can access to barebox (start.c)
> main arguments, while the raspberry pi load barebox like a linux
> kernel and give him the device-address on r2.

Starting barebox with the devicetree provided in r2 shouldn't be a
problem. See arch/arm/boards/raspberry-pi/lowlevel.c:

ENTRY_FUNCTION(start_raspberry_pi2, r0, r1, r2)
        void *fdt = __dtb_bcm2836_rpi_2_start + get_runtime_offset();


        barebox_arm_entry(BCM2835_SDRAM_BASE, SZ_512M, fdt);

Just call barebox_arm_entry() with 'r2' instead of 'fdt'.

You could also store the value of r2 in a known memory location
and load the devicetree later in some board specific initcall.


Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

More information about the barebox mailing list