S29GL064S70TFI070 - DEV_PROGRAM_ERROR

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

cross mob
MaHa_4528156
Level 1
Level 1

I am using the low levell driver from the downloads page to try and program the S29GL064S70TFI070 device.

I am finding that some calls to "lld_WriteBufferProgramOp" return with error status "DEV_PROGRAM_ERROR".

Why does this happen and how can I recover from it?

0 Likes
1 Solution

Hello Mark,

Everything should be taken care in the code. For interleaving 32-bit, as far as LLD_CONFIGURATION_X8X16_AS_X32  macro in the lld_target_specific.h is enabled, LLD_BUFFER_SIZE macro does not need to be changed.

LLD_BUFFER_SIZE macro should be 128 for GL064S, not 256

Thank you

Regards,

Bushra

View solution in original post

0 Likes
5 Replies
BushraH_91
Moderator
Moderator
Moderator
750 replies posted 50 likes received 250 solutions authored

Hello Mark,

Programming to the suspended sector, will cause program failure.

Can you please answer these questions?

  1. Did you have erase suspend operations?
  2. Log “status_reg” value when seeing the DEV_PROGRAM_ERROR, send us the status_reg value for analysis
  3. As you mentioned “some calls to "lld_WriteBufferProgramOp" return with error status” – we assume some calls are success. Can you provide more detail of the failed “some calls”? e.g., only failed at specific locations? Or only failed after other specific operations?

Thank you

Regards,

Bushra

0 Likes

Hello Mark,

As per your request I am unlocking the thread.

Thank you

Regards,

Bushra

0 Likes

Great, thanks Bushra.

I have been able to get past the the DEV_PROGRAM_ERROR by modifying the lld_memcpy function in the lld_S29GL064S.c file by reducing the LLD_BUFFER_SIZE macro for this function from 256 to 128 (which seems to make sense as the write buffer is 256 bytes and we have a 2 devices configured as a single 32 but device - I have enabled the  LLD_CONFIGURATION_X8X16_AS_X32  macro in the lld_target_specific.h file.

Also, we would like our software to be able to support both S29GL064S and S29GLxxxN devices but the drivers for each contain the same functions names so clash when compiled together. I could modify the driver to avoid this, but just wondered if you had any advice on how best to support both drivers?

0 Likes

Sorry, meant to ask above - you know why the 128 write buffer macro would work but the 256 does not?

As a 32 bit device the word size is 32 bits rather than 16 - would this explain it?

0 Likes

Hello Mark,

Everything should be taken care in the code. For interleaving 32-bit, as far as LLD_CONFIGURATION_X8X16_AS_X32  macro in the lld_target_specific.h is enabled, LLD_BUFFER_SIZE macro does not need to be changed.

LLD_BUFFER_SIZE macro should be 128 for GL064S, not 256

Thank you

Regards,

Bushra

0 Likes