Double erase in flash drivers

2025-04-05 Thread Javier Casas Marin
Hi, We are using the FTL driver over a MTD device (flash memory at45db641e). When we write something to flash, eventually the ftl_flush function is called and it does an erase (MTD_ERASE) and then the write (MTD_BWRITE). But in the at45db driver (at45db.c) the write uses command 0x82 ("Main Memory

Re: Double erase in flash drivers

2025-03-24 Thread Lwazi Dube
On Mon, 24 Mar 2025 at 04:50, Javier Casas Marin wrote: > In AT45DB161D chip, the Opcode 82H = Main Memory Page Program Through > Buffer *also performs a built-in erase.* > > From the datasheet, section 7.8: > "This operation is a combination of the Buffer Write and Buffer to Main > Memory Page P

Re: Double erase in flash drivers

2025-03-24 Thread Javier Casas Marin
In summary, I see two options: 1. If the built-in erase is not really necessary, instead of command 0x82 we can use commands 0x84 (Buffer 1 Write) followed by 0x88 (Buffer 1 to Main Memory Page Program without Built-In Erase), that seem to be common to all devices. 2. If there is any use case wher

Re: Double erase in flash drivers

2025-03-24 Thread Javier Casas Marin
In AT45DB161D chip, the Opcode 82H = Main Memory Page Program Through Buffer *also performs a built-in erase.* >From the datasheet, section 7.8: "This operation is a combination of the Buffer Write and Buffer to Main Memory Page Program with Built-in Erase operations." So the double erases are al

Re: Double erase in flash drivers

2025-03-22 Thread Dmitri Shilov
Hmm, I wonder if AT45DB161D does an undocumented erase, and the vendor added additional opcode for at45db641e but did not change the behavour of the old opcode (82H), just documented what actually happens? Regards, Dmitri Shilov. Original Message On 2025-03-21 1:25 p.m., Lwa

Re: Double erase in flash drivers

2025-03-21 Thread Lwazi Dube
On Fri, 21 Mar 2025 at 12:47, Javier Casas Marin wrote: > Hi, > We are using the FTL driver over a MTD device (flash memory at45db641e). > When we write something to flash, eventually the ftl_flush function is > called and it does an erase (MTD_ERASE) and then the write (MTD_BWRITE). > But in the