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

Nor Flash Forum Discussions

user_4822351
Level 1
Level 1

Hello,

i have a design where I am using a S29GL01GS memory. I have tried to program the NOR memory with two different methods:

1. Using a programmer

2. Through a microprocessor using hard coded via JTAG

With both methods I found an issue.

1)

The programmer does not give me much information about the issue but it erase succesfully, seems to write successfully too, but during the verification of the write action, an error occurs. The log is the following after loading the file to be programmed and try to program it after an erase:

013:  File has been loaded, checksum: 16bits_0x3E91 £¬32bits_0x1B243E91 :

014:  Chip pins contact is detected OK.

015:  Chip ID verification OK.

016:  Start writing chip......

017:  Auto erasing...

018:  Erase successful£¬Elapsed time£º267.9 seconds¡£

019:  Start writing...

020:  Write successful£¬Elapsed time£º62.29 seconds¡£

021:  Auto verifying...

022:  Chip verification error, start position: 0x37506E.

023:  Verification failure£¬Elapsed time£º0.549 seconds¡£

024:  Write error, operation terminated.

2)

When programming through the microprocessor, it seems to happen something similar, it is like the erase action is succesful, but when writing, it fails. The log is:

cmdwin::fl::device -d "S29GL01GP" -o "128Mx8x1" -a 0xe8000000 0xefffffff

cmdwin::fl::erase all

Beginning Operation ...   

-------------------------

Performing target initialization ...   

Downloading Flash Device Driver ...  

Reading flash ID ...

Erasing entire flash ...   

Erasing ...

Erase Command Succeeded   

cmdwin::fl::image -f "/home/*****" -t "Auto Detect" -re on -r 0xe8000000 0xe801ffff -oe on -o 0xe8000000

cmdwin::fl::write

Beginning Operation ...   

-------------------------

Using restricted address range 0xE8000000 to 0xE801FFFF  

Programming file /home/******.bin  

Auto-detection is successful.  

  File is of type Binary/Raw Format.  

Downloading Flash Device Driver ...  

Reading flash ID ...

Auto-detection is successful.  

  File is of type Binary/Raw Format.  

Downloading 0x00010000 bytes to be programmed at 0xE8000000  

Downloading 0x00010000 bytes to be programmed at 0xE8010000  

Executing program ....  

Error:  Program failed.   Flash driver reports the following error(s):  Chip reported error during program. Please check that the sector you are programming is erased.

any idea of what the issue could be? It can be checked that the sector is erased:

Downloading Flash Device Driver ...  

Reading flash ID ...

Erasing Sector 0xE8000000 to 0xE801FFFF  

Erasing Sector 0xE8020000 to 0xE803FFFF  

Erasing Sector 0xE8040000 to 0xE805FFFF  

Erasing Sector 0xE8060000 to 0xE807FFFF  

Erasing Sector 0xE8080000 to 0xE809FFFF  

Erasing Sector 0xE80A0000 to 0xE80BFFFF  

Erasing Sector 0xE80C0000 to 0xE80DFFFF  

Erasing Sector 0xE80E0000 to 0xE80FFFFF  

Erasing Sector 0xE8100000 to 0xE811FFFF

....

Thank you in advance

0 Likes
6 Replies
BushraH_91
Moderator
Moderator
Moderator
250 solutions authored First comment on blog 500 replies posted

Hello Paula,

Thank you for contacting Cypress Community Forum, an Infineon Technologies Company. Are you using S29GL01GS or S29GL01GP?

Regards,

Bushra

0 Likes

I am using S29GL01GS but the microprocessor TAP only have the option to select S29GL01GP, but I thought that both memories distributions are equals. Is that assumption wrong?

Anyways in the first programming method we define the exacly Part number and still having issues.

Thank you

0 Likes
BushraH_91
Moderator
Moderator
Moderator
250 solutions authored First comment on blog 500 replies posted

Hello Paula,

Please send comparison between programmed data and read data, to understand how verify was failed.

Thank you

Regards,

Bushra.

0 Likes

I can not read data neither, I also get an error while verifying.

Sorry but I can not share that info.

Anyways, we could check with the programmer that the file read was 129MB while the memory size is 128 and the data written too.

When programming using the microprocessor it seems that we can do something else, but with a new error:

Erasing Sector 0xEFFA0000 to 0xEFFBFFFF

Erasing Sector 0xEFFC0000 to 0xEFFDFFFF

Erasing Sector 0xEFFE0000 to 0xEFFFFFFF

  log: Clearing the status

  log: Setting up Registers

  log: Commanding target to run

Erasing ... log: Reading erase return status

Error: Erase failed. Flash driver reports the following error(s): Sector Protection Error log: Timestamp: Thu Nov 19 16:19:34 2020 Error: Erase failed. Flash driver reports the following error(s): Sector Protection Error

Can we disable that protection?

0 Likes

Hello Paula,

Please refer to application note: “Migration from GL-N and GL-P to GL-S Flash”: https://www.cypress.com/file/199261/download

Review the migration application to see all the differences and check that all the specs are correctly used.

A potential issue could be related to the bus width configuration where the x8 configuration is supported by the S29GL01GP but not supported by the S29GL01GS.

Some other points;

  • The CFI version which is different on these two devices.
  • The unlock bypass command is not supported by the S29GL01GS.

If all of the above do not help then we definitely need to look at the LA traces/captures to identify what’s going wrong. We also need more details about the error description, polling data when error happens (It must polling data since status register is not supported by the GL-P).

Thank you

Regards,

Bushra

0 Likes

Hello Paula,

Is your issue resolved? If not then please send us the LA traces/captures to identify what is going wrong.

Thank you

Regards,

Bushra

0 Likes