[U-Boot] davinci: lowlevel_init for davinci boards

Hi,
I plan to use a davinci DM365 processor booting directly from a NOR flash, without using the UBL provided by Texas. So I do not want to set CONFIG_SKIP_LOWLEVEL_INIT in my config.
I am confused about the low level initialization for davinci SOC: arch/arm/cpu/arm926ejs/davinci/lowlevel_init.S sounds to be general for all DaVinci processors, but after a check I can see that it does not match at least for the DM365 (most offset are wrong). I have search for boards using this file, and it seems that only the sonata board could use it, if it does not boot from nand (it has a DM644).
Is the actual lowlevel_init.S really specialized only for the DM644 ? Do we need a specialized file for the other processors, too ? Or am I missing something ?
Best regards, Stefano Babic

Hi,
I plan to use a davinci DM365 processor booting directly from a NOR flash, without using the UBL provided by Texas. So I do not want to set CONFIG_SKIP_LOWLEVEL_INIT in my config.
I am confused about the low level initialization for davinci SOC: arch/arm/cpu/arm926ejs/davinci/lowlevel_init.S sounds to be general for all DaVinci processors, but after a check I can see that it does not match at least for the DM365 (most offset are wrong). I have search for boards using this file, and it seems that only the sonata board could use it, if it does not boot from nand (it has a DM644).
Is the actual lowlevel_init.S really specialized only for the DM644 ? Do we need a specialized file for the other processors, too ? Or am I missing something ?
Yes the lowlevel_init.S is meant only for DM6446.
Later TI decided to do all the low level init in the UBL for both NAND and NOR boot modes. Thus the lowlevel_init.S actually became redundant w.r.t to our most recent releases, but for legacy reasons it continues to be present in U-Boot.
Sandeep

Paulraj, Sandeep wrote:
Hi,
Hi,
Yes the lowlevel_init.S is meant only for DM6446.
Later TI decided to do all the low level init in the UBL for both NAND and NOR boot modes. Thus the lowlevel_init.S actually became redundant w.r.t to our most recent releases, but for legacy reasons it continues to be present in U-Boot.
Ok, I see, thanks. I have at the moment no other solution as to port the initialization of the processor (PLL,DDR2, etc.) into a specialized lowlevel_init.S for the DM365.
I am quite unsure about the role of the RBL, too. I have assumed that the setup to access the AEMIF interface is provided only by setting the AECFG pins and the role of RBL is to copy the UBL into IRAM and start it.
However, the RBL could initialize the processor in some way I do not know before loading the UBL and then I could get further problems due to a missing or wrong initialization that I have not seen in UBL. Do you know if the RBL is responsible to some further initialization before loading the UBL ?
Best regards, Stefano Babic

I am quite unsure about the role of the RBL, too. I have assumed that the setup to access the AEMIF interface is provided only by setting the AECFG pins and the role of RBL is to copy the UBL into IRAM and start it.
However, the RBL could initialize the processor in some way I do not know before loading the UBL and then I could get further problems due to a missing or wrong initialization that I have not seen in UBL. Do you know if the RBL is responsible to some further initialization before loading the UBL ?
The RBL does some PINMUX init that is required for AEMIF
Regards, Sandeep
participants (2)
-
Paulraj, Sandeep
-
Stefano Babic