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

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?

BR.

  • Hello Ethan,

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

    Regards,

    Jianzhong

  • 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
    BR.
  • 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?

    Regards,

    Jianzhong

  • 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

    BR.

  • Hi Ethan,

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

    Regards,

    Jianzhong

  • 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?

    BR.

  • 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.

    Regards,

    Jianzhong

  • 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>pdksetupenv.bat
    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:

    #define TEST_GPMC_FLASH_WRITE

    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.

    Regards,

    Jianzhong

  • Thank you, Jianzhong!