Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

Nor Flash

tczpkami
Level 1
10 sign-ins 5 sign-ins First reply posted
Level 1

What is the procedure of restoring the memory to the factory state when SPI Status Register 1 = 0x41
This can be done through the SafeBoot recovery option.
I want to set the default value of SR / CR

Attached is part of the report from Infineon.
I would like to use the JTAG interface to fix this problem.

//

#DEFINE ERASE WD=0x06 CE_HI WD=0xDC ADDR_CYCLE4=SA ADDR_CYCLE3=SA ADDR_CYCLE2=SA ADDR_CYCLE1=SA CE_HI WD=0x05 read_status=0bX00XXXX0 CE_HI
#PROGRAM WD=0x06 CE_HI WD=0x12 ADDR_CYCLE4=PA ADDR_CYCLE3=PA ADDR_CYCLE2=PA ADDR_CYCLE1=PA PAGE_SIZE*WD=pd CE_HI WD=0x05 read_status=0bX00XXXX0 CE_HI
#DEFINE PROGRAM WD=0x06 CE_HI WD=0x12 ADDR_CYCLE4=PA ADDR_CYCLE3=PA ADDR_CYCLE2=PA ADDR_CYCLE1=PA WD=pd CE_HI WD=0x05 read_status=0bX00XXXX0 CE_HI
#DEFINE UNLOCK WD=0x06 CE_HI WD=0x01 WD=0x00 CE_HI WD=0x05 read_status=0b00000000 CE_HI
#DEFINE LOCK WD=0x06 CE_HI WD=0x01 WD=0x1C CE_HI WD=0x05 read_status=0b00011100 CE_HI
#READ_PAGE WD=0x13 ADDR_CYCLE4=PA ADDR_CYCLE3=PA ADDR_CYCLE2=PA ADDR_CYCLE1=PA PAGE_SIZE*RD=pd CE_HI
#DEFINE READ_ID WD=0x9F RD=MAN_ID RD=DEV_ID CE_HI
#MAN_ID=0x34
#DEV_ID=0x2A
#PROGRAM_TIME 340 750

kamyk
0 Likes
1 Solution
BushraH_91
Moderator
Moderator First comment on blog 500 replies posted 250 replies posted
Moderator

Hello,

Here is the suggested flow to recover from register corruption failure:

  1. Pre-requisitions:
  • Interface Protocol = Single SPI (1S-1S-1S)
  • Address Bytes = 4 Byte Address Mode Only
  • Frequency of Operation = Maximum
  • Register Read Latency = 2 Clock Cycles
  • Output Impedance = 45Ω
  1. SafeBoot recovery flow:
    1. Read Status Register 1, if SR1=0x61, it is flash initialization failure, hardware reset the board to fix the issue. If SR1=0x41, continue the following steps
    2. Clear Status Register (command 0x30)
    3. Write Enable (command 0x06)
    4. Write Any Register (command 0x71 + die1 register 4-byte address + desired register configuration value) (if multiple non-volatile registers need to be configured, repeat this step with respective register 4-byte address and desired registers values)
    5. Write Any Register (command 0x71 + die2 register 4-byte address + desired register configuration value) (if multiple non-volatile registers need to be configured, repeat this step with respective register 4-byte address and desired registers values)
    6. Change host controller interface to the same as register configurations.

Thank you

Regards,

Bushra

View solution in original post

0 Likes
3 Replies