Part Number: AM2432
Other Parts Discussed in Thread: UNIFLASH, SYSCONFIG
Hello, we have a custom board with the AM2432 processor, sdk version 8.6.0.45 and sysconfig 1.17.0. I am trying to bring up the qspi flash on the board for the micron flash device MT25QU128ABA. I am trying to upload a null bootloader over uart uniflash, but the flash open is failing. I have run the opsi flash diagnostic example, and gotten the resulting output:
[MAIN_Cortex_R5_0_0] [OSPI Flash Diagnostic Test] Starting ...
[OSPI Flash Diagnostic Test] Flash Manufacturer ID : 0x20
[OSPI Flash Diagnostic Test] Flash Device ID : 0xBB18
[OSPI Flash Diagnostic Test] Executing Flash Erase on first block...
[OSPI Flash Diagnostic Test] Done !!!
[OSPI Flash Diagnostic Test] Performing Write-Read Test...
[OSPI Flash Diagnostic Test] Write-Read Test Passed!
[QSPI Flash Diagnostic Test] SFDP Information :
================================================
SFDP
================================================
SFDP Major Revision : 0x1
SFDP Minor Revision : 0x6
Number of Parameter Headers in this Table : 2
Types of Additional Parameter Tables in this flash
---------------------------------------------------
4 BYTE ADDRESSING MODE INSTRUCTIONS TABLE
JSON Data for the flash :
{
"flashSize": 16777216,
"flashPageSize": 256,
"flashManfId": "0x20",
"flashDeviceId": "0xBB18",
"flashBlockSize": 65536,
"flashSectorSize": 4096,
"cmdBlockErase3B": "0xD8",
"cmdBlockErase4B": "0xFF",
"cmdSectorErase3B": "0x20",
"cmdSectorErase4B": "0xFF",
"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": {
"isDtr": false,
"cmdRd": "0x3B",
"cmdWr": "0x02",
"modeClksCmd": 0,
"modeClksRd": 1,
"dummyClksCmd": 0,
"dummyClksRd": 7,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": null,
"protoCfg": null,
"strDtrCfg": null
},
"p114": {
"isDtr": false,
"cmdRd": "0x6B",
"cmdWr": "0x02",
"modeClksCmd": 0,
"modeClksRd": 1,
"dummyClksCmd": 0,
"dummyClksRd": 7,
"enableType": "0",
"enableSeq": "0x00",
"dummyCfg": null,
"protoCfg": null,
"strDtrCfg": null
},
"p118": {
"isDtr": false,
"cmdRd": "0x7C",
"cmdWr": "0x84",
"modeClksCmd": 0,
"modeClksRd": 0,
"dummyClksCmd": 0,
"dummyClksRd": 0,
"enableType": "255",
"enableSeq": "0x00",
"dummyCfg": null,
"protoCfg": null,
"strDtrCfg": null
},
"p444s": {
"isDtr": false,
"cmdRd": "0xEB",
"cmdWr": "0x02",
"modeClksCmd": 0,
"modeClksRd": 1,
"dummyClksCmd": 0,
"dummyClksRd": 9,
"enableType": "0",
"enableSeq": "0x14",
"dummyCfg": {
"isAddrReg": false,
"cmdRegRd":"0x00",
"cmdRegWr":"0x00",
"cfgReg":"0x00000000",
"shift":0,
"mask":"0x00",
"bitP":0
},
"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
}
},
"p444d": {
"isDtr": false,
"cmdRd": "0xEB",
"cmdWr": "0x02",
"modeClksCmd": 0,
"modeClksRd": 1,
"dummyClksCmd": 0,
"dummyClksRd": 9,
"enableType": "0",
"enableSeq": "0x14",
"dummyCfg": {
"isAddrReg": false,
"cmdRegRd":"0x00",
"cmdRegWr":"0x00",
"cfgReg":"0x00000000",
"shift":0,
"mask":"0x00",
"bitP":0
},
"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
}
},
"p888s": null,
"p888d": null,
"pCustom": {
"fxn": null
}
},
"addrByteSupport": "0",
"fourByteAddrEnSeq": "0x00",
"cmdExtType": "NONE",
"resetType": "0x3D",
"deviceBusyType": "0",
"cmdWren": "0x06",
"cmdRdsr": "0x05",
"srWip": 0,
"srWel": 0,
"cmdChipErase": "0xC7",
"rdIdSettings": {
"cmd": "0x9F",
"numBytes": 5,
"dummy4": 0,
"dummy8": 0
},
"xspiWipRdCmd": "0x00",
"xspiWipReg": "0x00000000",
"xspiWipBit": 0,
"flashDeviceBusyTimeout": 40000000,
"flashPageProgTimeout": 120
}
All tests have passed!!
I have imported this into sysconfig, trying both in the uart uniflash, and the ospi_flash_io projects, in the ospi_flash_io, there is a memory read mismatch, and in the uniflash, the flash open fails. I have put the protocol into 1-1-4 as required in the datasheet for qspi flash, and put the following configuration in the sysconfig:



( I have tried without and with the TI quirks function)
I have only the first 4 ospi data lines enabled. What do I need to do to use the qpsi_nor_flash files, as it still seems to be using the driver for ospi? What am I doing wrong? Can you give me any direction/help please?







