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.

MCU-PLUS-SDK-AM243X: sbl_dfu boot from DDR

Part Number: MCU-PLUS-SDK-AM243X

Hi,

I have a question regarding sbl_dfu example in MCU-PLUS-SDK-AM243X version 09.01.00.41

Currently it uses MSRAM_2 region for storing the application code, which is limited to 393,216 bytes.

Is it possible to utilize DDR to store the application and to boot from it since the application is larger than MSRAM_2 region?

  • Hi Mario,

    The DFU download accounts for the entire image download at the SRAM location here - 

    The software is further loaded in to the respective memories at the Bootloader_loadCpu function.

    In case you need to download in DDR scratchpad memory, you should do this -

    1. Enable the DDR memories in the SBL.
    2. Relocate the "gAppImageBuf" memory in the scratchpad memory in the DDR using linker.cmd.
    3. Modify BOOTLOADER_APPIMAGE_MAX_FILE_SIZE based on the size of the data.

    After this you will be able to move more of the software software. I hope this helps.

    Best Regards,
    Aakash

  • Hi Aakash,

    Thank you for your support. I've managed to get it working!

    One more thing, I had issues with getting unmodified sbl_dfu running on my board.

    SBL would boot, but the USB stack wasn't working properly. Host device would keep reporting USB errors:

    [  373.093377] usb 3-1: device descriptor read/64, error -110
    [  388.709374] usb 3-1: device descriptor read/64, error -110
    [  388.945363] usb 3-1: new high-speed USB device number 10 using xhci-hcd
    [  394.085377] usb 3-1: device descriptor read/64, error -110
    [  409.701376] usb 3-1: device descriptor read/64, error -110
    [  409.809497] usb usb3-port1: attempt power cycle
    [  410.221363] usb 3-1: new high-speed USB device number 11 using xhci-hcd
    [  415.461394] xhci-hcd xhci-hcd.1.auto: Timeout while waiting for setup device command
    [  420.837395] xhci-hcd xhci-hcd.1.auto: Timeout while waiting for setup device command
    [  421.045361] usb 3-1: device not accepting address 11, error -62
    [  421.173364] usb 3-1: new high-speed USB device number 12 using xhci-hcd
    [  426.213407] xhci-hcd xhci-hcd.1.auto: Timeout while waiting for setup device command
    [  431.589383] xhci-hcd xhci-hcd.1.auto: Timeout while waiting for setup device command
    [  431.797362] usb 3-1: device not accepting address 12, error -62
    [  431.797526] usb usb3-port1: unable to enumerate USB device

    I fixed this by changing NON_CACHE_MEM start address to 0x70140000 instead of default 0x70050000

    Is this a possible error in the SDK example?

  • Hi Mario,

    I have called in the USB expert. As there is a holiday in US, the thread will be answered with a short delay. Please be patient.

    Best Regards,
    Aakash

  • Hi Mario,

    I do not understand why when you changed the NON_CACHE_MEM from 0x70050000 to 0x70180000 made the difference.

    Basically, the USB driver does need some non-cached memory (.bss.nocache) for it to work properly, but it does not require that non-cached memory to be in certain place.

    Can you send the MAP file, example.syscfg and generated linker.cmd file?

    Best regards,

    Ming