On Sun, 3 Aug 2014 00:57:55 -0400 TR Reardon thomas_reardon@hotmail.com wrote:
After last patch, working w log attached (but is flash chip detected incorrectly?)
Hi,
that log looks perfectly reasonable including the detected flash chip. Why do you think it's a Macronix?
Because I took a picture of the chip ;)
Also, here is the log tail from when I try to --read from flash:
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI). This chip may contain one-time programmable memory. flashrom cannot read and may never be able to write it, hence it may not be able to completely clone the contents of this chip (see man page for details). Block protection is disabled. Reading flash... Transaction error! SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=1 SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0 Running OPCODE 0x03 failed at address 0x010000 (payload length was 64). Read operation failed! FAILED. Restoring MMIO space at 0x7f9c7d0670fc
On Sun, Aug 3, 2014 at 6:25 AM, Stefan Tauner stefan.tauner@alumni.tuwien.ac.at wrote:
Hi,
that log looks perfectly reasonable including the detected flash chip. Why do you think it's a Macronix? -- Kind regards/Mit freundlichen Grüßen, Stefan Tauner
On Sun, 3 Aug 2014 09:52:48 -0400 TR Reardon thomas_reardon@hotmail.com wrote:
Because I took a picture of the chip ;)
That is a 256Mb/32MB chip. It is unlikely that this is the chip the board boots from:
The Flash Descriptor read by flashrom from the boot flash contains a map of the flash addresses used (something like a partition table). It is designed to work with an 8MB chip (top of BIOS region is top of flash and 0x007fffff in this case, equalling 8MB): 0x54: 0x000f0000 FREG0: Flash Descriptor region (0x00000000-0x0000ffff) is read-write. 0x58: 0x07ff0200 FREG1: BIOS region (0x00200000-0x007fffff) is read-write. 0x5C: 0x00000fff FREG2: Management Engine region is unused. 0x60: 0x00000fff FREG3: Gigabit Ethernet region is unused. 0x64: 0x00000fff FREG4: Platform Data region is unused.
Also, the Component Section contains the density of the boot flash: === Component Section === FLCOMP 0x09300024 FLILL 0x00000000
--- Details --- Component 1 density: 8 MB
Also, 32 MB chips are uncommon yet as boot devices. In your case I believe that's an additional flash chip for some other use case. You may be able to detect that in Linux with flashrom's linux_spi module. flashrom does not support such big flash chips yet, but a verbose log would have its IDs in it. I am pretty sure that you would find a Winbond chip as well if you would look at the board again.
Also, here is the log tail from when I try to --read from flash:
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI). This chip may contain one-time programmable memory. flashrom cannot read and may never be able to write it, hence it may not be able to completely clone the contents of this chip (see man page for details). Block protection is disabled. Reading flash... Transaction error! SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=1 SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0 Running OPCODE 0x03 failed at address 0x010000 (payload length was 64). Read operation failed! FAILED. Restoring MMIO space at 0x7f9c7d0670fc
That seems to match the Flash Descriptor regions as quoted above. The descriptor of this board does not define what's between 0x10000 and 0x1fffff and hence the chipset does not allow to access these regions. There are patches for flashrom that allows to access only specific address ranges but they are not committed yet.
But this patch set seems to work as expected so far. Could you please also post a log done with Hardware Sequencing (i.e. by adding ich_spi_mode=hwseq to the programmer's argument list separated by a comma as below)?
./flashrom --programmer internal:laptop=this_is_not_a_laptop,ich_spi_mode=hwseq -o log -VV
log with hwseq
+Reardon
On Sun, Aug 3, 2014 at 10:43 AM, Stefan Tauner stefan.tauner@alumni.tuwien.ac.at wrote:
On Sun, 3 Aug 2014 09:52:48 -0400 TR Reardon thomas_reardon@hotmail.com wrote:
Because I took a picture of the chip ;)
That is a 256Mb/32MB chip. It is unlikely that this is the chip the board boots from:
The Flash Descriptor read by flashrom from the boot flash contains a map of the flash addresses used (something like a partition table). It is designed to work with an 8MB chip (top of BIOS region is top of flash and 0x007fffff in this case, equalling 8MB): 0x54: 0x000f0000 FREG0: Flash Descriptor region (0x00000000-0x0000ffff) is read-write. 0x58: 0x07ff0200 FREG1: BIOS region (0x00200000-0x007fffff) is read-write. 0x5C: 0x00000fff FREG2: Management Engine region is unused. 0x60: 0x00000fff FREG3: Gigabit Ethernet region is unused. 0x64: 0x00000fff FREG4: Platform Data region is unused.
Also, the Component Section contains the density of the boot flash: === Component Section === FLCOMP 0x09300024 FLILL 0x00000000
--- Details --- Component 1 density: 8 MB
Also, 32 MB chips are uncommon yet as boot devices. In your case I believe that's an additional flash chip for some other use case. You may be able to detect that in Linux with flashrom's linux_spi module. flashrom does not support such big flash chips yet, but a verbose log would have its IDs in it. I am pretty sure that you would find a Winbond chip as well if you would look at the board again.
Also, here is the log tail from when I try to --read from flash:
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI). This chip may contain one-time programmable memory. flashrom cannot read and may never be able to write it, hence it may not be able to completely clone the contents of this chip (see man page for details). Block protection is disabled. Reading flash... Transaction error! SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=1 SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0 Running OPCODE 0x03 failed at address 0x010000 (payload length was 64). Read operation failed! FAILED. Restoring MMIO space at 0x7f9c7d0670fc
That seems to match the Flash Descriptor regions as quoted above. The descriptor of this board does not define what's between 0x10000 and 0x1fffff and hence the chipset does not allow to access these regions. There are patches for flashrom that allows to access only specific address ranges but they are not committed yet.
But this patch set seems to work as expected so far. Could you please also post a log done with Hardware Sequencing (i.e. by adding ich_spi_mode=hwseq to the programmer's argument list separated by a comma as below)?
./flashrom --programmer internal:laptop=this_is_not_a_laptop,ich_spi_mode=hwseq -o log -VV
-- Kind regards/Mit freundlichen Grüßen, Stefan Tauner
Ok, so the Macronix must be for the independent BMC.
There are a couple of Atmel devices but no Winbond that I can find.
On Sun, Aug 3, 2014 at 10:43 AM, Stefan Tauner stefan.tauner@alumni.tuwien.ac.at wrote:
On Sun, 3 Aug 2014 09:52:48 -0400 TR Reardon thomas_reardon@hotmail.com wrote:
Because I took a picture of the chip ;)
That is a 256Mb/32MB chip. It is unlikely that this is the chip the board boots from:
The Flash Descriptor read by flashrom from the boot flash contains a map of the flash addresses used (something like a partition table). It is designed to work with an 8MB chip (top of BIOS region is top of flash and 0x007fffff in this case, equalling 8MB): 0x54: 0x000f0000 FREG0: Flash Descriptor region (0x00000000-0x0000ffff) is read-write. 0x58: 0x07ff0200 FREG1: BIOS region (0x00200000-0x007fffff) is read-write. 0x5C: 0x00000fff FREG2: Management Engine region is unused. 0x60: 0x00000fff FREG3: Gigabit Ethernet region is unused. 0x64: 0x00000fff FREG4: Platform Data region is unused.
Also, the Component Section contains the density of the boot flash: === Component Section === FLCOMP 0x09300024 FLILL 0x00000000
--- Details --- Component 1 density: 8 MB
On Sun, 3 Aug 2014 12:51:26 -0400 TR Reardon thomas_reardon@hotmail.com wrote:
Ok, so the Macronix must be for the independent BMC.
There are a couple of Atmel devices but no Winbond that I can find.
According to the manual [1] the system flash chip is right next to the BMC FW. On the pictures released by ASUS on their website [2, 3] that corresponds to an empty DIP8 socket. On another picture on the web [4] I can make out an Winbond chip in that socket. What's in there on your board?
1: http://dlcdnet.asus.com/pub/ASUS/mb/Atom_onboard/P9A-I/C2550/SAS/Manual&... Page 21
2: http://www.asus.com/media/global/products/fZcoQZjzxCURopIR/P_setting_fff_1_9...
3: http://www.asus.com/media/global/products/fZcoQZjzxCURopIR/MwapUl84HI9s4ICr_...
4: http://www.servethehome.com/wp-content/uploads/2014/07/ASUS-P9A-I-C2550-SAS-...
Yup, there's a Winbond 25Q64 there (the full part is 25Q64RVA1G in this case). I confused myself into thinking that was the actual BMC chip, which of course it is not. Sorry for dragging you into researching my equipment!
Happy to try out the patches for reading partial regions as well. +Reardon
On Sun, Aug 3, 2014 at 2:42 PM, Stefan Tauner stefan.tauner@alumni.tuwien.ac.at wrote:
On Sun, 3 Aug 2014 12:51:26 -0400 TR Reardon thomas_reardon@hotmail.com wrote:
Ok, so the Macronix must be for the independent BMC.
There are a couple of Atmel devices but no Winbond that I can find.
According to the manual [1] the system flash chip is right next to the BMC FW. On the pictures released by ASUS on their website [2, 3] that corresponds to an empty DIP8 socket. On another picture on the web [4] I can make out an Winbond chip in that socket. What's in there on your board?
1: http://dlcdnet.asus.com/pub/ASUS/mb/Atom_onboard/P9A-I/C2550/SAS/Manual&... Page 21
2: http://www.asus.com/media/global/products/fZcoQZjzxCURopIR/P_setting_fff_1_9...
3: http://www.asus.com/media/global/products/fZcoQZjzxCURopIR/MwapUl84HI9s4ICr_...
4: http://www.servethehome.com/wp-content/uploads/2014/07/ASUS-P9A-I-C2550-SAS-...
Kind regards/Mit freundlichen Grüßen, Stefan Tauner