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.

AM6442: OSPI NOR Flash won't boot

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG, UNIFLASH

Dear TI,

On our proprietary AM6442 based board, we want to replace the SPI NOR Flash:
MICRON MT35XL512ABA1G12-0SIT
with
MICRON MT35XL512ABA1G12-A0AAT

I ran the Flash diagnostic sample project on both flash devices to determine the JSON file for SysConfig.
I modified the SBL OSPI bootloader accordingly with new parameters (not easy since some SysConfig versions would give errors when importing the JSON file).

image.png

image.png

image.png

I'm programming the same SBL OSPI bootloader firmware on both boards with 0SIT and A0AAT version of the NOR Flash, using the Uniflash serial programmer.
The Uniflash serial programmer also verifies the programmed firmwares.
However, the board with the new A0AAT version won't boot from OSPI bootmode.

Parsing config file ...
Parsing config file ... SUCCESS. Found 7 command(s) !!!

Executing command 1 of 7 ...
Found flash writer ... sending mt40a512m16_uniflash.release.hs_fs.tiimage
Sent flashwriter mt40a512m16_uniflash.release.hs_fs.tiimage of size 329092 bytes in 31.02s.

Executing command 2 of 7 ...
Command arguments : --file=dcs_som_sbl_ospi.release.hs_fs.tiimage --flash-offset=0x0 --operation=flash
Sent dcs_som_sbl_ospi.release.hs_fs.tiimage of size 320764 bytes in 31.16s.
[STATUS] SUCCESS !!!

Executing command 3 of 7 ...
Command arguments : --file=dcs_som_sbl_ospi.release.hs_fs.tiimage --flash-offset=0x0 --operation=flashverify
Sent dcs_som_sbl_ospi.release.hs_fs.tiimage of size 320764 bytes in 32.57s.
[STATUS] SUCCESS !!!

Executing command 4 of 7 ...
Command arguments : --file=EFS_FC.appimage.hs_fs --flash-offset=0x80000 --operation=flash
Sent EFS_FC.appimage.hs_fs of size 766274 bytes in 73.53s.
[STATUS] SUCCESS !!!

Executing command 5 of 7 ...
Command arguments : --file=EFS_FC.appimage.hs_fs --flash-offset=0x80000 --operation=flashverify
Sent EFS_FC.appimage.hs_fs of size 766274 bytes in 73.55s.
[STATUS] SUCCESS !!!

Executing command 6 of 7 ...
Command arguments : --file=EFS_FC.appimage_xip --operation=flash-xip
Sent EFS_FC.appimage_xip of size 80 bytes in 3.08s.
[STATUS] SUCCESS !!!

Executing command 7 of 7 ...
Command arguments : --file=EFS_FC.appimage_xip --operation=flashverify-xip
Sent EFS_FC.appimage_xip of size 80 bytes in 3.08s.
[STATUS] SUCCESS !!!

All commands from config file are executed !!!

The board with the 0SIT NOR Flash boots after programming, in OSPI bootmode:

Xmodem RX pending..
Xmodem RX Filesize : 0x0004E800 / 321536
Uniflash processing..
Uniflash response : 0x00000000
Xmodem TX..
Xmodem RX pending..
Xmodem RX Filesize : 0x0004E800 / 321536
Uniflash processing..
Uniflash response : 0x00000000
Xmodem TX..
Xmodem RX pending..
Xmodem RX Filesize : 0x000BB400 / 766976
Uniflash processing..
Uniflash response : 0x00000000
Xmodem TX..
Xmodem RX pending..
Xmodem RX Filesize : 0x000BB400 / 766976
Uniflash processing..
Uniflash response : 0x00000000
Xmodem TX..
Xmodem RX pending..
Xmodem RX Filesize : 0x00000400 / 1024
Uniflash processing..
Uniflash response : 0x00000000
Xmodem TX..
Xmodem RX pending..
Xmodem RX Filesize : 0x00000400 / 1024
Uniflash processing..
Uniflash response : 0x00000000
Xmodem TX..
Xmodem RX pending..


   ___  _________   ________  __  ___
  / _ \/ ___/ __/  / __/ __ \/  |/  /
 / // / /___\ \   _\ \/ /_/ / /|_/ /
/____/\___/___/__/___/\____/_/  /_/
             /___/

DCS_SOM OSPI Bootloader
Built (Sep  8 2026, 12:50:33)
Support for NOR flash device MT35XL512ABA1G12-A0AAT in 1S-1S-8S mode (100MHz/4, PHY disabled)

FlashFixUp
Board_driversOpen
...

 

The board with A0AAT NOR Flash seems to be programmed correctly (no errors on the verification phase), but it won't boot after programming in OSPI bootmode.

Please let me know what I can do to enable OSPI boot from the new flash device?

kind regards,

 

 

 

 

 

 

 

 

 

 

 

  • Hello Marc Schouteeten,

    Thank you for your query !

    Please allow me some time to try identify any paramount differences in the parameters between the two MICRON MT35XL512ABA1G12 memory subtypes.

    I will try to follow-up tomorrow with further information.

    Your patience is appreciated !

    Best Regards,

    Anastas Yordanov

  • Hi Marc,

    Q1. Are there any differences between the two boards:

    1) in the AM64x OSPI hardware to memory interface

    2) in the BOOTMODE signals ( GPMC_AD0-GPMC_AD15) connectivity ?

    Q2. Can you please let me know what is the latched BOOTMODE[15:0] value on both boards ?

    Looking forward to your feedback !

    Thank you

    Best Regards,

    Anastas Yordanov 

  • Hi Anastas,

    Upon review of the bootmode settings, it seems that I was using xSPI bootmode instead of the OSPI bootmode! This worked with the original NOR Flash, but not with the new one.

    When using OSPI bootmode, I can boot both old and new NOR flash device..

    Thanks for your support!

    Marc

  • Hi Marc,

    I am glad to hear that you resolved the new NOR memory boot issue !

    I suspect that you used the xSPI SFDP boot mode (and let me know if this is the case) to successfully boot SBL from the MT35XL512ABA1G12-0SIT memory.

    If the other MT35XL512ABA1G12-A0AIT memory supports a different SFDP with which the AM64x ROM may be incompliant, the boot therefore fails. At the same time I am not sure to well understand how do you manage to boot from the two memories in the octal OSPI boot mode 1S-1S-8S (50 MHz). By default the two memories appear to support 1x SDR, so how is OSPI octal data booting performed correctly by the AM64x ROM to me is not clear.

    Thank you

    Best Regards

    Anastas Yordanov  

  • Hi Anastas,

    Indeed,
    Primary Boot Mode Config: 1 0 0  (SFDP enabled / 0x0B Read Command / 1S-1S-1S mode @ 50MHz).

    The 1S-1S-8S is setup in the SBL_OSPI bootloader firmware sysconfig.

    flash1.$name = "CONFIG_FLASH0";
    bootloader1.flashDriver = flash1;
    flash1.flashManfId = "0x2C";
    flash1.flashDeviceId = "0x5A1A";
    flash1.flashBlockSize = 131072;
    flash1.cmdBlockErase3B = "0xD8";
    flash1.cmdSectorErase3B = "0x20";
    flash1.cmdRd = "0x7C";
    flash1.cmdWr = "0x84";
    flash1.dummyClksRd = 8;
    flash1.resetType = "0x30";
    flash1.deviceBusyType = "0";
    flash1.idNumBytes = 5;
    flash1.srWel = 0;
    flash1.xspiWipRdCmd = "0x00";
    flash1.xspiWipReg = "0x00000000";
    flash1.cmdExtType = "NONE";
    flash1.device = "CUSTOM_FLASH";
    flash1.fname = "MT35XL512";
    flash1.protocol = "1s_1s_8s";
    flash1.peripheralDriver.$name = "CONFIG_OSPI0";
    flash1.peripheralDriver.dmaEnable = true;
    flash1.peripheralDriver.inputClkFreq = 100000000;

    I could just reuse my existing SBL_OSPI from the 'old' flash and it works with the new.

    kind regards,
    Marc

  • Hi Marc,

    Thank you for your prompt feedback !

    It looks like we partly talked from different perspectives.

    I used to think that the AM64x ROM loader (the RBL) was NOT able to boot your custom SBL_OSPI from the MT35XL512ABA1G12-A0AIT (new) memory in the xSPI SFDP boot mode (BOOTMODE[9:7] = 0b100). Note that when SFDP mode is enabled the ROM code will NOT consider the BOOTMODE[8:7] bits.

    You had success with AM64x ROM booting the SBL only from the old memory -  MT35XL512ABA1G12-0SIT in the xSPI SFDP mode.

    Shall I understand that the AM64x ROM successfully boots your SBL_OSPI from the new MT35XL512ABA1G12-A0AIT as well ?

    If not, how then the AM64x ROM bootloader boots your SBL_OSPI on the PCB with the  MT35XL512ABA1G12-A0AIT ? Do you use non-OSPI boot interface such as SDCard, eMMC, UART or some other ROM primary boot configuration ?

    From your previous post  I understand that your old memory SBL_OSPI  (DCS_SOM SBL) successfully boots the application or other bootloaders from the MT35XL512ABA1G12-A0AIT when using the 1S-1S-8S octal boot.

    Please shortly confirm.

    Let me know if the issue is resolved (marking it as "Resolved" in the E2E) and if we can close the thread.

    Thank you

    Best Regards,

    Anastas Yordanov  

  • Hi Anastas,

    Your assumption was correct: 
    in xSPI SFDP ROM mode (cold start):
    - the bootrom can boot the 'old' MT35XL512ABA1G12-0SIT,
    - the bootrom cannot boot the 'new' MT35XL512ABA1G12-A0AIT,

    in OSPI ROM bootmode (cold start), I could boot both parts as expected, and the SBL_OSPI bootloader would start on both targets and load the subsequent firmwares in 1S-1S-8S mode.

    So for me the issue (was in fact a wrong bootmode) is resolved.

  • Hi Marc,

    Thank you for confirming !

    Best Regards,

    Anastas