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.

AM2732: sysconfig can't support W25H512J flash config

Part Number: AM2732
Other Parts Discussed in Thread: SYSCONFIG,

Tool/software:

Hello team,

we are using sitara Am2732 for the project, I try to config from sysconfig 1.13.0 and 1.14.0, the MCU plus sdk use the version mcu_plus_sdk_am273x_08_03_00_18, but it seems that I can config flash with W25H512J,when I try to edit by manual, it will report as below:

   

Thank you

  • Hello,

    I don't see this behavior on my setup while using a freshly installed SDK version 8.3.0.18 and sysconfig 1.13. 

    In any case, the error that you see normally happens because there is no support for the device you are trying to select in the sdk and/or sysconfig does not contain the metadata of this device. We have a guide on how to add support for custom devices since the software packages normally just come with support for the flash devices that are in used in our EVMs. In this case, the W25H512J device is not part of our EVM so sysconfig and the SDK should not be able to recognize it. the above behavior is expected assuming that you didn't add device support yourself. What I don't understand is why the device shows up in the first place.

    I would suggest the following: 

    Both links above are the same guide for different versions of the SDK, but the process has changed since 2022, hence the updated guide. 

    If above doesn't work, then please confirm your version of CCS here.

    Best,

    Daniel

  • hello Daniel

    Thank you for replying, I did not add device before.

    The device shows up in the first place because I manually changed some configuration codes, and those codes originally needed to be configured by sysconfig. Anyway, I followed your connection guide to add the device first.

    best regards

    Alisa

  • Hello Alisa,

    thanks for confirming, let me know if following the guide fixes the problem

    Best,

    Daniel

  • Hi Daniel,

    I follow the steps you provided, and met this error in "

    Step 4: Test the new flash driver with the changes using QSPI Flash transfer example

    "

    The error is 

    Building target: "qspi_flash_transfer_am273x-evm_r5fss0-0_freertos_ti-arm-clang.out"
    Invoking: Arm Linker
    "C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-armllvm_1.3.1.LTS/bin/tiarmclang.exe" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -DSOC_AM273X -D_DEBUG_=1 -gstrict-dwarf -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"qspi_flash_transfer.Debug.map" -Wl,-i"C:/ti/ti_am273x_sdk/mcu_plus_sdk_am273x/source/kernel/freertos/lib" -Wl,-i"C:/ti/ti_am273x_sdk/mcu_plus_sdk_am273x/source/drivers/lib" -Wl,-i"C:/ti/ti_am273x_sdk/mcu_plus_sdk_am273x/source/board/lib" -Wl,-i"C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-armllvm_1.3.1.LTS/lib" -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="qspi_flash_transfer_am273x-evm_r5fss0-0_freertos_ti-arm-clang_linkInfo.xml" -Wl,--ram_model -o "qspi_flash_transfer_am273x-evm_r5fss0-0_freertos_ti-arm-clang.out" "./syscfg/ti_dpl_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_drivers_open_close.o" "./syscfg/ti_pinmux_config.o" "./syscfg/ti_power_clock_config.o" "./syscfg/ti_board_config.o" "./syscfg/ti_board_open_close.o" "./syscfg/ti_enet_config.o" "./syscfg/ti_enet_open_close.o" "./main.o" "./qspi_flash_transfer.o" "../linker.cmd" -Wl,-lfreertos.am273x.r5f.ti-arm-clang.debug.lib -Wl,-ldrivers.am273x.r5f.ti-arm-clang.debug.lib -Wl,-lboard.am273x.r5f.ti-arm-clang.debug.lib -Wl,-llibc.a
    makefile:154: recipe for target 'qspi_flash_transfer_am273x-evm_r5fss0-0_freertos_ti-arm-clang.out' failed

    undefined first referenced
    symbol in file
    --------- ----------------
    gFlashNorQspiAttrs_W25H512JV ./syscfg/ti_board_open_close.o
    gFlashNorQspiDeviceDefines_W25H512JV ./syscfg/ti_board_open_close.o

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "qspi_flash_transfer_am273x-evm_r5fss0-0_freertos_ti-arm-clang.out" not built
    tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation)
    gmake[1]: *** [qspi_flash_transfer_am273x-evm_r5fss0-0_freertos_ti-arm-clang.out] Error 1
    gmake: *** [all] Error 2
    makefile:150: recipe for target 'all' failed

    Do you know why? I've follow all the steps to add a new flash drver files

  • Hi Daniel,

    I found there are no gFlashNorQspiAttrs_W25H512JV and  gFlashNorQspiDeviceDefines_W25H512JV symbol in board.am273x.r5f.ti-arm-clang.debug.lib 

    It needs to rebuild board.am273x.r5f.ti-arm-clang.debug.lib probably. Could you please tell me how to rebuild board.am273x.r5f.ti-arm-clang.debug.lib?

    Here is the symbol list of board.am273x.r5f.ti-arm-clang.debug.lib

    C:\ti\ti_am273x_sdk\mcu_plus_sdk_am273x\source\board\lib>nm board.am273x.r5f.ti-arm-clang.debug.lib

    eeprom.obj:
    00000000 t $t.0
    00000000 t $t.1
    00000000 t $t.2
    00000000 t $t.3
    00000000 t $t.4
    00000000 t $t.5
    00000001 T EEPROM_Params_init
    00000001 T EEPROM_close
    00000001 T EEPROM_getAttrs
    00000001 T EEPROM_open
    00000001 T EEPROM_read
    00000001 T EEPROM_write
    U gEepromConfig
    U gEepromConfigNum

    eeprom_cav24c.obj:
    00000000 t $t.0
    00000000 t $t.1
    00000000 t $t.2
    00000000 t $t.3
    U ClockP_usleep
    00000001 T EEPROM_CAV24C_close
    00000001 T EEPROM_CAV24C_open
    00000001 T EEPROM_CAV24C_read
    00000001 T EEPROM_CAV24C_write
    U I2C_Transaction_init
    U I2C_getHandle
    U I2C_transfer
    U SemaphoreP_constructMutex
    U SemaphoreP_destruct
    U SemaphoreP_pend
    U SemaphoreP_post
    U __aeabi_memcpy
    00000000 D gEepromAttrs_CAV24C
    00000000 D gEepromFxns_CAV24C

    led.obj:
    00000000 t $t.0
    00000000 t $t.1
    00000000 t $t.2
    00000000 t $t.3
    00000000 t $t.4
    00000000 t $t.5
    00000000 t $t.6
    00000001 T LED_Params_init
    00000001 T LED_close
    00000001 T LED_getAttrs
    00000001 T LED_off
    00000001 T LED_on
    00000001 T LED_open
    00000001 T LED_setMask
    U gLedConfig
    U gLedConfigNum

    led_gpio.obj:
    00000000 t $t.0
    00000000 t $t.1
    00000000 t $t.2
    00000000 t $t.3
    U AddrTranslateP_getLocalAddr
    U GPIO_pinWriteHigh
    U GPIO_pinWriteLow
    U GPIO_setDirMode
    00000001 T LED_gpioClose
    00000001 T LED_gpioOff
    00000001 T LED_gpioOn
    00000001 T LED_gpioOpen
    00000000 D gLedAttrs_GPIO
    00000000 D gLedFxns_GPIO

    flash.obj:
    00000000 t $t.0
    00000000 t $t.1
    00000000 t $t.2
    00000000 t $t.3
    00000000 t $t.4
    00000000 t $t.5
    00000000 t $t.6
    00000000 t $t.7
    00000000 t $t.8
    00000000 t $t.9
    00000001 T Flash_blkPageToOffset
    00000001 T Flash_close
    00000001 T Flash_eraseBlk
    00000001 T Flash_getAttrs
    00000001 T Flash_getHandle
    00000001 T Flash_getPhyTuningOffset
    00000001 T Flash_offsetToBlkPage
    00000001 T Flash_open
    00000001 T Flash_read
    00000001 T Flash_write
    U gFlashConfig
    U gFlashConfigNum

    flash_nor_qspi_device_GD25B64C.obj:
    00000000 D gFlashNorQspiAttrs_GD25B64C
    00000000 D gFlashNorQspiDeviceDefines_GD25B64C

    flash_nor_qspi_device_W25Q128J.obj:
    00000000 D gFlashNorQspiAttrs_W25Q128J
    00000000 D gFlashNorQspiDeviceDefines_W25Q128J

    flash_nor_qspi_device_IS25LP256E.obj:
    00000000 D gFlashNorQspiAttrs_IS25LP256E
    00000000 D gFlashNorQspiDeviceDefines_IS25LP256E

    flash_nor_qspi.obj:
    00000000 t $t.0
    00000000 t $t.1
    00000000 t $t.10
    00000000 t $t.2
    00000000 t $t.3
    00000000 t $t.4
    00000000 t $t.5
    00000000 t $t.6
    00000000 t $t.7
    00000000 t $t.8
    00000000 t $t.9
    00000001 t Flash_norQspiClose
    00000001 T Flash_norQspiCmdRead
    00000001 T Flash_norQspiCmdWrite
    00000001 t Flash_norQspiErase
    00000001 t Flash_norQspiOpen
    00000001 T Flash_norQspiQuadReadEnable
    00000001 t Flash_norQspiRead
    00000001 t Flash_norQspiReadId
    00000001 T Flash_norQspiWaitReady
    00000001 t Flash_norQspiWrite
    00000001 T Flash_norQspiWriteEnableLatched
    U QSPI_getHandle
    U QSPI_readCmd
    U QSPI_readCmdParams_init
    U QSPI_readMemMapMode
    U QSPI_setAddressByteCount
    U QSPI_setDummyBitCount
    U QSPI_setReadCmd
    U QSPI_setWriteCmd
    U QSPI_transaction_init
    U QSPI_writeCmd
    U QSPI_writeCmdParams_init
    U QSPI_writeConfigMode
    00000000 D gFlashNorQspiFxns

    nor_spi_sfdp.obj:
    0000019c t $d.3
    00000000 t $t.0
    00000000 t $t.1
    00000000 t $t.10
    00000000 t $t.2
    000001a0 t $t.4
    00000000 t $t.5
    00000000 t $t.6
    00000000 t $t.7
    00000000 t $t.8
    00000000 t $t.9
    00000001 t NorSpi_Sfdp_getDummyBitPattern
    00000001 t NorSpi_Sfdp_getEraseSizes
    00000001 T NorSpi_Sfdp_getParameterTableName
    00000001 T NorSpi_Sfdp_getPtp
    00000001 T NorSpi_Sfdp_parse4bait
    00000001 T NorSpi_Sfdp_parseBfpt
    00000001 T NorSpi_Sfdp_parseSccr
    00000001 T NorSpi_Sfdp_parseSmpt
    00000001 T NorSpi_Sfdp_parseXpt1
    00000000 D gNorSpi_Sfdp_ParamTableIds
    00000000 D gNorSpi_Sfdp_ParamTableNames

  • Hi Alisa,

    to rebuild the libraries, first clean and then rebuild with the following functions

    to clean:

    gmake -s -j4 -f makefile.am273x libs-clean PROFILE=release 

    to build:

    $ gmake -s -j4 -f makefile.am273x libs PROFILE=release 

    Best,

    Daniel

  • Hi Daniel,

    It works well after following your commands, thank you so much~

  • Hi Amy, 

    Glad it works! if you have more questions feel free to open a new thread

    Best,

    Daniel