Greetings,
Here is a failure report against an Intel DX48BT2 motherboard which uses a ICH9R and a Winbond W25x16 containing the BIOS.
Command I executed was:
./flashrom -c W25x16 -rV out.bin
flashrom v0.9.1-r889 No coreboot table found. DMI string 0: " " DMI string 1: " " DMI string 2: " " DMI string 3: "Intel Corporation" DMI string 4: "DX48BT2" DMI string 5: "AAE26191-205" Found chipset "Intel ICH9R", enabling flash write... 0xfff80000/0xffb80000 FWH IDSEL: 0x0 0xfff00000/0xffb00000 FWH IDSEL: 0x0 0xffe80000/0xffa80000 FWH IDSEL: 0x1 0xffe00000/0xffa00000 FWH IDSEL: 0x1 0xffd80000/0xff980000 FWH IDSEL: 0x2 0xffd00000/0xff900000 FWH IDSEL: 0x2 0xffc80000/0xff880000 FWH IDSEL: 0x3 0xffc00000/0xff800000 FWH IDSEL: 0x3 0xff700000/0xff300000 FWH IDSEL: 0x4 0xff600000/0xff200000 FWH IDSEL: 0x5 0xff500000/0xff100000 FWH IDSEL: 0x6 0xff400000/0xff000000 FWH IDSEL: 0x7 0xfff80000/0xffb80000 FWH decode enabled 0xfff00000/0xffb00000 FWH decode enabled 0xffe80000/0xffa80000 FWH decode enabled 0xffe00000/0xffa00000 FWH decode enabled 0xffd80000/0xff980000 FWH decode enabled 0xffd00000/0xff900000 FWH decode enabled 0xffc80000/0xff880000 FWH decode enabled 0xffc00000/0xff800000 FWH decode enabled 0xff700000/0xff300000 FWH decode disabled 0xff600000/0xff200000 FWH decode disabled 0xff500000/0xff100000 FWH decode disabled 0xff400000/0xff000000 FWH decode disabled Maximum FWH chip size: 0x100000 bytes BIOS Lock Enable: enabled, BIOS Write Enable: disabled, BIOS_CNTL is 0xa tried to set 0xdc to 0xb on ICH9R failed (WARNING ONLY)
Root Complex Register Block address = 0xfed1c000 GCS = 0x171464: BIOS Interface Lock-Down: disabled, BOOT BIOS Straps: 0x1 (SPI) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3800 0x04: 0xe008 (HSFS) FLOCKDN 1, FDV 1, FDOPSS 1, SCIP 0, BERASE 1, AEL 0, FCERR 0, FDONE 0 0x50: 0x00001a1b (FRAP) BMWAG 0, BMRAG 0, BRWA 26, BRRA 27 0x54: 0x00000000 (FREG0) 0x58: 0x01ff003a (FREG1) 0x5C: 0x00390003 (FREG2) 0x60: 0x00020001 (FREG3) 0x64: 0x00000fff (FREG4) 0x74: 0x00000000 (PR0) 0x78: 0x00000000 (PR1) 0x7C: 0x00000000 (PR2) 0x80: 0x00000000 (PR3) 0x84: 0x00000000 (PR4) 0x90: 0x00420004 (SSFS, SSFC) 0x94: 0x0006 (PREOP) 0x96: 0x00f0 (OPTYPE) 0x98: 0x2002009f (OPMENU) 0x9C: 0x00000000 (OPMENU+4) 0xA0: 0x00000000 (BBAR) 0xB0: 0x00000000 (FDOC) WARNING: SPI Configuration Lockdown activated. Generating OPCODES... done SPI Read Configuration: prefetching enabled, caching enabled, FAILED! This chipset supports the following protocols: FWH,SPI. Calibrating delay loop... 805M loops per second, 100 myus = 199 us. OK. Probing for Winbond W25x16, 2048 KB: RDID returned 0xef 0x30 0x15. probe_spi_rdid_generic: id1 0xef, id2 0x3015 Invalid OPCODE 0x05 Chip status register is 0a Found chip "Winbond W25x16" (2048 KB, SPI) at physical address 0xffe00000. === This flash part has status UNTESTED for operations: ERASE WRITE Please email a report to flashrom@flashrom.org if any of the above operations work correctly for you with this flash part. Please include the flashrom output with the additional -V option for all operations you tested (-V, -rV, -wV, -EV), and mention which mainboard or programmer you tested. Thanks for your help! === Reading flash... Invalid OPCODE 0x03 done.
Any idea what is going on? According to the W25x16 documentation opcodes 0x03 and 0x05 are supported. OS is Fedora 12.
- Finnbarr P. Murphy
Hi Finnbarr,
On 03.02.2010 17:12, Finnbarr Murphy wrote:
Here is a failure report against an Intel DX48BT2 motherboard which uses a ICH9R and a Winbond W25x16 containing the BIOS.
Command I executed was:
./flashrom -c W25x16 -rV out.bin
flashrom v0.9.1-r889 No coreboot table found. DMI string 0: " " DMI string 1: " " DMI string 2: " " DMI string 3: "Intel Corporation" DMI string 4: "DX48BT2" DMI string 5: "AAE26191-205"
Ah, a mainboard manufactured by Intel.
Found chipset "Intel ICH9R", enabling flash write... [...] 0x98: 0x2002009f (OPMENU) 0x9C: 0x00000000 (OPMENU+4) [...]
Heh. The BIOS vendor decided to allow writing to the chip (0x02), erasing (0x20), and identification (0x9f). Reading (0x03) is not allowed.
WARNING: SPI Configuration Lockdown activated.
And the lockdown means that flashrom can't do anything against it.
Generating OPCODES... done SPI Read Configuration: prefetching enabled, caching enabled, FAILED! This chipset supports the following protocols: FWH,SPI. Calibrating delay loop... 805M loops per second, 100 myus = 199 us. OK. Probing for Winbond W25x16, 2048 KB: RDID returned 0xef 0x30 0x15. probe_spi_rdid_generic: id1 0xef, id2 0x3015 Invalid OPCODE 0x05 Chip status register is 0a Found chip "Winbond W25x16" (2048 KB, SPI) at physical address 0xffe00000. Reading flash... Invalid OPCODE 0x03
Any idea what is going on? According to the W25x16 documentation opcodes 0x03 and 0x05 are supported.
Yes, the problem is that Intel decided to disallow any read opcodes in the chipset configuration. Sorry, but we can't do anything to circumvent this except for messing with the flash descriptor in a rather dangerous way. A BIOS/EFI update/downgrade might help.
Regards, Carl-Daniel
Hi Carl-Daniel,
Thanks for the fast feedback. This BIOS has a UEFI boot option which isupports EFI booting an OS. Got it to work for a while and then somehow it managed to hose itself by adding one too many boot options. I suspect a buggy implementation of an EFI boot manager but Intel will not provide any support because (1) I was using Linux and (2) it is a desktop motherboard. I wanted to clean out the EFI boot options.
Guess I will just have to demand a replacement motherboard under warranty.
Regards - Finnbarr
Date: Wed, 3 Feb 2010 17:40:07 +0100 From: c-d.hailfinger.devel.2006@gmx.net To: fpm@hotmail.com CC: flashrom@flashrom.org Subject: Re: [flashrom] Error reading Winbond W25x16 on Intel DX48BT2
Hi Finnbarr,
On 03.02.2010 17:12, Finnbarr Murphy wrote:
Here is a failure report against an Intel DX48BT2 motherboard which uses a ICH9R and a Winbond W25x16 containing the BIOS.
Command I executed was:
./flashrom -c W25x16 -rV out.bin
flashrom v0.9.1-r889 No coreboot table found. DMI string 0: " " DMI string 1: " " DMI string 2: " " DMI string 3: "Intel Corporation" DMI string 4: "DX48BT2" DMI string 5: "AAE26191-205"
Ah, a mainboard manufactured by Intel.
Found chipset "Intel ICH9R", enabling flash write... [...] 0x98: 0x2002009f (OPMENU) 0x9C: 0x00000000 (OPMENU+4) [...]
Heh. The BIOS vendor decided to allow writing to the chip (0x02), erasing (0x20), and identification (0x9f). Reading (0x03) is not allowed.
WARNING: SPI Configuration Lockdown activated.
And the lockdown means that flashrom can't do anything against it.
Generating OPCODES... done SPI Read Configuration: prefetching enabled, caching enabled, FAILED! This chipset supports the following protocols: FWH,SPI. Calibrating delay loop... 805M loops per second, 100 myus = 199 us. OK. Probing for Winbond W25x16, 2048 KB: RDID returned 0xef 0x30 0x15. probe_spi_rdid_generic: id1 0xef, id2 0x3015 Invalid OPCODE 0x05 Chip status register is 0a Found chip "Winbond W25x16" (2048 KB, SPI) at physical address 0xffe00000. Reading flash... Invalid OPCODE 0x03
Any idea what is going on? According to the W25x16 documentation opcodes 0x03 and 0x05 are supported.
Yes, the problem is that Intel decided to disallow any read opcodes in the chipset configuration. Sorry, but we can't do anything to circumvent this except for messing with the flash descriptor in a rather dangerous way. A BIOS/EFI update/downgrade might help.
Regards, Carl-Daniel
-- Developer quote of the year: "We are juggling too many chainsaws and flaming arrows and tigers."
Hi Finnbarr,
On 03.02.2010 19:13, Finnbarr Murphy wrote:
Thanks for the fast feedback. This BIOS has a UEFI boot option which isupports EFI booting an OS. Got it to work for a while and then somehow it managed to hose itself by adding one too many boot options. I suspect a buggy implementation of an EFI boot manager but Intel will not provide any support because (1) I was using Linux and (2) it is a desktop motherboard. I wanted to clean out the EFI boot options.
Guess I will just have to demand a replacement motherboard under warranty.
If the flahs chip is socketed, you could read and reflash it in another motherboard or with the help of an external cheap SPI programmer (depending on your soldering skills, you can even use a $3 USB parport cable).
Regards, Carl-Daniel