---------- Forwarded message ---------
From: <rh100605@aol.com>
Date: Thu, 11 Aug 2022, 2:56 pm
Subject: Re: [flashrom] Setting page size in AT45db081d spi flash
To: shreeyash335@gmail.com <shreeyash335@gmail.com>


Shreeyash,
Just for your information, the chinese flash programmers have specific device types for each page size such  as AT45DB081E-264 or AT45DB081E-256 and presumably what ever the setting for page size it overwrites if necessary.

Beware the AT45DB081D version is one time programmable for page size so that, I believe, the existing code is acting correctly as only the change from 264( default shipped state) to 256 bytes is allowed and only once. The E version allows the change up to 10,000 times!
See chapter 13 of the D specification.

I think we need a specific new flashrom device type for the AT45DB081E-264/256 family unless you have a better idea
Regards
Rob




-----Original Message-----
From: Shreeyash Pandey <shreeyash335@gmail.com>
To: rh100605@aol.com
Sent: Tue, 9 Aug 2022 10:40
Subject: Re: [flashrom] Setting page size in AT45db081d spi flash

>What I was looking for was maybe a flag that defined the page size required
>and altered it if necessary.

This would be great. I suspect other AT45* chips may have this feature as well,
they'd benefit from a universal scheme.

Are you able to read the status register without any mods?. The man page makes
it clear that ch341 doesn't support any parameters. Something like `flashrom -p
ch341:read_status` is what we need. Moreover, What output does
--wp-status produce?

>I am not a contributor to Flashrom but any mod I make I would like to share
>with others.  I believe it would be better if a maintainer came up with a
>scheme that fitted all spi flash that you support with different page sizes.

Totally. I'd be up to volunteer help if needed.

Regards
Shreeyash


On Mon, Aug 8, 2022 at 3:53 PM <rh100605@aol.com> wrote:
Shreeyash,
Thank you for such a prompt reply. I can see what you have done in the code you supplied.
The rest of the code  is very aware of page size on read/write/erase, so needs to read the status register to work correctly

The programmer I am using is the CH341A modified to work at 3.3v

As I see it I would have to have 3 builds of Flashrom 
1. Set 256 page size
2. Set 264 page size
3. as before modification to perform write and reads

What I was looking for was either a CLI flag that allowed me to issue a one time command. Dangerous I know !
Or  maybe a flag that defined the page size required and altered it if necessary.

I am not a contributor to Flashrom but any mod I make I would like to share with others. 
I believe it would be better if a maintainer came up with a scheme that fitted all spi flash that you support with different page sizes.
Regards
Rob



-----Original Message-----
From: tunabomber <shreeyash335@gmail.com>
To: rh100605@aol.com
Sent: Mon, 8 Aug 2022 15:31
Subject: Re: [flashrom] Setting page size in AT45db081d spi flash

Hey Rob,

I don't see that flashrom has an option to re-configure the chip's page size,
nor did I find a way to send a command directly to the chip.

However, I am thinking of a hack you could use here.

File at45db.c implements the operations of your chip. We could modify one of the
functions here that we shall use to send our four bytes of data. The very first function
`at45db_read_status_register` is simple enough and should get the job done.
Replacing 'AT45DB_STATUS' with '0x3d, 0x2a, 0x80, 0xa7' will send these bytes to
the chip when we ask flashrom to read the status register for us.

I've attached the modified file with this email. Diff it, if you may to see the
difference. Re-compile flashrom by following build instructions in the
README. Now read the status registers, this should send our string to the chip,
re-configuring it.

Reading status registers, I believe depends on the programmer? (Which one are
you using?). There's very little on this in the man page except for the section
on SPI Status Register for the dummy programmer. See if that is of any help.

Alternatively, you could modify some other function in a similar manner.

If you are not so sure about this, maybe wait for the more experienced folks
around here to see your message. I am only getting started with hardware
hacking.


Regards
Shreeyash

On Sun, Aug 7, 2022 at 6:14 PM Rob via flashrom <flashrom@flashrom.org> wrote:
I have used Flashrom to backup a memory image in a radio using the AT45DB081E spi flash memory. The read operation worked well using the Flashrom device set as AT45DB081D

I bought some more used AT45DB081E chips to write the saved image and Flashrom objected by stating that the image was too big by 32767 bytes

I edited image by removing the last 32767 bytes and Flashrom wrote the used chips and verified successfully using the device setting AT45DB081D

While reading the datasheet I noticed that the AT45DB081D/E has two page sizes 256 and 264 bytes which explains the 32767 bytes difference in image sizes
It seems FlashROM is aware of the page size setting!

However I cannot see how read the status register to see the page size set or how to change it  using the 0x3D 0x2A 0x80  0xA6 / A7 command as described in Chapter 11 of the AT45DB081E datasheet

To summarise I want to change the page size of an AT45DB081E back to 264 to repair the radio and cannot see how to use Flashrom to do it

Regards
Rob


_______________________________________________
flashrom mailing list -- flashrom@flashrom.org
To unsubscribe send an email to flashrom-leave@flashrom.org