Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

AM623: Flash device IO Test Error

Part Number: AM623
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

The test of the FlashROM connected to the custom board does not pass.
Custom board with AM62 mounted is now booted in SD boot mode.

The sample project of OSPI_FLASH_IO was modified.
Test passed for 1S-1S-1S, but cannot pass for 4S-4S-4S protocol.
I think there is a problem with the settings on Sysconfig, but I don't know what the problem is.

【Device Information】
・CPU:AM6234ATCGHAALW
・FlashROM:MT25QL256ABA8ESF
 -256Mbit
 -Quad SPI

I had already inquired about this, but I would like to make a new inquiry.

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1422248/am623-flash-device-recognition-error/5522375#5522375

The settings for Flash in sysconfig's "ti_board_oepn_close.c" are as follows.

/*
 * FLASH
 */
/* FLASH Object - initialized during Flash_open() */
Flash_NorOspiObject gFlashObject_MT25QL256ABA8ESF =
{
    .rdDummyValPhyMode = FLASH_NOR_UPDATE_RD_DUMMY_VALUE,
};

/* FLASH Attrs */
Flash_Attrs gFlashAttrs_MT25QL256ABA8ESF =
{
    .flashType = CONFIG_FLASH_TYPE_SERIAL,
    .flashName = "MT25QL256ABA8ESF",
    .deviceId = 0xBA19,
    .manufacturerId = 0x20,
    .flashSize = 33554432,
    .blockCount = 1024,
    .blockSize = 32768,
    .pageCount = 128,
    .pageSize = 256,
    .sectorCount = 8192,
    .sectorSize = 4096,
};

/* FLASH DevConfig */
Flash_DevConfig gFlashDevCfg_MT25QL256ABA8ESF =
{
    .cmdExtType = OSPI_CMD_EXT_TYPE_REPEAT,
    .enable4BAddr = FALSE,
    .addrByteSupport = 1,
    .fourByteAddrEnSeq = 0xA0,
    .cmdWren = 0x06,
    .cmdRdsr = 0x05,
    .cmdWrsr = 0x00,
    .srWip = (1 << 0),
    .srWel = (1 << 1),
    .xspiWipRdCmd = 0x85,
    .xspiWipReg = 0x00800000,
    .xspiWipBit = (1 << 0),
    .resetType = 0x10,
    .eraseCfg = {
        .blockSize = 32768,
        .sectorSize = 4096,
        .cmdBlockErase3B = 0x52,
        .cmdBlockErase4B = 0x52,
        .cmdSectorErase3B = 0x20,
        .cmdSectorErase4B = 0x20,
        .cmdChipErase = 0xC7,
    },
    .idCfg = {
        .cmd = 0x9F, /* Constant */
        .numBytes = 3,
        .dummy4 = 0,
        .dummy8 = 0,
    },
    .protocolCfg = {
        .protocol = FLASH_CFG_PROTO_4S_4S_4S,
        .isDtr = FALSE,
        .cmdRd = 0x6B,
        .cmdWr = 0x02,
        .modeClksCmd = 0,
        .modeClksRd = 0,
        .dummyClksCmd = 10,
        .dummyClksRd = 10,
        .enableType = 0,
        .enableSeq = 0x00,
        .protoCfg = {
            .isAddrReg = FALSE,
            .cmdRegRd = 0x6B,
            .cmdRegWr = 0x02,
            .cfgReg = 0x00,
            .shift = 0,
            .mask = 0x00,
            .cfgRegBitP = 0,
        },
        .strDtrCfg = {
            .isAddrReg = TRUE,
            .cmdRegRd = 0x85,
            .cmdRegWr = 0xB1,
            .cfgReg = 0x00800006,
            .shift = 1,
            .mask = 0x02,
            .cfgRegBitP = 1,
        },
        .dummyCfg = {
            .isAddrReg = FALSE,
            .cmdRegRd = 0x85,
            .cmdRegWr = 0xB1,
            .cfgReg = 0x00,
            .shift = 0,
            .mask = 0x00,
            .cfgRegBitP = 0,
        },
    },
    .flashWriteTimeout = 512,
    .flashBusyTimeout = 256000000,
};