Not able to program and execute program from S25FL128 with MIMXRT1021CAG4A

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Not able to program and execute program from S25FL128 with MIMXRT1021CAG4A

Jump to solution
1,780 Views
jtro
Contributor III

I want to program S25FL128 to run my application but after programming it won't execute the program. After that I have verified the program in flash by J-FLASH utility and found that program is not written properly with Segger J-Link.

Next i have tried with PE Micro tool where I'm able to download program successfully but not able to execute the program here i assume this happen because of xip configuration which is present in fsl_flexspi_not_boot.c and flexspi_nor_config.c not match with S25FL128.

Please correct if I'm wrong.

Could you please share S25FL128 boot configuration file?

How to flash S25FL128 with Segger J-Link.

Labels (1)
0 Kudos
1 Solution
1,685 Views
jtro
Contributor III

polling_transfer demo not worked but i have used evkmimxrt1020_flash_component_nor and Link application to RAM and it worked.

Now application is executing.

Thanks for suggestion.

View solution in original post

0 Kudos
6 Replies
634 Views
Adam89
Contributor I

Hi,

it seems, we have the same or a very similar issue. We can't get our application to run from FLASH. It works only from RAM. I tried the flash-demo example, but this example is running only from RAM. Our MCU is also the MIMXRT1021CAG4A and the Flash is the IS25LP064A-JBLE-TR.

Many thanks for your help!

Adam

0 Kudos
1,685 Views
jtro
Contributor III

See below flash config

const flexspi_nor_config_t qspiflash_config = {
    .memConfig =
    {
        .tag              = FLEXSPI_CFG_BLK_TAG,
        .version          = FLEXSPI_CFG_BLK_VERSION,
        .readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
        .csHoldTime       = 3u,
        .csSetupTime      = 3u,
        // Enable DDR mode, Wordaddassable, Safe configuration, Differential clock
        .sflashPadType = kSerialFlash_4Pads,
        .serialClkFreq = kFlexSpiSerialClk_100MHz,
        .sflashA1Size  = 16u * 1024u * 1024u,
        .lookupTable =
        {
            // Read LUTs
            FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
            FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),

        }
    },
    .pageSize           = 256u,
    .sectorSize         = 4u * 1024u,
    .blockSize          = 64u * 1024u,
    .isUniformBlockSize = false,
};

Few trials i took

1) Change to 50MHz --> not worked

2) change dummy wait time --> not worked

FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x08, READ_SDR, FLEXSPI_4PAD, 0x04),

0 Kudos
1,685 Views
jeremyzhou
NXP Employee
NXP Employee

Hi ,

Thank you for your interest in NXP Semiconductor products and
for the opportunity to serve you.
After having a brief review of the datasheet of the S25FL128S, I don't find the error in the flexspi_nor_config_t struct. So I'd like to suggest you set the QUAD bit prior to program it, then give a try again.
In further, whether you can introduce the testing steps you did in detail, as it can help me to figure the issue out.

Have a great day,
TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
1,685 Views
jtro
Contributor III

"set the QUAD bit prior to program it"

Are you saying to set Quad bit externally via programmer?

If yes, then how it possible to do it in production with JTAG programming.

Is there any programming loader available to do??

Please tell me how to do?

0 Kudos
1,685 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,

Thanks for your reply.
1) Are you saying to set Quad bit externally via programmer?
-- In general, we'd like to suggest the developer run the polling_transfer demo which resides in the SDK library to set the QUAD bit.

Have a great day,
TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
1,686 Views
jtro
Contributor III

polling_transfer demo not worked but i have used evkmimxrt1020_flash_component_nor and Link application to RAM and it worked.

Now application is executing.

Thanks for suggestion.

0 Kudos