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?