I'm working on a small "cartridge"-like subsystem which attaches to the main device via a 20-pin connector.
On the cartridge, there is an ATmega16a microcontroller and an AT45DB081D flash. I needed to modify a couple of bytes in the flash (external to MCU), so I did the following:
- Used a SOIC-8 test clip to connect the flash chip to an SPI interface on a Raspberry Pi.
- Used flashrom to read the binary contents 3 separate times.
- Used sha512sum to ensure the binaries were identical - they were.
- Modified the binary and flashed it back to the device - it verified.
I then noticed that the host device identified the cartridge as invalid/faulty, so I reflashed the original binary.
The device still recognises the "cartridge" as faulty even after reflashing the original binary, so my question is:
Are there any mechanisms in this flash device which would allow the MCU to identify it as errant, even after reflashing the original binary as seen by flashrom?