iMX1050 problems with programming flash

cancel
Showing results for 
Search instead for 
Did you mean: 

iMX1050 problems with programming flash

397 Views
l_volkmann
Contributor III

Hi,
our target application shall have the following functionality:

  • booting from Flash
  • running from RAM
  • updating itself via USB

The first two points are working so far with the eval board.
When trying to programming the flash I run into trouble.
As a first step I've tried the code sequence from flexspi_hyper_flash_polling_transfer.c.
It run until  function flexspi_nor_write_enable.
This returns with kFLEXSPI_IpCommandSequenceErrorFlag error in FLEXSPI_TransferBlocking(FLEXSPI_CheckAndClearError).
Can anyone spot me what I do wrong ?

Labels (1)
5 Replies

184 Views
jeremyzhou
NXP TechSupport
NXP TechSupport

Hi  Lutz Volkmann,

Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
I was wondering if you can introduce more detail information about your testing flow, such as the code and board, etc, as it can help me to figure this 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

184 Views
l_volkmann
Contributor III

Hi Jeremy,

thanks for your quick response.
I'm using the the iMX 1050 EVKB board configured with the original SPANSION Hyperflash.
Due to some special features we need in our final target  I'm not using the build preces in MCUEspresso but our own one.
It builds the application as flashable target, where all functions are defined as RAM functions and the startup code maves all necessary parts to RAM. Startup code execution is done via XIP from Hyperflash. the main function is the same as in the flexspi_hyper_flash_polling_transfer.c example. I guess that I've somehow to leave the XIP mode.

Hope this is what you need.

It is the first time I'm dealing with FlexSPI, so the whole LUT stuff looks very strange to me. Particullarly if I compare the custom LUT in the mentioned example with the command definitions in the memory device specification I do not see equivalence.

Best Regards
Lutz

0 Kudos

184 Views
jeremyzhou
NXP TechSupport
NXP TechSupport

HiLutz Volkmann,

Thanks for your reply and introduction.
Firstly, the i.MX RT1050 doesn't support to read/writer operation about the Hyperflash while running the code in the Hyperflash simultaneously, so it's necessary to make the i.MX RT1050 boot from Hyperflash to SDRAM or SRAM prior to doing the read/write operation.
The thread: Generating a Bootable Image for the RT1050  demonstrates the flow of generating a bootable Image for the RT1050.
Regarding LUT table, I'd like to recommend you'd better review the 26.7.7 Look Up Table to get an overview

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

184 Views
l_volkmann
Contributor III

Hi Jeremy,
after getting more famiilar with FLEXSPI I've got our flash driver working on our final target platform.
For that reason I stopped working with trials on the eval board.
After checking my adapted source code, I guess that my mistake was using absolute addresses instead of relative ones.
Thanks for your time and support.

Lutz

184 Views
felix1
Contributor III

Maybe the typos, it should be 26.5.7 Look Up Table 

0 Kudos