LP-AM243: MCU-PLUS-SDK-AM243X 10.01.00.32 SBL OSPI MULTI-PARTITION ERROR & FALSH ERASE ERROR

Part Number: LP-AM243
Other Parts Discussed in Thread: MCU-PLUS-SDK-AM243X, UNIFLASH

Tool/software:

Hello.

My development environment is as follows
  Environment:
    CCS 12.7.0
    MCU-PLUS-SDK-AM243X  10.01.00.32
    LP-AM2434

I get an error when I start the ipc echo sample with SBL OSPI MULTI-PARTITION.

  Starting OSPI Multi-Partition Bootloader ...

  DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
  DMSC Firmware revision 0xa
  DMSC ABI revision 4.0

  Some tests have failed!!

SBL OSPI terminates normally.

  DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
  DMSC Firmware revision 0xa
  DMSC ABI revision 4.0

  KPI_DATA: [BOOTLOADER_PROFILE] Boot Media : NOR SPI FLASH
  KPI_DATA: [BOOTLOADER_PROFILE] Boot Media Clock : 100.000 MHz
  KPI_DATA: [BOOTLOADER_PROFILE] Boot Image Size : 229 KB
  KPI_DATA: [BOOTLOADER_PROFILE] Cores present :
  m4f0-0
  r5f1-0
  r5f1-1
  r5f0-0
  r5f0-1
  KPI_DATA: [BOOTLOADER PROFILE] SYSFW init : 11098us
  KPI_DATA: [BOOTLOADER PROFILE] System_init : 11712us
  KPI_DATA: [BOOTLOADER PROFILE] Drivers_open : 1636us
  KPI_DATA: [BOOTLOADER PROFILE] Board_driversOpen : 478616us
  KPI_DATA: [BOOTLOADER PROFILE] Sciclient Get Version : 9843us
  KPI_DATA: [BOOTLOADER PROFILE] CPU load : 33050us
  KPI_DATA: [BOOTLOADER PROFILE] SBL End : 2us
  KPI_DATA: [BOOTLOADER_PROFILE] SBL Total Time Taken : 545961us

  Image loading done, switching to application ...
  [IPC NOTIFY ECHO] Message exchange started by main core !!!
  [m4f0-0] 0.004038s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
  [r5f0-1] 0.002116s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
  [r5f0-1] 4.398251s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!
  [r5f1-0] 0.003187s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
  [r5f1-0] 4.399828s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!
  [r5f1-1] 0.002506s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
  [r5f1-1] 4.399405s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!
  [IPC NOTIFY ECHO] All echoed messages received by main core from 4 remote cores !!!
  [IPC NOTIFY ECHO] Messages sent to each core = 1000000
  [IPC NOTIFY ECHO] Number of remote cores = 4
  All tests have passed!!
  [m4f0-0] 6.632182s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!

Is this a problem with the SBL?
Or is the LP2434 faulty?

Flash erase Command:
  10.01.00.32: Flash Erase also fails.
  09.02.01.05: Flash Erase succeeds.

  cd C:\ti_am243x09020105\mcu_plus_sdk_am243x_10_01_00_32\tools\boot
  python .\uart_uniflash.py --flash-writer=sbl_prebuilt\am243x-lp\sbl_uart_uniflash.release.hs_fs.tiimage -p COM9 --operation=erase --flash-offset=0 --erase-size=0x180000

  PS C:\ti_am243x09020105\mcu_plus_sdk_am243x_10_01_00_32\tools\boot> python .\uart_uniflash.py --flash-writer=sbl_prebuilt\am243x-lp\sbl_uart_uniflash.release.hs_fs.tiimage -p COM9 --operation=erase --flash-offset=0 --erase-size=0x180000
  Found flash writer ... sending sbl_prebuilt\am243x-lp\sbl_uart_uniflash.release.hs_fs.tiimage
  Sent flashwriter sbl_prebuilt\am243x-lp\sbl_uart_uniflash.release.hs_fs.tiimage of size 308654 bytes in 29.31s.

  Traceback (most recent call last):
  File "C:\ti_am243x09020105\mcu_plus_sdk_am243x_10_01_00_32\tools\boot\uart_uniflash.py", line 770, in <module>
    main(sys.argv[1:])
  File "C:\ti_am243x09020105\mcu_plus_sdk_am243x_10_01_00_32\tools\boot\uart_uniflash.py", line 518, in main
    elif linecfg.optype in ["flash-mcelf-xip"]:
^^^^^^^
  UnboundLocalError: cannot access local variable 'linecfg' where it is not associated with a value
  PS C:\ti_am243x09020105\mcu_plus_sdk_am243x_10_01_00_32\tools\boot>

Regards,
Yoshiki

  • Hi,

    There is a known bug, which I would like you to incorporate and take into account.

    Basically, when you look at the file ospi_lld.h

    The method OSPI_NOR_PROTOCOL is incorrectly defined.

    The correct definition should be:

    #define OSPI_NOR_PROTOCOL(cmd, addr, data, dtr) (uint32_t)(((uint32_t)(dtr) << 24) | \
                                                            ((uint32_t)(cmd) << 16) | \
                                                            ((uint32_t)(addr) << 8) | \
                                                            ((uint32_t)(data) << 0))
    Notice I have swapped the addr and data field, once you have made these changes please go ahead and rebuild the libraries to incorporate these changes. Also make sure to rebuild the applications.
    Please let me know if you see the issue after this change is made.
    Regards,
    Vaibhav