This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM648 Second bootloader for ethernet boot

Hi all,

My target is booting the DM648 EVM board througth the Ethernet port.

At current stage, my PC can catch a BOOTP packet from the EVM board, and send tbe second bootloader (UBL) to the EVM. The UBL is able to load the application from flash and the boot process finish.

However, we need to modify the UBL so that it can download the application from the network, but not load it from flash. Since the UBL should be boot to on-chip RAM, that's mean there is size limitation (which is 512kB in DM648 / 256kB in DM647) on the UBL code. I cannot load the whole NDK library to the UBL, is that right?

May I know any hints how to modify the UBL so that it can download the applicaiton code from network?

or if you have any other method to do the Ethernet boot on DM648?

Thank you.

Edmond Ho

  • Edmond,

    I'll get back to you on this when our Ethernet boot expert is back in the office on Monday.

    Thanks,

    Brad

  • Brad,

    Thank you for your help!

    Edmond

  • Edmond,

    NDK can be downloaded in the external memory (DDR).

    For that UBL should initilize DDR.

    Sample code for DDR initilization is available at many places including DVSDK (pspdrivers_x_xx_xx\packages\ti\sdo\pspdrivers\soc\dm648\examples\ddr2\src).

    Thanks,
    Gaurav

  • Dear Gaurav,

    Thank you for your support. However, I still don't know the method for the whole Ethernet bootup on the DM648. I type it detail on what my understanding below:

    1. DM648 RBL detect the bootmode, config the PLL, and send a 'BOOTP' packet

    2. External server send the bootcode (second bootloader - UBL) to it, and the DSP will store the whole second bootloader in the on chip SRAM.

    3. DSP start execute the second bootloader. (at this moment, the whole UBL code is store and run in the SRAM)

    4. UBL initialize the DDR

    5. UBL download the whole application from the network.

    The part which I don't understand is that if the UBL is required to downoad the application throught network, does the NDK should be included in the UBL? For this requirment, according step (3)  above, the whole UBL would be store and run in the SRAM. There will be a size limitaion on the UBL code, is that right?

    Gaurav said:

    NDK can be downloaded in the external memory (DDR).

     

    Do you mean that after the UBL initialize the DDR (after step 4), it downloads the NDK into the DDR? Since there is only SGMII connected to outside world, there is no onboard flash / HPI / PCI connected on our board. It seems can't do that if the UBL doesn't have network support.

    Is there anything I mis-understanding?

    Thank you.

    Edmond