Feature #672
openAdd internal flash support for ATI SB200 / ASUS P4R8L
0%
Description
On an ASUS Pundit-R (P4R8L, AMI BIOS 1006.004), flashrom 1.8.0 detects
the SST49LF004B but reports "No chipset found". Reads work; writes fail
at erase verification and leave the chip unchanged.
Hardware: ATI SB200 LPC 1002:434c and SMBus 1002:4353, both with subsystem
1043:8108; SST49LF004B, 512 KiB FWH. Tested on OpenWrt x86/generic,
Linux 6.18.60 (i686).
The attached patches follow this board's BIOS flash-enable routines:
- Enable I/O port 0xc6f bit 6 for SB200.
- Set SMBus PCI register 0xa9 bit 4 for P4R8L, matched by PCI IDs and DMI.
Both register values are restored at shutdown. No public SB200 register
manual was available; the register operations were identified in the BIOS.
With both patches, full 512 KiB images were written in both directions:
new iPXE BIOS to the original backup, then back to the new iPXE BIOS.
Both runs used -p internal, with no force option or restricted layout.
The logs show actual erases/writes (19 and 18 sectors), followed by
VERIFIED. Separate full-chip readbacks match each image byte for byte.
Attachments: the two patches and logs.
OpenAI Codex assisted with diagnosis, code, remote tests and this draft.
Files
No data to display