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.

AM3359: RTOS parallel NOR boot

Part Number: AM3359
Other Parts Discussed in Thread: TEST

Hi experts

My customer has only parallel nor on the custom board, is it now supported on the RTOS SDK?

And is there a parallel nor flash debug example or method steps?


  • Hello Ethan,

    Please refer to this thread regarding parallel NOR boot for AM3359 RTOS.



  • Hello Jianzhong

    Thanks for your reply

    The EVM I use is AM3359 ICE, it  have parallel NOR flash on board

    The question I want to ask is whether we have a corresponding demo or how we should do to burn and write on the nor flash

    I just wanted to burn on nor flash, but I didn't have detailed steps
  • Hi Ethan,

    For AM3359 ICE, we have a well documented procedure for flashing the McSPI flash. Please refer here. But we don't have the flash writer for parallel NOR flash. Would the SPI flash work for you?



  • Hi Jianzhong

    Sorry, it not work for me, there's only parallel nor flash in my customer's board, and they want to know the way to burn and write on it


  • Hi Ethan,

    If parallel NOR flash is the only option, then all we have is what's mentioned in the thread I provided earlier.



  • Hi Jianzhong

    I found that it seems a parallel nor flash demo 'GPMC_Test_icev2AM335x_armTestProject' in PDK

    Could you please tell me if this is the way to burn on parallel nor?


  • Ethan,

    I did a quick test on this example and it failed. I would need some time to verify if this can be used to flash parallel nor.



  • Hi Jianzhong

    Thanks! And I found that the flash device ID in source code is wrong, it must be m29w160eb, but in this demo, it have been written in to mt29w160eb

  • Did you mean the following macro?

    #if defined (ICEV2_AM335X)
    #define BOARD_FLASH_ID         BOARD_FLASH_ID_MT29W160EB

    I think that is okay, because BOARD_FLASH_ID_MT29W160EB is defined in board\src\flash\include\board_flash.h:

    #define BOARD_FLASH_ID_MT29W160EB (0x2249U) /**< Micron 2MB NOR flash */

    And it matches the device id defined in board\src\flash\nor\device\m29w160eb.h:

    #define NOR_DEVICE_ID (0x2249U) /* Device ID */

    I figured out why the test failed. The default pinmux for AM335x ICE v2 in the PDK is not for parallel NOR flash. Below is what I did to make GPMC_Test_icev2AM335x_armTestProject work:

    1. Update pinumx file:

    • Load pdk_am335x_1_0_17\packages\ti\starterware\tools\pinmux_config\am335x\icev2_config.pinmux into PINMUX tool.
    • Add GPMC and choose "Non Multiplexed 16b NOR type - Asynchronous" as the Use Case.
    • Resolve all pin conflicts and save am335x_pinmux_data.c.

    2. Rebuild board library:

    • Update pdk_am335x_1_0_17\packages\ti\starterware\board\am335x\am335x_icev2_pinmux_data.c by replacing the definition of gGpmc0PinCfg[] by what's defined in am335x_pinmux_data.c which was saved in previous step.

    static pinmuxPerCfg_t gGpmc0PinCfg[] =
        // Replace the content with what's in the updated pinmux data file - am335x_pinmux_data.c

    • Make a copy of folder pdk_am335x_1_0_17\packages\ti\board\lib\icev2AM335x.
    • Rebuild board library:

    C:\ti\pdk_am335x_1_0_17\packages\ti\board>gmake LIMIT_SOCS=am335x LIMIT_BOARDS=icev2AM335x

    3. Add the following line to main_gpmc_flash_test.c of GPMC_Test_icev2AM335x_armTestProject:


    4. Rebuild the project and ran the test.

    Below is what I got after running the code.

    This validates the GPMC NOR flashing code works properly. So your customer can write their own flash writer based on this example.



  • Thank you, Jianzhong!