AM2432: OSPI Read/Write Isse with the custom flash - IS25WX064

Part Number: AM2432
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello TI Team,

As per documentation on TI officials:- https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/EXAMPLES_DRIVERS_OSPI_FLASH_DIAG.html, I run the diagnose example on AM2432 and read SFDP Parameters from OSPI Flash memory (IS25WX064). I got success in reading SFDP Parameters but getting issue during configuration for OSPI Read/Write.

For OSPI Flash read/Write, I considered (ospi_flash_io) example code from TI - https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/08_00_00_21/exports/docs/api_guide_am64x/EXAMPLES_DRIVERS_OSPI_FLASH_IO.html ; However, during debugging, the code stuck at driver_open API.

I believe that there might the issue with configurations of Flash memory or OSPI. I am going to share SFDP Parameters and sysConfig data. Let me know the possible causes and solution based on the data.

SFDP PARAMETERS:

================================================
                      SFDP                      
================================================
SFDP Major Revision                       : 0x1
SFDP Minor Revision                       : 0x9
Number of Parameter Headers in this Table : 4

Types of Additional Parameter Tables in this flash
---------------------------------------------------
4 BYTE ADDRESSING MODE INSTRUCTIONS TABLE
NOR SPI PROFILE TABLE 
OCTAL DDR MODE COMMAND SEQUENCE TABLE

Parsing of OCTAL DDR MODE COMMAND SEQUENCE TABLE table not yet supported. 
JSON Data for the flash :

{

"flashSize": 8388608,
"flashPageSize": 256,
"flashManfId": "0x9D",
"flashDeviceId": "0x5B17",
"flashBlockSize": 131072,
"flashSectorSize": 4096,
"cmdBlockErase3B": "0xD8",
"cmdBlockErase4B": "0xDC",
"cmdSectorErase3B": "0x20",
"cmdSectorErase4B": "0x21",
"protos": {
"p111": {
"isDtr": false,
"cmdRd": "0x03",
"cmdWr": "0x02",
"modeClksCmd": 0,
"modeClksRd": 0,
"dummyClksCmd": 0,
"dummyClksRd": 0,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": null,
"protoCfg": null,
"strDtrCfg": null
},
"p112": null,
"p114": null,
"p118": {
"isDtr": false,
"cmdRd": "0x7C",
"cmdWr": "0x84",
"modeClksCmd": 0,
"modeClksRd": 1,
"dummyClksCmd": 0,
"dummyClksRd": 7,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": null,
"protoCfg": null,
"strDtrCfg": null
},
"p444s": null,
"p444d": null,
"p888s": null,
"p888d": {
"isDtr": false,
"cmdRd": "0x0B",
"cmdWr": "0x12",
"modeClksCmd": 0,
"modeClksRd": 0,
"dummyClksCmd": 8,
"dummyClksRd": 20,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": {
"isAddrReg": false,
"cmdRegRd":"0x00",
"cmdRegWr":"0x00",
"cfgReg":"0x00000000",
"shift":0,
"mask":"0x00",
"bitP":20
},
"protoCfg": {
"isAddrReg": false,
"cmdRegRd": "0x00",
"cmdRegWr": "0x00",
"cfgReg": "0x00000000",
"shift": 0,
"mask": "0x00",
"bitP": 0
},
"strDtrCfg": {
"isAddrReg": false,
"cmdRegRd": "0x00",
"cmdRegWr": "0x00",
"cfgReg": "0x00000000",
"shift": 0,
"mask": "0x00",
"bitP": 0
}
},
"pCustom": { 
"fxn": null
}
},
"addrByteSupport": "1",
"fourByteAddrEnSeq": "0xA1",
"cmdExtType": "REPEAT",
"resetType": "0x30",
"deviceBusyType": "0",
"cmdWren": "0x06",
"cmdRdsr": "0x05",
"srWip":  0,
"srWel":  1,
"cmdChipErase": "0xC7",
"rdIdSettings": {
"cmd": "0x9F",
"numBytes": 5,
"dummy4": 0,
"dummy8": 0
},
"xspiWipRdCmd": "0x00",
"xspiWipReg": "0x00000000",
"xspiWipBit": 0,
"flashDeviceBusyTimeout": 20000000,
"flashPageProgTimeout": 120
}

SYSCONFIG Script:

In SFDP Parameters -> Protocol Configuration parameters are all NULL. This might create the issue.

"protoCfg": {
"isAddrReg": false,
"cmdRegRd": "0x00",
"cmdRegWr": "0x00",
"cfgReg": "0x00000000",
"shift": 0,
"mask": "0x00",
"bitP": 0
},

Please check that SFDP parameters are correct or I need to modify it.