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.

MCU-PLUS-SDK-AM243X: Sysconfig - Flash/OSPI: QSPI Option missing in SDK 08.04

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: SYSCONFIG

Dear Community,

after switching to the SDK Release 08.04.00.17 we are facing the issue, that the option for selecting the "Number of Data Lines" is no longer available.

In the SDK 08.03.00.18 this option was available (see attached screenshot. 

SDK 08.03.00.18, Sysconfig 1.12.1:

 

SDK 08.04.00.17, Sysconfig 1.13.0: --> The option is missing, there are eight datalines predefined.

When I open the example for the launchpad, there are only four data lines (--> QSPI), when I open an EVM example, there are eight data lines (--> OSPI). 
How can we change this option? 

As we are using QSPI on our custom board this selection is mandatory for us.

We are also required to switch to the SDK 08.04.00.17 because of the HS FS feature of the new chip revision (Rev. B).

Thanks in advance for you support.

Best Regards

Robin

  • Hi

    The newer sysconfig has been tweaked a little to make custom flash driver integration easier to the customers, so as a part of it the default mode is present as the OSPI (as this is the flash present on our EVM), however I'd like to know few things before I suggest the correct options to configure

    1. What is the part number of the QSPI flash you're using? 

    2. What is the protocol used with that QSPI? is it 1S-1S-4S? 

    3. Also, if the flash supports the SFDP, then there's a OSPI_flash_diagnostic example present in the SDK under the  path  C:\ti\mcu_plus_sdk_am243x_08_04_00_17\examples\drivers\ospi\ospi_flash_diag 

    once this example is run, it prints the content of the SFDP table in JSON format, then copy this and save it as a JSON file, then in the sysconfig go to the FLASH peripheral and you can load this JSON file which parses and shows all the details about the flash device. You can then program these values to the OSPI module by selecting the appropriate protocol such as 1S-1S-4S etc.,

    Let me know if you need any further queries.

    Thanks

  • Hi Kowshik,

    we use a ISSI QSPI (IS25LP256E) - Industry standard flash chip.

    Since we adapted the driver completely for the sdk 08.03 we are aware of all examples and yes the flash supports SFDP (.json file see attached).

    Now if I try to load this .json into the sysconfig (1.13 or 1.14 on windows) - sysconfig crashes (same when I try to load TI provided .json, e.g. mcu_plus_sdk_am243x_08_04_00_17\source\board\.meta\flash\S25FL128SA.json:

    What to do here?

    Our main issue: How to setup the .sysconfig file so that the qspi driver (mcu_plus_sdk_am243x_08_04_00_17\source\board\flash\qspi instead of OSPI) is invoked:

    ti_drivers_config.h:

    How can I setup the .sysconfig file that the qspi driver is invoked?

    Best regards,

    Tommy

  • Sry, here the missing .json file

    IS25LP256E_Flash_log.txt
    [MAIN_Cortex_R5_0_0] [OSPI Flash Diagnostic Test] Starting ...
    [OSPI Flash Diagnostic Test] Flash Manufacturer ID : 0x9D
    [OSPI Flash Diagnostic Test] Flash Device ID       : 0x6019
    [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": 33554432,
    	"flashPageSize": 256,
    	"flashManfId": "0x9D",
    	"flashDeviceId": "0x6019",
    	"flashBlockSize": 65536,
    	"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": {
    			"isDtr": false,
    			"cmdRd": "0x3C",
    			"cmdWr": "0x02",
    			"modeClksCmd": 0,
    			"modeClksRd": 0,
    			"dummyClksCmd": 0,
    			"dummyClksRd": 8,
    			"enableType": "0",
    			"enableSeq": "0x00",
    			"dummyCfg": null,
    			"protoCfg": null,
    			"strDtrCfg": null
    		},
    		"p114": {
    			"isDtr": false,
    			"cmdRd": "0x6C",
    			"cmdWr": "0x34",
    			"modeClksCmd": 0,
    			"modeClksRd": 0,
    			"dummyClksCmd": 0,
    			"dummyClksRd": 8,
    			"enableType": "2",
    			"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": 2,
    			"dummyClksCmd": 0,
    			"dummyClksRd": 4,
    			"enableType": "2",
    			"enableSeq": "0x04",
    			"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": 2,
    			"dummyClksCmd": 0,
    			"dummyClksRd": 4,
    			"enableType": "2",
    			"enableSeq": "0x04",
    			"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": "1",
    	"fourByteAddrEnSeq": "0xA9",
    	"cmdExtType": "NONE",
    	"resetType": "0x30",
    	"deviceBusyType": "1",
    	"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": 72000000,
    	"flashPageProgTimeout": 320
    }
    
    All tests have passed!!

  • Hi

    I have checked internally regarding the error, it was a bug in the sysconfig and I was able to re-produce this in multiple systems. We have filed a bug, here's the JIRA ID for reference https://jira.itg.ti.com/browse/MCUSDK-8383 

    I have got a workaround for this to work, please find the steps to get it working. The reason for this feature fail is due to wrong "copy" command in the flash_v0.syscfg.js file under the path C:\ti\mcu_plus_sdk_am243x_08_04_00_17\source\board\.meta\flash\v0 

    1. So to fix these we need to first add the correct copy command executable "cp.exe" under the path C:\ti\<CCS_Version>\ccs\utils\cygwin to the environment variable as shown below, (confirm this by typing cp in the command line without any arguments and it should through an error "cp missing file operand"

    2. Next step is to edit the flash_v0.syscfg.js file, in the line number 7 from "copy --> cp" as shown below

    Now, save everything and try loading the JSON file in the sysconfig again. let me know if you have any queries.

    Thanks

  • Hi Tommy,

    Just checking in on this thread, were you able to test the above changes and did they work? 

    Thanks

  • Hi Kowshik,

    yes the sysconfig crash issue is resolved.

    Since the new version of the flash driver handling is not intuitive to use we are going to write our own driver with custom board bypassing all the sysconfig magic.

    You can close this thread.

    Tommy

  • Hi Tommy,

    Thanks, you can click on "This Resolved my Thread" button on my previous comment to close this thread.

    Thanks