Hi, thank you for the answer, meanwhile I also found the bootinfo details in the ~5000 pages am335x datasheet. Starting the second stage bootloader (barebox.bin file on the mmc) from the MLO also works ('out of the box' actually). giorgio > On February 16, 2018 at 8:51 AM Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > > > Hi Giorgio, > > On Tue, Feb 13, 2018 at 11:12:54PM +0100, Giorgio Dal Molin wrote: > > Hi all, > > > > I'm trying to add board code for an am335x based HW project. > > I had a look at similar boards like 'boards/phytec-som-am335x' > > or 'boards/beaglebone'. > > I understand that I need two images: the (little) MLO and the > > (bigger) barebox. > > > > What it's not really clear is how the MLO loads and starts the > > barebox. > > See arch/arm/mach-omap/xload.c. It is compiled when no shell is enabled > (I think at least for clarity there should be a separate Kconfig > symbol). In this file omap_xload() detects where the SoC has booted from > and loads the full barebox from the same source. > > > > > Moreover I saw there's always a call to: > > > > am33xx_save_bootinfo((void *)bootinfo); > > > > in the MLO lowlevel entry function; I suspect the argument > > 'bootinfo' is the register r0 left by the function __barebox_arm_head() > > but I cannot really understand the logic behind it. > > When the am335x ROM passes control to the bootloader then it passes in > R0 a pointer to the bootinfo. This is a three word structure which has > informations where the SoC has booted from. In am33xx_save_bootinfo() we > copy the information to a known place where we can pick it up later, see > am33xx_bootsource(). > > Sascha > > > -- > 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 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox