From obnox3 at gmail.com Sun Jan 1 23:22:18 2012 From: obnox3 at gmail.com (Ob Noxious) Date: Sun, 1 Jan 2012 23:22:18 +0100 Subject: [flashrom] [FLASHROM] Asus P8Z68-V Pro motherboard Message-ID: Hi, According to flashrom output, please attached the debug output as suggested by the tool. There are 2 versions for the 2 available verbosity levels. Hope it helps :-) -- ObNox -------------- next part -------------- flashrom v0.9.4-r1394 on Linux 3.0.0-16-generic (x86_64), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 3798M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 1001 us, 10000 myus = 10004 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "P8Z68-V PRO" DMI string baseboard-version: "Rev 1.xx" DMI string chassis-type: "Desktop" Found chipset "Intel Z68" with PCI ID 8086:1c44. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! 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: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 Root Complex Register Block address = 0xfed1c000 GCS = 0xc04: BIOS Interface Lock-Down: disabled, BOOT BIOS Straps: 0x3 (LPC) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3800 0x04: 0x6008 (HSFS) HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=0 0x06: 0x0000 (HSFC) HSFC: FGO=0, FCYCLE=0, FDBC=0, SME=0 0x08: 0x00003000 (FADDR) 0x50: 0x00000a0b (FRAP) BMWAG 0x00, BMRAG 0x00, BRWA 0x0a, BRRA 0x0b 0x54: 0x00000000 (FREG0: Flash Descriptor) 0x00000000-0x00000fff is read-only 0x58: 0x07ff0180 (FREG1: BIOS) 0x00180000-0x007fffff is read-write 0x5C: 0x017f0003 (FREG2: Management Engine) 0x00003000-0x0017ffff is locked 0x60: 0x00020001 (FREG3: Gigabit Ethernet) 0x00001000-0x00002fff is read-write 0x64: 0x00001fff (FREG4: Platform Data) Platform Data region is unused. 0x74: 0x00000000 (PR0) 0x78: 0x00000000 (PR1) 0x7C: 0x00000000 (PR2) 0x80: 0x00000000 (PR3) 0x84: 0x00000000 (PR4) 0x90: 0x84 (SSFS) SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 0x91: 0xf80000 (SSFC) SSFC: SCGO=0, ACS=0, SPOP=0, COP=0, DBC=0, SME=0, SCF=0 0x94: 0x0006 (PREOP) 0x96: 0x043b (OPTYPE) 0x98: 0x05200302 (OPMENU) 0x9C: 0x0000019f (OPMENU+4) 0xA0: 0x00000000 (BBAR) 0xD0: 0x00000000 (FPB) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done preop0=0x06, preop1=0x50 op[0]=0x02, 3, 0 op[1]=0x03, 2, 0 op[2]=0xd8, 3, 0 op[3]=0x05, 0, 0 op[4]=0x90, 2, 0 op[5]=0x01, 1, 0 op[6]=0x9f, 0, 0 op[7]=0xc7, 1, 0 SPI Read Configuration: prefetching disabled, caching enabled, OK. This chipset supports the following protocols: FWH, SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF010.REMS, 128 kB: probe_spi_rems: id1 0xef, id2 0x16 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF040.REMS, 512 kB: probe_spi_rems: id1 0xef, id2 0x16 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25LF040A.RES, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 probe_spi_res2: id1 0x16, id2 0x16 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xef, id2 0x16 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xa0, id2 0x84, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P05.RES, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P10.RES, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Chip status register is 00 Found Winbond flash chip "W25Q64" (8192 kB, SPI) at physical address 0xff800000. Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xef, id2 0x16 Reading flash... Transaction error! SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0 SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0 Running OPCODE 0x03 failed at address 0x003000 (payload length was 64). Read operation failed! FAILED. Restoring MMIO space at 0x7fab2681b8a0 Restoring MMIO space at 0x7fab2681b89c Restoring MMIO space at 0x7fab2681b898 Restoring MMIO space at 0x7fab2681b896 Restoring MMIO space at 0x7fab2681b894 Restoring PCI config space for 00:1f:0 reg 0xdc -------------- next part -------------- flashrom v0.9.4-r1394 on Linux 3.0.0-16-generic (x86_64), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 3794M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 999 us, 10000 myus = 9991 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "P8Z68-V PRO" DMI string baseboard-version: "Rev 1.xx" DMI string chassis-type: "Desktop" Found chipset "Intel Z68" with PCI ID 8086:1c44. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! 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: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 Root Complex Register Block address = 0xfed1c000 GCS = 0xc04: BIOS Interface Lock-Down: disabled, BOOT BIOS Straps: 0x3 (LPC) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3800 0x04: 0x6008 (HSFS) HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=0 0x06: 0x0000 (HSFC) HSFC: FGO=0, FCYCLE=0, FDBC=0, SME=0 0x08: 0x00003000 (FADDR) 0x50: 0x00000a0b (FRAP) BMWAG 0x00, BMRAG 0x00, BRWA 0x0a, BRRA 0x0b 0x54: 0x00000000 (FREG0: Flash Descriptor) 0x00000000-0x00000fff is read-only 0x58: 0x07ff0180 (FREG1: BIOS) 0x00180000-0x007fffff is read-write 0x5C: 0x017f0003 (FREG2: Management Engine) 0x00003000-0x0017ffff is locked 0x60: 0x00020001 (FREG3: Gigabit Ethernet) 0x00001000-0x00002fff is read-write 0x64: 0x00001fff (FREG4: Platform Data) Platform Data region is unused. 0x74: 0x00000000 (PR0) 0x78: 0x00000000 (PR1) 0x7C: 0x00000000 (PR2) 0x80: 0x00000000 (PR3) 0x84: 0x00000000 (PR4) 0x90: 0x84 (SSFS) SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 0x91: 0xf80000 (SSFC) SSFC: SCGO=0, ACS=0, SPOP=0, COP=0, DBC=0, SME=0, SCF=0 0x94: 0x0006 (PREOP) 0x96: 0x043b (OPTYPE) 0x98: 0x05200302 (OPMENU) 0x9C: 0x0000019f (OPMENU+4) 0xA0: 0x00000000 (BBAR) 0xD0: 0x00000000 (FPB) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done preop0=0x06, preop1=0x50 op[0]=0x02, 3, 0 op[1]=0x03, 2, 0 op[2]=0xd8, 3, 0 op[3]=0x05, 0, 0 op[4]=0x90, 2, 0 op[5]=0x01, 1, 0 op[6]=0x9f, 0, 0 op[7]=0xc7, 1, 0 SPI Read Configuration: prefetching disabled, caching enabled, OK. This chipset supports the following protocols: FWH, SPI. Probing for AMD Am29F010A/B, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29F002(N)BB, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29F002(N)BT, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29F016D, 2048 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29F040B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29F080B, 1024 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV001BB, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV001BT, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV002BB, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV002BT, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV004BB, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV004BT, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV008BB, 1024 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV008BT, 1024 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV040B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMD Am29LV081B, 1024 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMIC A25L05PT, 64 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L05PU, 64 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L10PT, 128 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L10PU, 128 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L20PT, 256 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L20PU, 256 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L40PT, 512 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L40PU, 512 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L80P, 1024 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L16PT, 2048 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L16PU, 2048 kB: RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L512, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L010, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L020, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L040, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L080, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L016, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25L032, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A25LQ032, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for AMIC A29002B, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMIC A29002T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMIC A29040B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for AMIC A49LF040A, 512 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for Atmel AT25DF021, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF041A, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF081, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF081A, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF161, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF321, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF321A, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DF641, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25DQ161, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25F512B, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25FS010, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT25FS040, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF041, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF081A, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF161, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26DF161A, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT26F004, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT29C512, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Atmel AT29C010A, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Atmel AT29C020, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Atmel AT29C040A, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Atmel AT45CS1282, 16896 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB011D, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB021D, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB041D, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB081D, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB161D, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB321C, 4224 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB321D, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT45DB642D, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Atmel AT49BV512, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Atmel AT49F020, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Atmel AT49F002(N), 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Atmel AT49F002(N)T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Bright BM29F040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for EMST F49B002UA, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for EMST F25L008A, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B05, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B05T, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B10, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B10T, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B20, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B20T, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B40, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B40T, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B80, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B80T, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B16T, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B32, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B32T, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B64, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25B64T, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F05, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F10, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F20, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F40, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F80, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25F32, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q40, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q80(A), 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q32(A/B), 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q64, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25Q128, 16384 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN25QH16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Eon EN29F010, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Eon EN29F002(A)(N)B, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Eon EN29F002(A)(N)T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Fujitsu MBM29F004BC, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Fujitsu MBM29F004TC, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Fujitsu MBM29F400BC, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Fujitsu MBM29F400TC, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Hyundai HY29F002T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Hyundai HY29F002B, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Hyundai HY29F040A, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F001BN/BX-B, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F001BN/BX-T, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F008S3/S5/SC, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX25L512, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1005, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L2005, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L4005, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L8005, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1605, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1635D, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L1635E, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L3205, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L3235D, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L6405, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX25L12805, 16384 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Macronix MX29F001B, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Macronix MX29F001T, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Macronix MX29F002B, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Macronix MX29F002T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Macronix MX29F040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Macronix MX29LV040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for MoselVitelic V29C51000B, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for MoselVitelic V29C51000T, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for MoselVitelic V29C51400B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for MoselVitelic V29C51400T, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for MoselVitelic V29LC51000, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for MoselVitelic V29LC51001, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for MoselVitelic V29LC51002, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Numonyx M25PE10, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE20, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE40, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE80, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Numonyx M25PE16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV010, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV016B, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV020, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV040, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV080B, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm25LV512, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for PMC Pm29F002T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for PMC Pm29F002B, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for PMC Pm39LV010, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for PMC Pm39LV020, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for PMC Pm39LV040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Sanyo LF25FW203A, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Spansion S25FL004A, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL008A, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL016A, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL032A, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Spansion S25FL064A, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF010.REMS, 128 kB: REMS returned 0xef 0x16. probe_spi_rems: id1 0xef, id2 0x16 Probing for SST SST25VF016B, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF032B, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF064C, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25VF040.REMS, 512 kB: REMS returned 0xef 0x16. probe_spi_rems: id1 0xef, id2 0x16 Probing for SST SST25VF040B, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST25LF040A.RES, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 RES returned 0x16 0x16. probe_spi_res2: id1 0x16, id2 0x16 Probing for SST SST25VF040B.REMS, 512 kB: REMS returned 0xef 0x16. probe_spi_rems: id1 0xef, id2 0x16 Probing for SST SST25VF080B, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for SST SST28SF040A, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST29EE010, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST29LE010, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST29EE020A, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST29LE020, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39SF512, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39SF010A, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39SF020A, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39SF040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39VF512, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39VF010, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39VF020, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39VF040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST39VF080, 1024 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xa0, id2 0x84, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for SST SST49LF020A, 256 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for SST SST49LF040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for SST SST49LF040B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for SST SST49LF080A, 1024 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for SST SST49LF160C, 2048 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for ST M25P05-A, 64 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P05.RES, 64 kB: RDID returned 0xef 0x40 0x17. Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P10.RES, 128 kB: RDID returned 0xef 0x40 0x17. Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P40, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P40-old, 512 kB: RDID returned 0xef 0x40 0x17. Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P32, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P64, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25P128, 16384 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25PX16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25PX32, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M25PX64, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for ST M29F002B, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M29F002T/NT, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M29F040B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M29F400BB, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M29F400BT, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M29W010B, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M29W040B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M29W512B, 64 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for TI TMS29F002RB, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for TI TMS29F002RT, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W25Q80, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25Q16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25Q32, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25Q64, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Chip status register is 00 Found Winbond flash chip "W25Q64" (8192 kB, SPI) at physical address 0xff800000. Probing for Winbond W25Q128, 16384 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X10, 128 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X20, 256 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X40, 512 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X80, 1024 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X16, 2048 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X32, 4096 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W25X64, 8192 kB: RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012-old, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W29C020(C)/W29C022, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W29C040/P, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W39L040, 512 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W39V040A, 512 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for Winbond W39V040B, 512 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for Winbond W39V040C, 512 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080A, 1024 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for Winbond W49F002U/N, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W49F020, 256 kB: skipped. Host bus type FWH, SPI and chip bus type Parallel are incompatible. Probing for Winbond W49V002A, 256 kB: skipped. Host bus type FWH, SPI and chip bus type LPC are incompatible. Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMIC unknown AMIC SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17 0x00. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for Atmel unknown Atmel SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for Eon unknown Eon SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for Macronix unknown Macronix SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for PMC unknown PMC SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for SST unknown SST SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for ST unknown ST SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for Sanyo unknown Sanyo SPI chip, 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for Generic unknown SPI chip (RDID), 0 kB: Not mapping flash chip, zero size at 0x00000000. RDID returned 0xef 0x40 0x17. probe_spi_rdid_generic: id1 0xef, id2 0x4017 Not unmapping zero size at 0xffffffffffffffff Probing for Generic unknown SPI chip (REMS), 0 kB: Not mapping flash chip, zero size at 0x00000000. REMS returned 0xef 0x16. probe_spi_rems: id1 0xef, id2 0x16 Not unmapping zero size at 0xffffffffffffffff Reading flash... Transaction error! SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0 SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0 Running OPCODE 0x03 failed at address 0x003000 (payload length was 64). Read operation failed! FAILED. Restoring MMIO space at 0x7fe8525d98a0 Restoring MMIO space at 0x7fe8525d989c Restoring MMIO space at 0x7fe8525d9898 Restoring MMIO space at 0x7fe8525d9896 Restoring MMIO space at 0x7fe8525d9894 Restoring PCI config space for 00:1f:0 reg 0xdc From stefan.tauner at student.tuwien.ac.at Mon Jan 2 01:35:17 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 2 Jan 2012 01:35:17 +0100 Subject: [flashrom] Shuttle AV18S403 erase and write pass In-Reply-To: References: Message-ID: <201201020035.q020ZVEW021056@mail2.student.tuwien.ac.at> On Fri, 30 Dec 2011 14:11:39 +0100 Piotr Kr?l wrote: > Hi, > I tested this motherboard for erase and write and everything seems to work > properly. > Logs in attachments. > flashrom -V > flashrom -VE > flashrom -Vw bios_bckp.bin > lspci -nnvvxxx > superiotool -deV - http://paste.flashrom.org/view.php?id=993 Hello Piotr, thanks for your report! Looks like it is working and we can mark some stuff tested, great. One question though... there is no board named AV18S403 according to the interwebs, but there is a firmware update named like that for a board called AV18E2 (v4.0): http://www.shuttle.eu/_archive/older/de/av18_faq.htm#download So i guess you really meant AV18E2? See also http://www.shuttle.eu/_archive/older/de/av18.htm#versionen -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Mon Jan 2 01:45:53 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 2 Jan 2012 01:45:53 +0100 Subject: [flashrom] SUCCESS - NVIDIA MCP61 (10de:03e1) In-Reply-To: References: Message-ID: <201201020046.q020k745024398@mail2.student.tuwien.ac.at> Hello Lee, thanks for your report! I have added the mainboard to our list of supported boards and will commit that later together with other small changes. On Mon, 26 Dec 2011 11:10:27 -0600 Lee Daugherty wrote: > Found chipset "NVIDIA MCP61" with PCI ID 10de:03e1. > This chipset is marked as untested. If you are using an up-to-date version > of flashrom please email a report to flashrom at flashrom.org including a > verbose (-V) log. Thank you! This is already marked as tested in svn or locally in my branch. > WARNING: unexpected second chipset match: "NVIDIA MCP61" hm that's interesting... can you please post a log of lspci -nnvvvxxx? -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Mon Jan 2 01:52:38 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 2 Jan 2012 01:52:38 +0100 Subject: [flashrom] [FLASHROM] Asus P8Z68-V Pro motherboard In-Reply-To: References: Message-ID: <201201020052.q020qp3H026372@mail2.student.tuwien.ac.at> On Sun, 1 Jan 2012 23:22:18 +0100 Ob Noxious wrote: > 0x5C: 0x017f0003 (FREG2: Management Engine) > 0x00003000-0x0017ffff is locked Hello Ob, thanks for your report! The problem is the locked ME region as quoted above. We are working on unlocking it, but intel does not provide us any documentation so please do not expect a solution soon. I have added the board to our list of (un)supported boards (with an appropriate note) and will commit that later together with other small changes. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From c-d.hailfinger.devel.2006 at gmx.net Mon Jan 2 03:48:40 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Mon, 02 Jan 2012 03:48:40 +0100 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard Message-ID: <4F011B08.1070603@gmx.net> --mainboard is a relic from a time before external programmers and makes the CLI inconsistent. Use a programmer parameter instead and free up the short option -m. A nice side effect is that there is one less corner case we have to care about in the logging patch. Signed-off-by: Carl-Daniel Hailfinger Index: flashrom-kill_cli_mainboard_parameter/cli_classic.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/cli_classic.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/cli_classic.c (Arbeitskopie) @@ -128,11 +128,6 @@ " -V | --verbose more verbose output\n" " -c | --chip probe only for specified " "flash chip\n" -#if CONFIG_INTERNAL == 1 - /* FIXME: --mainboard should be a programmer parameter */ - " -m | --mainboard <[vendor:]part> override mainboard " - "detection\n" -#endif " -f | --force force specific operations " "(see man page)\n" " -n | --noverify don't auto-verify\n" @@ -190,7 +185,6 @@ {"verify", 1, NULL, 'v'}, {"noverify", 0, NULL, 'n'}, {"chip", 1, NULL, 'c'}, - {"mainboard", 1, NULL, 'm'}, {"verbose", 0, NULL, 'V'}, {"force", 0, NULL, 'f'}, {"layout", 1, NULL, 'l'}, @@ -275,17 +269,6 @@ } erase_it = 1; break; - case 'm': -#if CONFIG_INTERNAL == 1 - tempstr = strdup(optarg); - lb_vendor_dev_from_string(tempstr); -#else - fprintf(stderr, "Error: Internal programmer support " - "was not compiled in and --mainboard only\n" - "applies to the internal programmer. Aborting.\n"); - cli_classic_abort_usage(); -#endif - break; case 'f': force = 1; break; Index: flashrom-kill_cli_mainboard_parameter/internal.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/internal.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/internal.c (Arbeitskopie) @@ -213,6 +213,16 @@ } free(arg); + arg = extract_programmer_param("mainboard"); + if (arg && strlen(arg)) { + lb_vendor_dev_from_string(arg); + } else if (arg && !strlen(arg)) { + msg_perr("Missing argument for mainboard.\n"); + free(arg); + return 1; + } + free(arg); + get_io_perms(); if (register_shutdown(internal_shutdown, NULL)) return 1; Index: flashrom-kill_cli_mainboard_parameter/cbtable.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/cbtable.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/cbtable.c (Arbeitskopie) @@ -33,17 +33,19 @@ char *lb_part = NULL, *lb_vendor = NULL; int partvendor_from_cbtable = 0; -void lb_vendor_dev_from_string(char *boardstring) +void lb_vendor_dev_from_string(const char *boardstring) { + /* strtok may modify the original string. */ + char *tempstr = strdup(boardstring); char *tempstr2 = NULL; - strtok(boardstring, ":"); + strtok(tempstr, ":"); tempstr2 = strtok(NULL, ":"); if (tempstr2) { - lb_vendor = boardstring; + lb_vendor = tempstr; lb_part = tempstr2; } else { lb_vendor = NULL; - lb_part = boardstring; + lb_part = tempstr; } } Index: flashrom-kill_cli_mainboard_parameter/flashrom.8 =================================================================== --- flashrom-kill_cli_mainboard_parameter/flashrom.8 (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/flashrom.8 (Arbeitskopie) @@ -88,19 +88,6 @@ without the vendor name as parameter. Please note that the chip name is case sensitive. .TP -.B "\-m, \-\-mainboard" [:] -Override mainboard settings. -.sp -flashrom reads the coreboot table to determine the current mainboard. If no -coreboot table could be read or if you want to override these values, you can -specify \-m, e.g.: -.sp -.B " flashrom \-\-mainboard AGAMI:ARUMA \-w agami_aruma.rom" -.sp -See the 'Known boards' or 'Known laptops' section in the output -of 'flashrom \-L' for a list of boards which require the specification of -the board name, if no coreboot table is found. -.TP .B "\-f, \-\-force" Force one or more of the following actions: .sp @@ -245,11 +232,16 @@ running coreboot, the mainboard type is determined from the coreboot table. Otherwise, the mainboard is detected by examining the onboard PCI devices and possibly DMI info. If PCI and DMI do not contain information to uniquely -identify the mainboard (which is the exception), it might be necessary to -specify the mainboard using the -.B \-m -switch (see above). +identify the mainboard (which is the exception), or if you want to override +the detected mainboard model, you can specify the mainboard using the .sp +.B " flashrom \-p internal:mainboard=[:]" +syntax. +.sp +See the 'Known boards' or 'Known laptops' section in the output +of 'flashrom \-L' for a list of boards which require the specification of +the board name, if no coreboot table is found. +.sp Some of these board-specific flash enabling functions (called .BR "board enables" ) in flashrom have not yet been tested. If your mainboard is detected needing Index: flashrom-kill_cli_mainboard_parameter/programmer.h =================================================================== --- flashrom-kill_cli_mainboard_parameter/programmer.h (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/programmer.h (Arbeitskopie) @@ -264,7 +264,7 @@ void cleanup_cpu_msr(void); /* cbtable.c */ -void lb_vendor_dev_from_string(char *boardstring); +void lb_vendor_dev_from_string(const char *boardstring); int coreboot_init(void); extern char *lb_part, *lb_vendor; extern int partvendor_from_cbtable; -- http://www.hailfinger.org/ From c-d.hailfinger.devel.2006 at gmx.net Mon Jan 2 04:06:39 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Mon, 02 Jan 2012 04:06:39 +0100 Subject: [flashrom] [PATCH] Postpone layout file reading Message-ID: <4F011F3F.10103@gmx.net> Layout file reading should happen after option parsing like all other file accesses. Guard against multiple --layout parameters. Side note: This fixes an inconsistency which impacts the log file patch. Signed-off-by: Carl-Daniel Hailfinger Index: flashrom-postpone_layoutfile_reading/cli_classic.c =================================================================== --- flashrom-postpone_layoutfile_reading/cli_classic.c (Revision 1482) +++ flashrom-postpone_layoutfile_reading/cli_classic.c (Arbeitskopie) @@ -204,6 +204,7 @@ }; char *filename = NULL; + char *layoutfile = NULL; char *tempstr = NULL; char *pparam = NULL; @@ -290,9 +291,12 @@ force = 1; break; case 'l': - tempstr = strdup(optarg); - if (read_romlayout(tempstr)) + if (layoutfile) { + fprintf(stderr, "Error: --layout specified " + "more than once. Aborting.\n"); cli_classic_abort_usage(); + } + layoutfile = strdup(optarg); break; case 'i': tempstr = strdup(optarg); @@ -390,9 +394,6 @@ cli_classic_abort_usage(); } - if (process_include_args()) - cli_classic_abort_usage(); - /* FIXME: Print the actions flashrom will take. */ if (list_supported) { @@ -407,6 +408,11 @@ } #endif + if (layoutfile && read_romlayout(layoutfile)) + cli_classic_abort_usage(); + if (process_include_args()) + cli_classic_abort_usage(); + /* Does a chip with the requested name exist in the flashchips array? */ if (chip_to_probe) { for (flash = flashchips; flash && flash->name; flash++) -- http://www.hailfinger.org/ From pietrushnic at gmail.com Mon Jan 2 10:56:42 2012 From: pietrushnic at gmail.com (=?ISO-8859-1?Q?Piotr_Kr=F3l?=) Date: Mon, 2 Jan 2012 10:56:42 +0100 Subject: [flashrom] Shuttle AV18S403 erase and write pass In-Reply-To: <201201020035.q020ZVEW021056@mail2.student.tuwien.ac.at> References: <201201020035.q020ZVEW021056@mail2.student.tuwien.ac.at> Message-ID: Yes, you're right it is a motherboard AV18E2 with updated BIOS. I think about try to write support for coreboot for this board, although I have yet to learn a lot. Regards Piotr 2012/1/2 Stefan Tauner > On Fri, 30 Dec 2011 14:11:39 +0100 > Piotr Kr?l wrote: > > > Hi, > > I tested this motherboard for erase and write and everything seems to > work > > properly. > > Logs in attachments. > > flashrom -V > > flashrom -VE > > flashrom -Vw bios_bckp.bin > > lspci -nnvvxxx > > superiotool -deV - http://paste.flashrom.org/view.php?id=993 > > Hello Piotr, > > thanks for your report! > > Looks like it is working and we can mark some stuff tested, great. > One question though... there is no board named AV18S403 according to the > interwebs, but there is a firmware update named like that for a board > called AV18E2 (v4.0): > http://www.shuttle.eu/_archive/older/de/av18_faq.htm#download > > So i guess you really meant AV18E2? > See also http://www.shuttle.eu/_archive/older/de/av18.htm#versionen > > -- > Kind regards/Mit freundlichen Gr??en, Stefan Tauner > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefan.tauner at student.tuwien.ac.at Mon Jan 2 11:29:24 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 2 Jan 2012 11:29:24 +0100 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard In-Reply-To: <4F011B08.1070603@gmx.net> References: <4F011B08.1070603@gmx.net> Message-ID: <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> On Mon, 02 Jan 2012 03:48:40 +0100 Carl-Daniel Hailfinger wrote: > --mainboard is a relic from a time before external programmers and makes > the CLI inconsistent. > Use a programmer parameter instead and free up the short option -m. > > A nice side effect is that there is one less corner case we have to care > about in the logging patch. > > Signed-off-by: Carl-Daniel Hailfinger > > Index: flashrom-kill_cli_mainboard_parameter/cli_classic.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/cli_classic.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/cli_classic.c (Arbeitskopie) > @@ -128,11 +128,6 @@ > " -V | --verbose more verbose output\n" > " -c | --chip probe only for specified " > "flash chip\n" > -#if CONFIG_INTERNAL == 1 > - /* FIXME: --mainboard should be a programmer parameter */ > - " -m | --mainboard <[vendor:]part> override mainboard " > - "detection\n" > -#endif > " -f | --force force specific operations " > "(see man page)\n" > " -n | --noverify don't auto-verify\n" > @@ -190,7 +185,6 @@ > {"verify", 1, NULL, 'v'}, > {"noverify", 0, NULL, 'n'}, > {"chip", 1, NULL, 'c'}, > - {"mainboard", 1, NULL, 'm'}, > {"verbose", 0, NULL, 'V'}, > {"force", 0, NULL, 'f'}, > {"layout", 1, NULL, 'l'}, > @@ -275,17 +269,6 @@ > } > erase_it = 1; > break; > - case 'm': > -#if CONFIG_INTERNAL == 1 > - tempstr = strdup(optarg); > - lb_vendor_dev_from_string(tempstr); > -#else > - fprintf(stderr, "Error: Internal programmer support " > - "was not compiled in and --mainboard only\n" > - "applies to the internal programmer. Aborting.\n"); > - cli_classic_abort_usage(); > -#endif > - break; > case 'f': > force = 1; > break; > Index: flashrom-kill_cli_mainboard_parameter/internal.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/internal.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/internal.c (Arbeitskopie) > @@ -213,6 +213,16 @@ > } > free(arg); > > + arg = extract_programmer_param("mainboard"); > + if (arg && strlen(arg)) { > + lb_vendor_dev_from_string(arg); > + } else if (arg && !strlen(arg)) { > + msg_perr("Missing argument for mainboard.\n"); > + free(arg); > + return 1; > + } > + free(arg); > + > get_io_perms(); > if (register_shutdown(internal_shutdown, NULL)) > return 1; the following hunk should get its own note in the changelog if it is merged imho. > Index: flashrom-kill_cli_mainboard_parameter/cbtable.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/cbtable.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/cbtable.c (Arbeitskopie) > @@ -33,17 +33,19 @@ > char *lb_part = NULL, *lb_vendor = NULL; > int partvendor_from_cbtable = 0; > > -void lb_vendor_dev_from_string(char *boardstring) > +void lb_vendor_dev_from_string(const char *boardstring) > { > + /* strtok may modify the original string. */ > + char *tempstr = strdup(boardstring); > char *tempstr2 = NULL; > - strtok(boardstring, ":"); > + strtok(tempstr, ":"); > tempstr2 = strtok(NULL, ":"); > if (tempstr2) { > - lb_vendor = boardstring; > + lb_vendor = tempstr; > lb_part = tempstr2; > } else { > lb_vendor = NULL; > - lb_part = boardstring; > + lb_part = tempstr; > } hm... we want something like free(tempstr); due to the strdup call but since we change the pointer in the process we do no longer know where the string started. and of course we would still want the extracted tokens to remain valid, so that would require another strdup... oh my. hm but if the boardstring contains the wanted data only, the current version might be good enough. if we feed it with the return value of extract_programmer_param only (as we do atm) this is somewhat ok. not very obvious but at least not too leaky :) and if (tempstr == NULL) is not handled (because empty arguments are checked for in the caller?). OTOH it is not really necessary because both strings are set to NULL then, but it is also not obvious that this is wanted. please add a function comment explaining that stuff. > } > > Index: flashrom-kill_cli_mainboard_parameter/flashrom.8 > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/flashrom.8 (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/flashrom.8 (Arbeitskopie) > @@ -88,19 +88,6 @@ > without the vendor name as parameter. Please note that the chip name is > case sensitive. > .TP > -.B "\-m, \-\-mainboard" [:] > -Override mainboard settings. > -.sp > -flashrom reads the coreboot table to determine the current mainboard. If no > -coreboot table could be read or if you want to override these values, you can > -specify \-m, e.g.: > -.sp > -.B " flashrom \-\-mainboard AGAMI:ARUMA \-w agami_aruma.rom" > -.sp > -See the 'Known boards' or 'Known laptops' section in the output > -of 'flashrom \-L' for a list of boards which require the specification of > -the board name, if no coreboot table is found. > -.TP > .B "\-f, \-\-force" > Force one or more of the following actions: > .sp > @@ -245,11 +232,16 @@ > running coreboot, the mainboard type is determined from the coreboot table. > Otherwise, the mainboard is detected by examining the onboard PCI devices > and possibly DMI info. If PCI and DMI do not contain information to uniquely > -identify the mainboard (which is the exception), it might be necessary to > -specify the mainboard using the > -.B \-m > -switch (see above). > +identify the mainboard (which is the exception), or if you want to override > +the detected mainboard model, you can specify the mainboard using the > .sp > +.B " flashrom \-p internal:mainboard=[:]" > +syntax. > +.sp > +See the 'Known boards' or 'Known laptops' section in the output > +of 'flashrom \-L' for a list of boards which require the specification of > +the board name, if no coreboot table is found. > +.sp > Some of these board-specific flash enabling functions (called > .BR "board enables" ) > in flashrom have not yet been tested. If your mainboard is detected needing > Index: flashrom-kill_cli_mainboard_parameter/programmer.h > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/programmer.h (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/programmer.h (Arbeitskopie) > @@ -264,7 +264,7 @@ > void cleanup_cpu_msr(void); > > /* cbtable.c */ > -void lb_vendor_dev_from_string(char *boardstring); > +void lb_vendor_dev_from_string(const char *boardstring); > int coreboot_init(void); > extern char *lb_part, *lb_vendor; > extern int partvendor_from_cbtable; > > what about this in cli_classic.c (seems to be completely useless now): #if CONFIG_INTERNAL == 1 if ((prog != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) { fprintf(stderr, "Error: --mainboard requires the internal " "programmer. Aborting.\n"); cli_classic_abort_usage(); } #endif and this in board_enable.c: msg_perr("Please use the full -m vendor:part syntax.\n"); and msg_perr("\nUnknown vendor:board from -m option: %s:%s\n\n", vendor, part); and this in print.c: msg_ginfo("-m %s:%s", e->lb_vendor, e->lb_part); and this in flashrom.8: [\fB\-c\fR ] [\fB\-m\fR [:]] \ aaaand... please use grep -- -m yourself, there are other bits referring to the old syntax. the whole cb string handling is a bit messy. in internal_init we call extract_programmer_param("mainboard") to get the user input. then call lb_vendor_dev_from_string on the result, which internally sets a global variable. later in the same internal_init function we call board_flash_enable with the global variables as arguments. the only other user is show_id in layout.c if we work around that and make lb_vendor_dev_from_string return the two strings, we could make lb_part and lb_vendor static. id suggest splitting the patch and fix the lb_vendor_dev_from_string hunk together with the other cb table stuff. the -m removals are hard enough apparently to justify a patch on its own ;) -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Mon Jan 2 11:39:54 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 2 Jan 2012 11:39:54 +0100 Subject: [flashrom] Shuttle AV18S403 erase and write pass In-Reply-To: References: <201201020035.q020ZVEW021056@mail2.student.tuwien.ac.at> Message-ID: <201201021040.q02Ae7V7029236@mail2.student.tuwien.ac.at> On Mon, 2 Jan 2012 10:56:42 +0100 Piotr Kr?l wrote: > Yes, you're right it is a motherboard AV18E2 with updated BIOS. I think > about > try to write support for coreboot for this board, although I have yet to > learn a > lot. > OK, thank you for the reply. I have added the board to our list and marked the north and south bridge tested as well. I will commit all of this later. GL with coreboot... afaics that would be quite some work though. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From chrish19902010 at gmail.com Mon Jan 2 11:31:48 2012 From: chrish19902010 at gmail.com (CHRIS HONEYCUTT) Date: Mon, 2 Jan 2012 05:31:48 -0500 Subject: [flashrom] chipset:via vt8237 motherboard: p4m800pro-m v2.0 SUCCESS Message-ID: linux-poa8:/home/chris/Desktop # flashrom -V -w 070830s.ROM flashrom v0.9.3-r1246 on Linux 2.6.37.1-1.2-default (i686), built with libpci 3.1.7, GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585], little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1772M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 986 us, 10000 myus = 9997 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "ECS" DMI string system-product-name: "P4M800PRO-M" DMI string system-version: "1.0" DMI string baseboard-manufacturer: "ECS" DMI string baseboard-product-name: "P4M800PRO-M" DMI string baseboard-version: "1.0" DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8718. Found chipset "VIA VT8237", enabling flash write... chipset PCI ID is 1106:3227, OK. This chipset supports the following protocols: Non-SPI. No IT87* serial flash segment enabled. Probing for AMD Am29F010A/B, 128 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BB, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BT, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F016D, 2048 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F040B, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F080B, 1024 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV040B, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV081B, 1024 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A25L05PT, 64 KB: skipped. Probing for AMIC A25L05PU, 64 KB: skipped. Probing for AMIC A25L10PT, 128 KB: skipped. Probing for AMIC A25L10PU, 128 KB: skipped. Probing for AMIC A25L20PT, 256 KB: skipped. Probing for AMIC A25L20PU, 256 KB: skipped. Probing for AMIC A25L40PT, 512 KB: skipped. Probing for AMIC A25L40PU, 512 KB: skipped. Probing for AMIC A25L80P, 1024 KB: skipped. Probing for AMIC A25L16PT, 2048 KB: skipped. Probing for AMIC A25L16PU, 2048 KB: skipped. Probing for AMIC A25L512, 64 KB: skipped. Probing for AMIC A25L010, 128 KB: skipped. Probing for AMIC A25L020, 256 KB: skipped. Probing for AMIC A25L040, 512 KB: skipped. Probing for AMIC A25L080, 1024 KB: skipped. Probing for AMIC A25L016, 2048 KB: skipped. Probing for AMIC A25L032, 4096 KB: skipped. Probing for AMIC A25LQ032, 4096 KB: skipped. Probing for AMIC A29002B, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002T, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29040B, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A49LF040A, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT25DF021, 256 KB: skipped. Probing for Atmel AT25DF041A, 512 KB: skipped. Probing for Atmel AT25DF081, 1024 KB: skipped. Probing for Atmel AT25DF081A, 1024 KB: skipped. Probing for Atmel AT25DF161, 2048 KB: skipped. Probing for Atmel AT25DF321, 4096 KB: skipped. Probing for Atmel AT25DF321A, 4096 KB: skipped. Probing for Atmel AT25DF641, 8192 KB: skipped. Probing for Atmel AT25DQ161, 2048 KB: skipped. Probing for Atmel AT25F512B, 64 KB: skipped. Probing for Atmel AT25FS010, 128 KB: skipped. Probing for Atmel AT25FS040, 512 KB: skipped. Probing for Atmel AT26DF041, 512 KB: skipped. Probing for Atmel AT26DF081A, 1024 KB: skipped. Probing for Atmel AT26DF161, 2048 KB: skipped. Probing for Atmel AT26DF161A, 2048 KB: skipped. Probing for Atmel AT26F004, 512 KB: skipped. Probing for Atmel AT29C512, 64 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT29C010A, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT29C020, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT29C040A, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT45CS1282, 16896 KB: skipped. Probing for Atmel AT45DB011D, 128 KB: skipped. Probing for Atmel AT45DB021D, 256 KB: skipped. Probing for Atmel AT45DB041D, 512 KB: skipped. Probing for Atmel AT45DB081D, 1024 KB: skipped. Probing for Atmel AT45DB161D, 2048 KB: skipped. Probing for Atmel AT45DB321C, 4224 KB: skipped. Probing for Atmel AT45DB321D, 4096 KB: skipped. Probing for Atmel AT45DB642D, 8192 KB: skipped. Probing for Atmel AT49BV512, 64 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT49F020, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT49F002(N), 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Bright BM29F040, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for EMST F49B002UA, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for EMST F25L008A, 1024 KB: skipped. Probing for Eon EN25B05, 64 KB: skipped. Probing for Eon EN25B05T, 64 KB: skipped. Probing for Eon EN25B10, 128 KB: skipped. Probing for Eon EN25B10T, 128 KB: skipped. Probing for Eon EN25B20, 256 KB: skipped. Probing for Eon EN25B20T, 256 KB: skipped. Probing for Eon EN25B40, 512 KB: skipped. Probing for Eon EN25B40T, 512 KB: skipped. Probing for Eon EN25B80, 1024 KB: skipped. Probing for Eon EN25B80T, 1024 KB: skipped. Probing for Eon EN25B16, 2048 KB: skipped. Probing for Eon EN25B16T, 2048 KB: skipped. Probing for Eon EN25B32, 4096 KB: skipped. Probing for Eon EN25B32T, 4096 KB: skipped. Probing for Eon EN25B64, 8192 KB: skipped. Probing for Eon EN25B64T, 8192 KB: skipped. Probing for Eon EN25D16, 2048 KB: skipped. Probing for Eon EN25F05, 64 KB: skipped. Probing for Eon EN25F10, 128 KB: skipped. Probing for Eon EN25F20, 256 KB: skipped. Probing for Eon EN25F40, 512 KB: skipped. Probing for Eon EN25F80, 1024 KB: skipped. Probing for Eon EN25F16, 2048 KB: skipped. Probing for Eon EN25F32, 4096 KB: skipped. Probing for Eon EN29F010, 128 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F002(A)(N)B, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F002(A)(N)T, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F004BC, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F004TC, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F400BC, 512 KB: probe_m29f400bt: id1 0xff, id2 0xff Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0xff, id2 0xff Probing for Hyundai HY29F002T, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Hyundai HY29F002B, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Hyundai HY29F040A, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F001BN/BX-B, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Intel 28F001BN/BX-T, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Intel 28F002BC/BL/BV/BX-T, 256 KB: probe_82802ab: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F008S3/S5/SC, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-B, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-T, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-B, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-T, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX25L512, 64 KB: skipped. Probing for Macronix MX25L1005, 128 KB: skipped. Probing for Macronix MX25L2005, 256 KB: skipped. Probing for Macronix MX25L4005, 512 KB: skipped. Probing for Macronix MX25L8005, 1024 KB: skipped. Probing for Macronix MX25L1605, 2048 KB: skipped. Probing for Macronix MX25L1635D, 2048 KB: skipped. Probing for Macronix MX25L1635E, 2048 KB: skipped. Probing for Macronix MX25L3205, 4096 KB: skipped. Probing for Macronix MX25L3235D, 4096 KB: skipped. Probing for Macronix MX25L6405, 8192 KB: skipped. Probing for Macronix MX25L12805, 16384 KB: skipped. Probing for Macronix MX29F001B, 128 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001T, 128 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002B, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002T, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F040, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29LV040, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51000B, 64 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for MoselVitelic V29C51000T, 64 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for MoselVitelic V29C51400B, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for MoselVitelic V29C51400T, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for MoselVitelic V29LC51000, 64 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for MoselVitelic V29LC51001, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for MoselVitelic V29LC51002, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Numonyx M25PE10, 128 KB: skipped. Probing for Numonyx M25PE20, 256 KB: skipped. Probing for Numonyx M25PE40, 512 KB: skipped. Probing for Numonyx M25PE80, 1024 KB: skipped. Probing for Numonyx M25PE16, 2048 KB: skipped. Probing for PMC Pm25LV010, 128 KB: skipped. Probing for PMC Pm25LV016B, 2048 KB: skipped. Probing for PMC Pm25LV020, 256 KB: skipped. Probing for PMC Pm25LV040, 512 KB: skipped. Probing for PMC Pm25LV080B, 1024 KB: skipped. Probing for PMC Pm25LV512, 64 KB: skipped. Probing for PMC Pm29F002T, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002B, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV010, 128 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV020, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV040, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for PMC Pm49FL004, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Found chip "PMC Pm49FL004" (512 KB, LPC,FWH) at physical address 0xfff80000. Probing for Sanyo LF25FW203A, 2048 KB: skipped. Probing for Sharp LHF00L04, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Spansion S25FL004A, 512 KB: skipped. Probing for Spansion S25FL008A, 1024 KB: skipped. Probing for Spansion S25FL016A, 2048 KB: skipped. Probing for Spansion S25FL032A, 4096 KB: skipped. Probing for Spansion S25FL064A, 8192 KB: skipped. Probing for SST SST25VF010.REMS, 128 KB: skipped. Probing for SST SST25VF016B, 2048 KB: skipped. Probing for SST SST25VF032B, 4096 KB: skipped. Probing for SST SST25VF064C, 8192 KB: skipped. Probing for SST SST25VF040.REMS, 512 KB: skipped. Probing for SST SST25VF040B, 512 KB: skipped. Probing for SST SST25LF040A.RES, 512 KB: skipped. Probing for SST SST25VF040B.REMS, 512 KB: skipped. Probing for SST SST25VF080B, 1024 KB: skipped. Probing for SST SST28SF040A, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29EE010, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST29LE010, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST29EE020A, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST29LE020, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39SF512, 64 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39SF010A, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39SF020A, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39SF040, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39VF512, 64 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39VF010, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39VF020, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39VF040, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST39VF080, 1024 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST49LF003A/B, 384 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST49LF004A/B, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST49LF004C, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST49LF020A, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST49LF040, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST49LF040B, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SST SST49LF080A, 1024 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M25P05-A, 64 KB: skipped. Probing for ST M25P05.RES, 64 KB: skipped. Probing for ST M25P10-A, 128 KB: skipped. Probing for ST M25P10.RES, 128 KB: skipped. Probing for ST M25P20, 256 KB: skipped. Probing for ST M25P40, 512 KB: skipped. Probing for ST M25P40-old, 512 KB: skipped. Probing for ST M25P80, 1024 KB: skipped. Probing for ST M25P16, 2048 KB: skipped. Probing for ST M25P32, 4096 KB: skipped. Probing for ST M25P64, 8192 KB: skipped. Probing for ST M25P128, 16384 KB: skipped. Probing for ST M25PX32, 4096 KB: skipped. Probing for ST M25PX64, 8192 KB: skipped. Probing for ST M29F002B, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F002T/NT, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F040B, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F400BB, 512 KB: probe_m29f400bt: id1 0xff, id2 0xff Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0xff, id2 0xff Probing for ST M29W010B, 128 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29W040B, 512 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29W512B, 64 KB: probe_jedec_common: id1 0x05, id2 0xe0, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 KB: probe_82802ab: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for TI TMS29F002RB, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for TI TMS29F002RT, 256 KB: probe_jedec_common: id1 0xfa, id2 0x2b, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W25Q80, 1024 KB: skipped. Probing for Winbond W25Q16, 2048 KB: skipped. Probing for Winbond W25Q32, 4096 KB: skipped. Probing for Winbond W25Q64, 8192 KB: skipped. Probing for Winbond W25x10, 128 KB: skipped. Probing for Winbond W25x20, 256 KB: skipped. Probing for Winbond W25x40, 512 KB: skipped. Probing for Winbond W25x80, 1024 KB: skipped. Probing for Winbond W25x16, 2048 KB: skipped. Probing for Winbond W25x32, 4096 KB: skipped. Probing for Winbond W25x64, 8192 KB: skipped. Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W29C020(C)/W29C022, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W29C040/P, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 KB: Probing disabled for Winbond W29EE011 because the probing sequence puts the AMIC A49LF040A in a funky state. Use 'flashrom -c W29EE011' if you have a board with this chip. Probing for Winbond W39V040A, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W39V040B, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W39V040C, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W39V040FA, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W39V040FB, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W39V040FC, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W39V080A, 1024 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49F002U/N, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W49F020, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W49V002A, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W49V002FA, 256 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for Winbond W39V080FA, 1024 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e Probing for AMIC unknown AMIC SPI chip, 0 KB: skipped. Probing for Atmel unknown Atmel SPI chip, 0 KB: skipped. Probing for Eon unknown Eon SPI chip, 0 KB: skipped. Probing for Macronix unknown Macronix SPI chip, 0 KB: skipped. Probing for PMC unknown PMC SPI chip, 0 KB: skipped. Probing for SST unknown SST SPI chip, 0 KB: skipped. Probing for ST unknown ST SPI chip, 0 KB: skipped. Probing for Sanyo unknown Sanyo SPI chip, 0 KB: skipped. Probing for Generic unknown SPI chip (RDID), 0 KB: skipped. Probing for Generic unknown SPI chip (REMS), 0 KB: skipped. === This flash part has status UNTESTED for operations: WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! Flash image seems to be a legacy BIOS. Disabling checks. Reading old flash chip contents... Erasing and writing flash chip... Looking at blockwise erase function 0... trying... 0x000000-0x000fff:E, 0x001000-0x001fff:E, 0x002000-0x002fff:EW, 0x003000-0x003fff:EW, 0x004000-0x004fff:EW, 0x005000-0x005fff:EW, 0x006000-0x006fff:EW, 0x007000-0x007fff:EW, 0x008000-0x008fff:EW, 0x009000-0x009fff:EW, 0x00a000-0x00afff:EW, 0x00b000-0x00bfff:EW, 0x00c000-0x00cfff:EW, 0x00d000-0x00dfff:EW, 0x00e000-0x00efff:EW, 0x00f000-0x00ffff:EW, 0x010000-0x010fff:EW, 0x011000-0x011fff:EW, 0x012000-0x012fff:EW, 0x013000-0x013fff:EW, 0x014000-0x014fff:EW, 0x015000-0x015fff:EW, 0x016000-0x016fff:EW, 0x017000-0x017fff:EW, 0x018000-0x018fff:EW, 0x019000-0x019fff:EW, 0x01a000-0x01afff:EW, 0x01b000-0x01bfff:EW, 0x01c000-0x01cfff:EW, 0x01d000-0x01dfff:EW, 0x01e000-0x01efff:EW, 0x01f000-0x01ffff:EW, 0x020000-0x020fff:EW, 0x021000-0x021fff:EW, 0x022000-0x022fff:EW, 0x023000-0x023fff:EW, 0x024000-0x024fff:EW, 0x025000-0x025fff:EW, 0x026000-0x026fff:EW, 0x027000-0x027fff:EW, 0x028000-0x028fff:EW, 0x029000-0x029fff:EW, 0x02a000-0x02afff:EW, 0x02b000-0x02bfff:EW, 0x02c000-0x02cfff:EW, 0x02d000-0x02dfff:EW, 0x02e000-0x02efff:EW, 0x02f000-0x02ffff:EW, 0x030000-0x030fff:EW, 0x031000-0x031fff:EW, 0x032000-0x032fff:EW, 0x033000-0x033fff:EW, 0x034000-0x034fff:EW, 0x035000-0x035fff:EW, 0x036000-0x036fff:EW, 0x037000-0x037fff:EW, 0x038000-0x038fff:EW, 0x039000-0x039fff:EW, 0x03a000-0x03afff:EW, 0x03b000-0x03bfff:EW, 0x03c000-0x03cfff:EW, 0x03d000-0x03dfff:EW, 0x03e000-0x03efff:EW, 0x03f000-0x03ffff:EW, 0x040000-0x040fff:EW, 0x041000-0x041fff:EW, 0x042000-0x042fff:EW, 0x043000-0x043fff:EW, 0x044000-0x044fff:EW, 0x045000-0x045fff:EW, 0x046000-0x046fff:EW, 0x047000-0x047fff:EW, 0x048000-0x048fff:EW, 0x049000-0x049fff:EW, 0x04a000-0x04afff:EW, 0x04b000-0x04bfff:EW, 0x04c000-0x04cfff:EW, 0x04d000-0x04dfff:EW, 0x04e000-0x04efff:EW, 0x04f000-0x04ffff:EW, 0x050000-0x050fff:EW, 0x051000-0x051fff:EW, 0x052000-0x052fff:EW, 0x053000-0x053fff:EW, 0x054000-0x054fff:EW, 0x055000-0x055fff:EW, 0x056000-0x056fff:EW, 0x057000-0x057fff:EW, 0x058000-0x058fff:EW, 0x059000-0x059fff:S, 0x05a000-0x05afff:S, 0x05b000-0x05bfff:S, 0x05c000-0x05cfff:S, 0x05d000-0x05dfff:S, 0x05e000-0x05efff:S, 0x05f000-0x05ffff:EW, 0x060000-0x060fff:S, 0x061000-0x061fff:S, 0x062000-0x062fff:S, 0x063000-0x063fff:S, 0x064000-0x064fff:S, 0x065000-0x065fff:S, 0x066000-0x066fff:S, 0x067000-0x067fff:S, 0x068000-0x068fff:S, 0x069000-0x069fff:S, 0x06a000-0x06afff:S, 0x06b000-0x06bfff:S, 0x06c000-0x06cfff:E, 0x06d000-0x06dfff:E, 0x06e000-0x06efff:E, 0x06f000-0x06ffff:E, 0x070000-0x070fff:EW, 0x071000-0x071fff:EW, 0x072000-0x072fff:EW, 0x073000-0x073fff:EW, 0x074000-0x074fff:EW, 0x075000-0x075fff:EW, 0x076000-0x076fff:EW, 0x077000-0x077fff:EW, 0x078000-0x078fff:EW, 0x079000-0x079fff:EW, 0x07a000-0x07afff:S, 0x07b000-0x07bfff:S, 0x07c000-0x07cfff:S, 0x07d000-0x07dfff:S, 0x07e000-0x07efff:EW, 0x07f000-0x07ffff:EW Done. Verifying flash... VERIFIED. Restoring PCI config space for 00:11:0 reg 0x59 Restoring PCI config space for 00:11:0 reg 0x40 Restoring PCI config space for 00:11:0 reg 0x41 -------------- next part -------------- An HTML attachment was scrubbed... URL: From cell.md at gmail.com Mon Jan 2 13:34:14 2012 From: cell.md at gmail.com (Alexandru Balaban) Date: Mon, 2 Jan 2012 14:34:14 +0200 Subject: [flashrom] ASUS M2N-MX : flashrom -V Message-ID: root at wst:~# flashrom -V flashrom v0.9.4-r1394 on Linux 3.0.0-1-686-pae (i686), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1011M loops per second, 10 myus = 11 us, 100 myus = 94 us, 1000 myus = 917 us, 10000 myus = 12822 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "ASUSTeK Computer INC." DMI string system-product-name: "M2N-MX" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "M2N-MX" DMI string baseboard-version: "Rev 1.xx" DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8712 on port 0x2e Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... This chipset is not really supported yet. Guesswork... ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 Flash bus type is LPC Found SMBus device 10de:03eb at 00:01:1 MCP SPI BAR is at 0xa0000000 Strange. MCP SPI BAR is valid, but chipset apparently doesn't have SPI enabled. Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. This chipset supports the following protocols: LPC. Super I/O ID 0x8712 is not on the list of flash capable controllers. Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address 0xfff80000. Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50 === This flash part has status UNTESTED for operations: WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! No operations were specified. Restoring PCI config space for 00:01:0 reg 0x6d Restoring PCI config space for 00:01:0 reg 0x90 Restoring PCI config space for 00:01:0 reg 0x8c Restoring PCI config space for 00:01:0 reg 0x88 -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefan.tauner at student.tuwien.ac.at Mon Jan 2 23:19:01 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 2 Jan 2012 23:19:01 +0100 Subject: [flashrom] chipset:via vt8237 motherboard: p4m800pro-m v2.0 SUCCESS In-Reply-To: References: Message-ID: <201201022219.q02MJBps025352@mail2.student.tuwien.ac.at> On Mon, 2 Jan 2012 05:31:48 -0500 CHRIS HONEYCUTT wrote: > linux-poa8:/home/chris/Desktop # flashrom -V -w 070830s.ROM > flashrom v0.9.3-r1246 on Linux 2.6.37.1-1.2-default (i686), built with > [?] > DMI string system-product-name: "P4M800PRO-M" Hello CHRIS, thanks for your report! Version 1.0A was already reported as working. I have added "2.0" to that line and will commit it later. > [?] > Probing for PMC Pm49FL004, 512 KB: probe_jedec_common: id1 0x9d, id2 0x6e > Found chip "PMC Pm49FL004" (512 KB, LPC,FWH) at physical address 0xfff80000. > [?] > === > This flash part has status UNTESTED for operations: WRITE > The test status of this chip may have been updated in the latest development > version of flashrom. If you are running the latest development version, > please email a report to flashrom at 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, -Vr, > -Vw, -VE), and mention which mainboard or programmer you tested. > Please mention your board in the subject line. Thanks for your help! The chip was already reported to be completely working. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Mon Jan 2 23:30:45 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 2 Jan 2012 23:30:45 +0100 Subject: [flashrom] X8DTT-H In-Reply-To: <4EF1DD0F.70902@southpole.se> References: <4EF1DD0F.70902@southpole.se> Message-ID: <201201022231.q02MUuoU001175@mail2.student.tuwien.ac.at> On Wed, 21 Dec 2011 14:20:15 +0100 Jimmie Tauriainen wrote: > Hi, > > This is a Supermicro X8DTT-HIBQF but it uses the same BIOS as X8DTT-H as > refered in DMI. Probably all H8DTT* boards uses same. > > Anyway attaching flashrom -V outputs. hmmm Sorry for the late reply. I just notices that you were using r1478, which had one important fix missing which was added in r1479. maybe that did not actually matter, but i would try anyway with a current snapshot or 0.9.4. You have read a backup file... did you look at the contents? How big is it? -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From c-d.hailfinger.devel.2006 at gmx.net Tue Jan 3 01:04:37 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Tue, 03 Jan 2012 01:04:37 +0100 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard In-Reply-To: <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> References: <4F011B08.1070603@gmx.net> <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> Message-ID: <4F024615.4020003@gmx.net> Am 02.01.2012 11:29 schrieb Stefan Tauner: > On Mon, 02 Jan 2012 03:48:40 +0100 > Carl-Daniel Hailfinger wrote: > >> --mainboard is a relic from a time before external programmers and makes >> the CLI inconsistent. >> Use a programmer parameter instead and free up the short option -m. >> >> A nice side effect is that there is one less corner case we have to care >> about in the logging patch. >> >> Signed-off-by: Carl-Daniel Hailfinger > the following hunk should get its own note in the changelog if it is > merged imho. > >> Index: flashrom-kill_cli_mainboard_parameter/cbtable.c >> =================================================================== >> --- flashrom-kill_cli_mainboard_parameter/cbtable.c (Revision 1482) >> +++ flashrom-kill_cli_mainboard_parameter/cbtable.c (Arbeitskopie) >> @@ -33,17 +33,19 @@ >> char *lb_part = NULL, *lb_vendor = NULL; >> int partvendor_from_cbtable = 0; >> >> -void lb_vendor_dev_from_string(char *boardstring) >> +void lb_vendor_dev_from_string(const char *boardstring) >> { >> + /* strtok may modify the original string. */ >> + char *tempstr = strdup(boardstring); >> char *tempstr2 = NULL; >> - strtok(boardstring, ":"); >> + strtok(tempstr, ":"); >> tempstr2 = strtok(NULL, ":"); >> if (tempstr2) { >> - lb_vendor = boardstring; >> + lb_vendor = tempstr; >> lb_part = tempstr2; >> } else { >> lb_vendor = NULL; >> - lb_part = boardstring; >> + lb_part = tempstr; >> } > hm... we want something like > free(tempstr); > due to the strdup call but since we change the pointer in the process we > do no longer know where the string started. > and of course we would still want the extracted tokens to remain valid, > so that would require another strdup... oh my. > > hm but if the boardstring contains the wanted data only, the current > version might be good enough. if we feed it with the return value of > extract_programmer_param only (as we do atm) this is somewhat ok. not > very obvious but at least not too leaky :) > > and if (tempstr == NULL) is not handled (because empty arguments are > checked for in the caller?). OTOH it is not really necessary because > both strings are set to NULL then, but it is also not obvious that this > is wanted. I tried to get the code right this time, but now it leaks lb_part and lb_vendor allocations (consistent with other places setting lb_part and lb_vendor) and we'd have to free them in some internal_shutdown handler. That said, such one-time leaks are all over the place and should be fixed once programmer_init()/programmer_shutdown() can be called multiple times pairwise in a row. > please add a function comment explaining that stuff. Sure. > aaaand... please use grep -- -m yourself, there are other bits > referring to the old syntax. Sorry, fixed this time. > the whole cb string handling is a bit messy. Understatement of the week. > in internal_init we call extract_programmer_param("mainboard") to get > the user input. then call lb_vendor_dev_from_string on the result, which > internally sets a global variable. > later in the same internal_init function we call board_flash_enable with > the global variables as arguments. > > the only other user is show_id in layout.c show_id() even has a comment which says it should be moved to cbtable.c. > if we work around that and make lb_vendor_dev_from_string return the two > strings, we could make lb_part and lb_vendor static. > > id suggest splitting the patch and fix the lb_vendor_dev_from_string > hunk together with the other cb table stuff. the -m removals are hard > enough apparently to justify a patch on its own ;) The code calling lb_vendor_dev_from_string() changed too much and I don't really trust myself to remember fixing the bug if I don't do it now. Hopefully it is OK this time. New patch. --mainboard is a relic from a time before external programmers and makes the CLI inconsistent. Use a programmer parameter instead and free up the short option -m. NOTE: The --list-supported-wiki output changed to use -p internal:mainboard= instead of -m The --list-supported output changed the heading of the mainboard list from Vendor Board Status Required option to Vendor Board Status Required option for -p internal:mainboard= I welcome comments on the --list-supported output change. Fix lb_vendor_dev_from_string() not to write to the supplied string. Signed-off-by: Carl-Daniel Hailfinger Index: flashrom-kill_cli_mainboard_parameter/cli_classic.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/cli_classic.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/cli_classic.c (Arbeitskopie) @@ -106,7 +106,7 @@ "-z|" #endif "-E|-r |-w |-v ]\n" - " [-c ] [-m [:]] [-l ]\n" + " [-c ] [-l ]\n" " [-i ] [-p [:]]\n\n"); printf("Please note that the command line interface for flashrom has " @@ -128,11 +128,6 @@ " -V | --verbose more verbose output\n" " -c | --chip probe only for specified " "flash chip\n" -#if CONFIG_INTERNAL == 1 - /* FIXME: --mainboard should be a programmer parameter */ - " -m | --mainboard <[vendor:]part> override mainboard " - "detection\n" -#endif " -f | --force force specific operations " "(see man page)\n" " -n | --noverify don't auto-verify\n" @@ -190,7 +185,6 @@ {"verify", 1, NULL, 'v'}, {"noverify", 0, NULL, 'n'}, {"chip", 1, NULL, 'c'}, - {"mainboard", 1, NULL, 'm'}, {"verbose", 0, NULL, 'V'}, {"force", 0, NULL, 'f'}, {"layout", 1, NULL, 'l'}, @@ -275,17 +269,6 @@ } erase_it = 1; break; - case 'm': -#if CONFIG_INTERNAL == 1 - tempstr = strdup(optarg); - lb_vendor_dev_from_string(tempstr); -#else - fprintf(stderr, "Error: Internal programmer support " - "was not compiled in and --mainboard only\n" - "applies to the internal programmer. Aborting.\n"); - cli_classic_abort_usage(); -#endif - break; case 'f': force = 1; break; @@ -426,14 +409,6 @@ if (prog == PROGRAMMER_INVALID) prog = default_programmer; -#if CONFIG_INTERNAL == 1 - if ((prog != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) { - fprintf(stderr, "Error: --mainboard requires the internal " - "programmer. Aborting.\n"); - cli_classic_abort_usage(); - } -#endif - /* FIXME: Delay calibration should happen in programmer code. */ myusec_calibrate_delay(); Index: flashrom-kill_cli_mainboard_parameter/internal.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/internal.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/internal.c (Arbeitskopie) @@ -213,6 +213,16 @@ } free(arg); + arg = extract_programmer_param("mainboard"); + if (arg && strlen(arg)) { + lb_vendor_dev_from_string(arg); + } else if (arg && !strlen(arg)) { + msg_perr("Missing argument for mainboard.\n"); + free(arg); + return 1; + } + free(arg); + get_io_perms(); if (register_shutdown(internal_shutdown, NULL)) return 1; Index: flashrom-kill_cli_mainboard_parameter/layout.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/layout.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/layout.c (Arbeitskopie) @@ -106,11 +106,11 @@ /* * If lb_vendor is not set, the coreboot table was - * not found. Nor was -m VENDOR:PART specified. + * not found. Nor was -p internal:mainboard=VENDOR:PART specified. */ if (!lb_vendor || !lb_part) { - msg_pinfo("Note: If the following flash access fails, " - "try -m :.\n"); + msg_pinfo("Note: If the following flash access fails, try " + "-p internal:mainboard=:.\n"); return 0; } @@ -126,14 +126,17 @@ "seem to fit to this machine - forcing it.\n"); } else { msg_pinfo("ERROR: Your firmware image (%s:%s) does not " - "appear to\n be correct for the detected " - "mainboard (%s:%s)\n\nOverride with -p internal:" - "boardmismatch=force if you are absolutely sure " - "that\nyou are using a correct " - "image for this mainboard or override\nthe detected " - "values with --mainboard :.\n\n", - mainboard_vendor, mainboard_part, lb_vendor, - lb_part); + "appear to\n" + " be correct for the detected " + "mainboard (%s:%s)\n\n" + "Override with -p internal:boardmismatch=" + "force if you are absolutely sure that\n" + "you are using a correct image for this " + "mainboard or override\n" + "the detected values with -p internal:" + "mainboard=:.\n\n", + mainboard_vendor, mainboard_part, lb_vendor, + lb_part); exit(1); } } Index: flashrom-kill_cli_mainboard_parameter/print_wiki.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/print_wiki.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/print_wiki.c (Arbeitskopie) @@ -167,7 +167,7 @@ boards[i].url ? boards[i].url : "", boards[i].name, boards[i].url ? "]" : "", - b[k].lb_vendor ? "-m " : "—", + b[k].lb_vendor ? "-p internal:mainboard= " : "—", b[k].lb_vendor ? b[k].lb_vendor : "", b[k].lb_vendor ? ":" : "", b[k].lb_vendor ? b[k].lb_part : "", Index: flashrom-kill_cli_mainboard_parameter/cbtable.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/cbtable.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/cbtable.c (Arbeitskopie) @@ -33,18 +33,21 @@ char *lb_part = NULL, *lb_vendor = NULL; int partvendor_from_cbtable = 0; -void lb_vendor_dev_from_string(char *boardstring) +void lb_vendor_dev_from_string(const char *boardstring) { + /* strtok may modify the original string. */ + char *tempstr = strdup(boardstring); char *tempstr2 = NULL; - strtok(boardstring, ":"); + strtok(tempstr, ":"); tempstr2 = strtok(NULL, ":"); if (tempstr2) { - lb_vendor = boardstring; - lb_part = tempstr2; + lb_vendor = strdup(tempstr); + lb_part = strdup(tempstr2); } else { lb_vendor = NULL; - lb_part = boardstring; + lb_part = strdup(tempstr); } + free(tempstr); } static unsigned long compute_checksum(void *addr, unsigned long length) Index: flashrom-kill_cli_mainboard_parameter/flashrom.8 =================================================================== --- flashrom-kill_cli_mainboard_parameter/flashrom.8 (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/flashrom.8 (Arbeitskopie) @@ -5,7 +5,7 @@ .B flashrom \fR[\fB\-n\fR] [\fB\-V\fR] [\fB\-f\fR] [\fB\-h\fR|\fB\-R\fR|\ \fB\-L\fR|\fB\-z\fR|\fB\-E\fR|\fB\-r\fR |\fB\-w\fR |\ \fB\-v\fR ] - [\fB\-c\fR ] [\fB\-m\fR [:]] \ + [\fB\-c\fR ] \ [\fB\-l\fR ] [\fB\-i\fR ] [\fB\-p\fR [:]] .SH DESCRIPTION @@ -88,19 +88,6 @@ without the vendor name as parameter. Please note that the chip name is case sensitive. .TP -.B "\-m, \-\-mainboard" [:] -Override mainboard settings. -.sp -flashrom reads the coreboot table to determine the current mainboard. If no -coreboot table could be read or if you want to override these values, you can -specify \-m, e.g.: -.sp -.B " flashrom \-\-mainboard AGAMI:ARUMA \-w agami_aruma.rom" -.sp -See the 'Known boards' or 'Known laptops' section in the output -of 'flashrom \-L' for a list of boards which require the specification of -the board name, if no coreboot table is found. -.TP .B "\-f, \-\-force" Force one or more of the following actions: .sp @@ -245,11 +232,16 @@ running coreboot, the mainboard type is determined from the coreboot table. Otherwise, the mainboard is detected by examining the onboard PCI devices and possibly DMI info. If PCI and DMI do not contain information to uniquely -identify the mainboard (which is the exception), it might be necessary to -specify the mainboard using the -.B \-m -switch (see above). +identify the mainboard (which is the exception), or if you want to override +the detected mainboard model, you can specify the mainboard using the .sp +.B " flashrom \-p internal:mainboard=[:]" +syntax. +.sp +See the 'Known boards' or 'Known laptops' section in the output +of 'flashrom \-L' for a list of boards which require the specification of +the board name, if no coreboot table is found. +.sp Some of these board-specific flash enabling functions (called .BR "board enables" ) in flashrom have not yet been tested. If your mainboard is detected needing Index: flashrom-kill_cli_mainboard_parameter/programmer.h =================================================================== --- flashrom-kill_cli_mainboard_parameter/programmer.h (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/programmer.h (Arbeitskopie) @@ -264,7 +264,7 @@ void cleanup_cpu_msr(void); /* cbtable.c */ -void lb_vendor_dev_from_string(char *boardstring); +void lb_vendor_dev_from_string(const char *boardstring); int coreboot_init(void); extern char *lb_part, *lb_vendor; extern int partvendor_from_cbtable; Index: flashrom-kill_cli_mainboard_parameter/print.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/print.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/print.c (Arbeitskopie) @@ -389,7 +389,10 @@ for (i = strlen("Board"); i < maxboardlen; i++) msg_ginfo(" "); - msg_ginfo("Status Required option\n\n"); + msg_ginfo("Status Required option for\n"); + for (i = 0; i < maxvendorlen + maxboardlen + strlen("Status "); i++) + msg_ginfo(" "); + msg_ginfo("-p internal:mainboard=\n"); for (b = boards; b->vendor != NULL; b++) { msg_ginfo("%s", b->vendor); @@ -407,7 +410,7 @@ if (e->lb_vendor == NULL) msg_ginfo("(autodetected)"); else - msg_ginfo("-m %s:%s", e->lb_vendor, + msg_ginfo("%s:%s", e->lb_vendor, e->lb_part); } msg_ginfo("\n"); Index: flashrom-kill_cli_mainboard_parameter/board_enable.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/board_enable.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/board_enable.c (Arbeitskopie) @@ -2070,7 +2070,8 @@ * The coreboot ids are used two fold. When running with a coreboot firmware, * the ids uniquely matches the coreboot board identification string. When a * legacy bios is installed and when autodetection is not possible, these ids - * can be used to identify the board through the -m command line argument. + * can be used to identify the board through the -p internal:mainboard= + * programmer parameter. * * When a board is identified through its coreboot ids (in both cases), the * main pci ids are still required to match, as a safeguard. @@ -2245,7 +2246,8 @@ msg_pinfo("AMBIGUOUS BOARD NAME: %s\n", part); msg_pinfo("At least vendors '%s' and '%s' match.\n", partmatch->lb_vendor, board->lb_vendor); - msg_perr("Please use the full -m vendor:part syntax.\n"); + msg_perr("Please use the full -p internal:mainboard=" + "vendor:part syntax.\n"); return NULL; } partmatch = board; @@ -2259,7 +2261,8 @@ * coreboot table. If it was, the coreboot implementor is * expected to fix flashrom, too. */ - msg_perr("\nUnknown vendor:board from -m option: %s:%s\n\n", + msg_perr("\nUnknown vendor:board from -p internal:mainboard=" + " programmer parameter:\n%s:%s\n\n", vendor, part); } return NULL; -- http://www.hailfinger.org/ From c-d.hailfinger.devel.2006 at gmx.net Tue Jan 3 01:40:56 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Tue, 03 Jan 2012 01:40:56 +0100 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard In-Reply-To: References: <4F011B08.1070603@gmx.net> <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> <4F024615.4020003@gmx.net> Message-ID: <4F024E98.4050709@gmx.net> Hey Ron, nice to see you still reading the list! Am 03.01.2012 01:10 schrieb ron minnich: > Do leaks really matter in this kind of program? Sure, you're going to > leak; how much? Sometimes with this type of code you let it leak, and > it ends up simpler otherwise. How much leakage are we talking about > here? I'd say a few dozen bytes are leaking, and this is only an issue if some flashrom GUI using libflashrom calls programmer_init and programmer_shutdown a few thousand times. > I only ask because I was talking to someone a year ago who did not > realize that the OS reclaimed all the storage a program leaked when > the program exited :-) The poor guy was getting tangled up in knots > over a 4k leak which in the long run really was of not importance ... Ouch, not knowing about OS reclaim can indeed lead to painful programming. My worries about leaks are mostly about repeated libflashrom uses. You're absolutely right that for a normal flashrom CLI invocation, one-time leaks (no continuous leakage during one flashing operation) don't matter at all. Regards, Carl-Daniel From rminnich at gmail.com Tue Jan 3 01:10:47 2012 From: rminnich at gmail.com (ron minnich) Date: Mon, 2 Jan 2012 19:10:47 -0500 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard In-Reply-To: <4F024615.4020003@gmx.net> References: <4F011B08.1070603@gmx.net> <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> <4F024615.4020003@gmx.net> Message-ID: Do leaks really matter in this kind of program? Sure, you're going to leak; how much? Sometimes with this type of code you let it leak, and it ends up simpler otherwise. How much leakage are we talking about here? I only ask because I was talking to someone a year ago who did not realize that the OS reclaimed all the storage a program leaked when the program exited :-) The poor guy was getting tangled up in knots over a 4k leak which in the long run really was of not importance ... ron From stefan.tauner at student.tuwien.ac.at Tue Jan 3 09:52:11 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 3 Jan 2012 09:52:11 +0100 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard In-Reply-To: <4F024615.4020003@gmx.net> References: <4F011B08.1070603@gmx.net> <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> <4F024615.4020003@gmx.net> Message-ID: <201201030852.q038qNWs001454@mail2.student.tuwien.ac.at> On Tue, 03 Jan 2012 01:04:37 +0100 Carl-Daniel Hailfinger wrote: > Am 02.01.2012 11:29 schrieb Stefan Tauner: > > On Mon, 02 Jan 2012 03:48:40 +0100 > > Carl-Daniel Hailfinger wrote: > > > >> --mainboard is a relic from a time before external programmers and makes > >> the CLI inconsistent. > >> Use a programmer parameter instead and free up the short option -m. > >> > >> A nice side effect is that there is one less corner case we have to care > >> about in the logging patch. > >> > >> Signed-off-by: Carl-Daniel Hailfinger > > the following hunk should get its own note in the changelog if it is > > merged imho. > > > >> Index: flashrom-kill_cli_mainboard_parameter/cbtable.c > >> =================================================================== > >> --- flashrom-kill_cli_mainboard_parameter/cbtable.c (Revision 1482) > >> +++ flashrom-kill_cli_mainboard_parameter/cbtable.c (Arbeitskopie) > >> @@ -33,17 +33,19 @@ > >> char *lb_part = NULL, *lb_vendor = NULL; > >> int partvendor_from_cbtable = 0; > >> > >> -void lb_vendor_dev_from_string(char *boardstring) > >> +void lb_vendor_dev_from_string(const char *boardstring) > >> { > >> + /* strtok may modify the original string. */ > >> + char *tempstr = strdup(boardstring); > >> char *tempstr2 = NULL; > >> - strtok(boardstring, ":"); > >> + strtok(tempstr, ":"); > >> tempstr2 = strtok(NULL, ":"); > >> if (tempstr2) { > >> - lb_vendor = boardstring; > >> + lb_vendor = tempstr; > >> lb_part = tempstr2; > >> } else { > >> lb_vendor = NULL; > >> - lb_part = boardstring; > >> + lb_part = tempstr; > >> } > > hm... we want something like > > free(tempstr); > > due to the strdup call but since we change the pointer in the process we > > do no longer know where the string started. > > and of course we would still want the extracted tokens to remain valid, > > so that would require another strdup... oh my. > > > > hm but if the boardstring contains the wanted data only, the current > > version might be good enough. if we feed it with the return value of > > extract_programmer_param only (as we do atm) this is somewhat ok. not > > very obvious but at least not too leaky :) > > > > and if (tempstr == NULL) is not handled (because empty arguments are > > checked for in the caller?). OTOH it is not really necessary because > > both strings are set to NULL then, but it is also not obvious that this > > is wanted. > > I tried to get the code right this time, but now it leaks lb_part and > lb_vendor allocations (consistent with other places setting lb_part and > lb_vendor) and we'd have to free them in some internal_shutdown handler. well that's not the only problem imo. you can't free tempstr like that, because it gets modified by strtok. i am not 100% sure what your version would do actually. the address tempstr points to, may be one that was not (the start of) an allocated area. what does calling free on that do according to the standard? please look further below for my version which saves the original address of tempstr in a new variable and frees that one at the end. > That said, such one-time leaks are all over the place and should be > fixed once programmer_init()/programmer_shutdown() can be called > multiple times pairwise in a row. > > > please add a function comment explaining that stuff. > > Sure. missing in this iteration > > > the whole cb string handling is a bit messy. > > Understatement of the week. oh well, i rant so much so i have to be comforting and polite at least SOMETIMES :) > > > in internal_init we call extract_programmer_param("mainboard") to get > > the user input. then call lb_vendor_dev_from_string on the result, which > > internally sets a global variable. > > later in the same internal_init function we call board_flash_enable with > > the global variables as arguments. > > > > the only other user is show_id in layout.c > > show_id() even has a comment which says it should be moved to cbtable.c. > > > > if we work around that and make lb_vendor_dev_from_string return the two > > strings, we could make lb_part and lb_vendor static. > > > > id suggest splitting the patch and fix the lb_vendor_dev_from_string > > hunk together with the other cb table stuff. the -m removals are hard > > enough apparently to justify a patch on its own ;) > > The code calling lb_vendor_dev_from_string() changed too much and I > don't really trust myself to remember fixing the bug if I don't do it > now. Hopefully it is OK this time. > > New patch. > > --mainboard is a relic from a time before external programmers and makes > the CLI inconsistent. > Use a programmer parameter instead and free up the short option -m. > > NOTE: > The --list-supported-wiki output changed to use -p internal:mainboard= > instead of -m > The --list-supported output changed the heading of the mainboard list from > > Vendor Board Status Required option > > to > Vendor Board Status Required option for > -p internal:mainboard= > > > I welcome comments on the --list-supported output change. > > Fix lb_vendor_dev_from_string() not to write to the supplied string. > > Signed-off-by: Carl-Daniel Hailfinger > > [?] > Index: flashrom-kill_cli_mainboard_parameter/layout.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/layout.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/layout.c (Arbeitskopie) > [?] > @@ -126,14 +126,17 @@ > "seem to fit to this machine - forcing it.\n"); > } else { > msg_pinfo("ERROR: Your firmware image (%s:%s) does not " > - "appear to\n be correct for the detected " > - "mainboard (%s:%s)\n\nOverride with -p internal:" > - "boardmismatch=force if you are absolutely sure " > - "that\nyou are using a correct " > - "image for this mainboard or override\nthe detected " > - "values with --mainboard :.\n\n", > - mainboard_vendor, mainboard_part, lb_vendor, > - lb_part); > + "appear to\n" > + " be correct for the detected " > + "mainboard (%s:%s)\n\n" > + "Override with -p internal:boardmismatch=" > + "force if you are absolutely sure that\n" > + "you are using a correct image for this " > + "mainboard or override\n" > + "the detected values with -p internal:" > + "mainboard=:.\n\n", > + mainboard_vendor, mainboard_part, lb_vendor, > + lb_part); imho this dual use is wrong. if we would not have the override switch, it would be somewhat ok, but since we do, the mainboard= values should be only hints. what does the code do if boardmismatch=force AND mainboard=... is given? just from the message above, i can't tell (not that i should be able to, but it suggests an inconsistency. > exit(1); > } > } > Index: flashrom-kill_cli_mainboard_parameter/print_wiki.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/print_wiki.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/print_wiki.c (Arbeitskopie) > @@ -167,7 +167,7 @@ > boards[i].url ? boards[i].url : "", > boards[i].name, > boards[i].url ? "]" : "", > - b[k].lb_vendor ? "-m " : "—", > + b[k].lb_vendor ? "-p internal:mainboard= " : "—", the space at the end is wrong for sure. i have looked at the output and it of course makes the column larger, a bit larger than the model name column (which is quite huge :) i think it is reasonable though. the whole table is split into two main columns so there is plenty of screen space before this patch, and still some after (i.e. there are wider tables in the output). > b[k].lb_vendor ? b[k].lb_vendor : "", > b[k].lb_vendor ? ":" : "", > b[k].lb_vendor ? b[k].lb_part : "", > Index: flashrom-kill_cli_mainboard_parameter/cbtable.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/cbtable.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/cbtable.c (Arbeitskopie) > @@ -33,18 +33,21 @@ > char *lb_part = NULL, *lb_vendor = NULL; > int partvendor_from_cbtable = 0; > > -void lb_vendor_dev_from_string(char *boardstring) > +void lb_vendor_dev_from_string(const char *boardstring) > { > + /* strtok may modify the original string. */ > + char *tempstr = strdup(boardstring); + char *freestr = tempstr; > char *tempstr2 = NULL; > - strtok(boardstring, ":"); > + strtok(tempstr, ":"); > tempstr2 = strtok(NULL, ":"); > if (tempstr2) { > - lb_vendor = boardstring; > - lb_part = tempstr2; > + lb_vendor = strdup(tempstr); > + lb_part = strdup(tempstr2); > } else { > lb_vendor = NULL; > - lb_part = boardstring; > + lb_part = strdup(tempstr); > } > + free(tempstr); instead: + free(freestr); > } > > static unsigned long compute_checksum(void *addr, unsigned long length) > [?] > Index: flashrom-kill_cli_mainboard_parameter/print.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/print.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/print.c (Arbeitskopie) > @@ -389,7 +389,10 @@ > for (i = strlen("Board"); i < maxboardlen; i++) > msg_ginfo(" "); > > - msg_ginfo("Status Required option\n\n"); > + msg_ginfo("Status Required option for\n"); for me the option is "mainboard" and the specific mainboard strings are the parameter for this option. hence i would write "Required parameter for" here. The format looks ok on my machine. > + for (i = 0; i < maxvendorlen + maxboardlen + strlen("Status "); i++) > + msg_ginfo(" "); > + msg_ginfo("-p internal:mainboard=\n"); > [?] > Index: flashrom-kill_cli_mainboard_parameter/board_enable.c > =================================================================== > --- flashrom-kill_cli_mainboard_parameter/board_enable.c (Revision 1482) > +++ flashrom-kill_cli_mainboard_parameter/board_enable.c (Arbeitskopie) > @@ -2070,7 +2070,8 @@ > * The coreboot ids are used two fold. When running with a coreboot firmware, > * the ids uniquely matches the coreboot board identification string. When a > * legacy bios is installed and when autodetection is not possible, these ids > - * can be used to identify the board through the -m command line argument. > + * can be used to identify the board through the -p internal:mainboard= > + * programmer parameter. here it is the other way round from above... imo: "option" instead of "parameter" because the sentence references the "mainboard=" part, which to me is the option. no idea if there is a textbook definition for this stuff... or if anyone besides me cares :) > * > * When a board is identified through its coreboot ids (in both cases), the > * main pci ids are still required to match, as a safeguard. > @@ -2245,7 +2246,8 @@ > msg_pinfo("AMBIGUOUS BOARD NAME: %s\n", part); > msg_pinfo("At least vendors '%s' and '%s' match.\n", > partmatch->lb_vendor, board->lb_vendor); > - msg_perr("Please use the full -m vendor:part syntax.\n"); > + msg_perr("Please use the full -p internal:mainboard=" > + "vendor:part syntax.\n"); > return NULL; > } > partmatch = board; > @@ -2259,7 +2261,8 @@ > * coreboot table. If it was, the coreboot implementor is > * expected to fix flashrom, too. > */ > - msg_perr("\nUnknown vendor:board from -m option: %s:%s\n\n", > + msg_perr("\nUnknown vendor:board from -p internal:mainboard=" > + " programmer parameter:\n%s:%s\n\n", ditto apart from the free call in cbtable.c (+ the missing comment) and the additional space in the wiki output this is Acked-by: Stefan Tauner NB: i have not verified row length limitations in code or output, or the resulting manpage layout. also, i have not rechecked for forgotten -m or --mainboard references this time. :) -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 3 13:55:18 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 3 Jan 2012 13:55:18 +0100 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard In-Reply-To: <201201030852.q038qNWs001454@mail2.student.tuwien.ac.at> References: <4F011B08.1070603@gmx.net> <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> <4F024615.4020003@gmx.net> <201201030852.q038qNWs001454@mail2.student.tuwien.ac.at> Message-ID: <201201031255.q03CtWgR031971@mail2.student.tuwien.ac.at> On Tue, 3 Jan 2012 09:52:11 +0100 Stefan Tauner wrote: > > I tried to get the code right this time, but now it leaks lb_part and > > lb_vendor allocations (consistent with other places setting lb_part and > > lb_vendor) and we'd have to free them in some internal_shutdown handler. > well that's not the only problem imo. you can't free tempstr like that, > because it gets modified by strtok. i am not 100% sure what your > version would do actually. the address tempstr points to, may be > one that was not (the start of) an allocated area. what does > calling free on that do according to the standard? > uh... too early. strike all of that. of course the reference itself cant be changed out of the function itself just the referenced data/string is changed. so it points to the same address all of the time and your version is fine actually. > please look further below ... no, please dont :) -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From Raghuramchary.Jallipalli at lntinfotech.com Tue Jan 3 18:21:42 2012 From: Raghuramchary.Jallipalli at lntinfotech.com (Raghuramchary Jallipalli) Date: Tue, 3 Jan 2012 22:51:42 +0530 Subject: [flashrom] Help: unable to upgrade bios In-Reply-To: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> References: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> Message-ID: Hello Stefan, Do you have any plans to support the laptops with QM67 chipset and AT25DF321A, AT25DF641A flashchips, to upgrade the bios gracefully? If yes, can you please give us the timeline. Appreciate your help. Thanks, Raghu -----Original Message----- From: Stefan Tauner [mailto:stefan.tauner at student.tuwien.ac.at] Sent: Thursday, December 29, 2011 5:51 PM To: Raghuramchary Jallipalli Cc: flashrom at flashrom.org Subject: Re: [flashrom] Help: unable to upgrade bios On Thu, 29 Dec 2011 12:09:42 +0530 Raghuramchary Jallipalli wrote: > Hello Experts, > I have tried installing the flashrom-0.9.4 in my laptop having Ubuntu 9.10. The flashchip is AT25DF321A and the chipset is QM67. When I tried to execute the flashrom utility I got the below output: > ######################### > > root at ubuntu:~# > > root at ubuntu:~# flashrom > > flashrom v0.9.4-r1395 on Linux 2.6.31-14-generic (i686), built with libpci 3.0.0, GCC 4.4.1, little endian flashrom is free software, get the source code at http://www.flashrom.org > > > > Calibrating delay loop... OK. > > ======================================================================== > > WARNING! You seem to be running flashrom on an unsupported laptop. > > Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller > > (EC) in these machines often interacts badly with flashing. > > See http://www.flashrom.org/Laptops for details. > > > > If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. > > Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. > > You have been warned. > > ======================================================================== > > Aborting. > > root at ubuntu:~# > > root at ubuntu:~# > ########################### > > Can anyone please help on how to proceed further? > Hello Raghu! The answer to your question can be found in the manpage of flashrom. The warning is set up for a reason (explained in the warning itself, the linked webpage and also in the manpage). If you understand and accept the possible consequences go ahead with the procedure in the manpage. Most probably it will not work even then, because the QM67 chipset can is probably locked down, which we can not unlock yet. We could verify that with a verbose log (after following the manpage). It would also be interesting to know which laptop that is (then). This procedure is not to annoy you, but to ensure that users do not take the warning lightly and look at it more closely. -- Kind regards/Mit freundlichen Gren, Stefan Tauner The contents of this e-mail and any attachment(s) may contain confidential or privileged information for the intended recipient(s). Unintended recipients are prohibited from taking action on the basis of information in this e-mail and using or disseminating the information, and must notify the sender and delete it from their system. L&T Infotech will not accept responsibility or liability for the accuracy or completeness of, or the presence of any virus or disabling code in this e-mail" ************************************************************************* This email and attachments have been scanned for potential proprietary or sensitive information leakage. Websense Data Security, Protecting Your Information from the Inside Out. www.websense.com ************************************************************************* From roysjosh at gmail.com Tue Jan 3 19:03:05 2012 From: roysjosh at gmail.com (Joshua Roys) Date: Tue, 03 Jan 2012 13:03:05 -0500 Subject: [flashrom] AMD SB7xx/SB8xx w/IMC: enable specs In-Reply-To: <4EFDB19D.7000303@assembler.cz> References: <4C6D4AE1.3010701@gmail.com> <4EFDB19D.7000303@assembler.cz> Message-ID: <4F0342D9.8060107@gmail.com> On 12/30/2011 07:42 AM, Rudolf Marek wrote: > Hi all, > > I know bit more about IMC now (I did some research in this direction). > >> 8. Do some IO: > > I know what it is. It is mailbox interface to the firmware. I described > that here: http://www.coreboot.org/AMD_IMC the 0x3e base is set in LDN9 > as mailbox base. You should obtain this address from the LDN9. > Nicely done! >> 8.a. Write 0x82 to 0x003E >> 8.b. Write 0x00 to 0x003F >> 8.c. Write 0x83 to 0x003E >> 8.d. Write 0xB4 to 0x003F > > Are you sure the 0x00 goes to 82? and B4 goes to 83? While analyzing the > firmware I think it was vice-versa. I can recheck this. > I'm fairly certain that is correct for the firmware I'm looking at. 0x00 to 0x82 is not an argument to the "send IMC command" function; it is hard-coded as the second step of the function after checking the IMC present/active bit. >> 8.e. Write 0x84 to 0x003E >> 8.f. Write 0x00 to 0x003F >> 8.g. Write 0x80 to 0x003E >> 8.h. Write 0x96 to 0x003F > > The command is 0x96 which means go to sleep. You should check in 0x82 > for 0xfa maybe? It means firmware acked command. > >> 12. Set bit 0 in SMBus/ACPI register 79 (00:14.00[79]) >> 13. Set bit 6 in Isa_Misc > > Hm the bit6 is documented in SB600 and it shhould be used only if PCI > bus is used instead of flash.? > I haven't the foggiest idea. Maybe it was slightly re-tasked to enable writes to "things that aren't internal/BIOS" flash? Josh From c-d.hailfinger.devel.2006 at gmx.net Tue Jan 3 20:59:56 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Tue, 03 Jan 2012 20:59:56 +0100 Subject: [flashrom] [RFC] Merging EC support from chromium trees Message-ID: <4F035E3C.8000905@gmx.net> The authoritative svn master tree at flashrom.org and the Google ChromiumOS flashrom tree have diverged quite a bit in terms of hardware support, especially for Embedded Controllers (EC). That is unfortunate because all interface rework and all cleanups in main flashrom have to be ported by hand (if they are done at all) to the ChromiumOS tree with some potential for errors during merge/porting. The EC support code in the ChromiumOS tree needs a few cleanups to be closer to the style and durability requirements we have for flashrom.org svn, but keeping the code outside our tree won't improve it. The same argument applies to Nvidia Tegra support. The Linux kernel has a staging directory, I propose we use a similar mechanism for flashrom (without the special staging/ directory, though): Merge driver files as-is and clean them up in our tree, but have all hooks for the staging code inside #ifdef EXPERIMENTAL or somesuch. Any cleanups for that code can happen in flashrom.org svn, and whenever Google wants to merge the cleanups into their tree, they can do so easily. If code is determined to be ready for inclusion, we can simply remove #ifdef EXPERIMENTAL from its hooks. Comments? Thoughts? Regards, Carl-Daniel -- http://www.hailfinger.org/ From ekso at yandex.ru Tue Jan 3 22:13:48 2012 From: ekso at yandex.ru (ekso) Date: Wed, 04 Jan 2012 01:13:48 +0400 Subject: [flashrom] GIGABYTE M61P-S3 Message-ID: <1056311325625228@web125.yandex.ru> Hi This chipset is not really supported yet... Please view attached file. -------------- next part -------------- A non-text attachment was scrubbed... Name: newfile Type: application/octet-stream Size: 17768 bytes Desc: not available URL: From sb at polygon-gmbh.com Tue Jan 3 16:01:38 2012 From: sb at polygon-gmbh.com (Sebastian Schreier) Date: Tue, 03 Jan 2012 16:01:38 +0100 Subject: [flashrom] Reading old flash chip contents... Transaction error! Message-ID: <4F031852.4010400@polygon-gmbh.com> flashrom v0.9.4-r1457 on Linux 3.1.6-1-desktop (x86_64), built with libpci 3.1.7, GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585], little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 3390M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 999 us, 10000 myus = 9986 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "P8H61-M LE/USB3" DMI string baseboard-version: "Rev x.0x" DMI string chassis-type: "Desktop" Found chipset "Intel H61" with PCI ID 8086:1c5c. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! 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: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 Root Complex Register Block address = 0xfed1c000 GCS = 0xc24: BIOS Interface Lock-Down: disabled, Boot BIOS Straps: 0x3 (SPI) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3800 0x04: 0x6008 (HSFS) HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=0 0x06: 0x0000 (HSFC) HSFC: FGO=0, FCYCLE=0, FDBC=0, SME=0 0x08: 0x00001000 (FADDR) 0x50: 0x00000a0b (FRAP) BMWAG 0x00, BMRAG 0x00, BRWA 0x0a, BRRA 0x0b 0x54: 0x00000000 (FREG0: Flash Descriptor) 0x00000000-0x00000fff is read-only 0x58: 0x03ff0180 (FREG1: BIOS) 0x00180000-0x003fffff is read-write 0x5C: 0x017f0001 (FREG2: Management Engine) 0x00001000-0x0017ffff is locked 0x60: 0x00000fff (FREG3: Gigabit Ethernet) Gigabit Ethernet region is unused. 0x64: 0x00000fff (FREG4: Platform Data) Platform Data region is unused. 0x90: 0x84 (SSFS) SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 0x91: 0xf80000 (SSFC) SSFC: SCGO=0, ACS=0, SPOP=0, COP=0, DBC=0, SME=0, SCF=0 0x94: 0x0006 (PREOP) 0x96: 0x043b (OPTYPE) 0x98: 0x05200302 (OPMENU) 0x9C: 0x0000019f (OPMENU+4) 0xA0: 0x00000000 (BBAR) 0xC4: 0x00002005 (LVSCC) LVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0 0xC8: 0x00002005 (UVSCC) UVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0 0xD0: 0x00000000 (FPB) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done SPI Read Configuration: prefetching disabled, caching enabled, OK. This chipset supports the following protocols: FWH, SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for SST SST25LF040A, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 probe_spi_res2: id1 0x15, id2 0x15 Probing for SST SST25LF080A, 1024 kB: probe_spi_res2: id1 0x15, id2 0x15 Probing for SST SST25VF010, 128 kB: probe_spi_rems: id1 0xef, id2 0x15 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0xef, id2 0x15 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xef, id2 0x15 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0x49, id2 0x3d, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0x79, id2 0x45, id1 is normal flash content, id2 is normal flash content Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P05, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P10, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0x79, id2 0x45, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Chip status register is 00 Found Winbond flash chip "W25Q32" (4096 kB, SPI) at physical address 0xffc00000. Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0x05, id2 0x96, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4016 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xef, id2 0x15 Found Winbond flash chip "W25Q32" (4096 kB, SPI). Flash image seems to be a legacy BIOS. Disabling coreboot-related checks. Reading old flash chip contents... Transaction error! SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0 SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0 Running OPCODE 0x03 failed at address 0x001000 (payload length was 64). FAILED. Restoring MMIO space at 0x7f0ea5aa589c Restoring MMIO space at 0x7f0ea5aa5898 Restoring MMIO space at 0x7f0ea5aa5896 Restoring MMIO space at 0x7f0ea5aa5894 Restoring MMIO space at 0x7f0ea5aa58a0 Restoring PCI config space for 00:1f:0 reg 0xdc From dhendrix at google.com Tue Jan 3 23:24:29 2012 From: dhendrix at google.com (David Hendricks) Date: Tue, 3 Jan 2012 14:24:29 -0800 Subject: [flashrom] [RFC] Merging EC support from chromium trees In-Reply-To: <4F035E3C.8000905@gmx.net> References: <4F035E3C.8000905@gmx.net> Message-ID: On Tue, Jan 3, 2012 at 11:59 AM, Carl-Daniel Hailfinger < c-d.hailfinger.devel.2006 at gmx.net> wrote: > The authoritative svn master tree at flashrom.org and the Google > ChromiumOS flashrom tree have diverged quite a bit in terms of hardware > support, especially for Embedded Controllers (EC). That is unfortunate > because all interface rework and all cleanups in main flashrom have to > be ported by hand (if they are done at all) to the ChromiumOS tree with > some potential for errors during merge/porting. > > The EC support code in the ChromiumOS tree needs a few cleanups to be > closer to the style and durability requirements we have for flashrom.org > svn, but keeping the code outside our tree won't improve it. The same > argument applies to Nvidia Tegra support. > > > The Linux kernel has a staging directory, I propose we use a similar > mechanism for flashrom (without the special staging/ directory, though): > Merge driver files as-is and clean them up in our tree, but have all > hooks for the staging code inside #ifdef EXPERIMENTAL or somesuch. > Any cleanups for that code can happen in flashrom.org svn, and whenever > Google wants to merge the cleanups into their tree, they can do so > easily. If code is determined to be ready for inclusion, we can simply > remove #ifdef EXPERIMENTAL from its hooks. > Sounds good to me! This seems like a much better approach to help the code developed for Chrome/Chromium OS keep pace with upstream, and help us test upstream code and get it merged more frequently. Note that in addition to the EC code itself, we'll also need to add the command-line processing to switch between SPI/LPC targets on the fly. This is the "-p internal:bus=" stuff we currently have in the chromium os branch. -- David Hendricks (dhendrix) Systems Software Engineer, Google Inc. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefan.tauner at student.tuwien.ac.at Tue Jan 3 23:44:41 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 3 Jan 2012 23:44:41 +0100 Subject: [flashrom] [RFC] Merging EC support from chromium trees In-Reply-To: <4F035E3C.8000905@gmx.net> References: <4F035E3C.8000905@gmx.net> Message-ID: <201201032245.q03Mj1Vi016403@mail2.student.tuwien.ac.at> On Tue, 03 Jan 2012 20:59:56 +0100 Carl-Daniel Hailfinger wrote: > The authoritative svn master tree at flashrom.org and the Google > ChromiumOS flashrom tree have diverged quite a bit in terms of hardware > support, especially for Embedded Controllers (EC). That is unfortunate > because all interface rework and all cleanups in main flashrom have to > be ported by hand (if they are done at all) to the ChromiumOS tree with > some potential for errors during merge/porting. > > The EC support code in the ChromiumOS tree needs a few cleanups to be > closer to the style and durability requirements we have for flashrom.org > svn, but keeping the code outside our tree won't improve it. The same > argument applies to Nvidia Tegra support. > > > The Linux kernel has a staging directory, I propose we use a similar > mechanism for flashrom (without the special staging/ directory, though): > Merge driver files as-is and clean them up in our tree, but have all > hooks for the staging code inside #ifdef EXPERIMENTAL or somesuch. > Any cleanups for that code can happen in flashrom.org svn, and whenever > Google wants to merge the cleanups into their tree, they can do so > easily. If code is determined to be ready for inclusion, we can simply > remove #ifdef EXPERIMENTAL from its hooks. > > Comments? Thoughts? > > Regards, > Carl-Daniel > *stand-alone* drivers could also be just disabled in the makefile by default. either way those are not a problem and i support your plan. i am not sure if other code that is more tightly integrated into other files as well can be dealt with appropriately with an #ifdef or if that would clutter the files too much. OTOH this might not be necessary... i guess we can discuss this in a review prior to inclusion... you dont plan to just drop them in i hope? :) -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 3 23:51:30 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 3 Jan 2012 23:51:30 +0100 Subject: [flashrom] Reading old flash chip contents... Transaction error! In-Reply-To: <4F031852.4010400@polygon-gmbh.com> References: <4F031852.4010400@polygon-gmbh.com> Message-ID: <201201032251.q03MpoDk019791@mail2.student.tuwien.ac.at> On Tue, 03 Jan 2012 16:01:38 +0100 Sebastian Schreier wrote: > DMI string baseboard-manufacturer: "ASUSTeK Computer INC." > DMI string baseboard-product-name: "P8H61-M LE/USB3" > [?] > 0x5C: 0x017f0001 (FREG2: Management Engine) > 0x00001000-0x0017ffff is locked > [?] Hello Sebastian, thanks for your report! The problem is the locked ME region as quoted above. We are working on unlocking it, but intel does not provide us any documentation so please do not expect a solution soon. I have added the board to our list of (un)supported boards (with an appropriate note) and will commit that later together with other small changes. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From c-d.hailfinger.devel.2006 at gmx.net Wed Jan 4 00:33:28 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Wed, 04 Jan 2012 00:33:28 +0100 Subject: [flashrom] [RFC] Merging EC support from chromium trees In-Reply-To: <201201032245.q03Mj1Vi016403@mail2.student.tuwien.ac.at> References: <4F035E3C.8000905@gmx.net> <201201032245.q03Mj1Vi016403@mail2.student.tuwien.ac.at> Message-ID: <4F039048.6080408@gmx.net> Am 03.01.2012 23:44 schrieb Stefan Tauner: > On Tue, 03 Jan 2012 20:59:56 +0100 > Carl-Daniel Hailfinger wrote: > >> The Linux kernel has a staging directory, I propose we use a similar >> mechanism for flashrom (without the special staging/ directory, though): >> Merge driver files as-is and clean them up in our tree, but have all >> hooks for the staging code inside #ifdef EXPERIMENTAL or somesuch. > *stand-alone* drivers could also be just disabled in the makefile by > default. either way those are not a problem and i support your plan. > i am not sure if other code that is more tightly integrated into > other files as well can be dealt with appropriately with an #ifdef or > if that would clutter the files too much. OTOH this might not be > necessary... i guess we can discuss this in a review prior to > inclusion... you dont plan to just drop them in i hope? :) I hope David Hendricks will submit one patch for each hardware driver, and then we can review each of them to get them into a semi-mergeable shape and continue from there. Compilation will be disabled by default (full drivers with makefile hacks, hooks in other files with # ifdef) until the code is ready for prime time. Regards, Carl-Daniel -- http://www.hailfinger.org/ From stefan.tauner at student.tuwien.ac.at Wed Jan 4 01:08:26 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Wed, 4 Jan 2012 01:08:26 +0100 Subject: [flashrom] Help: unable to upgrade bios In-Reply-To: References: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> Message-ID: <201201040008.q0408l9V025178@mail2.student.tuwien.ac.at> On Tue, 3 Jan 2012 22:51:42 +0530 Raghuramchary Jallipalli wrote: > Do you have any plans to support the laptops with QM67 chipset and AT25DF321A, AT25DF641A flashchips, to upgrade the bios gracefully? If yes, can you please give us the timeline. Hello Raghu! the AT25DF321A is already supported, but untested (usually SPI chips just work). The AT25DF641A is almost identical to the AT25DF641 and will (for now) be detected and used as such. The latter is supported, but as well untested. I dont see a problem regarding those chips. In the event that a problem is encountered we can probably fix it quite fast. The other part of the question is not that easily answered. First of all laptops have additional chips (embedded controllers) involved in accessing the flash device which we dont support in general at the moment. This is a long term goal without a timeline (you could depend on). The chipset itself is supported. It just have some features that - if enabled - prohibit accessing some portions of the flash. There is some work done on working around this, but do not expect this to arrive soon please. I could tell you at least a bit more, if you could post a verbose output of running flashrom (including the laptop-enabling parameter of course). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From svn at flashrom.org Wed Jan 4 01:48:27 2012 From: svn at flashrom.org (repository service) Date: Wed, 04 Jan 2012 01:48:27 +0100 Subject: [flashrom] [commit] r1483 - trunk Message-ID: Author: hailfinger Date: Wed Jan 4 01:48:27 2012 New Revision: 1483 URL: http://flashrom.org/trac/flashrom/changeset/1483 Log: Replace --mainboard with -p internal:mainboard --mainboard is a relic from a time before external programmers and makes the CLI inconsistent. Use a programmer parameter instead and free up the short option -m. NOTE: The --list-supported-wiki output changed to use -p internal:mainboard= instead of -m The --list-supported output changed the heading of the mainboard list from Vendor Board Status Required option to Vendor Board Status Required value for -p internal:mainboard= Fix lb_vendor_dev_from_string() not to write to the supplied string. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Stefan Tauner Modified: trunk/board_enable.c trunk/cbtable.c trunk/cli_classic.c trunk/flashrom.8 trunk/internal.c trunk/layout.c trunk/print.c trunk/print_wiki.c trunk/programmer.h Modified: trunk/board_enable.c ============================================================================== --- trunk/board_enable.c Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/board_enable.c Wed Jan 4 01:48:27 2012 (r1483) @@ -2070,7 +2070,8 @@ * The coreboot ids are used two fold. When running with a coreboot firmware, * the ids uniquely matches the coreboot board identification string. When a * legacy bios is installed and when autodetection is not possible, these ids - * can be used to identify the board through the -m command line argument. + * can be used to identify the board through the -p internal:mainboard= + * programmer parameter. * * When a board is identified through its coreboot ids (in both cases), the * main pci ids are still required to match, as a safeguard. @@ -2245,7 +2246,8 @@ msg_pinfo("AMBIGUOUS BOARD NAME: %s\n", part); msg_pinfo("At least vendors '%s' and '%s' match.\n", partmatch->lb_vendor, board->lb_vendor); - msg_perr("Please use the full -m vendor:part syntax.\n"); + msg_perr("Please use the full -p internal:mainboard=" + "vendor:part syntax.\n"); return NULL; } partmatch = board; @@ -2259,7 +2261,8 @@ * coreboot table. If it was, the coreboot implementor is * expected to fix flashrom, too. */ - msg_perr("\nUnknown vendor:board from -m option: %s:%s\n\n", + msg_perr("\nUnknown vendor:board from -p internal:mainboard=" + " programmer parameter:\n%s:%s\n\n", vendor, part); } return NULL; Modified: trunk/cbtable.c ============================================================================== --- trunk/cbtable.c Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/cbtable.c Wed Jan 4 01:48:27 2012 (r1483) @@ -33,18 +33,27 @@ char *lb_part = NULL, *lb_vendor = NULL; int partvendor_from_cbtable = 0; -void lb_vendor_dev_from_string(char *boardstring) +/* Parse the [:] string specified by the user as part of + * -p internal:mainboard=[:] and set lb_vendor and lb_part + * to the extracted values. + * Note: strtok modifies the original string, so we work on a copy and allocate + * memory for lb_vendor and lb_part with strdup. + */ +void lb_vendor_dev_from_string(const char *boardstring) { + /* strtok may modify the original string. */ + char *tempstr = strdup(boardstring); char *tempstr2 = NULL; - strtok(boardstring, ":"); + strtok(tempstr, ":"); tempstr2 = strtok(NULL, ":"); if (tempstr2) { - lb_vendor = boardstring; - lb_part = tempstr2; + lb_vendor = strdup(tempstr); + lb_part = strdup(tempstr2); } else { lb_vendor = NULL; - lb_part = boardstring; + lb_part = strdup(tempstr); } + free(tempstr); } static unsigned long compute_checksum(void *addr, unsigned long length) Modified: trunk/cli_classic.c ============================================================================== --- trunk/cli_classic.c Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/cli_classic.c Wed Jan 4 01:48:27 2012 (r1483) @@ -106,7 +106,7 @@ "-z|" #endif "-E|-r |-w |-v ]\n" - " [-c ] [-m [:]] [-l ]\n" + " [-c ] [-l ]\n" " [-i ] [-p [:]]\n\n"); printf("Please note that the command line interface for flashrom has " @@ -128,11 +128,6 @@ " -V | --verbose more verbose output\n" " -c | --chip probe only for specified " "flash chip\n" -#if CONFIG_INTERNAL == 1 - /* FIXME: --mainboard should be a programmer parameter */ - " -m | --mainboard <[vendor:]part> override mainboard " - "detection\n" -#endif " -f | --force force specific operations " "(see man page)\n" " -n | --noverify don't auto-verify\n" @@ -190,7 +185,6 @@ {"verify", 1, NULL, 'v'}, {"noverify", 0, NULL, 'n'}, {"chip", 1, NULL, 'c'}, - {"mainboard", 1, NULL, 'm'}, {"verbose", 0, NULL, 'V'}, {"force", 0, NULL, 'f'}, {"layout", 1, NULL, 'l'}, @@ -275,17 +269,6 @@ } erase_it = 1; break; - case 'm': -#if CONFIG_INTERNAL == 1 - tempstr = strdup(optarg); - lb_vendor_dev_from_string(tempstr); -#else - fprintf(stderr, "Error: Internal programmer support " - "was not compiled in and --mainboard only\n" - "applies to the internal programmer. Aborting.\n"); - cli_classic_abort_usage(); -#endif - break; case 'f': force = 1; break; @@ -426,14 +409,6 @@ if (prog == PROGRAMMER_INVALID) prog = default_programmer; -#if CONFIG_INTERNAL == 1 - if ((prog != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) { - fprintf(stderr, "Error: --mainboard requires the internal " - "programmer. Aborting.\n"); - cli_classic_abort_usage(); - } -#endif - /* FIXME: Delay calibration should happen in programmer code. */ myusec_calibrate_delay(); Modified: trunk/flashrom.8 ============================================================================== --- trunk/flashrom.8 Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/flashrom.8 Wed Jan 4 01:48:27 2012 (r1483) @@ -5,7 +5,7 @@ .B flashrom \fR[\fB\-n\fR] [\fB\-V\fR] [\fB\-f\fR] [\fB\-h\fR|\fB\-R\fR|\ \fB\-L\fR|\fB\-z\fR|\fB\-E\fR|\fB\-r\fR |\fB\-w\fR |\ \fB\-v\fR ] - [\fB\-c\fR ] [\fB\-m\fR [:]] \ + [\fB\-c\fR ] \ [\fB\-l\fR ] [\fB\-i\fR ] [\fB\-p\fR [:]] .SH DESCRIPTION @@ -88,19 +88,6 @@ without the vendor name as parameter. Please note that the chip name is case sensitive. .TP -.B "\-m, \-\-mainboard" [:] -Override mainboard settings. -.sp -flashrom reads the coreboot table to determine the current mainboard. If no -coreboot table could be read or if you want to override these values, you can -specify \-m, e.g.: -.sp -.B " flashrom \-\-mainboard AGAMI:ARUMA \-w agami_aruma.rom" -.sp -See the 'Known boards' or 'Known laptops' section in the output -of 'flashrom \-L' for a list of boards which require the specification of -the board name, if no coreboot table is found. -.TP .B "\-f, \-\-force" Force one or more of the following actions: .sp @@ -245,10 +232,15 @@ running coreboot, the mainboard type is determined from the coreboot table. Otherwise, the mainboard is detected by examining the onboard PCI devices and possibly DMI info. If PCI and DMI do not contain information to uniquely -identify the mainboard (which is the exception), it might be necessary to -specify the mainboard using the -.B \-m -switch (see above). +identify the mainboard (which is the exception), or if you want to override +the detected mainboard model, you can specify the mainboard using the +.sp +.B " flashrom \-p internal:mainboard=[:]" +syntax. +.sp +See the 'Known boards' or 'Known laptops' section in the output +of 'flashrom \-L' for a list of boards which require the specification of +the board name, if no coreboot table is found. .sp Some of these board-specific flash enabling functions (called .BR "board enables" ) Modified: trunk/internal.c ============================================================================== --- trunk/internal.c Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/internal.c Wed Jan 4 01:48:27 2012 (r1483) @@ -213,6 +213,16 @@ } free(arg); + arg = extract_programmer_param("mainboard"); + if (arg && strlen(arg)) { + lb_vendor_dev_from_string(arg); + } else if (arg && !strlen(arg)) { + msg_perr("Missing argument for mainboard.\n"); + free(arg); + return 1; + } + free(arg); + get_io_perms(); if (register_shutdown(internal_shutdown, NULL)) return 1; Modified: trunk/layout.c ============================================================================== --- trunk/layout.c Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/layout.c Wed Jan 4 01:48:27 2012 (r1483) @@ -106,11 +106,11 @@ /* * If lb_vendor is not set, the coreboot table was - * not found. Nor was -m VENDOR:PART specified. + * not found. Nor was -p internal:mainboard=VENDOR:PART specified. */ if (!lb_vendor || !lb_part) { - msg_pinfo("Note: If the following flash access fails, " - "try -m :.\n"); + msg_pinfo("Note: If the following flash access fails, try " + "-p internal:mainboard=:.\n"); return 0; } @@ -126,14 +126,17 @@ "seem to fit to this machine - forcing it.\n"); } else { msg_pinfo("ERROR: Your firmware image (%s:%s) does not " - "appear to\n be correct for the detected " - "mainboard (%s:%s)\n\nOverride with -p internal:" - "boardmismatch=force if you are absolutely sure " - "that\nyou are using a correct " - "image for this mainboard or override\nthe detected " - "values with --mainboard :.\n\n", - mainboard_vendor, mainboard_part, lb_vendor, - lb_part); + "appear to\n" + " be correct for the detected " + "mainboard (%s:%s)\n\n" + "Override with -p internal:boardmismatch=" + "force to ignore the board name in the\n" + "firmware image or override the detected " + "mainboard with\n" + "-p internal:mainboard=:." + "\n\n", + mainboard_vendor, mainboard_part, lb_vendor, + lb_part); exit(1); } } Modified: trunk/print.c ============================================================================== --- trunk/print.c Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/print.c Wed Jan 4 01:48:27 2012 (r1483) @@ -389,7 +389,10 @@ for (i = strlen("Board"); i < maxboardlen; i++) msg_ginfo(" "); - msg_ginfo("Status Required option\n\n"); + msg_ginfo("Status Required value for\n"); + for (i = 0; i < maxvendorlen + maxboardlen + strlen("Status "); i++) + msg_ginfo(" "); + msg_ginfo("-p internal:mainboard=\n"); for (b = boards; b->vendor != NULL; b++) { msg_ginfo("%s", b->vendor); @@ -407,7 +410,7 @@ if (e->lb_vendor == NULL) msg_ginfo("(autodetected)"); else - msg_ginfo("-m %s:%s", e->lb_vendor, + msg_ginfo("%s:%s", e->lb_vendor, e->lb_part); } msg_ginfo("\n"); Modified: trunk/print_wiki.c ============================================================================== --- trunk/print_wiki.c Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/print_wiki.c Wed Jan 4 01:48:27 2012 (r1483) @@ -167,7 +167,7 @@ boards[i].url ? boards[i].url : "", boards[i].name, boards[i].url ? "]" : "", - b[k].lb_vendor ? "-m " : "—", + b[k].lb_vendor ? "-p internal:mainboard=" : "—", b[k].lb_vendor ? b[k].lb_vendor : "", b[k].lb_vendor ? ":" : "", b[k].lb_vendor ? b[k].lb_part : "", Modified: trunk/programmer.h ============================================================================== --- trunk/programmer.h Sun Dec 25 10:12:16 2011 (r1482) +++ trunk/programmer.h Wed Jan 4 01:48:27 2012 (r1483) @@ -264,7 +264,7 @@ void cleanup_cpu_msr(void); /* cbtable.c */ -void lb_vendor_dev_from_string(char *boardstring); +void lb_vendor_dev_from_string(const char *boardstring); int coreboot_init(void); extern char *lb_part, *lb_vendor; extern int partvendor_from_cbtable; From c-d.hailfinger.devel.2006 at gmx.net Wed Jan 4 01:48:40 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Wed, 04 Jan 2012 01:48:40 +0100 Subject: [flashrom] [PATCH] Replace --mainboard with -p internal:mainboard In-Reply-To: <201201030852.q038qNWs001454@mail2.student.tuwien.ac.at> References: <4F011B08.1070603@gmx.net> <201201021029.q02ATbd8021880@mail2.student.tuwien.ac.at> <4F024615.4020003@gmx.net> <201201030852.q038qNWs001454@mail2.student.tuwien.ac.at> Message-ID: <4F03A1E8.1010608@gmx.net> Am 03.01.2012 09:52 schrieb Stefan Tauner: > On Tue, 03 Jan 2012 01:04:37 +0100 > Carl-Daniel Hailfinger wrote: >> Index: flashrom-kill_cli_mainboard_parameter/layout.c >> =================================================================== >> --- flashrom-kill_cli_mainboard_parameter/layout.c (Revision 1482) >> +++ flashrom-kill_cli_mainboard_parameter/layout.c (Arbeitskopie) >> [?] >> @@ -126,14 +126,17 @@ >> "seem to fit to this machine - forcing it.\n"); >> } else { >> msg_pinfo("ERROR: Your firmware image (%s:%s) does not " >> [...] >> + "appear to\n" >> + " be correct for the detected " >> + "mainboard (%s:%s)\n\n" >> + "Override with -p internal:boardmismatch=" >> + "force if you are absolutely sure that\n" >> + "you are using a correct image for this " >> + "mainboard or override\n" >> + "the detected values with -p internal:" >> + "mainboard=:.\n\n", >> + mainboard_vendor, mainboard_part, lb_vendor, >> + lb_part); > imho this dual use is wrong. if we would not have the override switch, > it would be somewhat ok, but since we do, the mainboard= values should > be only hints. what does the code do if boardmismatch=force AND > mainboard=... is given? just from the message above, i can't tell (not > that i should be able to, but it suggests an inconsistency. Message rewritten. >> --- flashrom-kill_cli_mainboard_parameter/print_wiki.c (Revision 1482) >> +++ flashrom-kill_cli_mainboard_parameter/print_wiki.c (Arbeitskopie) >> @@ -167,7 +167,7 @@ >> boards[i].url ? boards[i].url : "", >> boards[i].name, >> boards[i].url ? "]" : "", >> - b[k].lb_vendor ? "-m " : "—", >> + b[k].lb_vendor ? "-p internal:mainboard= " : "—", > the space at the end is wrong for sure. Fixed. >> --- flashrom-kill_cli_mainboard_parameter/print.c (Revision 1482) >> +++ flashrom-kill_cli_mainboard_parameter/print.c (Arbeitskopie) >> @@ -389,7 +389,10 @@ >> for (i = strlen("Board"); i < maxboardlen; i++) >> msg_ginfo(" "); >> >> - msg_ginfo("Status Required option\n\n"); >> + msg_ginfo("Status Required option for\n"); > for me the option is "mainboard" and the specific mainboard strings are > the parameter for this option. hence i would write "Required parameter > for" here. The format looks ok on my machine. Used "value" >> Index: flashrom-kill_cli_mainboard_parameter/board_enable.c >> =================================================================== >> --- flashrom-kill_cli_mainboard_parameter/board_enable.c (Revision 1482) >> +++ flashrom-kill_cli_mainboard_parameter/board_enable.c (Arbeitskopie) >> @@ -2070,7 +2070,8 @@ >> * The coreboot ids are used two fold. When running with a coreboot firmware, >> * the ids uniquely matches the coreboot board identification string. When a >> * legacy bios is installed and when autodetection is not possible, these ids >> - * can be used to identify the board through the -m command line argument. >> + * can be used to identify the board through the -p internal:mainboard= >> + * programmer parameter. > here it is the other way round from above... imo: "option" instead of > "parameter" because the sentence references the "mainboard=" part, > which to me is the option. > no idea if there is a textbook definition for this stuff... or if > anyone besides me cares :) > >> * >> * When a board is identified through its coreboot ids (in both cases), the >> * main pci ids are still required to match, as a safeguard. >> @@ -2245,7 +2246,8 @@ >> msg_pinfo("AMBIGUOUS BOARD NAME: %s\n", part); >> msg_pinfo("At least vendors '%s' and '%s' match.\n", >> partmatch->lb_vendor, board->lb_vendor); >> - msg_perr("Please use the full -m vendor:part syntax.\n"); >> + msg_perr("Please use the full -p internal:mainboard=" >> + "vendor:part syntax.\n"); >> return NULL; >> } >> partmatch = board; >> @@ -2259,7 +2261,8 @@ >> * coreboot table. If it was, the coreboot implementor is >> * expected to fix flashrom, too. >> */ >> - msg_perr("\nUnknown vendor:board from -m option: %s:%s\n\n", >> + msg_perr("\nUnknown vendor:board from -p internal:mainboard=" >> + " programmer parameter:\n%s:%s\n\n", > ditto Inconsistency is known, and I don't know if fixing it will help us in the future since option/parameter are somewhat stretchable definitions. > Acked-by: Stefan Tauner Thanks for your review! New patch follows for reference. Committed in r1483. --mainboard is a relic from a time before external programmers and makes the CLI inconsistent. Use a programmer parameter instead and free up the short option -m. NOTE: The --list-supported-wiki output changed to use -p internal:mainboard= instead of -m The --list-supported output changed the heading of the mainboard list from Vendor Board Status Required option to Vendor Board Status Required value for -p internal:mainboard= Fix lb_vendor_dev_from_string() not to write to the supplied string. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Stefan Tauner Index: flashrom-kill_cli_mainboard_parameter/cli_classic.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/cli_classic.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/cli_classic.c (Arbeitskopie) @@ -106,7 +106,7 @@ "-z|" #endif "-E|-r |-w |-v ]\n" - " [-c ] [-m [:]] [-l ]\n" + " [-c ] [-l ]\n" " [-i ] [-p [:]]\n\n"); printf("Please note that the command line interface for flashrom has " @@ -128,11 +128,6 @@ " -V | --verbose more verbose output\n" " -c | --chip probe only for specified " "flash chip\n" -#if CONFIG_INTERNAL == 1 - /* FIXME: --mainboard should be a programmer parameter */ - " -m | --mainboard <[vendor:]part> override mainboard " - "detection\n" -#endif " -f | --force force specific operations " "(see man page)\n" " -n | --noverify don't auto-verify\n" @@ -190,7 +185,6 @@ {"verify", 1, NULL, 'v'}, {"noverify", 0, NULL, 'n'}, {"chip", 1, NULL, 'c'}, - {"mainboard", 1, NULL, 'm'}, {"verbose", 0, NULL, 'V'}, {"force", 0, NULL, 'f'}, {"layout", 1, NULL, 'l'}, @@ -275,17 +269,6 @@ } erase_it = 1; break; - case 'm': -#if CONFIG_INTERNAL == 1 - tempstr = strdup(optarg); - lb_vendor_dev_from_string(tempstr); -#else - fprintf(stderr, "Error: Internal programmer support " - "was not compiled in and --mainboard only\n" - "applies to the internal programmer. Aborting.\n"); - cli_classic_abort_usage(); -#endif - break; case 'f': force = 1; break; @@ -426,14 +409,6 @@ if (prog == PROGRAMMER_INVALID) prog = default_programmer; -#if CONFIG_INTERNAL == 1 - if ((prog != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) { - fprintf(stderr, "Error: --mainboard requires the internal " - "programmer. Aborting.\n"); - cli_classic_abort_usage(); - } -#endif - /* FIXME: Delay calibration should happen in programmer code. */ myusec_calibrate_delay(); Index: flashrom-kill_cli_mainboard_parameter/internal.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/internal.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/internal.c (Arbeitskopie) @@ -213,6 +213,16 @@ } free(arg); + arg = extract_programmer_param("mainboard"); + if (arg && strlen(arg)) { + lb_vendor_dev_from_string(arg); + } else if (arg && !strlen(arg)) { + msg_perr("Missing argument for mainboard.\n"); + free(arg); + return 1; + } + free(arg); + get_io_perms(); if (register_shutdown(internal_shutdown, NULL)) return 1; Index: flashrom-kill_cli_mainboard_parameter/layout.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/layout.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/layout.c (Arbeitskopie) @@ -106,11 +106,11 @@ /* * If lb_vendor is not set, the coreboot table was - * not found. Nor was -m VENDOR:PART specified. + * not found. Nor was -p internal:mainboard=VENDOR:PART specified. */ if (!lb_vendor || !lb_part) { - msg_pinfo("Note: If the following flash access fails, " - "try -m :.\n"); + msg_pinfo("Note: If the following flash access fails, try " + "-p internal:mainboard=:.\n"); return 0; } @@ -126,14 +126,17 @@ "seem to fit to this machine - forcing it.\n"); } else { msg_pinfo("ERROR: Your firmware image (%s:%s) does not " - "appear to\n be correct for the detected " - "mainboard (%s:%s)\n\nOverride with -p internal:" - "boardmismatch=force if you are absolutely sure " - "that\nyou are using a correct " - "image for this mainboard or override\nthe detected " - "values with --mainboard :.\n\n", - mainboard_vendor, mainboard_part, lb_vendor, - lb_part); + "appear to\n" + " be correct for the detected " + "mainboard (%s:%s)\n\n" + "Override with -p internal:boardmismatch=" + "force to ignore the board name in the\n" + "firmware image or override the detected " + "mainboard with\n" + "-p internal:mainboard=:." + "\n\n", + mainboard_vendor, mainboard_part, lb_vendor, + lb_part); exit(1); } } Index: flashrom-kill_cli_mainboard_parameter/print_wiki.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/print_wiki.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/print_wiki.c (Arbeitskopie) @@ -167,7 +167,7 @@ boards[i].url ? boards[i].url : "", boards[i].name, boards[i].url ? "]" : "", - b[k].lb_vendor ? "-m " : "—", + b[k].lb_vendor ? "-p internal:mainboard=" : "—", b[k].lb_vendor ? b[k].lb_vendor : "", b[k].lb_vendor ? ":" : "", b[k].lb_vendor ? b[k].lb_part : "", Index: flashrom-kill_cli_mainboard_parameter/cbtable.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/cbtable.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/cbtable.c (Arbeitskopie) @@ -33,18 +33,27 @@ char *lb_part = NULL, *lb_vendor = NULL; int partvendor_from_cbtable = 0; -void lb_vendor_dev_from_string(char *boardstring) +/* Parse the [:] string specified by the user as part of + * -p internal:mainboard=[:] and set lb_vendor and lb_part + * to the extracted values. + * Note: strtok modifies the original string, so we work on a copy and allocate + * memory for lb_vendor and lb_part with strdup. + */ +void lb_vendor_dev_from_string(const char *boardstring) { + /* strtok may modify the original string. */ + char *tempstr = strdup(boardstring); char *tempstr2 = NULL; - strtok(boardstring, ":"); + strtok(tempstr, ":"); tempstr2 = strtok(NULL, ":"); if (tempstr2) { - lb_vendor = boardstring; - lb_part = tempstr2; + lb_vendor = strdup(tempstr); + lb_part = strdup(tempstr2); } else { lb_vendor = NULL; - lb_part = boardstring; + lb_part = strdup(tempstr); } + free(tempstr); } static unsigned long compute_checksum(void *addr, unsigned long length) Index: flashrom-kill_cli_mainboard_parameter/flashrom.8 =================================================================== --- flashrom-kill_cli_mainboard_parameter/flashrom.8 (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/flashrom.8 (Arbeitskopie) @@ -5,7 +5,7 @@ .B flashrom \fR[\fB\-n\fR] [\fB\-V\fR] [\fB\-f\fR] [\fB\-h\fR|\fB\-R\fR|\ \fB\-L\fR|\fB\-z\fR|\fB\-E\fR|\fB\-r\fR |\fB\-w\fR |\ \fB\-v\fR ] - [\fB\-c\fR ] [\fB\-m\fR [:]] \ + [\fB\-c\fR ] \ [\fB\-l\fR ] [\fB\-i\fR ] [\fB\-p\fR [:]] .SH DESCRIPTION @@ -88,19 +88,6 @@ without the vendor name as parameter. Please note that the chip name is case sensitive. .TP -.B "\-m, \-\-mainboard" [:] -Override mainboard settings. -.sp -flashrom reads the coreboot table to determine the current mainboard. If no -coreboot table could be read or if you want to override these values, you can -specify \-m, e.g.: -.sp -.B " flashrom \-\-mainboard AGAMI:ARUMA \-w agami_aruma.rom" -.sp -See the 'Known boards' or 'Known laptops' section in the output -of 'flashrom \-L' for a list of boards which require the specification of -the board name, if no coreboot table is found. -.TP .B "\-f, \-\-force" Force one or more of the following actions: .sp @@ -245,11 +232,16 @@ running coreboot, the mainboard type is determined from the coreboot table. Otherwise, the mainboard is detected by examining the onboard PCI devices and possibly DMI info. If PCI and DMI do not contain information to uniquely -identify the mainboard (which is the exception), it might be necessary to -specify the mainboard using the -.B \-m -switch (see above). +identify the mainboard (which is the exception), or if you want to override +the detected mainboard model, you can specify the mainboard using the .sp +.B " flashrom \-p internal:mainboard=[:]" +syntax. +.sp +See the 'Known boards' or 'Known laptops' section in the output +of 'flashrom \-L' for a list of boards which require the specification of +the board name, if no coreboot table is found. +.sp Some of these board-specific flash enabling functions (called .BR "board enables" ) in flashrom have not yet been tested. If your mainboard is detected needing Index: flashrom-kill_cli_mainboard_parameter/programmer.h =================================================================== --- flashrom-kill_cli_mainboard_parameter/programmer.h (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/programmer.h (Arbeitskopie) @@ -264,7 +264,7 @@ void cleanup_cpu_msr(void); /* cbtable.c */ -void lb_vendor_dev_from_string(char *boardstring); +void lb_vendor_dev_from_string(const char *boardstring); int coreboot_init(void); extern char *lb_part, *lb_vendor; extern int partvendor_from_cbtable; Index: flashrom-kill_cli_mainboard_parameter/print.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/print.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/print.c (Arbeitskopie) @@ -389,7 +389,10 @@ for (i = strlen("Board"); i < maxboardlen; i++) msg_ginfo(" "); - msg_ginfo("Status Required option\n\n"); + msg_ginfo("Status Required value for\n"); + for (i = 0; i < maxvendorlen + maxboardlen + strlen("Status "); i++) + msg_ginfo(" "); + msg_ginfo("-p internal:mainboard=\n"); for (b = boards; b->vendor != NULL; b++) { msg_ginfo("%s", b->vendor); @@ -407,7 +410,7 @@ if (e->lb_vendor == NULL) msg_ginfo("(autodetected)"); else - msg_ginfo("-m %s:%s", e->lb_vendor, + msg_ginfo("%s:%s", e->lb_vendor, e->lb_part); } msg_ginfo("\n"); Index: flashrom-kill_cli_mainboard_parameter/board_enable.c =================================================================== --- flashrom-kill_cli_mainboard_parameter/board_enable.c (Revision 1482) +++ flashrom-kill_cli_mainboard_parameter/board_enable.c (Arbeitskopie) @@ -2070,7 +2070,8 @@ * The coreboot ids are used two fold. When running with a coreboot firmware, * the ids uniquely matches the coreboot board identification string. When a * legacy bios is installed and when autodetection is not possible, these ids - * can be used to identify the board through the -m command line argument. + * can be used to identify the board through the -p internal:mainboard= + * programmer parameter. * * When a board is identified through its coreboot ids (in both cases), the * main pci ids are still required to match, as a safeguard. @@ -2245,7 +2246,8 @@ msg_pinfo("AMBIGUOUS BOARD NAME: %s\n", part); msg_pinfo("At least vendors '%s' and '%s' match.\n", partmatch->lb_vendor, board->lb_vendor); - msg_perr("Please use the full -m vendor:part syntax.\n"); + msg_perr("Please use the full -p internal:mainboard=" + "vendor:part syntax.\n"); return NULL; } partmatch = board; @@ -2259,7 +2261,8 @@ * coreboot table. If it was, the coreboot implementor is * expected to fix flashrom, too. */ - msg_perr("\nUnknown vendor:board from -m option: %s:%s\n\n", + msg_perr("\nUnknown vendor:board from -p internal:mainboard=" + " programmer parameter:\n%s:%s\n\n", vendor, part); } return NULL; -- http://www.hailfinger.org/ From c-d.hailfinger.devel.2006 at gmx.net Wed Jan 4 02:08:06 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Wed, 04 Jan 2012 02:08:06 +0100 Subject: [flashrom] [PATCH] Add logfile support to flashrom In-Reply-To: <4E3092B5.9020307@gmx.net> References: <4DF12DDE.9000401@gmx.net> <20110611142151.GE6443@greenwood> <4DF38206.20903@home.nl> <4DF53AAF.6000700@gmx.net> <4DF53D2B.7090006@home.nl> <4DF69FA1.6070705@gmx.net> <201106171328.p5HDSU4l017284@mail2.student.tuwien.ac.at> <201106191244.p5JCiSbM005768@mail2.student.tuwien.ac.at> <4E3092B5.9020307@gmx.net> Message-ID: <4F03A676.1040006@gmx.net> Oh well... new iteration, with some of the suggestions merged. This still is not final, but it should be a bit closer. Am 28.07.2011 00:35 schrieb Carl-Daniel Hailfinger: > Ouch, that one was in my draft folder, and I wondered why I didn't see > an answer. > > Am 19.06.2011 14:44 schrieb Stefan Tauner: >> > after an IRC discussion with carldani i propose the following solution. >> > maybe not mergeable, but you will get the idea. >> > >> > the current order of patches in my volt+log branch is: >> > 1. patchset voltage printing 2.1 >> > 2. rebased add log file support >> > 3. attached patch. >> > >> > i can repost the whole series if you like. >> > >> > From: Stefan Tauner >> > Date: Sun, 19 Jun 2011 14:39:37 +0200 >> > Subject: [PATCH] squash! Add log file support to flashrom. >> > >> > - instead of the want_log variable "print" will always write to the log if a log file is open >> > (indicated by logfile != NULL) >> > > If we don't have to push screen-invisible messages to the logfile, > that's indeed an option. > > >> > - print_version is no longer executed "implicitly" before argument parsing >> > > This will cause the version to be printed multiple times if someone > specifies -h -R or some other special combination. > > >> > - cli_classic uses the "goto cleanup"-pattern where it closes the log file >> > >> > Signed-off-by: Stefan Tauner >> > >> > diff --git a/cli_classic.c b/cli_classic.c >> > index ed36c85..71f8bec 100644 >> > --- a/cli_classic.c >> > +++ b/cli_classic.c >> > @@ -147,9 +149,6 @@ int cli_classic(int argc, char *argv[]) >> > char *tempstr = NULL; >> > char *pparam = NULL; >> > >> > - print_version(); >> > - print_banner(); >> > - >> > > If the selfcheck fails, we won't see any version message. > > >> > if (selfcheck()) >> > exit(1); >> > >> > @@ -311,14 +311,18 @@ int cli_classic(int argc, char *argv[]) >> > exit(0); >> > break; >> > case 'o': >> > - tempstr = strdup(optarg); >> > #ifdef STANDALONE >> > fprintf(stderr, "Log file not supported in standalone " >> > "mode. Aborting.\n"); >> > + cli_classic_abort_usage(); >> > #else /* STANDALONE */ >> > - if (open_logfile(tempstr)) >> > -#endif /* STANDALONE */ >> > + log_name = strdup(optarg); >> > > strdup(NULL) is allowed to explode. However, AFAICS optarg is guaranteed > not to be NULL, so it should work out fine. > > >> > + if (log_name == NULL || log_name[0] == '\0') { >> > > This strikes me as odd. The "can we open the file" check is postponed, > but the "did the user specify a filename" check is still in here. > > >> > + fprintf(stderr, >> > + "No log file name specified.\n"); >> > cli_classic_abort_usage(); >> > + } >> > +#endif /* STANDALONE */ >> > break; >> > default: >> > cli_classic_abort_usage(); >> > @@ -326,18 +330,6 @@ int cli_classic(int argc, char *argv[]) >> > } >> > } >> > >> > - if (list_supported) { >> > - print_supported(); >> > - exit(0); >> > - } >> > - >> > -#if CONFIG_PRINT_WIKI == 1 >> > - if (list_supported_wiki) { >> > - print_supported_wiki(); >> > - exit(0); >> > - } >> > -#endif >> > - >> > if (optind < argc) { >> > fprintf(stderr, "Error: Extra parameter found.\n"); >> > cli_classic_abort_usage(); >> > @@ -351,6 +343,26 @@ int cli_classic(int argc, char *argv[]) >> > } >> > #endif >> > >> > +#if CONFIG_PRINT_WIKI == 1 >> > + if (list_supported_wiki) { >> > + print_supported_wiki(); >> > + return 0; >> > + } >> > +#endif >> > > Why did you place the print_supported_wiki() call before opening the > logfile, but print_supported() after opening the logfile? I touched that > ordering in r1373, hopefully the current state is more agreeable for you. > > >> > + >> > +#ifndef STANDALONE >> > + if (open_logfile(log_name)) >> > + return 1; >> > +#endif /* !STANDALONE */ >> > + >> > + print_version(); >> > + print_banner(); >> > + >> > + if (list_supported) { >> > + print_supported(); >> > + goto cleanup; >> > + } >> > + >> > if (chip_to_probe) { >> > for (flash = flashchips; flash && flash->name; flash++) >> > if (!strcmp(flash->name, chip_to_probe)) >> > > goto cleanup makes sense, but I'd handle only cases which need > programmer_shutdown... that would kill quite a few duplicates. This part > is now semi-obsolete since r1373. Current state of this patch straight from my development tree. Note: man page is unchanged, needs to get some documentation as well. Signed-off-by: Carl-Daniel Hailfinger Index: flashrom-logfile/flash.h =================================================================== --- flashrom-logfile/flash.h (Revision 1483) +++ flashrom-logfile/flash.h (Arbeitskopie) @@ -265,6 +265,12 @@ #define ERROR_FLASHROM_LIMIT -201 /* cli_output.c */ +#ifndef STANDALONE +int open_logfile(const char * const filename); +int close_logfile(void); +void start_logging(void); +#endif +int msg_log(const char *fmt, ...); /* Let gcc and clang check for correct printf-style format strings. */ int print(int type, const char *fmt, ...) __attribute__((format(printf, 2, 3))); #define MSG_ERROR 0 Index: flashrom-logfile/cli_output.c =================================================================== --- flashrom-logfile/cli_output.c (Revision 1483) +++ flashrom-logfile/cli_output.c (Arbeitskopie) @@ -2,6 +2,7 @@ * This file is part of the flashrom project. * * Copyright (C) 2009 Sean Nelson + * Copyright (C) 2011 Carl-Daniel Hailfinger * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,34 +23,101 @@ #include #include "flash.h" -int print(int type, const char *fmt, ...) +static FILE *logfile = NULL; +static int want_log = 0; + +#ifndef STANDALONE +int close_logfile(void) { + if (logfile && fclose(logfile)) + return 1; + return 0; +} + +int open_logfile(const char * const filename) +{ + if (!filename) { + msg_gerr("No filename specified.\n"); + return 1; + } + if ((logfile = fopen(filename, "w")) == NULL) { + perror(filename); + return 1; + } + return 0; +} + +void start_logging(void) +{ + int oldverbose = verbose; + + want_log = 1; + /* Shut up the console. */ + verbose = -2; + print_version(); + verbose = oldverbose; +} +#endif /* STANDALONE */ + +int msg_log(const char *fmt, ...) +{ va_list ap; int ret; - FILE *output_type; + if (!logfile) + return -1; + va_start(ap, fmt); + ret = vfprintf(logfile, fmt, ap); + va_end(ap); + return ret; +} + +int print(int type, const char *fmt, ...) +{ + va_list ap; + int ret = 0; + int want_screen = 1; + int want_file = 1; + FILE *output_type = stdout; + switch (type) { - case MSG_ERROR: - output_type = stderr; + case MSG_BARF: + if (verbose < 3) { + want_screen = 0; + want_file = 0; + } break; - case MSG_BARF: - if (verbose < 3) - return 0; case MSG_DEBUG2: if (verbose < 2) - return 0; + want_screen = 0; + break; case MSG_DEBUG: if (verbose < 1) - return 0; + want_screen = 0; + break; case MSG_INFO: + if (verbose < 0) + want_screen = 0; + break; + case MSG_ERROR: + if (verbose < -1) + want_screen = 0; + output_type = stderr; + break; default: - output_type = stdout; break; } - va_start(ap, fmt); - ret = vfprintf(output_type, fmt, ap); - va_end(ap); + if (want_screen) { + va_start(ap, fmt); + ret = vfprintf(output_type, fmt, ap); + va_end(ap); + } + if (want_file && logfile && want_log) { + va_start(ap, fmt); + ret = vfprintf(logfile, fmt, ap); + va_end(ap); + } fflush(output_type); return ret; } Index: flashrom-logfile/cli_classic.c =================================================================== --- flashrom-logfile/cli_classic.c (Revision 1483) +++ flashrom-logfile/cli_classic.c (Arbeitskopie) @@ -106,7 +106,7 @@ "-z|" #endif "-E|-r |-w |-v ]\n" - " [-c ] [-l ]\n" + " [-c ] [-l ] [-o ]\n" " [-i ] [-p [:]]\n\n"); printf("Please note that the command line interface for flashrom has " @@ -135,6 +135,7 @@ "\n" " -i | --image only flash image " "from flash layout\n" + " -o | --output log to file \n" " -L | --list-supported print supported devices\n" #if CONFIG_PRINT_WIKI == 1 " -z | --list-supported-wiki print supported devices " @@ -177,7 +178,7 @@ enum programmer prog = PROGRAMMER_INVALID; int ret = 0; - static const char optstring[] = "r:Rw:v:nVEfc:m:l:i:p:Lzh"; + static const char optstring[] = "r:Rw:v:nVEfc:l:i:p:Lzho:"; static const struct option long_options[] = { {"read", 1, NULL, 'r'}, {"write", 1, NULL, 'w'}, @@ -194,10 +195,12 @@ {"programmer", 1, NULL, 'p'}, {"help", 0, NULL, 'h'}, {"version", 0, NULL, 'R'}, + {"output", 1, NULL, 'o'}, {NULL, 0, NULL, 0}, }; char *filename = NULL; + char *log_name = NULL; char *tempstr = NULL; char *pparam = NULL; @@ -362,6 +365,19 @@ cli_classic_usage(argv[0]); exit(0); break; + case 'o': +#ifdef STANDALONE + fprintf(stderr, "Log file not supported in standalone " + "mode. Aborting.\n"); + cli_classic_abort_usage(); +#else /* STANDALONE */ + log_name = strdup(optarg); + if (log_name[0] == '\0') { + fprintf(stderr, "No log filename specified.\n"); + cli_classic_abort_usage(); + } +#endif /* STANDALONE */ + break; default: cli_classic_abort_usage(); break; @@ -373,10 +389,15 @@ cli_classic_abort_usage(); } - if (process_include_args()) + if (filename && (filename[0] == '\0')) { + fprintf(stderr, "Error: No filename specified.\n"); cli_classic_abort_usage(); + } - /* FIXME: Print the actions flashrom will take. */ +#ifndef STANDALONE + if (open_logfile(log_name)) + return 1; +#endif /* !STANDALONE */ if (list_supported) { print_supported(); @@ -390,6 +411,9 @@ } #endif + if (process_include_args()) + cli_classic_abort_usage(); + /* Does a chip with the requested name exist in the flashchips array? */ if (chip_to_probe) { for (flash = flashchips; flash && flash->name; flash++) @@ -409,11 +433,23 @@ if (prog == PROGRAMMER_INVALID) prog = default_programmer; + // FIXME: Kill --mainboard completely +#ifndef STANDALONE + start_logging(); +#endif /* STANDALONE */ + + msg_gdbg("Command line:"); + for (i = 0; i < argc; i++) { + msg_gdbg(" %s", argv[i]); + } + msg_gdbg("\n"); + + /* FIXME: Delay calibration should happen in programmer code. */ myusec_calibrate_delay(); if (programmer_init(prog, pparam)) { - fprintf(stderr, "Error: Programmer initialization failed.\n"); + msg_perr("Error: Programmer initialization failed.\n"); ret = 1; goto out_shutdown; } @@ -436,34 +472,35 @@ } if (chipcount > 1) { - printf("Multiple flash chips were detected: \"%s\"", - flashes[0].name); + msg_cinfo("Multiple flash chips were detected: \"%s\"", + flashes[0].name); for (i = 1; i < chipcount; i++) - printf(", \"%s\"", flashes[i].name); - printf("\nPlease specify which chip to use with the " - "-c option.\n"); + msg_cinfo(", \"%s\"", flashes[i].name); + msg_cinfo("\nPlease specify which chip to use with the -c " + " option.\n"); ret = 1; goto out_shutdown; } else if (!chipcount) { - printf("No EEPROM/flash device found.\n"); + msg_cinfo("No EEPROM/flash device found.\n"); if (!force || !chip_to_probe) { - printf("Note: flashrom can never write if the flash " - "chip isn't found automatically.\n"); + msg_cinfo("Note: flashrom can never write if the flash " + "chip isn't found automatically.\n"); } #if 0 // FIXME: What happens for a forced chip read if multiple compatible programmers are registered? if (force && read_it && chip_to_probe) { - printf("Force read (-f -r -c) requested, pretending " - "the chip is there:\n"); + msg_cinfo("Force read (-f -r -c) requested, pretending " + "the chip is there:\n"); startchip = probe_flash(0, &flashes[0], 1); if (startchip == -1) { - printf("Probing for flash chip '%s' failed.\n", - chip_to_probe); + msg_cinfo("Probing for flash chip '%s' failed." + "\n", chip_to_probe); ret = 1; goto out_shutdown; } - printf("Please note that forced reads most likely " - "contain garbage.\n"); - return read_flash_to_file(&flashes[0], filename); + msg_cinfo("Please note that forced reads most likely " + "contain garbage.\n"); + ret = read_flash_to_file(&flashes[0], filename); + goto out_shutdown; } #endif ret = 1; @@ -484,23 +521,17 @@ size = fill_flash->total_size * 1024; if (check_max_decode(fill_flash->pgm->buses_supported & fill_flash->bustype, size) && (!force)) { - fprintf(stderr, "Chip is too big for this programmer " - "(-V gives details). Use --force to override.\n"); + msg_cerr("Chip is too big for this programmer " + "(-V gives details). Use --force to override.\n"); ret = 1; goto out_shutdown; } if (!(read_it | write_it | verify_it | erase_it)) { - printf("No operations were specified.\n"); + msg_ginfo("No operations were specified.\n"); goto out_shutdown; } - if (!filename && !erase_it) { - printf("Error: No filename specified.\n"); - ret = 1; - goto out_shutdown; - } - /* Always verify write operations unless -n is used. */ if (write_it && !dont_verify_it) verify_it = 1; @@ -510,9 +541,13 @@ * Give the chip time to settle. */ programmer_delay(100000); - return doit(fill_flash, force, filename, read_it, write_it, erase_it, verify_it); + ret |= doit(fill_flash, force, filename, read_it, write_it, erase_it, verify_it); out_shutdown: programmer_shutdown(); +out: +#ifndef STANDALONE + ret |= close_logfile(); +#endif return ret; } Index: flashrom-logfile/flashrom.c =================================================================== --- flashrom-logfile/flashrom.c (Revision 1483) +++ flashrom-logfile/flashrom.c (Arbeitskopie) @@ -1422,27 +1422,27 @@ if (firstline) firstline = 0; else - printf("\n"); + msg_ginfo("\n"); for (i = 0; i < startcol; i++) - printf(" "); + msg_ginfo(" "); remaining = cols - startcol; } else { - printf(" "); + msg_ginfo(" "); remaining--; } if (paren && (p == 0)) { - printf("("); + msg_ginfo("("); remaining--; } - printf("%s", pname); + msg_ginfo("%s", pname); remaining -= pnamelen; if (p < PROGRAMMER_INVALID - 1) { - printf(","); + msg_ginfo(","); remaining--; } else { if (paren) - printf(")"); - printf("\n"); + msg_ginfo(")"); + msg_ginfo("\n"); } } } @@ -1458,35 +1458,35 @@ #else msg_ginfo(" on unknown machine"); #endif - msg_ginfo(", built with"); + msg_gdbg(", built with"); #if NEED_PCI == 1 #ifdef PCILIB_VERSION - msg_ginfo(" libpci %s,", PCILIB_VERSION); + msg_gdbg(" libpci %s,", PCILIB_VERSION); #else - msg_ginfo(" unknown PCI library,"); + msg_gdbg(" unknown PCI library,"); #endif #endif #ifdef __clang__ - msg_ginfo(" LLVM Clang"); + msg_gdbg(" LLVM Clang"); #ifdef __clang_version__ - msg_ginfo(" %s,", __clang_version__); + msg_gdbg(" %s,", __clang_version__); #else - msg_ginfo(" unknown version (before r102686),"); + msg_gdbg(" unknown version (before r102686),"); #endif #elif defined(__GNUC__) - msg_ginfo(" GCC"); + msg_gdbg(" GCC"); #ifdef __VERSION__ - msg_ginfo(" %s,", __VERSION__); + msg_gdbg(" %s,", __VERSION__); #else - msg_ginfo(" unknown version,"); + msg_gdbg(" unknown version,"); #endif #else - msg_ginfo(" unknown compiler,"); + msg_gdbg(" unknown compiler,"); #endif #if defined (__FLASHROM_LITTLE_ENDIAN__) - msg_ginfo(" little endian"); + msg_gdbg(" little endian"); #else - msg_ginfo(" big endian"); + msg_gdbg(" big endian"); #endif msg_ginfo("\n"); } @@ -1499,7 +1499,7 @@ void print_banner(void) { - msg_ginfo("flashrom is free software, get the source code at " + msg_ginfo("flashrom is free software. Get the source code at " "http://www.flashrom.org\n"); msg_ginfo("\n"); } @@ -1798,6 +1798,5 @@ free(oldcontents); free(newcontents); out_nofree: - programmer_shutdown(); return ret; } -- http://www.hailfinger.org/ From c-d.hailfinger.devel.2006 at gmx.net Wed Jan 4 02:27:12 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Wed, 04 Jan 2012 02:27:12 +0100 Subject: [flashrom] GIGABYTE M61P-S3 In-Reply-To: <1056311325625228@web125.yandex.ru> References: <1056311325625228@web125.yandex.ru> Message-ID: <4F03AAF0.1060208@gmx.net> Hi esko, thanks for your report. Please see the comments at the end of this mail. Am 03.01.2012 22:13 schrieb ekso: > This chipset is not really supported yet... > flashrom v0.9.4-r1394 on Linux 3.1.0-1-686-pae (i686), built with libpci 3.1.7, GCC 4.6.1, little endian > flashrom is free software, get the source code at http://www.flashrom.org > > Calibrating delay loop... OS timer resolution is 1 usecs, 1304M loops per second, 10 myus = 11 us, 100 myus = 101 us, 1000 myus = 1000 us, 10000 myus = 10008 us, 4 myus = 4 us, OK. > Initializing internal programmer > No coreboot table found. > DMI string system-manufacturer: " " > DMI string system-product-name: " " > DMI string system-version: " " > DMI string baseboard-manufacturer: "Gigabyte Technology Co., Ltd." > DMI string baseboard-product-name: "M61P-S3" > DMI string baseboard-version: "x.x" > DMI string chassis-type: "Desktop" > Found ITE Super I/O, ID 0x8716 on port 0x2e > Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. > This chipset is marked as untested. If you are using an up-to-date version > of flashrom please email a report to flashrom at flashrom.org including a > verbose (-V) log. Thank you! > Enabling flash write... This chipset is not really supported yet. Guesswork... > ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 > Flash bus type is LPC > Found SMBus device 10de:03eb at 00:01:1 > MCP SPI BAR is at 0xfec80000 > Strange. MCP SPI BAR is valid, but chipset apparently doesn't have SPI enabled. > Please send the output of "flashrom -V" to flashrom at flashrom.org with > your board name: flashrom -V as the subject to help us finish support for your > chipset. Thanks. > OK. > This chipset supports the following protocols: LPC. > Serial flash segment 0xfffe0000-0xffffffff enabled > Serial flash segment 0x000e0000-0x000fffff enabled > Serial flash segment 0xffee0000-0xffefffff disabled > Serial flash segment 0xfff80000-0xfffeffff enabled > LPC write to serial flash enabled > Serial flash pin 29 > Serial flash port 0x0820 > Probing for AMIC A25L05PT, 64 kB: 4 byte RDID not supported on this SPI controller > [...] > Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2013 > [...] We changed the code which accesses the IT87 SPI controller on your board. Could you please try latest flashrom from svn in verbose mode? That would help a lot. Thanks, Carl-Daniel -- http://www.hailfinger.org/ From philipp_subx at redfish-solutions.com Wed Jan 4 07:00:37 2012 From: philipp_subx at redfish-solutions.com (Philip Prindeville) Date: Tue, 03 Jan 2012 23:00:37 -0700 Subject: [flashrom] 2CHIPSET: Alix 6F2 (flashrom v0.9.3-r1205) In-Reply-To: <1325154071.4930.5.camel@mattotaupa> References: <4EFBCC3F.9080309@redfish-solutions.com> <1325154071.4930.5.camel@mattotaupa> Message-ID: <4F03EB05.30001@redfish-solutions.com> On 12/29/11 3:21 AM, Paul Menzel wrote: > Dear Philip, > > > Am Mittwoch, den 28.12.2011, 19:11 -0700 schrieb Philip Prindeville: >> # flashrom >> flashrom v0.9.3-r1205 on Linux 2.6.39.4 (i586), built with libpci 3.1.7, GCC 4.5.4 20110808 (prerelease), little endian > > [?] > > could you test if that error shows also up with v0.9.4 or the latest > code from the SVN repository [1]? > > > Thanks, > > Paul I tried 0.9.4 but it didn't seem to make a difference. I have the LPC board connected to my Alix 6f2 so that I can at least boot from it, but I'm wondering if that might be interfering with Flash detection. # /tmp/flashrom -p internal:laptop=force_I_want_a_brick -w /tmp/coreboot.rom flashrom v0.9.4-r1395 on Linux 2.6.39.4 (i586), built with libpci 3.1.7, GCC 4.5.4 20110808 (prerelease), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OK. ======================================================================== WARNING! You may be running flashrom on an unsupported laptop. We could not detect this for sure because your vendor has not setup the SMBIOS tables correctly. You can enforce execution by adding '-p internal:laptop=force_I_want_a_brick' to the command line, but please read the following warning if you are not sure. Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See http://www.flashrom.org/Laptops for details. If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== Proceeding anyway because user specified laptop=force_I_want_a_brick Found chipset "AMD CS5536". Enabling flash write... OK. WARNING: unexpected second chipset match: "AMD CS5536" ignoring, please report lspci and board URL to flashrom at flashrom.org with 'CHIPSET: your board name' in the subject line. This chipset supports the following protocols: Non-SPI. Found AMIC flash chip "A49LF040A" (512 kB, LPC) at physical address 0xfff80000. === This flash part has status UNTESTED for operations: WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! Note: If the following flash access fails, try -m :. Reading old flash chip contents... done. Erasing and writing flash chip... ERASE FAILED at 0x00000000! Expected=0xff, Read=0x03, failed byte count from 0x0000000 0-0x0000ffff: 0x12 ERASE FAILED! Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x03, failed byte count fro m 0x00000000-0x0007ffff: 0xf5d1 ERASE FAILED! FAILED! Uh oh. Erase/write failed. Checking if anything changed. Good. It seems nothing was changed. Writing to the flash chip apparently didn't do anything. This means we have to add special support for your board, programmer or flash chip. Please report this on IRC at irc.freenode.net (channel #flashrom) or mail flashrom at flashrom.org! ------------------------------------------------------------------------------- You may now reboot or simply leave the machine running. # I also tried flashrom -m "PC Engines:Alix.2c2" -w /tmp/coreboot.rom but that didn't work either. # /tmp/flashrom -m "PC Engines:Alix.2c2" -w /tmp/coreboot.rom -p internal:laptop=force_I_want_a_brick flashrom v0.9.4-r1395 on Linux 2.6.39.4 (i586), built with libpci 3.1.7, GCC 4.5.4 20110808 (prerelease), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OK. ======================================================================== WARNING! You may be running flashrom on an unsupported laptop. We could not detect this for sure because your vendor has not setup the SMBIOS tables correctly. You can enforce execution by adding '-p internal:laptop=force_I_want_a_brick' to the command line, but please read the following warning if you are not sure. Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See http://www.flashrom.org/Laptops for details. If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== Proceeding anyway because user specified laptop=force_I_want_a_brick Found chipset "AMD CS5536". Enabling flash write... OK. WARNING: unexpected second chipset match: "AMD CS5536" ignoring, please report lspci and board URL to flashrom at flashrom.org with 'CHIPSET: your board name' in the subject line. This chipset supports the following protocols: Non-SPI. Unknown vendor:board from -m option: PC Engines:Alix.2c2 No EEPROM/flash device found. Note: flashrom can never write if the flash chip isn't found automatically. # Not sure why the -m argument didn't work, given that I get: # /tmp/flashrom -L | grep -i alix PC Engines Alix.1c OK PC Engines Alix.2c2 OK PC Engines Alix.2c3 OK PC Engines Alix.3c3 OK PC Engines Alix.3d3 OK # From philipp_subx at redfish-solutions.com Wed Jan 4 09:53:37 2012 From: philipp_subx at redfish-solutions.com (Philip Prindeville) Date: Wed, 04 Jan 2012 01:53:37 -0700 Subject: [flashrom] 2CHIPSET: Alix 6F2 (flashrom v0.9.3-r1205) In-Reply-To: <4F03EB05.30001@redfish-solutions.com> References: <4EFBCC3F.9080309@redfish-solutions.com> <1325154071.4930.5.camel@mattotaupa> <4F03EB05.30001@redfish-solutions.com> Message-ID: <4F041391.6010208@redfish-solutions.com> And with r1483 from svn, I get: /tmp/flashrom -V -p internal:laptop=force_I_want_a_brick flashrom v0.9.4-runknown on Linux 2.6.39.4 (i586), built with libpci 3.1.7, GCC 4.5.4 20110808 (prerelease), little endi an flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 2 usecs, 163M loops per second, 10 myus = 11 us, 100 myus = 99 us, 1000 myus = 984 us, 10000 myus = 10011 us, 8 myus = 9 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "" DMI string system-product-name: "" DMI string system-version: "" DMI string baseboard-manufacturer: "" DMI string baseboard-product-name: "" DMI string baseboard-version: "" DMI string chassis-type: "" DMI chassis-type is not specific enough. ======================================================================== WARNING! You may be running flashrom on an unsupported laptop. We could not detect this for sure because your vendor has not setup the SMBIOS tables correctly. You can enforce execution by adding '-p internal:laptop=this_is_not_a_laptop' to the command line, but please read the following warning if you are not sure. Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See http://www.flashrom.org/Laptops for details. If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== Proceeding anyway because user forced us to. Found chipset "AMD CS5536" with PCI ID 1022:2080. Enabling flash write... OK. WARNING: unexpected second chipset match: "AMD CS5536" ignoring, please report lspci and board URL to flashrom at flashrom.org with 'CHIPSET: your board name' in the subject line. The following protocols are supported: Non-SPI. Probing for AMD Am29F010A/B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for AMD Am29F002(N)BB, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F016D, 2048 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for AMD Am29F040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for AMD Am29F080B, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal f lash content Probing for AMD Am29LV001BB, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for AMD Am29LV001BT, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for AMD Am29LV002BB, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for AMD Am29LV002BT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for AMD Am29LV004BB, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for AMD Am29LV004BT, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for AMD Am29LV008BB, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV008BT, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for AMD Am29LV081B, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash cont ent, id2 is normal flash content Probing for AMIC A29002T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash cont ent, id2 is normal flash content Probing for AMIC A29040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash cont ent, id2 is normal flash content Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for Atmel AT29C512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for Atmel AT29C010A, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for Atmel AT29C020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for Atmel AT29C040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for Atmel AT49BV512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for Atmel AT49F020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for Atmel AT49F002(N), 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F002(N)T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flas h content, id2 is normal flash content Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conten t, id2 is normal flash content Probing for Catalyst CAT28F512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Bright BM29F040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for EMST F49B002UA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for Eon EN29F010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash cont ent, id2 is normal flash content Probing for Eon EN29F002(A)(N)B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal fla sh content, id2 is normal flash content Probing for Eon EN29F002(A)(N)T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal fla sh content, id2 is normal flash content Probing for Fujitsu MBM29F004BC, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fla sh content, id2 is normal flash content Probing for Fujitsu MBM29F004TC, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fla sh content, id2 is normal flash content Probing for Fujitsu MBM29F400BC, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 Probing for Fujitsu MBM29F400TC, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 Probing for Hyundai HY29F002T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Hyundai HY29F002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Hyundai HY29F040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F001BN/BX-B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal fla sh content, id2 is normal flash content Probing for Intel 28F001BN/BX-T, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal fla sh content, id2 is normal flash content Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal fl ash content, id2 is normal flash content Probing for Intel 28F008S3/S5/SC, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl ash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl ash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl ash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl ash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flas h content, id2 is normal flash content Probing for Macronix MX29F001T, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flas h content, id2 is normal flash content Probing for Macronix MX29F002(N)B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal f lash content, id2 is normal flash content Probing for Macronix MX29F002(N)T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal f lash content, id2 is normal flash content Probing for Macronix MX29F040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29LV040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flas h content, id2 is normal flash content Probing for MoselVitelic V29C51000B, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51000T, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51400B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51400T, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51000, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51001, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002T, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_com mon: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002B, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_com mon: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for PMC Pm39LV020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for PMC Pm39LV040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for Sharp LH28F008BJT-BTLZ1, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is nor mal flash content Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash content Probing for SST SST28SF040A, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conten t, id2 is normal flash content Probing for SST SST29EE010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST29LE010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST29EE020A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for SST SST29LE020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST39SF512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for SST SST39SF010A, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for SST SST39SF020A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for SST SST39SF040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST39VF512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash con tent, id2 is normal flash content Probing for SST SST39VF010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST39VF020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST39VF040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST39VF080, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conten t, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flas h content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conte nt, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_ common: id1 0x37, id2 0x9d Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conte nt, id2 is normal flash content Probing for ST M29F002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conte nt, id2 is normal flash content Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for ST M29F040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conte nt, id2 is normal flash content Probing for ST M29F400BB, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 Probing for ST M29F400BT, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 Probing for ST M29W010B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash conte nt, id2 is normal flash content Probing for ST M29W040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conte nt, id2 is normal flash content Probing for ST M29W512B, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash conten t, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, i d2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, i d2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash co ntent Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, i d1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, i d1 is normal flash content, id2 is normal flash content Probing for TI TMS29F002RB, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for TI TMS29F002RT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co ntent, id2 is normal flash content Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012-old, 128 kB: Old Winbond W29* probe method disabled because th e probing sequence puts the AMIC A49LF040A in a funky state. Use 'flashrom -c W29C010(M)/W29C011A/W29EE011/W29EE012-old' if you have a board with such a chip. Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity vi olation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C020(C)/W29C022, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is nor mal flash content, id2 is normal flash content Probing for Winbond W29C040/P, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39L040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d Probing for Winbond W49F002U/N, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flas h content, id2 is normal flash content Probing for Winbond W49F020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c ontent, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content No EEPROM/flash device found. Note: flashrom can never write if the flash chip isn't f From philipp_subx at redfish-solutions.com Wed Jan 4 11:19:58 2012 From: philipp_subx at redfish-solutions.com (Philip Prindeville) Date: Wed, 04 Jan 2012 03:19:58 -0700 Subject: [flashrom] 2CHIPSET: Alix 6F2 (flashrom v0.9.3-r1205) In-Reply-To: <4F041391.6010208@redfish-solutions.com> References: <4EFBCC3F.9080309@redfish-solutions.com> <1325154071.4930.5.camel@mattotaupa> <4F03EB05.30001@redfish-solutions.com> <4F041391.6010208@redfish-solutions.com> Message-ID: <4F0427CE.9060508@redfish-solutions.com> Doh! Removed the LPC debricking card as soon as linux booted and it worked. On 1/4/12 1:53 AM, Philip Prindeville wrote: > And with r1483 from svn, I get: > > /tmp/flashrom -V -p internal:laptop=force_I_want_a_brick > flashrom v0.9.4-runknown on Linux 2.6.39.4 (i586), built with libpci 3.1.7, GCC 4.5.4 20110808 (prerelease), little endi > an > flashrom is free software, get the source code at http://www.flashrom.org > > Calibrating delay loop... OS timer resolution is 2 usecs, 163M loops per second, 10 myus = 11 us, 100 myus = 99 us, 1000 > myus = 984 us, 10000 myus = 10011 us, 8 myus = 9 us, OK. > Initializing internal programmer > No coreboot table found. > DMI string system-manufacturer: "" > DMI string system-product-name: "" > DMI string system-version: "" > DMI string baseboard-manufacturer: "" > DMI string baseboard-product-name: "" > DMI string baseboard-version: "" > DMI string chassis-type: "" > DMI chassis-type is not specific enough. > ======================================================================== > WARNING! You may be running flashrom on an unsupported laptop. We could > not detect this for sure because your vendor has not setup the SMBIOS > tables correctly. You can enforce execution by adding > '-p internal:laptop=this_is_not_a_laptop' to the command line, but > please read the following warning if you are not sure. > > Laptops, notebooks and netbooks are difficult to support and we > recommend to use the vendor flashing utility. The embedded controller > (EC) in these machines often interacts badly with flashing. > See http://www.flashrom.org/Laptops for details. > > If flash is shared with the EC, erase is guaranteed to brick your laptop > and write may brick your laptop. > Read and probe may irritate your EC and cause fan failure, backlight > failure and sudden poweroff. > You have been warned. > ======================================================================== > Proceeding anyway because user forced us to. > Found chipset "AMD CS5536" with PCI ID 1022:2080. Enabling flash write... OK. > WARNING: unexpected second chipset match: "AMD CS5536" > ignoring, please report lspci and board URL to flashrom at flashrom.org > with 'CHIPSET: your board name' in the subject line. > The following protocols are supported: Non-SPI. > Probing for AMD Am29F010A/B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for AMD Am29F002(N)BB, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for AMD Am29F002(N)BT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for AMD Am29F016D, 2048 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for AMD Am29F040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for AMD Am29F080B, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal f > lash content > Probing for AMD Am29LV001BB, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for AMD Am29LV001BT, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for AMD Am29LV002BB, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for AMD Am29LV002BT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for AMD Am29LV004BB, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for AMD Am29LV004BT, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for AMD Am29LV008BB, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal > flash content > Probing for AMD Am29LV008BT, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal > flash content > Probing for AMD Am29LV040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for AMD Am29LV081B, 1024 kB: probe_jedec_common: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal > flash content > Probing for AMIC A29002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash cont > ent, id2 is normal flash content > Probing for AMIC A29002T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash cont > ent, id2 is normal flash content > Probing for AMIC A29040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash cont > ent, id2 is normal flash content > Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for Atmel AT29C512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for Atmel AT29C010A, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for Atmel AT29C020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for Atmel AT29C040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for Atmel AT49BV512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for Atmel AT49F020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for Atmel AT49F002(N), 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Atmel AT49F002(N)T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flas > h content, id2 is normal flash content > Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conten > t, id2 is normal flash content > Probing for Catalyst CAT28F512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Bright BM29F040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for EMST F49B002UA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for Eon EN29F010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash cont > ent, id2 is normal flash content > Probing for Eon EN29F002(A)(N)B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal fla > sh content, id2 is normal flash content > Probing for Eon EN29F002(A)(N)T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal fla > sh content, id2 is normal flash content > Probing for Fujitsu MBM29F004BC, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fla > sh content, id2 is normal flash content > Probing for Fujitsu MBM29F004TC, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fla > sh content, id2 is normal flash content > Probing for Fujitsu MBM29F400BC, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 > Probing for Fujitsu MBM29F400TC, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 > Probing for Hyundai HY29F002T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Hyundai HY29F002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Hyundai HY29F040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Intel 28F001BN/BX-B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal fla > sh content, id2 is normal flash content > Probing for Intel 28F001BN/BX-T, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal fla > sh content, id2 is normal flash content > Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal fl > ash content, id2 is normal flash content > Probing for Intel 28F008S3/S5/SC, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl > ash content, id2 is normal flash content > Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl > ash content, id2 is normal flash content > Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl > ash content, id2 is normal flash content > Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal fl > ash content, id2 is normal flash content > Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, > id2 is normal flash content > Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash > content > Probing for Macronix MX29F001B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flas > h content, id2 is normal flash content > Probing for Macronix MX29F001T, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flas > h content, id2 is normal flash content > Probing for Macronix MX29F002(N)B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal f > lash content, id2 is normal flash content > Probing for Macronix MX29F002(N)T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal f > lash content, id2 is normal flash content > Probing for Macronix MX29F040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Macronix MX29LV040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flas > h content, id2 is normal flash content > Probing for MoselVitelic V29C51000B, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for MoselVitelic V29C51000T, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for MoselVitelic V29C51400B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for MoselVitelic V29C51400T, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for MoselVitelic V29LC51000, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for MoselVitelic V29LC51001, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for MoselVitelic V29LC51002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for PMC Pm29F002T, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_com > mon: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content > Probing for PMC Pm29F002B, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_com > mon: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content > Probing for PMC Pm39LV010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for PMC Pm39LV020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for PMC Pm39LV040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for Sharp LH28F008BJT-BTLZ1, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is nor > mal flash content > Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash > content > Probing for SST SST28SF040A, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conten > t, id2 is normal flash content > Probing for SST SST29EE010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST29LE010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST29EE020A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for SST SST29LE020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST39SF512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for SST SST39SF010A, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for SST SST39SF020A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for SST SST39SF040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST39VF512, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash con > tent, id2 is normal flash content > Probing for SST SST39VF010, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST39VF020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST39VF040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST39VF080, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d > Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conten > t, id2 is normal flash content > Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d > Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flas > h content > Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conte > nt, id2 is normal flash content > Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_ > common: id1 0x37, id2 0x9d > Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conte > nt, id2 is normal flash content > Probing for ST M29F002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash conte > nt, id2 is normal flash content > Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for ST M29F040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conte > nt, id2 is normal flash content > Probing for ST M29F400BB, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 > Probing for ST M29F400BT, 512 kB: probe_m29f400bt: id1 0x03, id2 0x00 > Probing for ST M29W010B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id1 is normal flash conte > nt, id2 is normal flash content > Probing for ST M29W040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash conte > nt, id2 is normal flash content > Probing for ST M29W512B, 64 kB: probe_jedec_common: id1 0xeb, id2 0x05, id1 parity violation, id1 is normal flash conten > t, id2 is normal flash content > Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, > id2 is normal flash content > Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, > id2 is normal flash content > Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash > content > Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash > content > Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, i > d2 is normal flash content > Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, > id2 is normal flash content > Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash content, i > d2 is normal flash content > Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0x4c, id2 0x41, id1 is normal flash content, id2 is normal flash co > ntent > Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, > id2 is normal flash content > Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, > id1 is normal flash content, id2 is normal flash content > Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, > id1 is normal flash content, id2 is normal flash content > Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, > id1 is normal flash content, id2 is normal flash content > Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, > id1 is normal flash content, id2 is normal flash content > Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, > id1 is normal flash content, id2 is normal flash content > Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, > id1 is normal flash content, id2 is normal flash content > Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, i > d1 is normal flash content, id2 is normal flash content > Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, i > d1 is normal flash content, id2 is normal flash content > Probing for TI TMS29F002RB, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for TI TMS29F002RT, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash co > ntent, id2 is normal flash content > Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012-old, 128 kB: Old Winbond W29* probe method disabled because th > e probing sequence puts the AMIC A49LF040A in a funky state. Use 'flashrom -c W29C010(M)/W29C011A/W29EE011/W29EE012-old' > if you have a board with such a chip. > Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 kB: probe_jedec_common: id1 0x55, id2 0xaa, id1 parity vi > olation, id1 is normal flash content, id2 is normal flash content > Probing for Winbond W29C020(C)/W29C022, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is nor > mal flash content, id2 is normal flash content > Probing for Winbond W29C040/P, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39L040, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d > Probing for Winbond W49F002U/N, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flas > h content, id2 is normal flash content > Probing for Winbond W49F020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash c > ontent, id2 is normal flash content > Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash > content, id2 is normal flash content > Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0x37, id2 0x9d > Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x03, id2 0x00, id1 parity violation, id1 is > normal flash content, id2 is normal flash content > No EEPROM/flash device found. > Note: flashrom can never write if the flash chip isn't f > > _______________________________________________ > flashrom mailing list > flashrom at flashrom.org > http://www.flashrom.org/mailman/listinfo/flashrom From stefan.tauner at student.tuwien.ac.at Thu Jan 5 03:26:42 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Thu, 5 Jan 2012 03:26:42 +0100 Subject: [flashrom] [PATCH] Postpone layout file reading In-Reply-To: <4F011F3F.10103@gmx.net> References: <4F011F3F.10103@gmx.net> Message-ID: <201201050227.q052R368026755@mail2.student.tuwien.ac.at> On Mon, 02 Jan 2012 04:06:39 +0100 Carl-Daniel Hailfinger wrote: > Layout file reading should happen after option parsing like all other > file accesses. > Guard against multiple --layout parameters. > > Side note: This fixes an inconsistency which impacts the log file patch. > > Signed-off-by: Carl-Daniel Hailfinger > > Index: flashrom-postpone_layoutfile_reading/cli_classic.c > =================================================================== > --- flashrom-postpone_layoutfile_reading/cli_classic.c (Revision 1482) > +++ flashrom-postpone_layoutfile_reading/cli_classic.c (Arbeitskopie) > @@ -204,6 +204,7 @@ > }; > > char *filename = NULL; > + char *layoutfile = NULL; > char *tempstr = NULL; > char *pparam = NULL; > > @@ -290,9 +291,12 @@ > force = 1; > break; > case 'l': > - tempstr = strdup(optarg); > - if (read_romlayout(tempstr)) > + if (layoutfile) { > + fprintf(stderr, "Error: --layout specified " > + "more than once. Aborting.\n"); supporting more than one layout file might become handy for some. for example when using the same hardware platform with multiple firmwares one might have a common file which specifies for example the boot block and multiple other files for the different firmwares respectively. far-fetched? probably. hard to implement? not with an easy and ready to use data structure like an innovative linked list! ;) i am not suggesting adding this now. it just sprang to my mind when thinking about this. i investigated if we can distinguish between short and long options to display a correct error message (list the option actually supplied instead of a hardcoded string). the good news: it is possible actually. the bad news: it is more complicated than technically needed, doable, but probably not worth it. so of course ill try it in a few :) > cli_classic_abort_usage(); > + } > + layoutfile = strdup(optarg); > break; > case 'i': > tempstr = strdup(optarg); > @@ -390,9 +394,6 @@ > cli_classic_abort_usage(); > } > > - if (process_include_args()) > - cli_classic_abort_usage(); > - > /* FIXME: Print the actions flashrom will take. */ > > if (list_supported) { > @@ -407,6 +408,11 @@ > } > #endif > > + if (layoutfile && read_romlayout(layoutfile)) > + cli_classic_abort_usage(); > + if (process_include_args()) > + cli_classic_abort_usage(); > + side note: we do not (i.e. i did not) check for duplicate -i arguments: Looking for region "pr0"... found. Looking for region "pr0"... found. Using regions: "pr0", "pr0". not a big issue i hope (i did not check it but presume it to be cosmetic only). Acked-by: Stefan Tauner PS: you may wanna remove the -m short option with this one already. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Thu Jan 5 03:53:25 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Thu, 5 Jan 2012 03:53:25 +0100 Subject: [flashrom] [PATCH] [NOT FOR MERGE] use getopt_long's flag field to distinguish short and long options in error messages In-Reply-To: <4F011F3F.10103@gmx.net> References: <4F011F3F.10103@gmx.net> Message-ID: <1325732005-9708-1-git-send-email-stefan.tauner@student.tuwien.ac.at> and fail miserably if error messages for an option depends on another one :) Signed-off-by: Stefan Tauner --- cli_classic.c | 50 ++++++++++++++++++++++++++++++-------------------- 1 files changed, 30 insertions(+), 20 deletions(-) diff --git a/cli_classic.c b/cli_classic.c index 7ce74e5..9693c43 100644 --- a/cli_classic.c +++ b/cli_classic.c @@ -178,22 +178,23 @@ int main(int argc, char *argv[]) int ret = 0; static const char optstring[] = "r:Rw:v:nVEfc:m:l:i:p:Lzh"; - static const struct option long_options[] = { - {"read", 1, NULL, 'r'}, - {"write", 1, NULL, 'w'}, - {"erase", 0, NULL, 'E'}, - {"verify", 1, NULL, 'v'}, - {"noverify", 0, NULL, 'n'}, - {"chip", 1, NULL, 'c'}, - {"verbose", 0, NULL, 'V'}, - {"force", 0, NULL, 'f'}, - {"layout", 1, NULL, 'l'}, - {"image", 1, NULL, 'i'}, - {"list-supported", 0, NULL, 'L'}, - {"list-supported-wiki", 0, NULL, 'z'}, - {"programmer", 1, NULL, 'p'}, - {"help", 0, NULL, 'h'}, - {"version", 0, NULL, 'R'}, + static int blub = 0; + static struct option long_options[] = { + {"read", 1, &blub, 'r'}, + {"write", 1, &blub, 'w'}, + {"erase", 0, &blub, 'E'}, + {"verify", 1, &blub, 'v'}, + {"noverify", 0, &blub, 'n'}, + {"chip", 1, &blub, 'c'}, + {"verbose", 0, &blub, 'V'}, + {"force", 0, &blub, 'f'}, + {"layout", 1, &blub, 'l'}, + {"image", 1, &blub, 'i'}, + {"list-supported", 0, &blub, 'L'}, + {"list-supported-wiki", 0, &blub, 'z'}, + {"programmer", 1, &blub, 'p'}, + {"help", 0, &blub, 'h'}, + {"version", 0, &blub, 'R'}, {NULL, 0, NULL, 0}, }; @@ -213,6 +214,13 @@ int main(int argc, char *argv[]) */ while ((opt = getopt_long(argc, argv, optstring, long_options, &option_index)) != EOF) { + int long_opt = 0; + if (opt == 0) { + long_opt = 1; + opt = long_options[option_index].val; + } + printf("long_opt = %d\n", long_opt); + switch (opt) { case 'r': if (++operation_specified > 1) { @@ -240,8 +248,9 @@ int main(int argc, char *argv[]) cli_classic_abort_usage(); } if (dont_verify_it) { - fprintf(stderr, "--verify and --noverify are" - "mutually exclusive. Aborting.\n"); + fprintf(stderr, "%s and --noverify are " + "mutually exclusive. Aborting.\n", + long_opt ? "--verify" : "-v"); cli_classic_abort_usage(); } filename = strdup(optarg); @@ -249,8 +258,9 @@ int main(int argc, char *argv[]) break; case 'n': if (verify_it) { - fprintf(stderr, "--verify and --noverify are" - "mutually exclusive. Aborting.\n"); + fprintf(stderr, "--verify and %s are " + "mutually exclusive. Aborting.\n", + long_opt ? "--noverify" : "-n"); cli_classic_abort_usage(); } dont_verify_it = 1; -- 1.7.1 From Raghuramchary.Jallipalli at lntinfotech.com Fri Jan 6 14:12:59 2012 From: Raghuramchary.Jallipalli at lntinfotech.com (Raghuramchary Jallipalli) Date: Fri, 6 Jan 2012 18:42:59 +0530 Subject: [flashrom] Help: unable to upgrade bios References: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> <201201040008.q0408l9V025178@mail2.student.tuwien.ac.at> Message-ID: Sorry, missed to attach the logs. Resending with the attached logs. Thanks, Raghu -----Original Message----- From: Raghuramchary Jallipalli Sent: Friday, January 06, 2012 6:41 PM To: flashrom at flashrom.org Cc: V Balaji; Vishnuvardhan Reddy Subject: RE: [flashrom] Help: unable to upgrade bios Thanks Stefan. The force option enable worked and we were able to program the AT25DF321A flash. But the contents are wrong and the board was not able to come up. Please see attached for the verbose output for both read and write. For your info, the board has two flashes(each 4MB) and the bios resides on the second(we have a jumper option to select the flash device). We are confused whether the flashrom selects the correct flash device and program it. Can you please help. Thanks, Raghu -----Original Message----- From: Stefan Tauner [mailto:stefan.tauner at student.tuwien.ac.at] Sent: Wednesday, January 04, 2012 5:38 AM To: Raghuramchary Jallipalli Cc: flashrom at flashrom.org; V Balaji; Vishnuvardhan Reddy Subject: Re: [flashrom] Help: unable to upgrade bios On Tue, 3 Jan 2012 22:51:42 +0530 Raghuramchary Jallipalli wrote: > Do you have any plans to support the laptops with QM67 chipset and AT25DF321A, AT25DF641A flashchips, to upgrade the bios gracefully? If yes, can you please give us the timeline. Hello Raghu! the AT25DF321A is already supported, but untested (usually SPI chips just work). The AT25DF641A is almost identical to the AT25DF641 and will (for now) be detected and used as such. The latter is supported, but as well untested. I dont see a problem regarding those chips. In the event that a problem is encountered we can probably fix it quite fast. The other part of the question is not that easily answered. First of all laptops have additional chips (embedded controllers) involved in accessing the flash device which we dont support in general at the moment. This is a long term goal without a timeline (you could depend on). The chipset itself is supported. It just have some features that - if enabled - prohibit accessing some portions of the flash. There is some work done on working around this, but do not expect this to arrive soon please. I could tell you at least a bit more, if you could post a verbose output of running flashrom (including the laptop-enabling parameter of course). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner The contents of this e-mail and any attachment(s) may contain confidential or privileged information for the intended recipient(s). Unintended recipients are prohibited from taking action on the basis of information in this e-mail and using or disseminating the information, and must notify the sender and delete it from their system. L&T Infotech will not accept responsibility or liability for the accuracy or completeness of, or the presence of any virus or disabling code in this e-mail" ************************************************************************* This email and attachments have been scanned for potential proprietary or sensitive information leakage. Websense Data Security, Protecting Your Information from the Inside Out. www.websense.com ************************************************************************* -------------- next part -------------- A non-text attachment was scrubbed... Name: rd_log Type: application/octet-stream Size: 21208 bytes Desc: rd_log URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: log_321a Type: application/octet-stream Size: 44495 bytes Desc: log_321a URL: From Raghuramchary.Jallipalli at lntinfotech.com Fri Jan 6 14:11:20 2012 From: Raghuramchary.Jallipalli at lntinfotech.com (Raghuramchary Jallipalli) Date: Fri, 6 Jan 2012 18:41:20 +0530 Subject: [flashrom] Help: unable to upgrade bios In-Reply-To: <201201040008.q0408l9V025178@mail2.student.tuwien.ac.at> References: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> <201201040008.q0408l9V025178@mail2.student.tuwien.ac.at> Message-ID: Thanks Stefan. The force option enable worked and we were able to program the AT25DF321A flash. But the contents are wrong and the board was not able to come up. Please see attached for the verbose output for both read and write. For your info, the board has two flashes(each 4MB) and the bios resides on the second(we have a jumper option to select the flash device). We are confused whether the flashrom selects the correct flash device and program it. Can you please help. Thanks, Raghu -----Original Message----- From: Stefan Tauner [mailto:stefan.tauner at student.tuwien.ac.at] Sent: Wednesday, January 04, 2012 5:38 AM To: Raghuramchary Jallipalli Cc: flashrom at flashrom.org; V Balaji; Vishnuvardhan Reddy Subject: Re: [flashrom] Help: unable to upgrade bios On Tue, 3 Jan 2012 22:51:42 +0530 Raghuramchary Jallipalli wrote: > Do you have any plans to support the laptops with QM67 chipset and AT25DF321A, AT25DF641A flashchips, to upgrade the bios gracefully? If yes, can you please give us the timeline. Hello Raghu! the AT25DF321A is already supported, but untested (usually SPI chips just work). The AT25DF641A is almost identical to the AT25DF641 and will (for now) be detected and used as such. The latter is supported, but as well untested. I dont see a problem regarding those chips. In the event that a problem is encountered we can probably fix it quite fast. The other part of the question is not that easily answered. First of all laptops have additional chips (embedded controllers) involved in accessing the flash device which we dont support in general at the moment. This is a long term goal without a timeline (you could depend on). The chipset itself is supported. It just have some features that - if enabled - prohibit accessing some portions of the flash. There is some work done on working around this, but do not expect this to arrive soon please. I could tell you at least a bit more, if you could post a verbose output of running flashrom (including the laptop-enabling parameter of course). -- Kind regards/Mit freundlichen Gren, Stefan Tauner The contents of this e-mail and any attachment(s) may contain confidential or privileged information for the intended recipient(s). Unintended recipients are prohibited from taking action on the basis of information in this e-mail and using or disseminating the information, and must notify the sender and delete it from their system. L&T Infotech will not accept responsibility or liability for the accuracy or completeness of, or the presence of any virus or disabling code in this e-mail" ************************************************************************* This email and attachments have been scanned for potential proprietary or sensitive information leakage. Websense Data Security, Protecting Your Information from the Inside Out. www.websense.com ************************************************************************* From vince06fr at gmail.com Fri Jan 6 14:12:18 2012 From: vince06fr at gmail.com (Vince S) Date: Fri, 6 Jan 2012 14:12:18 +0100 Subject: [flashrom] flashrom -V Message-ID: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50 Found SST flash chip "SST49LF040B" (512 kB, LPC). No operations were specified. Restoring PCI config space for 00:01:0 reg 0x6d Restoring PCI config space for 00:01:0 reg 0x90 Restoring PCI config space for 00:01:0 reg 0x8c Restoring PCI config space for 00:01:0 reg 0x88 Thanks for your work -------------- next part -------------- An HTML attachment was scrubbed... URL: From orangeshirt at web.de Fri Jan 6 19:35:19 2012 From: orangeshirt at web.de (Armin) Date: Fri, 06 Jan 2012 19:35:19 +0100 Subject: [flashrom] flashrom output Message-ID: <1325874919.2335.0.camel@ea-book> Hello, I've flashed sucessfully a ASUS M2A-VM HDMI Mainboard. Here is the output: $ sudo flashrom -Vw 2302.BIN flashrom v0.9.4-r1394 on Linux 3.0.0-14-generic (x86_64), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 666M loops per second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 1011 us, 10000 myus = 10013 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "M2A-VM HDMI" DMI string baseboard-version: "1.XX " DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8716 on port 0x2e Found chipset "AMD SB600" with PCI ID 1002:438d. Enabling flash write... SPI base address is at 0x0 ROM strap override is not active OK. This chipset supports the following protocols: LPC, FWH. No IT87* serial flash segment enabled. Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xf8, id2 0x0d, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xf8, id2 0x0d, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xf8, id2 0x0d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xf8, id2 0x0d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xf8, id2 0x0d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Found Winbond flash chip "W39V080A" (1024 kB, LPC) at physical address 0xfff00000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! Flash image seems to be a legacy BIOS. Disabling coreboot-related checks. Reading old flash chip contents... done. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x00ffff:S, 0x010000-0x01ffff:EW, 0x020000-0x02ffff:E, 0x030000-0x03ffff:EW, 0x040000-0x04ffff:EW, 0x050000-0x05ffff:EW, 0x060000-0x06ffff:EW, 0x070000-0x07ffff:EW, 0x080000-0x08ffff:EW, 0x090000-0x09ffff:W, 0x0a0000-0x0affff:W, 0x0b0000-0x0bffff:S, 0x0c0000-0x0cffff:S, 0x0d0000-0x0dffff:W, 0x0e0000-0x0effff:EW, 0x0f0000-0x0fffff:EW Erase/write done. Verifying flash... VERIFIED. $ sudo flashrom -Vr old_bios.BIN flashrom v0.9.4-r1394 on Linux 3.0.0-14-generic (x86_64), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 2 usecs, 664M loops per second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 997 us, 10000 myus = 10067 us, 8 myus = 9 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "M2A-VM HDMI" DMI string baseboard-version: "1.XX " DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8716 on port 0x2e Found chipset "AMD SB600" with PCI ID 1002:438d. Enabling flash write... SPI base address is at 0x0 ROM strap override is not active OK. This chipset supports the following protocols: LPC, FWH. No IT87* serial flash segment enabled. Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Found Winbond flash chip "W39V080A" (1024 kB, LPC) at physical address 0xfff00000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! Reading flash... done. $ sudo flashrom -V flashrom v0.9.4-r1394 on Linux 3.0.0-14-generic (x86_64), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 665M loops per second, 10 myus = 12 us, 100 myus = 101 us, 1000 myus = 1010 us, 10000 myus = 10009 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "M2A-VM HDMI" DMI string baseboard-version: "1.XX " DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8716 on port 0x2e Found chipset "AMD SB600" with PCI ID 1002:438d. Enabling flash write... SPI base address is at 0x0 ROM strap override is not active OK. This chipset supports the following protocols: LPC, FWH. No IT87* serial flash segment enabled. Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xda, id2 0xd0 Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x75, id2 0x91, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xaa, id2 0xbb, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Found Winbond flash chip "W39V080A" (1024 kB, LPC) at physical address 0xfff00000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xda, id2 0xd0 Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0xd0 === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! No operations were specified. Cheers and thanks for writing flashrom Armin From dhendrix at google.com Sat Jan 7 00:12:21 2012 From: dhendrix at google.com (David Hendricks) Date: Fri, 6 Jan 2012 15:12:21 -0800 Subject: [flashrom] Help: unable to upgrade bios In-Reply-To: References: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> <201201040008.q0408l9V025178@mail2.student.tuwien.ac.at> Message-ID: On Fri, Jan 6, 2012 at 5:12 AM, Raghuramchary Jallipalli < Raghuramchary.Jallipalli at lntinfotech.com> wrote: > The force option enable worked and we were able to program the AT25DF321A > flash. But the contents are wrong and the board was not able to come up. > Please see attached for the verbose output for both read and write. > There is a high likelihood that either the Management Engine (ME) or embedded controller (EC) is interfering with Flashrom operation. One concern is that flashrom does not appear to set the op.atomic field properly: 0x94: 0x0606 (PREOP) 0x96: 0x0be4 (OPTYPE) 0x98: 0x02030105 (OPMENU) 0x9C: 0xff9f3c20 (OPMENU+4) 0xA0: 0x00000000 (BBAR) 0xD0: 0x00000000 (FPB) Reading OPCODES... done preop0=0x06, preop1=0x06 op[0]=0x05, 0, 0 op[1]=0x01, 1, 0 op[2]=0x03, 2, 0 op[3]=0x02, 3, 0 op[4]=0x20, 3, 0 op[5]=0x3c, 2, 0 op[6]=0x9f, 0, 0 op[7]=0xff, 0, 0 The third column shows that none of the opcodes are configured as atomic cycles. Thus, Flashrom does not know to set the SPIC_ACS bit ( http://flashrom.org/trac/flashrom/browser/trunk/ichspi.c#L782) when processing these opcodes. If the "atomic" field is not set properly, then it is possible for ME or EC to interfere with flashrom in between write enable (WREN) opcodes such as block erase and program page. On Fri, Jan 6, 2012 at 5:12 AM, Raghuramchary Jallipalli < Raghuramchary.Jallipalli at lntinfotech.com> wrote: > For your info, the board has two flashes(each 4MB) and the bios resides on > the second(we have a jumper option to select the flash device). We are > confused whether the flashrom selects the correct flash device and program > it. > Are both ROMs logically present? Or will the jumper only enable one ROM at a given time? If there are multiple ROMs present, then Flashrom use the "Hardware Sequencing" method of flashing when it detects the "Number of Components" (NC) > 0 in the flash descriptor region: http://flashrom.org/trac/flashrom/browser/trunk/ichspi.c#L1742 See FLMAP0 in the Intel documentation for more details, and ensure the NC field is programmed appropriately for your mainboard configuration. -- David Hendricks (dhendrix) Systems Software Engineer, Google Inc. -------------- next part -------------- An HTML attachment was scrubbed... URL: From feldi.axl at googlemail.com Sun Jan 8 12:07:31 2012 From: feldi.axl at googlemail.com (Feldi alias aXl) Date: Sun, 8 Jan 2012 12:07:31 +0100 Subject: [flashrom] Problems flashing bios Message-ID: Hello all, i have problems flashing my bios with your utility. i have rented a small root-server in germany (http://www.hetzner.de/hosting/produkte_rootserver/x2) and wanted to update the bios. at the moment the hetzner rescue system is booted. infos: root at rescue ~ # uname -a Linux rescue 2.6.39.2 #1 SMP Mon Jul 25 18:36:18 CEST 2011 x86_64 GNU/Linux its a small debian system. flashrom is installed via apt: root at rescue ~ # flashrom --version flashrom v0.9.2-r1141 on Linux 2.6.39.2 (x86_64), built with libpci 3.1.7, GCC 4.4.5 20100728 (prerelease), little endian flashrom is free software, get the source code at http://www.flashrom.org hwinfo says this about my mainboard: root at rescue ~ # hwinfo --bios | grep "Board Info" -A 10 Board Info: #2 Manufacturer: "MICRO-STAR INTERNATIONAL CO., LTD" Product: "MS-7094" Version: "1.00" Chassis Info: #3 Type: 0x03 (Desktop) Bootup State: 0x02 (Unknown) Power Supply State: 0x02 (Unknown) Thermal State: 0x02 (Unknown) Security Status: 0x02 (Unknown) Processor Info: #4 so i entered "ms-7094" on the msi page and getted this site: http://www.msi-computer.de/product/mb/K8T-Neo2-F-V2-0.html#/?div=BIOS first i backuped the old bios with "flashrom --read bios.bak" and then tried to write the new bios with "flashrom --write W7094vms.360" .... then i get this error: root at rescue ~ # flashrom --write W7094vms.360 flashrom v0.9.2-r1141 on Linux 2.6.39.2 (x86_64), built with libpci 3.1.7, GCC 4.4.5 20100728 (prerelease), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OK. No coreboot table found. Found chipset "VIA VT8237", enabling flash write... OK. This chipset supports the following protocols: Non-SPI. Found chip "Winbond W39V040A" (512 KB, LPC) at physical address 0xfff80000. === This flash part has status UNTESTED for operations: ERASE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Thanks for your help! === Flash image seems to be a legacy BIOS. Disabling checks. Writing flash chip... Erasing flash chip... ERASE FAILED at 0x00000000! Expected=0xff, Read=0x49, failed byte count from 0x00000000-0x0000ffff: 0x4c4 ERASE FAILED! ERASE FAILED at 0x00000000! Expected=0xff, Read=0x49, failed byte count from 0x00000000-0x0007ffff: 0x48ec4 ERASE FAILED! FAILED! ERASE FAILED! FAILED! Your flash chip is in an unknown state. Get help on IRC at irc.freenode.net (channel #flashrom) or mail flashrom at flashrom.org! ------------------------------------------------------------------------------- DO NOT REBOOT OR POWEROFF! what to do now? thanks for any help! p.s.: sorry for my bad english :) greetz from germany, axel From paulepanter at users.sourceforge.net Sun Jan 8 17:03:59 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Sun, 08 Jan 2012 17:03:59 +0100 Subject: [flashrom] ASRock AM2NF6G-VSTA (Nvidia MCP61): `flashrom -Vr` (r1483) Message-ID: <1326038639.15840.39.camel@mattotaupa> Dear Flashrom folks, I tested the ASRock AM2NF6G-VSTA with an Nvidia MCP61 chipset. The output says, that the chipset is not fully supported so please tell me what I have to consider when testing writing. $ flashrom -V -r am2nf6g-vsta.bin [?] DMI string system-manufacturer: "To Be Filled By O.E.M." DMI string system-product-name: "To Be Filled By O.E.M." DMI string system-version: "To Be Filled By O.E.M." DMI string baseboard-manufacturer: " " DMI string baseboard-product-name: "AM2NF6G-VSTA" DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... This chipset is not really supported yet. Guesswork... ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 Flash bus type is LPC Found SMBus device 10de:03eb at 00:01:1 MCP SPI BAR is at 0x40000000 Strange. MCP SPI BAR is valid, but chipset apparently doesn't have SPI enabled. Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. The following protocols are supported: LPC. [?] Reading seems to work. The difference between the read image to the downloaded file (1.20) from the ASRock [2] is minimal according to `bsdiff`. 00000000 42 53 44 49 46 46 34 30 42 00 00 00 00 00 00 00 2D 00 00 00 00 00 00 00 00 00 08 00 BSDIFF40B.......-........... 0000001C 00 00 00 00 42 5A 68 39 31 41 59 26 53 59 59 02 DA 4C 00 00 0E EC 41 71 38 00 20 01 ....BZh91AY&SYY..L....Aq8. . 00000038 00 40 00 40 20 01 00 20 00 31 00 D0 00 C5 32 19 36 A2 B1 39 12 48 15 EA BC D8 B4 74 . at .@ .. .1....2.6..9.H.....t 00000054 E8 C2 6F E2 EE 48 A7 0A 12 0B 20 5B 49 80 42 5A 68 39 31 41 59 26 53 59 35 50 66 AE ..o..H.... [I.BZh91AY&SY5Pf. 00000070 00 04 04 40 00 C4 00 00 08 20 00 30 CC 05 29 A6 10 0D 88 80 78 BB 92 29 C2 84 81 AA ... at ..... .0..).....x..).... 0000008C 83 35 70 42 5A 68 39 17 72 45 38 50 90 00 00 00 00 .5pBZh9.rE8P..... Please find all log files attached. Thanks, Paul [1] http://www.asrock.com/MB/overview.asp?Model=AM2NF6G-VSTA [2] http://www.asrock.com/mb/download.asp?Model=AM2NF6G-VSTA&o=BIOS -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120107--ASRock-AM2NF6G-VSTA--dmesg.log Type: text/x-log Size: 47407 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120107--ASRock-AM2NF6G-VSTA--lspci-tvnn.log Type: text/x-log Size: 1380 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120107--ASRock-AM2NF6G-VSTA--superiotool-dV.log Type: text/x-log Size: 8535 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120107--ASRock-AM2NF6G-VSTA--dmidecode.log Type: text/x-log Size: 9957 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120107--ASRock-AM2NF6G-VSTA--flashrom-rV.log Type: text/x-log Size: 4335 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120107--ASRock-AM2NF6G-VSTA--flashrom-V.log Type: text/x-log Size: 4339 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From ilhan805 at gmail.com Sun Jan 8 15:33:54 2012 From: ilhan805 at gmail.com (=?ISO-8859-9?Q?=DDlhan_Kahraman?=) Date: Sun, 8 Jan 2012 16:33:54 +0200 Subject: [flashrom] I lost my backup image and now my pc doesn't start...! Message-ID: Hello there..., My name is ilhan and I have just started to use a linux operating system, so I am new to all of these linux applications... While I am using this operating system, my self-confidence about diving into more tough stuff like *flashtom-0.9.4. *, has pushed me a downgrade flashing attempt on my motherboard, *Asus M4A88TD-V EVO/USB3*. Actually, I have tried a downgrade flashing whit my mobo's official applications, such as *asus update and bupdater, *in both FreeDos and * *Win7 environments but, this did not help me and kept saying that " you are trying to load an old version of bios"... So, I downloaded flashrom-0.9.4 source, installed it according to README file, read its manual (http://www.flashrom.org/trac/flashrom/browser/trunk/flashrom.8) and finally *I made a backup file*. While playing around these linux applications and procrastinating my bios flashing, days gone by... Then one day :)... I just decided to flash my bios because of increased freezings and shutdowns in Win7, without being aware of that I have lost my usb stick in which I backup my mobos image whit using: sudo flashrom -r m4a88tdbackup In other words; I, unconsciously, started the flashing whit out having a backup file... I simbly downloaded my old bios to my desktop (M4A88TD-V EVO/USB3 BIOS 1601)from: http://support.asus.com/download/download_item_mkt.aspx?slanguage=en-us&model=M4A88TD-V+EVO%2fUSB3 I named this file as m4a88tdnew.ROM and continue with ... ilhan at ubuntu:~/Desktop$ >> sudo flashrom -E ilhan at ubuntu:~/Desktop$ >> sudo flashrom -w m4a88tdnew.ROM After flashrom *verified that the chip (winbond W25Q16) content and the file content was same*, I hit the re-start button and this was the end of my computer :) It has not respond anything after that, not even any fan has cycled... I have already tried the firmware CD and usb which both contains the m4a88tu3.rom ( I think its the equivalent of the amitool.rom in the asus due to user guide instructions), have clear the cmos without its battery and have un-plugged everything (expect cpu) in various combinations... All I have now, at start, CD-rom trying to read the CDs but it gives up quickly and the most important the cpu fan and the cpu ( I guess) does not work... Trying all of this with out any luck, I decided to buy a new but cheaper mobo. I bought a Asus M4N68T-M ( *with Nvidia MCP61 chipset (un-tested) and Eon EN25F80 flash chip*). I plugged everything on this mobo and it just working like a charm. With this new card I continued my attempts to flash my old cards chip but, I realized that I have no enough skills even making a simple confirmation of that: did I succeed it, in a right way. I decided to go in short way, made a simple search on the issue and found the* yann's report *( http://paste.flashrom.org/view.php?id=687) about my old card. I requested from him to send me his back up image file via e-mail and he, kindly, said that he hadn't got any backup and directed me to the Asus support site which I already tried. *After all of this, as a last resort, I decided to stole your precious time for my unimportant problem... Can you help me about it. Can I resque my old card and how? I thought, if you can help me, in return of this help; I could contribute by sending you a report about both my new and old mobos :) I thing it is a good deal...:)) So How can I flash my old card's chip in my new card and verify its flashed in a right way? I thank you very much by now for just reading this long. * Have a good day.... -- ?lhan KAHRAMAN Undergraduate Student at Materials Science & Engineering Department and Department of Industrial Design, Anadolu University, Eskisehir, Turkey e-mail: ilhan805 at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From marcosfrm at gmail.com Sun Jan 8 18:37:11 2012 From: marcosfrm at gmail.com (Marcos Felipe Rasia de Mello) Date: Sun, 8 Jan 2012 15:37:11 -0200 Subject: [flashrom] I lost my backup image and now my pc doesn't start...! In-Reply-To: References: Message-ID: 2012/1/8 ?lhan Kahraman > > Hello there..., > > ???????? My name is ilhan and I have just started to use a linux operating system, so I am new to all of these linux applications... > While I am using this operating system, my self-confidence about diving into more tough stuff like flashtom-0.9.4. , has pushed > me a downgrade flashing attempt on my motherboard, Asus M4A88TD-V EVO/USB3. > > ????????? Actually, I have tried a downgrade flashing whit my mobo's official? applications, such as asus update and bupdater, in both FreeDos and > Win7 environments but, this did not help me and kept saying that? " you are trying to load an old version of bios"... > > ? ? ? ?? So, I downloaded flashrom-0.9.4 source, installed it according to README file, read its manual > (http://www.flashrom.org/trac/flashrom/browser/trunk/flashrom.8) and finally I made a backup file. > > ? ? ? ?? While playing around these linux applications and procrastinating my bios flashing, days gone by... Then one day :)... I just decided > to flash my bios because of increased freezings and shutdowns in Win7, without being aware of that I have lost my usb stick in which I > backup my mobos image whit using: > > sudo flashrom -r m4a88tdbackup > > > ?????? In other words; I, unconsciously, started the flashing whit out having a backup file... > > I simbly downloaded my old bios to my desktop (M4A88TD-V EVO/USB3 BIOS 1601) from: > http://support.asus.com/download/download_item_mkt.aspx?slanguage=en-us&model=M4A88TD-V+EVO%2fUSB3 > > I named this file as m4a88tdnew.ROM > > and continue with ... > > ilhan at ubuntu:~/Desktop$ >> sudo flashrom -E > ilhan at ubuntu:~/Desktop$ >> sudo flashrom -w m4a88tdnew.ROM > > ??????? After flashrom verified that the chip (winbond W25Q16) content and the file content was same, I hit the re-start button and this was the end of my computer :) > It has not respond anything after that, not even any fan has cycled... I have already? tried the firmware CD and usb? which both contains the > m4a88tu3.rom ( I think its? the equivalent of the amitool.rom in the asus due to user guide instructions), have clear the cmos without its battery and > have un-plugged everything (expect cpu) in various combinations... All I have now, at start, CD-rom trying to read the CDs but it gives up quickly and > the most important the cpu fan and the cpu ( I guess) does not work... > > ?????? Trying all of this with out any luck, I decided to buy a new but cheaper mobo. I bought a Asus M4N68T-M ( with Nvidia MCP61 chipset (un-tested) and Eon EN25F80 > flash chip). I plugged everything on this mobo and it just working like a charm. > > With this new card I continued my attempts to flash my old cards chip but, I realized that I have no enough skills even making a simple confirmation of that: did I succeed it, > in a right way. I decided to go in short way, made a simple search on the issue and found the yann's report (http://paste.flashrom.org/view.php?id=687)? about my old card. > I requested from him to send me his back up image file via e-mail and he, kindly, said that he hadn't got any backup and directed me to the Asus support site which I already tried. > > After all of this, as a last resort, I? decided to stole your precious time for my unimportant problem... Can you help me about it. Can I resque my old card and how? > I thought, if you can help me, in return of this help; I could contribute by sending you a report about both my new and old mobos :) I thing it is a good deal...:)) > > So How can I flash my old card's chip in my new card and verify its flashed in a right way? > > I thank you very much by now for just reading this long. > > > > Have a good day.... > > > -- > ?lhan KAHRAMAN > Undergraduate ?Student at > Materials Science & Engineering Department > and > Department of Industrial Design, > Anadolu University, Eskisehir, > Turkey > e-mail: ilhan805 at gmail.com > > Hi, Did "sudo flashrom -w m4a88tdnew.ROM" show any errors? If no, I can only think this board requires some magic from the official update tool to work... To restore your old chip contents using the new board you will need hot swap. Before continuing see if both chips have the same protocol and voltage. Power on your new board and load Linux. With the system powered on, remove with care the flash chip and put the "dead" one in place. Run flashrom -E and -w as usual. Power off and put each chip in its original place. However I don't think it will help if your first update attempt apparently was completed without errors. You can also use the DOS tool. Maybe it's the solution: UPDATE bupdater /iBIOS.ROM /pc /g BACKUP bupdater /oBKP.ROM The bios filename has *no* space after the "/i" and "/o" switches. Good luck. Marcos From ilhan805 at gmail.com Sun Jan 8 19:16:55 2012 From: ilhan805 at gmail.com (=?ISO-8859-9?Q?=DDlhan_Kahraman?=) Date: Sun, 8 Jan 2012 20:16:55 +0200 Subject: [flashrom] I lost my backup image and now my pc doesn't start...! In-Reply-To: References: Message-ID: No, it didn't give any errors. And No, bupdater identifies the bios of m4a.... and gives an error mesage because it knows the board is not appropriate for the bios of m4a.... So I have to do it with flashrom. Yes I can do hot swap as I mention in prev. mail. Same protocol same voltages... The one thing that I totally confused that: *the flashing*. Is it just a " sudo flashrom -w any.rom " process or more complicated than that like: updating some part of the chip with -- layout or -- image options and leaving other parts of the chip whit its original contents (like boot block) or something like that? And I do not really know if this process can affect the amd chipset of my board or its only effective on the flash chip? ?f its just a writing process of any .ROM file I thing I can try forcing it to writing operation with internal programer... Thanks for Luck :)) 8 Ocak 2012 19:37 tarihinde Marcos Felipe Rasia de Mello < marcosfrm at gmail.com> yazd?: > 2012/1/8 ?lhan Kahraman > > > > Hello there..., > > > > My name is ilhan and I have just started to use a linux > operating system, so I am new to all of these linux applications... > > While I am using this operating system, my self-confidence about diving > into more tough stuff like flashtom-0.9.4. , has pushed > > me a downgrade flashing attempt on my motherboard, Asus M4A88TD-V > EVO/USB3. > > > > Actually, I have tried a downgrade flashing whit my mobo's > official applications, such as asus update and bupdater, in both FreeDos > and > > Win7 environments but, this did not help me and kept saying that " you > are trying to load an old version of bios"... > > > > So, I downloaded flashrom-0.9.4 source, installed it according > to README file, read its manual > > (http://www.flashrom.org/trac/flashrom/browser/trunk/flashrom.8) and > finally I made a backup file. > > > > While playing around these linux applications and > procrastinating my bios flashing, days gone by... Then one day :)... I just > decided > > to flash my bios because of increased freezings and shutdowns in Win7, > without being aware of that I have lost my usb stick in which I > > backup my mobos image whit using: > > > > sudo flashrom -r m4a88tdbackup > > > > > > In other words; I, unconsciously, started the flashing whit out > having a backup file... > > > > I simbly downloaded my old bios to my desktop (M4A88TD-V EVO/USB3 BIOS > 1601) from: > > > http://support.asus.com/download/download_item_mkt.aspx?slanguage=en-us&model=M4A88TD-V+EVO%2fUSB3 > > > > I named this file as m4a88tdnew.ROM > > > > and continue with ... > > > > ilhan at ubuntu:~/Desktop$ >> sudo flashrom -E > > ilhan at ubuntu:~/Desktop$ >> sudo flashrom -w m4a88tdnew.ROM > > > > After flashrom verified that the chip (winbond W25Q16) content > and the file content was same, I hit the re-start button and this was the > end of my computer :) > > It has not respond anything after that, not even any fan has cycled... I > have already tried the firmware CD and usb which both contains the > > m4a88tu3.rom ( I think its the equivalent of the amitool.rom in the > asus due to user guide instructions), have clear the cmos without its > battery and > > have un-plugged everything (expect cpu) in various combinations... All I > have now, at start, CD-rom trying to read the CDs but it gives up quickly > and > > the most important the cpu fan and the cpu ( I guess) does not work... > > > > Trying all of this with out any luck, I decided to buy a new but > cheaper mobo. I bought a Asus M4N68T-M ( with Nvidia MCP61 chipset > (un-tested) and Eon EN25F80 > > flash chip). I plugged everything on this mobo and it just working like > a charm. > > > > With this new card I continued my attempts to flash my old cards chip > but, I realized that I have no enough skills even making a simple > confirmation of that: did I succeed it, > > in a right way. I decided to go in short way, made a simple search on > the issue and found the yann's report ( > http://paste.flashrom.org/view.php?id=687) about my old card. > > I requested from him to send me his back up image file via e-mail and > he, kindly, said that he hadn't got any backup and directed me to the Asus > support site which I already tried. > > > > After all of this, as a last resort, I decided to stole your precious > time for my unimportant problem... Can you help me about it. Can I resque > my old card and how? > > I thought, if you can help me, in return of this help; I could > contribute by sending you a report about both my new and old mobos :) I > thing it is a good deal...:)) > > > > So How can I flash my old card's chip in my new card and verify its > flashed in a right way? > > > > I thank you very much by now for just reading this long. > > > > > > > > Have a good day.... > > > > > > -- > > ?lhan KAHRAMAN > > Undergraduate Student at > > Materials Science & Engineering Department > > and > > Department of Industrial Design, > > Anadolu University, Eskisehir, > > Turkey > > e-mail: ilhan805 at gmail.com > > > > > > Hi, > > Did "sudo flashrom -w m4a88tdnew.ROM" show any errors? If no, I can > only think this board requires some magic from the official update > tool to work... > > To restore your old chip contents using the new board you will need > hot swap. Before continuing see if both chips have the same protocol > and voltage. Power on your new board and load Linux. With the system > powered on, remove with care the flash chip and put the "dead" one in > place. Run flashrom -E and -w as usual. Power off and put each chip in > its original place. However I don't think it will help if your first > update attempt apparently was completed without errors. > > You can also use the DOS tool. Maybe it's the solution: > > UPDATE > bupdater /iBIOS.ROM /pc /g > > BACKUP > bupdater /oBKP.ROM > > The bios filename has *no* space after the "/i" and "/o" switches. > > Good luck. > > Marcos > -- ?lhan KAHRAMAN Undergraduate Student at Materials Science & Engineering Department and Department of Industrial Design, Anadolu University, Eskisehir, Turkey e-mail: ilhan805 at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From marcosfrm at gmail.com Sun Jan 8 22:04:42 2012 From: marcosfrm at gmail.com (Marcos Felipe Rasia de Mello) Date: Sun, 8 Jan 2012 19:04:42 -0200 Subject: [flashrom] I lost my backup image and now my pc doesn't start...! In-Reply-To: References: Message-ID: 2012/1/8 ?lhan Kahraman : > No, it didn't give any errors. And No, bupdater identifies the bios of > m4a.... and gives an error mesage because it knows the board is not > appropriate for the bios of m4a.... So I have to do it with flashrom. > Yes I can do hot swap as I mention in prev. mail. Same protocol same > voltages... > > The one thing that I totally confused that: the flashing. Is it? just a " > sudo flashrom -w? any.rom " process or more complicated than that like: > updating some part of the chip with? -- layout or -- image? options > and leaving other parts of the chip whit its original contents (like boot > block) or something like that?? And I do not really know if this process can > affect the amd chipset of my board or its only effective on the flash chip? > ?f its just a writing process of any .ROM file I thing I can try forcing it > to writing operation with internal programer... > > Thanks for Luck :)) > flashrom doesn't identifies what is bootblock/mainblock/whatever nor check if the board model matches like the official tools generally do. It's a low level tool that put inside the flash chip exactly the same contents of the the image file. Nothing else. By default flashrom uses the internal programmer and just touch the mainboard flash chip. It's really "flashrom -w" (-Vw for the reports :-) you need. About the bupdater, maybe there's an option to make it ignore the board mismatch (can be undocumented...). afudos and awdflash have it AFAIK. Did you tried bupdater with "/pc /g"? I couldn't find what they are for, but worth testing. Marcos From fred at tonga-soa.com Sun Jan 8 19:51:37 2012 From: fred at tonga-soa.com (Frederic Louard) Date: Sun, 08 Jan 2012 19:51:37 +0100 Subject: [flashrom] MSI K9N6GM-v : flashrom -V Message-ID: <1326048697.12178.2.camel@pollux> [root at pollux ~]# flashrom -V flashrom v0.9.4-r1455 on Linux 3.1.6-1.fc16.x86_64 (x86_64), built with libpci 3.1.7, GCC 4.6.1 20111003 (Red Hat 4.6.1-10), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 866M loops per second, 10 myus = 11 us, 100 myus = 101 us, 1000 myus = 1002 us, 10000 myus = 10007 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "MSI" DMI string system-product-name: "MS-7309" DMI string system-version: "1.0" DMI string baseboard-manufacturer: "MSI" DMI string baseboard-product-name: "MS-7309" DMI string baseboard-version: "1.0" DMI string chassis-type: "Desktop" Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... This chipset is not really supported yet. Guesswork... ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 Flash bus type is LPC Found SMBus device 10de:03eb at 00:01:1 MCP SPI BAR is at 0xfec80000 Strange. MCP SPI BAR is valid, but chipset apparently doesn't have SPI enabled. Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. This chipset supports the following protocols: LPC. Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xa1, id2 0x6e, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xa1, id2 0x6e, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xa1, id2 0x6e, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xa1, id2 0x6e, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xa1, id2 0x6e, id1 is normal flash content, id2 is normal flash content No EEPROM/flash device found. Note: flashrom can never write if the flash chip isn't found automatically. Restoring PCI config space for 00:01:0 reg 0x6d Restoring PCI config space for 00:01:0 reg 0x90 Restoring PCI config space for 00:01:0 reg 0x8c Restoring PCI config space for 00:01:0 reg 0x88 Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stalker254 at gmail.com Sun Jan 8 20:39:57 2012 From: stalker254 at gmail.com (=?KOI8-R?B?4c7E0sXKIPDBw8HO?=) Date: Sun, 8 Jan 2012 21:39:57 +0200 Subject: [flashrom] (no subject) Message-ID: motherboard : ASRock N68C-GS UCC,Cipset : GeForce 7025 / nForce 630a sudo flashrom -V flashrom v0.9.4-r1395 on Linux 3.1.7-1-ARCH (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1507M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 2536 us, 10000 myus = 10007 us, 4 myus = 14 us, OK. Initializing internal programmer No coreboot table found. sh: dmidecode: ??????? ?? ??????? dmidecode execution unsuccessful - continuing without DMI info Found chipset "NVIDIA MCP61" with PCI ID 10de:03e1. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... This chipset is not really supported yet. Guesswork... ISA/LPC bridge reg 0x8a contents: 0x40, bit 6 is 1, bit 5 is 0 Flash bus type is SPI SPI on this chipset is WIP. Please report any success or failure by mailing us the verbose output to flashrom at flashrom.org, thanks! Found SMBus device 10de:03eb at 00:01:1 MCP SPI BAR is at 0xfec80000 Mapping NVIDIA MCP6x SPI at 0xfec80000, unaligned size 0x544. SPI control is 0x0002, req=0, gnt=0 Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. WARNING: unexpected second chipset match: "NVIDIA MCP61" ignoring, please report lspci and board URL to flashrom at flashrom.org with 'CHIPSET: your board name' in the subject line. This chipset supports the following protocols: SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Chip status register is 00 Chip status register: Status Register Write Disable (SRWD) is not set Chip status register: Bit 6 is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Found Macronix flash chip "MX25L8005" (1024 kB, SPI) at physical address 0xfff00000. Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF010.REMS, 128 kB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF040.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25LF040A.RES, 512 kB: probe_spi_res2: id1 0x13, id2 0x13 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P05.RES, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P10.RES, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xc2, id2 0x13 No operations were specified. -------------- next part -------------- An HTML attachment was scrubbed... URL: From paulepanter at users.sourceforge.net Mon Jan 9 00:52:12 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Mon, 09 Jan 2012 00:52:12 +0100 Subject: [flashrom] ASUS M2V-MX SE: Can Winbond flash chip W39V040B (512 kB, LPC) be used? Message-ID: <1326066732.15840.56.camel@mattotaupa> Dear Flashrom folks, I got two spare boards with socketed flash chips and hope they can be used also for the ASUS M2V-MX SE which is supported by coreboot [1]. One board is the ASRock AM2NF6G-VSTA with a Winbond flash chip W39V040B (512 kB, LPC) [3]. Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040B" (512 kB, LPC). This output says LPC but the shipped flash chip in the ASUS M2V-MX SE seems to be SPI [2]. This chipset supports the following protocols: LPC,FWH,SPI. Calibrating delay loop... OK. Found chip "AMIC A25L40P" (512 KB, SPI) at physical address 0xfff80000. In my board there is the Macronix flash chip MX25L4005 (512 kB, SPI). $ sudo ./flashrom flashrom v0.9.4-r1483 on Linux 3.1.0-1-amd64 (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OK. Found chipset "VIA VT8237S". Enabling flash write... Mapping VT8237S MMIO registers at 0xfed02000, unaligned size 0x70. OK. Found Macronix flash chip "MX25L4005" (512 kB, SPI) at physical address 0xfff80000. No operations were specified. So the vendor flash chip is SPI but it says the chipset also supports LPC. Is such a socket universal so that I can use the LPC flash chip Winbond W39V040B? Thanks, Paul [1] http://www.asus.com/Product.aspx?P_ID=rO7Bu9kq3D25tXHl&content=specifications [2] http://www.coreboot.org/ASUS_M2V-MX_SE [3] http://www.flashrom.org/pipermail/flashrom/2012-January/008512.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From jimmie at southpole.se Mon Jan 9 11:52:06 2012 From: jimmie at southpole.se (Jimmie Tauriainen) Date: Mon, 09 Jan 2012 11:52:06 +0100 Subject: [flashrom] X8DTT-H In-Reply-To: <201201022231.q02MUuoU001175@mail2.student.tuwien.ac.at> References: <4EF1DD0F.70902@southpole.se> <201201022231.q02MUuoU001175@mail2.student.tuwien.ac.at> Message-ID: <4F0AC6D6.8010003@southpole.se> No problem, haven't had access to the machine under the new year circus. Is it only the Verbose outputs you need? Attaching them with latest SVN build. flashrom seems a lot more cleaner now, thanks for the good work. ;) Best regards, Jimmie On 2012-01-02 23:30, Stefan Tauner wrote: > > On Wed, 21 Dec 2011 14:20:15 +0100 > Jimmie Tauriainen wrote: > >> Hi, >> >> This is a Supermicro X8DTT-HIBQF but it uses the same BIOS as X8DTT-H as >> refered in DMI. Probably all H8DTT* boards uses same. >> >> Anyway attaching flashrom -V outputs. > > hmmm > Sorry for the late reply. I just notices that you were using r1478, > which had one important fix missing which was added in r1479. maybe that > did not actually matter, but i would try anyway with a current > snapshot or 0.9.4. > You have read a backup file... did you look at the contents? How big is > it? > -- Jimmie Tauriainen South Pole AB Phone: +46 8 56237100 Anderstorpsv?gen 16 Mobile: +46 707 777651 SE - 17154 Solna e-mail: jimmie at southpole.se www.southpole.se -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: erase.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: read.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: verbose.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: write.txt URL: From Raghuramchary.Jallipalli at lntinfotech.com Mon Jan 9 12:20:42 2012 From: Raghuramchary.Jallipalli at lntinfotech.com (Raghuramchary Jallipalli) Date: Mon, 9 Jan 2012 16:50:42 +0530 Subject: [flashrom] Help: unable to upgrade bios In-Reply-To: References: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> <201201040008.q0408l9V025178@mail2.student.tuwien.ac.at> Message-ID: Thanks David. As you said, the reason for not programming is due to wrong op.atomic configuration. Is there any way to set these properly? Yes jumper selects the ROM at a time. Thanks for the help, Raghu From: David Hendricks [mailto:dhendrix at google.com] Sent: Saturday, January 07, 2012 4:42 AM To: Raghuramchary Jallipalli Cc: flashrom at flashrom.org; V Balaji; Vishnuvardhan Reddy Subject: Re: [flashrom] Help: unable to upgrade bios On Fri, Jan 6, 2012 at 5:12 AM, Raghuramchary Jallipalli > wrote: The force option enable worked and we were able to program the AT25DF321A flash. But the contents are wrong and the board was not able to come up. Please see attached for the verbose output for both read and write. There is a high likelihood that either the Management Engine (ME) or embedded controller (EC) is interfering with Flashrom operation. One concern is that flashrom does not appear to set the op.atomic field properly: 0x94: 0x0606 (PREOP) 0x96: 0x0be4 (OPTYPE) 0x98: 0x02030105 (OPMENU) 0x9C: 0xff9f3c20 (OPMENU+4) 0xA0: 0x00000000 (BBAR) 0xD0: 0x00000000 (FPB) Reading OPCODES... done preop0=0x06, preop1=0x06 op[0]=0x05, 0, 0 op[1]=0x01, 1, 0 op[2]=0x03, 2, 0 op[3]=0x02, 3, 0 op[4]=0x20, 3, 0 op[5]=0x3c, 2, 0 op[6]=0x9f, 0, 0 op[7]=0xff, 0, 0 The third column shows that none of the opcodes are configured as atomic cycles. Thus, Flashrom does not know to set the SPIC_ACS bit (http://flashrom.org/trac/flashrom/browser/trunk/ichspi.c#L782) when processing these opcodes. If the "atomic" field is not set properly, then it is possible for ME or EC to interfere with flashrom in between write enable (WREN) opcodes such as block erase and program page. On Fri, Jan 6, 2012 at 5:12 AM, Raghuramchary Jallipalli > wrote: For your info, the board has two flashes(each 4MB) and the bios resides on the second(we have a jumper option to select the flash device). We are confused whether the flashrom selects the correct flash device and program it. Are both ROMs logically present? Or will the jumper only enable one ROM at a given time? If there are multiple ROMs present, then Flashrom use the "Hardware Sequencing" method of flashing when it detects the "Number of Components" (NC) > 0 in the flash descriptor region: http://flashrom.org/trac/flashrom/browser/trunk/ichspi.c#L1742 See FLMAP0 in the Intel documentation for more details, and ensure the NC field is programmed appropriately for your mainboard configuration. -- David Hendricks (dhendrix) Systems Software Engineer, Google Inc. ________________________________ The contents of this e-mail and any attachment(s) may contain confidential or privileged information for the intended recipient(s). Unintended recipients are prohibited from taking action on the basis of information in this e-mail and using or disseminating the information, and must notify the sender and delete it from their system. L&T Infotech will not accept responsibility or liability for the accuracy or completeness of, or the presence of any virus or disabling code in this e-mail" ************************************************************************* This email and attachments have been scanned for potential proprietary or sensitive information leakage. Websense Data Security, Protecting Your Information from the Inside Out. www.websense.com ************************************************************************* -------------- next part -------------- An HTML attachment was scrubbed... URL: From caracol at neuf.fr Mon Jan 9 20:58:46 2012 From: caracol at neuf.fr (nap) Date: Mon, 09 Jan 2012 20:58:46 +0100 Subject: [flashrom] ASUS P5KPL-CM is supported Message-ID: <4F0B46F6.4030300@neuf.fr> The ASUS P5KPL-CM motherboard is correctly handled by flashrom out of the box. Reading, erasing, writing are OK. The flash chip is a socketed PDIP8 easily hot swappable. Tested with 1M and 2M flash chips. nap # flashrom -V flashrom v0.9.4-r1395 on Linux 3.2.0-gentoo-x86_64-l1 (x86_64), built with libpci 3.1.7, GCC 4.5.3, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 3022M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 1000 us, 10000 myus = 10002 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "P5KPL-CM" DMI string baseboard-version: "x.xx" DMI string chassis-type: "Desktop" Found chipset "Intel ICH7/ICH7R" with PCI ID 8086:27b8. 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 disabled 0xffe00000/0xffa00000 FWH decode disabled 0xffd80000/0xff980000 FWH decode disabled 0xffd00000/0xff900000 FWH decode disabled 0xffc80000/0xff880000 FWH decode disabled 0xffc00000/0xff800000 FWH decode disabled 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: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 Root Complex Register Block address = 0xfed1c000 GCS = 0x10464: BIOS Interface Lock-Down: disabled, BOOT BIOS Straps: 0x1 (SPI) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3020 0x00: 0x0004 (SPIS) 0x02: 0x4140 (SPIC) 0x04: 0x00000000 (SPIA) 0x08: 0x000020c2 (SPID0) 0x0c: 0x00000000 (SPID0+4) 0x10: 0x00000000 (SPID1) 0x14: 0x00000000 (SPID1+4) 0x18: 0x00000000 (SPID2) 0x1c: 0x00000000 (SPID2+4) 0x20: 0x00000000 (SPID3) 0x24: 0x00000000 (SPID3+4) 0x28: 0x00000000 (SPID4) 0x2c: 0x00000000 (SPID4+4) 0x30: 0x00000000 (SPID5) 0x34: 0x00000000 (SPID5+4) 0x38: 0x00000000 (SPID6) 0x3c: 0x00000000 (SPID6+4) 0x40: 0x00000000 (SPID7) 0x44: 0x00000000 (SPID7+4) 0x50: 0x00000000 (BBAR) 0x54: 0x0004 (PREOP) 0x56: 0x543b (OPTYPE) 0x58: 0x05d80302 (OPMENU) 0x5c: 0x0006019f (OPMENU+4) 0x60: 0x00000000 (PBR0) 0x64: 0x00000000 (PBR1) 0x68: 0x00000000 (PBR2) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done preop0=0x06, preop1=0x50 op[0]=0x02, 3, 0 op[1]=0x03, 2, 0 op[2]=0xd8, 3, 0 op[3]=0x05, 0, 0 op[4]=0x90, 2, 0 op[5]=0x01, 1, 0 op[6]=0x9f, 0, 0 op[7]=0xc7, 1, 0 SPI Read Configuration: prefetching disabled, caching enabled, OK. This chipset supports the following protocols: SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Chip status register is 00 Chip status register: Status Register Write Disable (SRWD) is not set Chip status register: Bit 6 is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Found Macronix flash chip "MX25L1605" (2048 kB, SPI) at physical address 0xffe00000. Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF010.REMS, 128 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF040.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25LF040A.RES, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 probe_spi_res2: id1 0x14, id2 0x14 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P05.RES, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P10.RES, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xc2, id2 0x14 No operations were specified. Restoring MMIO space at 0x7f056f667070 Restoring MMIO space at 0x7f056f66707c Restoring MMIO space at 0x7f056f667078 Restoring MMIO space at 0x7f056f667076 Restoring MMIO space at 0x7f056f667074 Restoring PCI config space for 00:1f:0 reg 0xdc # lspci -nnvvxxx 00:00.0 Host bridge [0600]: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller [8086:29c0] (rev 10) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:82b0] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- Kernel driver in use: agpgart-intel 00: 86 80 c0 29 06 00 90 20 10 00 00 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 b0 82 30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 40: 01 90 d1 fe 01 00 00 00 00 40 d1 fe 00 00 00 00 50: 00 00 30 01 09 00 00 00 00 00 00 00 00 00 00 00 60: 05 00 00 f0 00 00 00 00 01 80 d1 fe 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 10 11 01 00 00 33 33 00 ff 03 00 00 00 1a 38 00 a0: 20 00 00 08 00 00 80 7f 00 00 70 7f 00 00 70 7f b0: 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 49 00 00 00 00 00 00 e6 e0: 09 00 0b b1 62 00 a5 2b 63 1c 16 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 90 0f 10 00 00 00 00 00 00:02.0 VGA compatible controller [0300]: Intel Corporation 82G33/G31 Express Integrated Graphics Controller [8086:29c2] (rev 10) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:82b0] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- [disabled] Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Kernel driver in use: i915 00: 86 80 c2 29 07 00 90 00 10 00 00 03 00 00 00 00 10: 00 00 98 fe 01 dc 00 00 08 00 00 e0 00 00 80 fe 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 b0 82 30: 00 00 00 00 90 00 00 00 00 00 00 00 0a 01 00 00 40: 09 00 0b b1 62 00 a5 2b 63 1c 16 00 00 00 00 00 50: 00 00 30 01 09 00 00 00 00 00 00 00 00 00 80 7f 60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 05 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 11 11 00 00 00 00 06 03 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 01 00 22 00 00 00 00 00 00 00 00 00 00 01 02 00 e0: 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 f0: 12 00 03 00 00 00 00 00 90 0f 10 00 e4 e0 69 7f 00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8] (rev 01) Subsystem: ASUSTeK Computer Inc. P5KPL-CM Motherboard [1043:82ea] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- RBE- FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <4us ClockPM- Surprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Slot #4, PowerLimit 25.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device [1043:8179] Capabilities: [a0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed+ WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 Status: NegoPending- InProgress- VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00 Status: NegoPending- InProgress- Capabilities: [180 v1] Root Complex Link Desc: PortNumber=01 ComponentID=00 EltType=Config Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+ Addr: 00000000fed1c001 00: 86 80 d0 27 07 01 10 00 01 00 04 06 08 00 81 00 10: 00 00 00 00 00 00 00 00 00 02 02 00 10 10 00 00 20: 90 7f a0 7f b1 7f c1 7f 00 00 00 00 00 00 00 00 30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 01 02 00 40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 4c 11 01 50: 00 00 01 10 e0 0c 20 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 05 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 0d a0 00 00 43 10 79 81 00 00 00 00 00 00 00 00 a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 e0: 00 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 86 0f 01 00 00 00 00 00 00:1c.1 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 [8086:27d2] (rev 01) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- RBE- FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us ClockPM- Surprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Slot #0, PowerLimit 0.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet+ LinkState+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device [1043:8179] Capabilities: [a0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed+ WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 Status: NegoPending- InProgress- VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00 Status: NegoPending- InProgress- Capabilities: [180 v1] Root Complex Link Desc: PortNumber=02 ComponentID=00 EltType=Config Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+ Addr: 00000000fed1c001 00: 86 80 d2 27 07 01 10 00 01 00 04 06 08 00 81 00 10: 00 00 00 00 00 00 00 00 00 01 01 00 e0 e0 00 00 20: a0 fe a0 fe 71 7f 81 7f 00 00 00 00 00 00 00 00 30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 02 02 00 40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 2c 11 02 50: 40 00 11 30 60 00 00 00 00 00 48 01 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 05 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 0d a0 00 00 43 10 79 81 00 00 00 00 00 00 00 00 a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 e0: 00 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 86 0f 01 00 00 00 00 00 00:1d.0 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8] (rev 01) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8179] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [50] Subsystem: ASUSTeK Computer Inc. Device [1043:8179] 00: 86 80 4e 24 07 01 10 00 e1 01 04 06 00 00 01 00 10: 00 00 00 00 00 00 00 00 00 03 03 20 f0 00 80 22 20: b0 fe b0 fe f1 ff 01 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 02 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00 50: 0d 00 00 00 43 10 79 81 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 86 0f 01 00 00 00 00 00 00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8179] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- 00: 86 80 b8 27 07 00 10 02 01 00 01 06 00 00 80 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 79 81 30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 40: 01 08 00 00 80 00 00 00 81 04 00 00 10 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 8a 8b 8f 83 d0 00 00 00 80 80 80 85 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 0f 14 95 02 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 28 06 00 00 39 00 00 00 13 00 00 00 00 03 00 00 b0: 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 33 22 11 00 67 45 00 00 c0 c0 00 00 00 00 00 00 e0: 09 00 0c 10 a8 00 24 00 00 00 00 00 00 00 00 00 f0: 01 c0 d1 fe 00 00 00 00 86 0f 01 00 00 00 00 00 00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO]) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8179] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- missing files -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: flashrom.log Type: text/x-log Size: 14203 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: flashrom.err Type: application/octet-stream Size: 61 bytes Desc: not available URL: From luc.chante at gmail.com Mon Jan 9 22:37:59 2012 From: luc.chante at gmail.com (Luc Chante) Date: Mon, 9 Jan 2012 22:37:59 +0100 Subject: [flashrom] flashrom -V Message-ID: MB : Asus P5N7A-VM old bios vers. : 512 new bios vers. : 519 # flashrom flashrom v0.9.4-r1455 on Linux 2.6.32-220.2.1.el6.centos.plus.x86_64 (x86_64), built with libpci 3.1.4, GCC 4.4.5 20110214 (Red Hat 4.4.5-6), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OK. Found chipset "NVIDIA MCP79". This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... This chipset is not really supported yet. Guesswork... SPI on this chipset is WIP. Please report any success or failure by mailing us the verbose output to flashrom at flashrom.org, thanks! Mapping NVIDIA MCP6x SPI at 0xf9f80000, unaligned size 0x544. Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. This chipset supports the following protocols: SPI. Found Winbond flash chip "W25X80" (1024 kB, SPI) at physical address 0xfff00000. No operations were specified. Saving old ROM : Succed Writind new ROM : Succed (no reboot now) After rebooting it works just fine. Thx for flashrom utility. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefan.tauner at student.tuwien.ac.at Mon Jan 9 23:29:27 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 9 Jan 2012 23:29:27 +0100 Subject: [flashrom] X8DTT-H In-Reply-To: <4F0AC6D6.8010003@southpole.se> References: <4EF1DD0F.70902@southpole.se> <201201022231.q02MUuoU001175@mail2.student.tuwien.ac.at> <4F0AC6D6.8010003@southpole.se> Message-ID: <201201092229.q09MTlhL001945@mail2.student.tuwien.ac.at> On Mon, 09 Jan 2012 11:52:06 +0100 Jimmie Tauriainen wrote: > No problem, haven't had access to the machine under the new year circus. > Is it only the Verbose outputs you need? Attaching them with latest SVN > build. > > flashrom seems a lot more cleaner now, thanks for the good work. ;) > Hello Jimmie, thanks for retesting! So this was all due to that "unrelated" bug... good. I have marked the mainboard as working and will commit that later together with other small changes, thanks. > > On 2012-01-02 23:30, Stefan Tauner wrote: > > > > hmmm > > Sorry for the late reply. I just notices that you were using r1478, > > which had one important fix missing which was added in r1479. maybe that > > did not actually matter, but i would try anyway with a current > > snapshot or 0.9.4. > > You have read a backup file... did you look at the contents? How big is > > it? > > -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Mon Jan 9 23:38:34 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 9 Jan 2012 23:38:34 +0100 Subject: [flashrom] ASUS P5KPL-CM is supported In-Reply-To: <4F0B46F6.4030300@neuf.fr> References: <4F0B46F6.4030300@neuf.fr> Message-ID: <201201092248.q09Mm2As019768@mail2.student.tuwien.ac.at> On Mon, 09 Jan 2012 20:58:46 +0100 nap wrote: > The ASUS P5KPL-CM motherboard is correctly handled by flashrom out of > the box. Reading, erasing, writing are OK. > The flash chip is a socketed PDIP8 easily hot swappable. > Tested with 1M and 2M flash chips. > Hello, thanks for your report! I have marked the mainboard as tested and will commit that later together with other small changes. The vendor's webpage indicates that the board shipped with a 1MB/8Mb chip. It seems your log includes the 2Mb chip you were testing additionally. Just for the archive: do you know the model number of the original chip shipped with the board? -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 10 00:13:53 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 10 Jan 2012 00:13:53 +0100 Subject: [flashrom] flashrom output In-Reply-To: <1325874919.2335.0.camel@ea-book> References: <1325874919.2335.0.camel@ea-book> Message-ID: <201201092314.q09NEDLj007936@mail2.student.tuwien.ac.at> On Fri, 06 Jan 2012 19:35:19 +0100 Armin wrote: > I've flashed sucessfully a ASUS M2A-VM HDMI Mainboard. > [?] Hello Armin, thanks for your report! I have added your mainboard variant to our list of supported mainboards and marked the W39V080A flash chip as fully tested locally. I will commit that later together with other small changes. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 10 01:09:58 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 10 Jan 2012 01:09:58 +0100 Subject: [flashrom] I lost my backup image and now my pc doesn't start...! In-Reply-To: References: Message-ID: <201201100010.q0A0AIqZ007909@mail2.student.tuwien.ac.at> On Sun, 8 Jan 2012 16:33:54 +0200 ?lhan Kahraman wrote: > It has not respond anything after that, not even any fan has cycled... hello ?lhan, your whole story sounds to me a bit like if the hardware has broken coincidentally at the same moment as you wrote to the flash chip. Not starting the fans at power-up is a quite uncommon symptom because normally this is not handled by the host software. if i understood your mails correctly you have re-used the rest of the hardware with the new board and everything works? IMHO the only things that could make the fans not spin are: - broken power supply and/or connections - broken mainboard (voltage regulators, traces, capacitors etc) - shorts by lost screws etc. - broken/dusted or unconnected fan :) i guess this wont help you much, but besides the steps you tried already, i dont know anything either, sorry. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 10 01:34:46 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 10 Jan 2012 01:34:46 +0100 Subject: [flashrom] flashrom -V In-Reply-To: References: Message-ID: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> On Fri, 6 Jan 2012 14:12:18 +0100 Vince S wrote: > probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal > flash content, id2 is normal flash content > Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, > id1 parity violation, id1 is normal flash content, id2 is normal flash > content > Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 > is normal flash content, id2 is normal flash content > Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 > is normal flash content, id2 is normal flash content > Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 > 0xff, id1 parity violation, id1 is normal flash content, id2 is normal > flash content > Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Found SST flash chip "SST49LF040B" (512 kB, LPC). > No operations were specified. > Restoring PCI config space for 00:01:0 reg 0x6d > Restoring PCI config space for 00:01:0 reg 0x90 > Restoring PCI config space for 00:01:0 reg 0x8c > Restoring PCI config space for 00:01:0 reg 0x88 > > > Thanks for your work hey there! thanks for your slightly mangled report ;) could you please resend the whole thing if it is still available to you, thanks. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 10 01:36:51 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 10 Jan 2012 01:36:51 +0100 Subject: [flashrom] flashrom -V In-Reply-To: References: Message-ID: <201201100037.q0A0bCbv018642@mail2.student.tuwien.ac.at> On Mon, 9 Jan 2012 22:40:53 +0100 Luc Chante wrote: > flashrom v0.9.4-r1455 on Linux 2.6.32-220.2.1.el6.centos.plus.x86_64 (x86_64), built with libpci 3.1.4, GCC 4.4.5 20110214 (Red Hat 4.4.5-6), little endian > flashrom is free software, get the source code at http://www.flashrom.org > > Calibrating delay loop... OS timer resolution is 1 usecs, 2912M loops per second, 10 myus = 11 us, 100 myus = 101 us, 1000 myus = 1000 us, 10000 myus = 9986 us, 4 myus = 5 us, OK. > Initializing internal programmer > No coreboot table found. > DMI string system-manufacturer: "System manufacturer" > DMI string system-product-name: "System Product Name" > DMI string system-version: "System Version" > DMI string baseboard-manufacturer: "ASUSTeK Computer INC." > DMI string baseboard-product-name: "P5N7A-VM" > DMI string baseboard-version: "Rev 1.xx" > DMI string chassis-type: "Desktop" > Found chipset "NVIDIA MCP79" with PCI ID 10de:0aac. > This chipset is marked as untested. If you are using an up-to-date version > of flashrom please email a report to flashrom at flashrom.org including a > verbose (-V) log. Thank you! > Enabling flash write... This chipset is not really supported yet. Guesswork... > ISA/LPC bridge reg 0x8a contents: 0x40, bit 6 is 1, bit 5 is 0 > Flash bus type is SPI > SPI on this chipset is WIP. Please report any success or failure by mailing us the verbose output to flashrom at flashrom.org, thanks! > Found SMBus device 10de:0aa2 at 00:03:2 > MCP SPI BAR is at 0xf9f80000 > SPI control is 0xc052, req=0, gnt=0 > Please send the output of "flashrom -V" to flashrom at flashrom.org with > your board name: flashrom -V as the subject to help us finish support for your > chipset. Thanks. > OK. > This chipset supports the following protocols: SPI. > [?] > Found Winbond flash chip "W25X80" (1024 kB, SPI). > No operations were specified. Hello Luc, thanks for your report! I have marked the chipset and mainboard as tested and will commit that later together with other small changes. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 10 02:43:06 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 10 Jan 2012 02:43:06 +0100 Subject: [flashrom] [PATCH] Fix error messages regarding long options In-Reply-To: <1325732005-9708-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1325732005-9708-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <1326159786-21630-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Use getopt_long's flag field to distinguish short and long options where needed and name both variants if this is not sufficient. Signed-off-by: Stefan Tauner --- the const bits are not really needed, but at least they make more sense than the static modifier i hope :) option_index is used to index the long_options array hence it has to be guaranteed to be in its range. getopt_long guarantees this in the case opt == 0 afaics so we are safe. cli_classic.c | 28 +++++++++++++++++++--------- 1 files changed, 19 insertions(+), 9 deletions(-) diff --git a/cli_classic.c b/cli_classic.c index da658a6..f864b05 100644 --- a/cli_classic.c +++ b/cli_classic.c @@ -177,13 +177,15 @@ int main(int argc, char *argv[]) enum programmer prog = PROGRAMMER_INVALID; int ret = 0; - static const char optstring[] = "r:Rw:v:nVEfc:m:l:i:p:Lzh"; - static const struct option long_options[] = { + const char const optstring[] = "r:Rw:v:nVEfc:m:l:i:p:Lzh"; + int long_verify = -1; + int long_noverify = -1; + const struct option const long_options[] = { {"read", 1, NULL, 'r'}, {"write", 1, NULL, 'w'}, {"erase", 0, NULL, 'E'}, - {"verify", 1, NULL, 'v'}, - {"noverify", 0, NULL, 'n'}, + {"verify", 1, &long_verify, 'v'}, + {"noverify", 0, &long_noverify, 'n'}, {"chip", 1, NULL, 'c'}, {"verbose", 0, NULL, 'V'}, {"force", 0, NULL, 'f'}, @@ -214,6 +216,10 @@ int main(int argc, char *argv[]) */ while ((opt = getopt_long(argc, argv, optstring, long_options, &option_index)) != EOF) { + if (opt == 0) { + opt = long_options[option_index].val; + } + switch (opt) { case 'r': if (++operation_specified > 1) { @@ -241,8 +247,10 @@ int main(int argc, char *argv[]) cli_classic_abort_usage(); } if (dont_verify_it) { - fprintf(stderr, "--verify and --noverify are" - "mutually exclusive. Aborting.\n"); + fprintf(stderr, "%s and %s are " + "mutually exclusive. Aborting.\n", + long_verify != -1 ? "--verify" : "-v", + long_noverify != -1? "--noverify" : "-n"); cli_classic_abort_usage(); } filename = strdup(optarg); @@ -250,8 +258,10 @@ int main(int argc, char *argv[]) break; case 'n': if (verify_it) { - fprintf(stderr, "--verify and --noverify are" - "mutually exclusive. Aborting.\n"); + fprintf(stderr, "%s and %s are " + "mutually exclusive. Aborting.\n", + long_verify != -1 ? "--verify" : "-v", + long_noverify != -1? "--noverify" : "-n"); cli_classic_abort_usage(); } dont_verify_it = 1; @@ -310,7 +320,7 @@ int main(int argc, char *argv[]) break; case 'p': if (prog != PROGRAMMER_INVALID) { - fprintf(stderr, "Error: --programmer specified " + fprintf(stderr, "Error: --programmer/-p specified " "more than once. You can separate " "multiple\nparameters for a programmer " "with \",\". Please see the man page " -- 1.7.1 From ilhan805 at gmail.com Tue Jan 10 06:54:04 2012 From: ilhan805 at gmail.com (=?ISO-8859-9?Q?=DDlhan_Kahraman?=) Date: Tue, 10 Jan 2012 07:54:04 +0200 Subject: [flashrom] I lost my backup image and now my pc doesn't start...! In-Reply-To: <201201100010.q0A0AIqZ007909@mail2.student.tuwien.ac.at> References: <201201100010.q0A0AIqZ007909@mail2.student.tuwien.ac.at> Message-ID: Hello, I think, I exaggerated things a little bit, due to excitement of my inoperative mother board. The fan of cpu is working. I noticed that the fans are working, in my latter flashing attempts, which I tried later than I e-mailed you. The problem is that it is rotating in a very low constant rpm. I am sorry about that misleading e-mail :( if I am not bothering you, would I continue to share my adventure with you? is the aim of this mailing group, that? Maybe I can fix it with your key guidances...? Thank you again 10 Ocak 2012 02:09 tarihinde Stefan Tauner < stefan.tauner at student.tuwien.ac.at> yazd?: > On Sun, 8 Jan 2012 16:33:54 +0200 > ?lhan Kahraman wrote: > > > It has not respond anything after that, not even any fan has cycled... > > hello ?lhan, > > your whole story sounds to me a bit like if the hardware has broken > coincidentally at the same moment as you wrote to the flash chip. Not > starting the fans at power-up is a quite uncommon symptom because > normally this is not handled by the host software. > if i understood your mails correctly you have re-used the rest of the > hardware with the new board and everything works? > IMHO the only things that could make the fans not spin are: > - broken power supply and/or connections > - broken mainboard (voltage regulators, traces, capacitors etc) > - shorts by lost screws etc. > - broken/dusted or unconnected fan :) > > i guess this wont help you much, but besides the steps you tried > already, i dont know anything either, sorry. > > -- > Kind regards/Mit freundlichen Gr??en, Stefan Tauner > -- ?lhan KAHRAMAN Undergraduate Student at Materials Science & Engineering Department and Department of Industrial Design, Anadolu University, Eskisehir, Turkey e-mail: ilhan805 at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From paulepanter at users.sourceforge.net Tue Jan 10 10:49:50 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Tue, 10 Jan 2012 10:49:50 +0100 Subject: [flashrom] [solved] ASUS M2V-MX SE: Can Winbond flash chip W39V040B (512 kB, LPC) be used? In-Reply-To: <1326066732.15840.56.camel@mattotaupa> References: <1326066732.15840.56.camel@mattotaupa> Message-ID: <1326188990.15840.80.camel@mattotaupa> Dear Flashrom folks, Am Montag, den 09.01.2012, 00:52 +0100 schrieb Paul Menzel: > I got two spare boards with socketed flash chips and hope they can be > used also for the ASUS M2V-MX SE which is supported by coreboot [1]. > > One board is the ASRock AM2NF6G-VSTA with a Winbond flash chip W39V040B > (512 kB, LPC) [3]. [?] > So the vendor flash chip is SPI but it says the chipset also supports > LPC. Is such a socket universal so that I can use the LPC flash chip > Winbond W39V040B? The short answer is: ?No!?. Thanks to Idwer on #flashrom I took a look at the ASUS M2V-MX SE [4] and had to figure out that it has a DIP8 chip [5] which is already physically different from a PLCC32 chip [5] which the Winbond W39V040B is. Very embarrassing. Thanks, Paul > [1] http://www.asus.com/Product.aspx?P_ID=rO7Bu9kq3D25tXHl&content=specifications > [2] http://www.coreboot.org/ASUS_M2V-MX_SE > [3] http://www.flashrom.org/pipermail/flashrom/2012-January/008512.html [4] http://www.asus.com/Motherboards/AMD_AM2/M2VMX_SE/#specifications [5] http://flashrom.org/Technology -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From paulepanter at users.sourceforge.net Tue Jan 10 11:05:46 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Tue, 10 Jan 2012 11:05:46 +0100 Subject: [flashrom] ASRock AM2NF6G-VSTA (Nvidia MCP61): `flashrom -Vw` (r1483) In-Reply-To: <1326038639.15840.39.camel@mattotaupa> References: <1326038639.15840.39.camel@mattotaupa> Message-ID: <1326189946.15840.87.camel@mattotaupa> Dear Flashrom folks, Am Sonntag, den 08.01.2012, 17:03 +0100 schrieb Paul Menzel: > I tested the ASRock AM2NF6G-VSTA with an Nvidia MCP61 chipset. The > output says, that the chipset is not fully supported so please tell me > what I have to consider when testing writing. I found a Wiki page ?MCP SPI support? [3] in the Wiki but the patch [4] is already committed so that tested writing and erasing and it worked without problems. [?] > Reading seems to work. The difference between the read image to the > downloaded file (1.20) from the ASRock [2] is minimal according to > `bsdiff`. > > 00000000 42 53 44 49 46 46 34 30 42 00 00 00 00 00 00 00 2D 00 00 00 00 00 00 00 00 00 08 00 BSDIFF40B.......-........... > 0000001C 00 00 00 00 42 5A 68 39 31 41 59 26 53 59 59 02 DA 4C 00 00 0E EC 41 71 38 00 20 01 ....BZh91AY&SYY..L....Aq8. . > 00000038 00 40 00 40 20 01 00 20 00 31 00 D0 00 C5 32 19 36 A2 B1 39 12 48 15 EA BC D8 B4 74 . at .@ .. .1....2.6..9.H.....t > 00000054 E8 C2 6F E2 EE 48 A7 0A 12 0B 20 5B 49 80 42 5A 68 39 31 41 59 26 53 59 35 50 66 AE ..o..H.... [I.BZh91AY&SY5Pf. > 00000070 00 04 04 40 00 C4 00 00 08 20 00 30 CC 05 29 A6 10 0D 88 80 78 BB 92 29 C2 84 81 AA ... at ..... .0..).....x..).... > 0000008C 83 35 70 42 5A 68 39 17 72 45 38 50 90 00 00 00 00 .5pBZh9.rE8P..... > > Please find all log files attached. Please find the outputs asked for on the Wiki page [3] attached. The BIOS was upgraded to version 2.30 [2] and the board rebooted fine. As expected the defaults had to be loaded due to the CMOS error. Thanks, Paul > [1] http://www.asrock.com/MB/overview.asp?Model=AM2NF6G-VSTA > [2] http://www.asrock.com/mb/download.asp?Model=AM2NF6G-VSTA&o=BIOS [3] http://flashrom.org/Random_notes/MCP_SPI_support [4] http://patchwork.coreboot.org/project/flashrom/list/?state=*&q=mcp -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120109--ASRock-AM2NF6G-VSTA--flashrom-V-w-AM2N6VT2.30.log Type: text/x-log Size: 4721 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120109--ASRock-AM2NF6G-VSTA--flashrom-V-w-after-E.log Type: text/x-log Size: 4717 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120109--ASRock-AM2NF6G-VSTA--flashrom-V-E.log Type: text/x-log Size: 4556 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120109--ASRock-AM2NF6G-VSTA--flashrom-V-w.log Type: text/x-log Size: 4716 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120109--ASRock-AM2NF6G-VSTA--flashrom-V-r.log Type: text/x-log Size: 4335 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120109--ASRock-AM2NF6G-VSTA--lspci-nnvvvxxx.log Type: text/x-log Size: 38760 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 20120109--ASRock-AM2NF6G-VSTA--superiotool-deV.log Type: text/x-log Size: 8351 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From paulepanter at users.sourceforge.net Tue Jan 10 11:15:06 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Tue, 10 Jan 2012 11:15:06 +0100 Subject: [flashrom] [PATCH] print.c: Add ASRock AM2NF6G-VSTA to list of supported boards In-Reply-To: <1326189946.15840.87.camel@mattotaupa> References: <1326038639.15840.39.camel@mattotaupa> <1326189946.15840.87.camel@mattotaupa> Message-ID: <1326190506.15840.90.camel@mattotaupa> Date: Mon Jan 9 19:07:28 2012 +0100 Subject: [PATCH] print.c: Add ASRock AM2NF6G-VSTA to list of supported boards All operations were tested and the log files can be found in the list archive [1]. [1] http://www.flashrom.org/pipermail/flashrom/2012-January/008512.html Signed-off-by: Paul Menzel --- print.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/print.c b/print.c index db7ed65..1de2fe8 100644 --- a/print.c +++ b/print.c @@ -566,6 +566,7 @@ const struct board_info boards_known[] = { B("ASRock", "A330GC", 1, "http://www.asrock.com/mb/overview.asp?Model=A330GC", NULL), B("ASRock", "A770CrossFire", 1, "http://www.asrock.com/mb/overview.asp?Model=A770CrossFire", NULL), B("ASRock", "ALiveNF6G-DVI", 1, "http://www.asrock.com/mb/overview.asp?Model=ALiveNF6G-DVI", NULL), + B("ASRock", "AM2NF6G-VSTA", 1, "http://www.asrock.com/mb/overview.asp?Model=AM2NF6G-VSTA", NULL), B("ASRock", "ConRoeXFire-eSATA2", 1, "http://www.asrock.com/mb/overview.asp?model=conroexfire-esata2", NULL), B("ASRock", "K7S41", 1, "http://www.asrock.com/mb/overview.asp?Model=K7S41", NULL), B("ASRock", "K7S41GX", 1, "http://www.asrock.com/mb/overview.asp?Model=K7S41GX", NULL), -- 1.7.8.3 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From caracol at neuf.fr Tue Jan 10 14:17:00 2012 From: caracol at neuf.fr (nap) Date: Tue, 10 Jan 2012 14:17:00 +0100 Subject: [flashrom] ASUS P5KPL-CM is supported In-Reply-To: <201201092248.q09Mm2As019768@mail2.student.tuwien.ac.at> References: <4F0B46F6.4030300@neuf.fr> <201201092248.q09Mm2As019768@mail2.student.tuwien.ac.at> Message-ID: <4F0C3A4C.9010404@neuf.fr> Le 09/01/2012 23:38, Stefan Tauner a ?crit : > On Mon, 09 Jan 2012 20:58:46 +0100 > nap wrote: > >> The ASUS P5KPL-CM motherboard is correctly handled by flashrom out of >> the box. Reading, erasing, writing are OK. >> The flash chip is a socketed PDIP8 easily hot swappable. >> Tested with 1M and 2M flash chips. >> > > Hello, > > thanks for your report! > I have marked the mainboard as tested and will commit that later > together with other small changes. The vendor's webpage indicates that > the board shipped with a 1MB/8Mb chip. It seems your log includes the > 2Mb chip you were testing additionally. Just for the archive: do you > know the model number of the original chip shipped with the board? > Hi, The original chip was a MX25L8005PC. nap From dhendrix at google.com Tue Jan 10 23:01:50 2012 From: dhendrix at google.com (David Hendricks) Date: Tue, 10 Jan 2012 14:01:50 -0800 Subject: [flashrom] Help: unable to upgrade bios In-Reply-To: References: <201112291221.pBTCLKR7030043@mail2.student.tuwien.ac.at> <201201040008.q0408l9V025178@mail2.student.tuwien.ac.at> Message-ID: On Mon, Jan 9, 2012 at 3:20 AM, Raghuramchary Jallipalli < Raghuramchary.Jallipalli at lntinfotech.com> wrote: > Thanks David.**** > > As you said, the reason for not programming is due to wrong op.atomic > configuration. Is there any way to set these properly? > It should be set automatically. Carl-Daniel clarified on IRC that the "atomic" cycle flag will always be 0 at the stage they are printed. Sorry for the confusion! I recommend adding a debug print to ich9_run_opcode() to see what the "atomic" flag ends up being: Index: ichspi.c =================================================================== --- ichspi.c (revision 1483) +++ ichspi.c (working copy) @@ -908,6 +908,7 @@ This means the timeout must be sufficient for chip erase of slow high-capacity chips. */ + msg_pdbg("opcode: 0x%02x, spi_type: %u, atomic: %u\n", op.opcode, op.spi_type, op.atomic); switch (op.atomic) { case 2: /* Select second preop. */ Then run "flashrom -V -p internal:this_is_not_a_laptop -r foo.bin" and make sure that the sector erase opcode (0x20) and byte program opcode (0x02) show either "1" or "2" for op.atomic. This will help us to prove whether or not this is the problem you are encountering. **** > > Yes jumper selects the ROM at a time. > Okay. I do not think Flashrom is confused about the flash part, then. -- David Hendricks (dhendrix) Systems Software Engineer, Google Inc. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gzohop at gmail.com Tue Jan 10 22:43:30 2012 From: gzohop at gmail.com (Grzesiek Pycia) Date: Tue, 10 Jan 2012 22:43:30 +0100 Subject: [flashrom] Abit NF-M2 nView upgrade problem Message-ID: <4F0CB102.8030108@gmail.com> Hi I'm trying to upgrade bios on Abit NF-M2 nView mainboard which is marked as supported but it is impossible, because it fails on erasing the chip, so I'm sending log as advised by flashrom. If there are some other information needed or testing please let me know I'll be happy to help out. Regards Grzegorz -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: log.flashrom URL: From stefan.tauner at student.tuwien.ac.at Tue Jan 10 23:58:18 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 10 Jan 2012 23:58:18 +0100 Subject: [flashrom] [PATCH 0/1] SFDP 2.2 In-Reply-To: <1325033822-9515-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1325033822-9515-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <1326236299-6660-1-git-send-email-stefan.tauner@student.tuwien.ac.at> just a few minor changes: - added a wrapper around the spi sends that aids debugging now and extending later - better error handling: previous version had a possible infinite loop. also, we now abort on particularly fishy data. - added a typedef for erase functions. sadly it can not be used in struct flashchip/ctx due to circular dependencies Stefan Tauner (1): add support for SFDP (JESD216) chipdrivers.h | 1 + flash.h | 2 + flashchips.c | 24 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- spi.h | 5 + spi25.c | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 415 insertions(+), 1 deletions(-) From stefan.tauner at student.tuwien.ac.at Tue Jan 10 23:58:19 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 10 Jan 2012 23:58:19 +0100 Subject: [flashrom] [PATCH] add support for SFDP (JESD216) In-Reply-To: <1325033822-9515-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1325033822-9515-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <1326236299-6660-2-git-send-email-stefan.tauner@student.tuwien.ac.at> Similar to ICH Hardware Sequencing this uses a generic struct flashchip element in flashchips.c with dummy values and a special probe function that fills the obtained values into that generic struct. Documentation used: http://www.jedec.org/standards-documents/docs/jesd216 (2011-04) W25Q32BV data sheet Revision F (2011-04-01) EN25QH16 data sheet Revision F (2011-06-01) todo: - handle programmers which have a problem with the dummy bytes needed - move the code from spi25.c to its own file - rephrase the 'default' message of get_erasefn_from_opcode so that it becomes universally usable? Signed-off-by: Stefan Tauner --- chipdrivers.h | 1 + flash.h | 2 + flashchips.c | 24 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- spi.h | 5 + spi25.c | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 415 insertions(+), 1 deletions(-) diff --git a/chipdrivers.h b/chipdrivers.h index a1d0cd9..bbc403f 100644 --- a/chipdrivers.h +++ b/chipdrivers.h @@ -28,6 +28,7 @@ #include "flash.h" /* for chipaddr and flashctx */ /* spi.c, should probably be in spi_chip.c */ +int probe_spi_sfdp(struct flashctx *flash); int probe_spi_rdid(struct flashctx *flash); int probe_spi_rdid4(struct flashctx *flash); int probe_spi_rems(struct flashctx *flash); diff --git a/flash.h b/flash.h index e51b6d4..6bcae71 100644 --- a/flash.h +++ b/flash.h @@ -174,6 +174,8 @@ struct flashctx { struct registered_programmer *pgm; }; +typedef int (erasefunc_t)(struct flashctx *flash, unsigned int addr, unsigned int blocklen); + #define TEST_UNTESTED 0 #define TEST_OK_PROBE (1 << 0) diff --git a/flashchips.c b/flashchips.c index ca1c57f..f0fde20 100644 --- a/flashchips.c +++ b/flashchips.c @@ -8872,6 +8872,30 @@ const struct flashchip flashchips[] = { .read = read_memmapped, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, + + { + .vendor = "Unknown", + .name = "SFDP device", + .bustype = BUS_SPI, + .manufacture_id = GENERIC_MANUF_ID, + .model_id = SFDP_DEVICE_ID, + /* We present our own "report this" text hence we do not + * want the default "This flash part has status UNTESTED..." + * text to be printed. */ + .tested = TEST_OK_PREW, + .probe = probe_spi_sfdp, + .read = spi_chip_read, + /* FIXME: some vendor extensions define this */ + .voltage = {}, + /* Everything below will be set by the probing function. */ + .page_size = 0, + .write = NULL, + .total_size = 0, + .feature_bits = 0, + .block_erasers = {}, + .unlock = NULL, + .printlock = NULL, + }, { .vendor = "Programmer", diff --git a/flashchips.h b/flashchips.h index 03efb86..1f2a8ca 100644 --- a/flashchips.h +++ b/flashchips.h @@ -36,6 +36,7 @@ #define GENERIC_MANUF_ID 0xffff /* Check if there is a vendor ID */ #define GENERIC_DEVICE_ID 0xffff /* Only match the vendor ID */ +#define SFDP_DEVICE_ID 0xfffe #define ALLIANCE_ID 0x52 /* Alliance Semiconductor */ #define ALLIANCE_AS29F002B 0x34 diff --git a/flashrom.c b/flashrom.c index f1a6165..38998dd 100644 --- a/flashrom.c +++ b/flashrom.c @@ -986,7 +986,33 @@ int probe_flash(struct registered_programmer *pgm, int startchip, * probe_flash() is the first one and thus no chip has been * found before. */ - if (startchip == 0 || fill_flash->model_id != GENERIC_DEVICE_ID) + if (startchip == 0 && fill_flash->model_id == SFDP_DEVICE_ID) { + msg_cinfo("===\n" + "SFDP has autodetected a flash chip which is " + "not natively supported by flashrom yet.\n"); + if (count_usable_erasers(fill_flash) == 0) + msg_cinfo("The standard operations read and " + "verify should work, but to support " + "erase, write and all other " + "possible features"); + else + msg_cinfo("All standard operations (read, " + "verify, erase and write) should " + "work, but to support all possible " + "features"); + + msg_cinfo(" we need to add them manually.\nYou " + "can help us by mailing us the output of " + "the following command to flashrom at flashrom." + "org: \n'flashrom -VV [plus the " + "-p/--programmer parameter (if needed)]" + "'\nThanks for your help!\n" + "===\n"); + } + + if (startchip == 0 || + ((fill_flash->model_id != GENERIC_DEVICE_ID) && + (fill_flash->model_id != SFDP_DEVICE_ID))) break; notfound: diff --git a/spi.h b/spi.h index b908603..5f07eae 100644 --- a/spi.h +++ b/spi.h @@ -40,6 +40,11 @@ #define JEDEC_REMS_OUTSIZE 0x04 #define JEDEC_REMS_INSIZE 0x02 +/* Read Serial Flash Discoverable Parameters (SFDP) */ +#define JEDEC_SFDP 0x5a +#define JEDEC_SFDP_OUTSIZE 0x05 /* 8b op, 24b addr, 8b dummy */ +/* JEDEC_SFDP_INSIZE : any length */ + /* Read Electronic Signature */ #define JEDEC_RES 0xab #define JEDEC_RES_OUTSIZE 0x04 diff --git a/spi25.c b/spi25.c index 3ce7f08..07c716a 100644 --- a/spi25.c +++ b/spi25.c @@ -23,6 +23,7 @@ */ #include +#include #include "flash.h" #include "flashchips.h" #include "chipdrivers.h" @@ -115,6 +116,360 @@ int spi_write_disable(struct flashctx *flash) return spi_send_command(flash, sizeof(cmd), 0, cmd, NULL); } +static int spi_sfdp_wrapper(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + int i, ret; + const unsigned char cmd[JEDEC_SFDP_OUTSIZE] = { + JEDEC_SFDP, + (address >> 16) & 0xff, + (address >> 8) & 0xff, + (address >> 0) & 0xff, + 0 + }; + msg_cspew("spi_sfdp_wrapper: addr=0x%x, len=%d, data:\n", address, len); + ret = spi_send_command(flash, sizeof(cmd), len, cmd, buf); + for (i = 0; i < len; i++) + msg_cspew(" 0x%02x", buf[i]); + msg_cspew("\n"); + return ret; +} + +/* FIXME: eventually something similar like this but more generic should be + * available to split up spi commands. use that then instead */ +static int spi_sfdp(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + /* FIXME: this is wrong. */ + int maxstep = 8; + int ret = 0; + while (len > 0) { + int step = min(len, maxstep); + ret = spi_sfdp_wrapper(flash, address, buf, step); + if (ret) + return ret; + address += step; + buf += step; + len -= step; + } + return ret; +} + +struct sfdp_tbl_hdr { + uint8_t id; + uint8_t v_minor; + uint8_t v_major; + uint8_t len; + uint32_t ptp; /* 24b pointer */ +}; + +static int (*get_erasefn_from_opcode(uint8_t opcode)) (struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen) +{ + switch(opcode){ + case 0x00: + case 0xff: + /* Not specified, assuming "not supported". */ + return NULL; + case 0x20: + return &spi_block_erase_20; + break; + case 0x52: + return &spi_block_erase_52; + break; + case 0x60: + return &spi_block_erase_60; + break; + case 0xc7: + return &spi_block_erase_c7; + break; + case 0xd7: + return &spi_block_erase_d7; + break; + case 0xd8: + return &spi_block_erase_d8; + default: + msg_cinfo("%s: unknown opcode (0x%02x) in SFDP table. " + "Please report this at " + "flashrom at flashrom.org\n", + __func__, opcode); + return NULL; + } +} + +static int sfdp_fill_flash(struct flashctx *f, uint8_t *buf, uint16_t len) +{ + uint32_t tmp32; + uint8_t tmp8; + uint32_t total_size; /* in bytes */ + uint32_t bsize; + uint8_t opcode_4k = 0xFF; + int dw, j; + int (*erasefn) (struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); + + + msg_cdbg2("Parsing JEDEC SFDP parameter table...\n"); + if (len == 9 * 4) { + msg_cerr("%s: len out of spec\n", __func__); + return 1; + } + + /* 1. double word */ + dw = 0; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + tmp8 = (tmp32 >> 17) & 0x3; + switch (tmp8) { + case 0x0: + msg_cdbg2(" 3-Byte only addressing.\n"); + break; + case 0x1: + msg_cdbg2(" 3-Byte (and optionally 4-Byte) addressing.\n"); + break; + case 0x2: + msg_cdbg(" 4-Byte only addressing not supported.\n"); + return 1; + default: + msg_cdbg(" Required addressing mode (0x%x) not supported.\n", + tmp8); + return 1; + } + + msg_cdbg2(" Writes to the status register have "); + if (tmp32 & (1 << 3)) { + f->unlock = spi_disable_blockprotect; + msg_cdbg2("to be enabled with "); + if (tmp32 & (1 << 4)) { + f->feature_bits = FEATURE_WRSR_WREN; + msg_cdbg2("WREN (0x06).\n"); + } else { + f->feature_bits = FEATURE_WRSR_EWSR; + msg_cdbg2("EWSR (0x50).\n"); + } + } else + msg_cdbg2("not to be especially enabled.\n"); + + msg_cdbg2(" Write granularity is "); + if (tmp32 & (1 << 2)) { + msg_cdbg2(" at least 64 B.\n"); + f->page_size = 64; + f->write = spi_chip_write_256; + } else { + msg_cdbg2(" 1 B only.\n"); + f->page_size = 256; /* ? */ + f->write = spi_chip_write_1; + } + + if ((tmp32 & 0x3) == 0x1) { + opcode_4k = (tmp32 >> 8) & 0xFF; /* will be dealt with later */ + } + + /* 2. double word */ + dw = 1; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + if (tmp32 & (1 << 31)) { + msg_cdbg(" Flash chip size >= 4 Gb/500 MB not supported.\n"); + return 1; + } + total_size = (tmp32 & 0x7FFFFFFF) / 8; + f->total_size = total_size / 1024; + msg_cdbg2(" Flash chip size is %d kB.\n", f->total_size); + + dw = 8; + for(j = 0; j < 4; j++) { + /* 8 double words from the start + 2 words for every eraser */ + tmp32 = buf[(4 * dw) + (2 * j)]; + if (tmp32 == 0) { + msg_cdbg2(" Block eraser %d is unused.\n", j); + continue; + } + if (tmp32 >= 31) { + msg_cdbg2(" Block size of eraser %d (2^%d) is too big." + "\n", j, tmp32); + continue; + } + bsize = 1 << (tmp32); /* bsize = 2 ^ field */ + + tmp8 = buf[(4 * dw) + (2 * j) + 1]; + erasefn = get_erasefn_from_opcode(tmp8); + if (erasefn == NULL) + continue; + f->block_erasers[j].block_erase = erasefn; + f->block_erasers[j].eraseblocks[0].size = bsize; + f->block_erasers[j].eraseblocks[0].count = total_size/bsize; + msg_cdbg2(" Block eraser %d: %d x %d B with opcode 0x%02x\n", + j, total_size/bsize, bsize, tmp8); + /* If there is a valid 4k value in the last double words, + * we override the value from double word 1. */ + if (bsize == 4 * 1024) + opcode_4k = 0xFF; + } + if (opcode_4k != 0xFF && + ((erasefn = get_erasefn_from_opcode(opcode_4k)) != NULL)) { + for (j = 0; j < NUM_ERASEFUNCTIONS; j++) { + struct block_eraser eraser = f->block_erasers[j]; + if (eraser.eraseblocks[0].size != 0) + continue; + eraser.block_erase = erasefn; + eraser.eraseblocks[0].size = 4 * 1024; + eraser.eraseblocks[0].count = total_size/bsize; + msg_cdbg2(" Block eraser %d: %d x %d B with opcode " + "0x%02x\n", j, total_size/bsize, bsize, + opcode_4k); + break; + } + msg_cinfo("%s: Not enough space to store another eraser (j=%d)." + " Please report this at flashrom at flashrom.org\n", + __func__, j); + } + return 0; +} + +static int sfdp_fetch_pt(struct flashctx *flash, uint32_t addr, uint8_t *buf, uint16_t len) +{ + uint16_t i; + if (spi_sfdp(flash, addr, buf, len)) { + msg_cerr("Receiving SFDP parameter table failed.\n"); + return 1; + } + msg_cspew(" Parameter table contents:\n"); + for(i = 0; i < len; i++) { + if ((i % 8) == 0) { + msg_cspew(" 0x%03x: ", i); + } + msg_cspew(" 0x%02x", buf[i]); + if ((i % 8) == 7) { + msg_cspew("\n"); + continue; + } + if ((i % 8) == 3) { + msg_cspew(" "); + continue; + } + } + msg_cspew("\n"); + return 0; +} + +int probe_spi_sfdp(struct flashctx *flash) +{ + int ret = 0; + uint8_t buf[8]; + uint16_t tmp16; + uint32_t tmp32; + uint8_t nph; + /* need to limit the table loop by comparing i to uint8_t nph hence: */ + uint16_t i; + struct sfdp_tbl_hdr *hdrs; + uint8_t *hbuf; + uint8_t *tbuf; + + if (spi_sfdp(flash, 0x00, buf, 4)) { + msg_cerr("Receiving SFDP signature failed.\n"); + return 0; + } + tmp32 = buf[0]; + tmp32 |= ((unsigned int)buf[1]) << 8; + tmp32 |= ((unsigned int)buf[2]) << 16; + tmp32 |= ((unsigned int)buf[3]) << 24; + + msg_cdbg2("SFDP signature = 0x%08x (should be 0x50444653)\n", tmp32); + if (tmp32 != 0x50444653) { + msg_cdbg("No SFDP signature found.\n"); + return 0; + } + if (spi_sfdp(flash, 0x04, buf, 3)) { + msg_cerr("Receiving SFDP revision and number of parameter " + "headers (NPH) failed. "); + return 0; + } + msg_cdbg2("SFDP revision = %d.%d\n", buf[1], buf[0]); + nph = buf[3]; + msg_cdbg2("SFDP number of parameter headers (NPH) = %d (+ 1 mandatory)" + "\n", nph); + + /* Fetch all parameter headers, even if we don't use them all (yet). */ + hbuf = malloc(sizeof(struct sfdp_tbl_hdr) * (nph + 1)); + hdrs = malloc((nph + 1) * 8); + if (hbuf == NULL || hdrs == NULL ) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (spi_sfdp(flash, 0x08, hbuf, (nph + 1) * 8)) { + msg_cerr("Receiving SFDP parameter table headers failed.\n"); + goto cleanup_hdrs; + } + + i = 0; + do{ + hdrs[i].id = hbuf[(8 * i) + 0]; + hdrs[i].v_minor = hbuf[(8 * i) + 1]; + hdrs[i].v_major = hbuf[(8 * i) + 2]; + hdrs[i].len = hbuf[(8 * i) + 3]; + hdrs[i].ptp = hbuf[(8 * i) + 4]; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 5]) << 8; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 6]) << 16; + msg_cdbg2("SFDP parameter table header %d/%d:\n", i, nph); + msg_cdbg2(" ID 0x%02x, version %d.%d\n", hdrs[i].id, + hdrs[i].v_major, hdrs[i].v_minor); + tmp16 = hdrs[i].len * 4; + tmp32 = hdrs[i].ptp; + msg_cdbg2(" Length %d B, Parameter Table Pointer 0x%06x\n", + tmp16, tmp32); + + if (tmp16 + tmp32 > UINT16_MAX) { + msg_cerr("SFDP Parameter Table %d supposedly " + "overflows addressable SFDP area. This most\n" + "probably indicates a corrupt SFDP parameter " + "table header. Aborting SFDP probe!\n", i); + ret = 0; + goto cleanup_hdrs; + } + + tbuf = malloc(tmp16); + if (tbuf == NULL) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (sfdp_fetch_pt(flash, tmp32, tbuf, tmp16)){ + msg_cerr("Fetching SFDP parameter table %d failed.\n", + i); + free(tbuf); + break; + } + if (i == 0) { /* Mandatory JEDEC SFDP parameter table */ + if (hdrs[i].id != 0) + msg_cdbg("ID of the mandatory JEDEC SFDP " + "parameter table is not 0 as demanded " + "by JESD216 (warning only).\n"); + + if (hdrs[i].len != (9 * 4)) { + msg_cdbg("Length of the mandatory JEDEC SFDP " + "parameter table is not 24 B as " + "demanded by JESD216.\n"); + if (hdrs[i].len == (4 * 4)) + msg_cdbg("It seems like it is the " + "preliminary Intel version of " + "SFDP, which we don't support." + "\n"); + } else if (sfdp_fill_flash(flash, tbuf, tmp16) == 0) + ret = 1; + } + + free(tbuf); + i++; + } while(i <= nph); + +cleanup_hdrs: + free(hdrs); + free(hbuf); + return ret; +} + static int probe_spi_rdid_generic(struct flashctx *flash, int bytes) { unsigned char readarr[4]; -- 1.7.1 From stefan.tauner at student.tuwien.ac.at Wed Jan 11 00:54:38 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Wed, 11 Jan 2012 00:54:38 +0100 Subject: [flashrom] Abit NF-M2 nView upgrade problem In-Reply-To: <4F0CB102.8030108@gmail.com> References: <4F0CB102.8030108@gmail.com> Message-ID: <201201102355.q0ANt07n031162@mail2.student.tuwien.ac.at> On Tue, 10 Jan 2012 22:43:30 +0100 Grzesiek Pycia wrote: > Hi > > I'm trying to upgrade bios on Abit NF-M2 nView mainboard which is marked > as supported but it is impossible, because it fails on erasing the chip, > so I'm sending log as advised by flashrom. > If there are some other information needed or testing please let me know > I'll be happy to help out. hello, your board needs a small piece of code to make the flash rom writable. actually we already have it in the source and it is just not triggered on your board. the question is why. we identify mainboards via PCI IDs (and sometimes SMBIOS data) and apparently yours does not match our pattern. please provide the output of lspci -nn lspci -nnxxxvvv -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Wed Jan 11 01:34:47 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Wed, 11 Jan 2012 01:34:47 +0100 Subject: [flashrom] [PATCH] print.c: Add ASRock AM2NF6G-VSTA to list of supported boards In-Reply-To: <1326190506.15840.90.camel@mattotaupa> References: <1326038639.15840.39.camel@mattotaupa> <1326189946.15840.87.camel@mattotaupa> <1326190506.15840.90.camel@mattotaupa> Message-ID: <201201110035.q0B0ZAO4022607@mail2.student.tuwien.ac.at> On Tue, 10 Jan 2012 11:15:06 +0100 Paul Menzel wrote: > Date: Mon Jan 9 19:07:28 2012 +0100 > Subject: [PATCH] print.c: Add ASRock AM2NF6G-VSTA to list of supported boards > > All operations were tested and the log files can be found in the list archive [1]. > > [1] http://www.flashrom.org/pipermail/flashrom/2012-January/008512.html > > Signed-off-by: Paul Menzel > --- > print.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/print.c b/print.c > index db7ed65..1de2fe8 100644 > --- a/print.c > +++ b/print.c > @@ -566,6 +566,7 @@ const struct board_info boards_known[] = { > B("ASRock", "A330GC", 1, "http://www.asrock.com/mb/overview.asp?Model=A330GC", NULL), > B("ASRock", "A770CrossFire", 1, "http://www.asrock.com/mb/overview.asp?Model=A770CrossFire", NULL), > B("ASRock", "ALiveNF6G-DVI", 1, "http://www.asrock.com/mb/overview.asp?Model=ALiveNF6G-DVI", NULL), > + B("ASRock", "AM2NF6G-VSTA", 1, "http://www.asrock.com/mb/overview.asp?Model=AM2NF6G-VSTA", NULL), > B("ASRock", "ConRoeXFire-eSATA2", 1, "http://www.asrock.com/mb/overview.asp?model=conroexfire-esata2", NULL), > B("ASRock", "K7S41", 1, "http://www.asrock.com/mb/overview.asp?Model=K7S41", NULL), > B("ASRock", "K7S41GX", 1, "http://www.asrock.com/mb/overview.asp?Model=K7S41GX", NULL), Hello Paul, thanks for your patch. I have integrated it into my collection of tested stuff patches and will commit it later. I have also marked the chipset as tested. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Wed Jan 11 01:46:38 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Wed, 11 Jan 2012 01:46:38 +0100 Subject: [flashrom] I lost my backup image and now my pc doesn't start...! In-Reply-To: References: <201201100010.q0A0AIqZ007909@mail2.student.tuwien.ac.at> Message-ID: <201201110047.q0B0l0r6029164@mail2.student.tuwien.ac.at> On Tue, 10 Jan 2012 07:54:04 +0200 ?lhan Kahraman wrote: > Hello, > I think, I exaggerated things a little bit, due to excitement of my > inoperative mother board. The fan of cpu is working. I noticed that the > fans are working, in my latter flashing attempts, which I tried later than > I e-mailed you. The problem is that it is rotating in a very low constant > rpm. hi again, hm... doesnt the fan spin up fully at power-on first and is then throttled down afterwards (by software)? this is usually done because not all fans have the same start up voltage. some start at 6V or even less, others need more than 10V (even if they continue spinning at lower levels after getting to speed once). this shouldnt be different even for 4-pin fans i think... > I am sorry about that misleading e-mail :( > if I am not bothering you, would I continue to share my adventure with you? > is the aim of this mailing group, that? well as long as it is related to flashrom, it is right. not sure if everyone subscribed to the list (>200 ppl) is interested in personal recovery stories though :) if you find a solution for your problem that might be interesting for others too, i'd love to hear it! good luck -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From svn at flashrom.org Wed Jan 11 03:10:12 2012 From: svn at flashrom.org (repository service) Date: Wed, 11 Jan 2012 03:10:12 +0100 Subject: [flashrom] [commit] r1484 - trunk Message-ID: Author: hailfinger Date: Wed Jan 11 03:10:11 2012 New Revision: 1484 URL: http://flashrom.org/trac/flashrom/changeset/1484 Log: Postpone layout file reading Layout file reading should happen after option parsing like all other file accesses. Guard against multiple --layout parameters. Followup fix for r1483: Remove -m short option from getopt. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Stefan Tauner Modified: trunk/cli_classic.c Modified: trunk/cli_classic.c ============================================================================== --- trunk/cli_classic.c Wed Jan 4 01:48:27 2012 (r1483) +++ trunk/cli_classic.c Wed Jan 11 03:10:11 2012 (r1484) @@ -177,7 +177,7 @@ enum programmer prog = PROGRAMMER_INVALID; int ret = 0; - static const char optstring[] = "r:Rw:v:nVEfc:m:l:i:p:Lzh"; + static const char optstring[] = "r:Rw:v:nVEfc:l:i:p:Lzh"; static const struct option long_options[] = { {"read", 1, NULL, 'r'}, {"write", 1, NULL, 'w'}, @@ -198,6 +198,7 @@ }; char *filename = NULL; + char *layoutfile = NULL; char *tempstr = NULL; char *pparam = NULL; @@ -273,9 +274,12 @@ force = 1; break; case 'l': - tempstr = strdup(optarg); - if (read_romlayout(tempstr)) + if (layoutfile) { + fprintf(stderr, "Error: --layout specified " + "more than once. Aborting.\n"); cli_classic_abort_usage(); + } + layoutfile = strdup(optarg); break; case 'i': tempstr = strdup(optarg); @@ -373,9 +377,6 @@ cli_classic_abort_usage(); } - if (process_include_args()) - cli_classic_abort_usage(); - /* FIXME: Print the actions flashrom will take. */ if (list_supported) { @@ -390,6 +391,11 @@ } #endif + if (layoutfile && read_romlayout(layoutfile)) + cli_classic_abort_usage(); + if (process_include_args()) + cli_classic_abort_usage(); + /* Does a chip with the requested name exist in the flashchips array? */ if (chip_to_probe) { for (flash = flashchips; flash && flash->name; flash++) From c-d.hailfinger.devel.2006 at gmx.net Wed Jan 11 03:13:48 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Wed, 11 Jan 2012 03:13:48 +0100 Subject: [flashrom] [PATCH] Postpone layout file reading In-Reply-To: <201201050227.q052R368026755@mail2.student.tuwien.ac.at> References: <4F011F3F.10103@gmx.net> <201201050227.q052R368026755@mail2.student.tuwien.ac.at> Message-ID: <4F0CF05C.90102@gmx.net> Am 05.01.2012 03:26 schrieb Stefan Tauner: > On Mon, 02 Jan 2012 04:06:39 +0100 > Carl-Daniel Hailfinger wrote: > >> Layout file reading should happen after option parsing like all other >> file accesses. >> Guard against multiple --layout parameters. >> >> Side note: This fixes an inconsistency which impacts the log file patch. >> >> Signed-off-by: Carl-Daniel Hailfinger >> >> Index: flashrom-postpone_layoutfile_reading/cli_classic.c >> =================================================================== >> --- flashrom-postpone_layoutfile_reading/cli_classic.c (Revision 1482) >> +++ flashrom-postpone_layoutfile_reading/cli_classic.c (Arbeitskopie) >> @@ -290,9 +291,12 @@ >> force = 1; >> break; >> case 'l': >> - tempstr = strdup(optarg); >> - if (read_romlayout(tempstr)) >> + if (layoutfile) { >> + fprintf(stderr, "Error: --layout specified " >> + "more than once. Aborting.\n"); > supporting more than one layout file might become handy for some. for > example when using the same hardware platform with multiple firmwares > one might have a common file which specifies for example the boot block > and multiple other files for the different firmwares respectively. > far-fetched? probably. hard to implement? not with an easy and ready to > use data structure like an innovative linked list! ;) > > i am not suggesting adding this now. it just sprang to my mind when > thinking about this. The usage of multiple layout files in one flashrom invocation is a usability nightmare. If there are any conflicting region names or any conflicting region definitions, which one has precedence? And we will get mails with complaints like "why doesn't specifying multiple layout files work for me". Nack from me. If a user does not have the layout file he/she wants, he/she can edit an existing one with a text editor and/or write a new one. Users who don't understand layout files should be protected from shooting themselves with random layout file combinations. > i investigated if we can distinguish between short and long options to > display a correct error message (list the option actually supplied > instead of a hardcoded string). > the good news: it is possible actually. the bad news: it is more > complicated than technically needed, doable, but probably not worth it. > so of course ill try it in a few :) You can try this, but please keep in mind that people who are unfamiliar with flashrom are probably looking at the man page anyway once they get an error message. >> @@ -390,9 +394,6 @@ >> cli_classic_abort_usage(); >> } >> >> - if (process_include_args()) >> - cli_classic_abort_usage(); >> - >> /* FIXME: Print the actions flashrom will take. */ >> >> if (list_supported) { >> @@ -407,6 +408,11 @@ >> } >> #endif >> >> + if (layoutfile && read_romlayout(layoutfile)) >> + cli_classic_abort_usage(); >> + if (process_include_args()) >> + cli_classic_abort_usage(); >> + > side note: > we do not (i.e. i did not) check for duplicate -i arguments: > Looking for region "pr0"... found. > Looking for region "pr0"... found. > Using regions: "pr0", "pr0". > > not a big issue i hope (i did not check it but presume it to be cosmetic > only). Argh. This is not really a bug (it can't cause problems AFAICS), but for UI consistency reasons we should indeed check for duplicate -i arguments and abort flashrom if we find some. > Acked-by: Stefan Tauner Thanks for the review! Committed in r1484. > PS: you may wanna remove the -m short option with this one already. Right, thanks for the reminder. Regards, Carl-Daniel -- http://www.hailfinger.org/ From gzohop at gmail.com Wed Jan 11 08:45:39 2012 From: gzohop at gmail.com (Grzesiek) Date: Wed, 11 Jan 2012 08:45:39 +0100 Subject: [flashrom] Abit NF-M2 nView upgrade problem In-Reply-To: <201201102355.q0ANt07n031162@mail2.student.tuwien.ac.at> References: <4F0CB102.8030108@gmail.com> <201201102355.q0ANt07n031162@mail2.student.tuwien.ac.at> Message-ID: <4F0D3E23.1040404@gmail.com> On 11.01.2012 00:54, Stefan Tauner wrote: > On Tue, 10 Jan 2012 22:43:30 +0100 > Grzesiek Pycia wrote: > >> Hi >> >> I'm trying to upgrade bios on Abit NF-M2 nView mainboard which is marked >> as supported but it is impossible, because it fails on erasing the chip, >> so I'm sending log as advised by flashrom. >> If there are some other information needed or testing please let me know >> I'll be happy to help out. > hello, > > your board needs a small piece of code to make the flash rom writable. > actually we already have it in the source and it is just not triggered > on your board. the question is why. we identify mainboards via PCI IDs > (and sometimes SMBIOS data) and apparently yours does not match our > pattern. please provide the output of > lspci -nn > lspci -nnxxxvvv > There it goes. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: lspi_-nn URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: lspi_-nnxxxvvv URL: From peter.braun at pab-braun.de Wed Jan 11 03:40:28 2012 From: peter.braun at pab-braun.de (Peter A. Braun) Date: Wed, 11 Jan 2012 03:40:28 +0100 Subject: [flashrom] Report on Flashing Board with Intel H67 Message-ID: <005a01ccd00a$62847500$278d5f00$@braun@pab-braun.de> Hi, last night I flashed my MSI H67MA-ED55(B3) with E7676IMS170. As the name says Intel H67 is the built in chipset. Flash chip is W25Q64. The flash process worked fine for me. Two things are a bit strange. Currently I try to investigate the reasons for. Perhaps you have any suggestions. 1. Sys fans cannot longer be controlled, because according BIOS parameters are not longer accessible. Currently I don't know how to get them back. 2. After cold booting the disabled "Full Screen Logo Display" is enabled again. It seems to be the default. But other boot parameter are not changed back to default. I attached the result of "flashrom -V" (result.txt). I hope results are detailed enough to switch entry H67 in your hardware list onto tested. Best regards, Peter -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: result.txt URL: From stefan.tauner at student.tuwien.ac.at Wed Jan 11 13:27:36 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Wed, 11 Jan 2012 13:27:36 +0100 Subject: [flashrom] Abit NF-M2 nView upgrade problem In-Reply-To: <4F0D3E23.1040404@gmail.com> References: <4F0CB102.8030108@gmail.com> <201201102355.q0ANt07n031162@mail2.student.tuwien.ac.at> <4F0D3E23.1040404@gmail.com> Message-ID: <201201111228.q0BCS09S000331@mail2.student.tuwien.ac.at> On Wed, 11 Jan 2012 08:45:39 +0100 Grzesiek wrote: > On 11.01.2012 00:54, Stefan Tauner wrote: > > On Tue, 10 Jan 2012 22:43:30 +0100 > > Grzesiek Pycia wrote: > > > >> Hi > >> > >> I'm trying to upgrade bios on Abit NF-M2 nView mainboard which is marked > >> as supported but it is impossible, because it fails on erasing the chip, > >> so I'm sending log as advised by flashrom. > >> If there are some other information needed or testing please let me know > >> I'll be happy to help out. > > hello, > > > > your board needs a small piece of code to make the flash rom writable. > > actually we already have it in the source and it is just not triggered > > on your board. the question is why. we identify mainboards via PCI IDs > > (and sometimes SMBIOS data) and apparently yours does not match our > > pattern. please provide the output of > > lspci -nn > > lspci -nnxxxvvv > > > > There it goes. thanks! your log shows that you have added a GeForce 8600 GT discrete graphics card. normally we try to avoid to include pci devices in our pattern that can easily be changed or disabled in the firmware, but in the existing board enable code the onboard card was specified. this is a counter example of what should have been done obviously. please change the source as specified in the patch snippet below and recompile. it should then detect your mainboard reliably. it is a one-line change in board_enable.c that removes the VGA IDs and adds the IDs from the LPC controller, which should always be there. sorry for this! please report back if it has worked. i will commit it then to our repository with other small changes. thanks! diff --git a/board_enable.c b/board_enable.c index 2229f8b..e9a630b 100644 @@ -2090,7 +2090,7 @@ const struct board_match board_matches[] = { {0x8086, 0x2930, 0x147b, 0x1083, 0x10ec, 0x8167, 0x147b, 0x1083, NULL, NULL, NULL, P3, "abit", "IP35 Pro", 0, OK, intel_ich_gpio16_raise}, {0x10de, 0x0050, 0x147b, 0x1c1a, 0, 0, 0, 0, NULL, NULL, NULL, P3, "abit", "KN8 Ultra", 0, NT, nvidia_mcp_gpio2_lower}, {0x10de, 0x01e0, 0x147b, 0x1c00, 0x10de, 0x0060, 0x147B, 0x1c00, NULL, NULL, NULL, P3, "abit", "NF7-S", 0, OK, nvidia_mcp_gpio8_raise}, - {0x10de, 0x02f0, 0x147b, 0x1c26, 0x10de, 0x0240, 0x10de, 0x0222, NULL, NULL, NULL, P3, "abit", "NF-M2 nView", 0, OK, nvidia_mcp_gpio4_lower}, + {0x10de, 0x02f0, 0x147b, 0x1c26, 0x10de, 0x0260, 0x147b, 0x1c26, NULL, NULL, NULL, P3, "abit", "NF-M2 nView", 0, OK, nvidia_mcp_gpio4_lower}, {0x1106, 0x0691, 0, 0, 0x1106, 0x3057, 0, 0, "(VA6)$", NULL, NULL, P3, "abit", "VA6", 0, OK, via_apollo_gpo4_lower}, {0x1106, 0x0691, 0, 0, 0x1106, 0x3057, 0, 0, NULL, "abit", "vt6x4", P3, "abit", "VT6X4", 0, OK, via_apollo_gpo4_lower}, {0x105a, 0x0d30, 0x105a, 0x4d33, 0x8086, 0x1130, 0x8086, 0, NULL, NULL, NULL, P3, "Acorp", "6A815EPD", 0, OK, board_acorp_6a815epd}, -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From vince06fr at gmail.com Wed Jan 11 13:20:25 2012 From: vince06fr at gmail.com (Vince S) Date: Wed, 11 Jan 2012 13:20:25 +0100 Subject: [flashrom] flashrom -V In-Reply-To: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> Message-ID: Hello *The output of flashrom -V :* flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 736M loops per second, 10 myus = 11 us, 100 myus = 101 us, 1000 myus = 1000 us, 10000 myus = 10004 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "Acer" DMI string system-product-name: "Aspire T180" DMI string system-version: "R01-A2" DMI string baseboard-manufacturer: "Acer" DMI string baseboard-product-name: "EM61SM/EM61PM " DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8726 on port 0x2e Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... This chipset is not really supported yet. Guesswork... ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 Flash bus type is LPC Found SMBus device 10de:03eb at 00:01:1 MCP SPI BAR is at 0x00000000 MCP SPI is not used. Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. This chipset supports the following protocols: LPC. Super I/O ID 0x8726 is not on the list of flash capable controllers. Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address 0xfff80000. Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content === This flash part has status UNTESTED for operations: WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! No operations were specified. Restoring PCI config space for 00:01:0 reg 0x6d Restoring PCI config space for 00:01:0 reg 0x90 Restoring PCI config space for 00:01:0 reg 0x8c Restoring PCI config space for 00:01:0 reg 0x88 ======================================== *Here the output of flashrom -VE* : flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci 3.1.7, GCC 4.6.1, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 729M loops per second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 990 us, 10000 myus = 9955 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "Acer" DMI string system-product-name: "Aspire T180" DMI string system-version: "R01-A2" DMI string baseboard-manufacturer: "Acer" DMI string baseboard-product-name: "EM61SM/EM61PM " DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8726 on port 0x2e Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... This chipset is not really supported yet. Guesswork... ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 Flash bus type is LPC Found SMBus device 10de:03eb at 00:01:1 MCP SPI BAR is at 0x00000000 MCP SPI is not used. Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. This chipset supports the following protocols: LPC. Super I/O ID 0x8726 is not on the list of flash capable controllers. Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address 0xfff80000. Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, id1 is normal flash content === This flash part has status UNTESTED for operations: WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! Erasing and writing flash chip... Trying erase function 0... 0x000000-0x000fff:E, 0x001000-0x001fff:E, 0x002000-0x002fff:E, 0x003000-0x003fff:E, 0x004000-0x004fff:E, 0x005000-0x005fff:E, 0x006000-0x006fff:E, 0x007000-0x007fff:E, 0x008000-0x008fff:E, 0x009000-0x009fff:E, 0x00a000-0x00afff:E, 0x00b000-0x00bfff:E, 0x00c000-0x00cfff:E, 0x00d000-0x00dfff:E, 0x00e000-0x00efff:E, 0x00f000-0x00ffff:E, 0x010000-0x010fff:E, 0x011000-0x011fff:E, 0x012000-0x012fff:E, 0x013000-0x013fff:E, 0x014000-0x014fff:E, 0x015000-0x015fff:E, 0x016000-0x016fff:E, 0x017000-0x017fff:E, 0x018000-0x018fff:E, 0x019000-0x019fff:E, 0x01a000-0x01afff:E, 0x01b000-0x01bfff:E, 0x01c000-0x01cfff:E, 0x01d000-0x01dfff:E, 0x01e000-0x01efff:E, 0x01f000-0x01ffff:E, 0x020000-0x020fff:E, 0x021000-0x021fff:E, 0x022000-0x022fff:E, 0x023000-0x023fff:E, 0x024000-0x024fff:E, 0x025000-0x025fff:E, 0x026000-0x026fff:E, 0x027000-0x027fff:E, 0x028000-0x028fff:E, 0x029000-0x029fff:E, 0x02a000-0x02afff:E, 0x02b000-0x02bfff:E, 0x02c000-0x02cfff:E, 0x02d000-0x02dfff:E, 0x02e000-0x02efff:E, 0x02f000-0x02ffff:E, 0x030000-0x030fff:E, 0x031000-0x031fff:E, 0x032000-0x032fff:E, 0x033000-0x033fff:E, 0x034000-0x034fff:E, 0x035000-0x035fff:E, 0x036000-0x036fff:E, 0x037000-0x037fff:E, 0x038000-0x038fff:E, 0x039000-0x039fff:E, 0x03a000-0x03afff:E, 0x03b000-0x03bfff:E, 0x03c000-0x03cfff:E, 0x03d000-0x03dfff:E, 0x03e000-0x03efff:E, 0x03f000-0x03ffff:E, 0x040000-0x040fff:E, 0x041000-0x041fff:E, 0x042000-0x042fff:E, 0x043000-0x043fff:E, 0x044000-0x044fff:E, 0x045000-0x045fff:E, 0x046000-0x046fff:E, 0x047000-0x047fff:E, 0x048000-0x048fff:E, 0x049000-0x049fff:E, 0x04a000-0x04afff:E, 0x04b000-0x04bfff:E, 0x04c000-0x04cfff:E, 0x04d000-0x04dfff:E, 0x04e000-0x04efff:E, 0x04f000-0x04ffff:E, 0x050000-0x050fff:E, 0x051000-0x051fff:E, 0x052000-0x052fff:E, 0x053000-0x053fff:E, 0x054000-0x054fff:E, 0x055000-0x055fff:E, 0x056000-0x056fff:E, 0x057000-0x057fff:E, 0x058000-0x058fff:E, 0x059000-0x059fff:E, 0x05a000-0x05afff:E, 0x05b000-0x05bfff:E, 0x05c000-0x05cfff:E, 0x05d000-0x05dfff:E, 0x05e000-0x05efff:E, 0x05f000-0x05ffff:E, 0x060000-0x060fff:E, 0x061000-0x061fff:E, 0x062000-0x062fff:E, 0x063000-0x063fff:E, 0x064000-0x064fff:E, 0x065000-0x065fff:E, 0x066000-0x066fff:E, 0x067000-0x067fff:E, 0x068000-0x068fff:E, 0x069000-0x069fff:E, 0x06a000-0x06afff:E, 0x06b000-0x06bfff:E, 0x06c000-0x06cfff:E, 0x06d000-0x06dfff:E, 0x06e000-0x06efff:E, 0x06f000-0x06ffff:E, 0x070000-0x070fff:E, 0x071000-0x071fff:E, 0x072000-0x072fff:E, 0x073000-0x073fff:E, 0x074000-0x074fff:E, 0x075000-0x075fff:E, 0x076000-0x076fff:E, 0x077000-0x077fff:E, 0x078000-0x078fff:E, 0x079000-0x079fff:E, 0x07a000-0x07afff:E, 0x07b000-0x07bfff:E, 0x07c000-0x07cfff:E, 0x07d000-0x07dfff:E, 0x07e000-0x07efff:E, 0x07f000-0x07ffff:E Erase/write done. Restoring PCI config space for 00:01:0 reg 0x6d Restoring PCI config space for 00:01:0 reg 0x90 Restoring PCI config space for 00:01:0 reg 0x8c Restoring PCI config space for 00:01:0 reg 0x88 =================================================== If you want the output of another command, please ask me I finally flash my bios with a windows live disk so i don't want to take anyu risk but i want help -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefan.tauner at student.tuwien.ac.at Wed Jan 11 14:01:38 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Wed, 11 Jan 2012 14:01:38 +0100 Subject: [flashrom] Report on Flashing Board with Intel H67 In-Reply-To: <005a01ccd00a$62847500$278d5f00$@braun@pab-braun.de> References: <005a01ccd00a$62847500$278d5f00$@braun@pab-braun.de> Message-ID: <201201111302.q0BD22tL008087@mail2.student.tuwien.ac.at> On Wed, 11 Jan 2012 03:40:28 +0100 "Peter A. Braun" wrote: > Hi, hello peter and thanks for your report! please do not send html mails to mailing lists. your client seems to also send a plain text version, but that one has way too much line breaks in it to be readable (18 line breaks instead of 1 :) > > > last night I flashed my MSI H67MA-ED55(B3) with E7676IMS170. As the name says Intel H67 is the built in chipset. Flash chip is W25Q64. The flash process worked fine for me. by working fine you mean that flashrom said "VERIFIED" at the end, i presume. "E7676IMS[.]170" is the name of the file flashed in the zip file 7676v17.zip which is version 1.7 according to MSI. so far so good. > Two things are a bit strange. Currently I try to investigate the reasons for. Perhaps you have any suggestions. > > 1. Sys fans cannot longer be controlled, because according BIOS parameters are not longer accessible. Currently I don?t know how to get them back. > > 2. After cold booting the disabled ?Full Screen Logo Display? is enabled again. It seems to be the default. But other boot parameter are not changed back to default. the changelog of that bios version mentions "Update CPU smart fan module". so i guess what you are experiencing is that fine new update ;) the newer intel chipsets are quite complicated in these regards and since intel does not specify the update process in detail publicly, it could theoretically be that flashrom is involved too. i have experienced similar problems with an intel board (without flashrom involved) too, so i doubt flashrom is the culprit. try removing all power from the board (maybe even the small battery) for at least 10 seconds. this resets the embedded controller inside the chipset that is used for hardware monitoring and that might be powered whenever there is a power source, even if the computer is turned "off". one way to test if flashrom might be the problem would be to rewrite the old version (did you make a backup?) and reinstall 1.7 with MSI's tool. from my experience if this works it would not prove that flashrom is the problem, but only if it does not work it would prove that flashrom is not the problem. the reason is the problems i have seen as mentioned above. if you did not have problems with the old version, i would suggest rewriting your backup with flashrom. > I attached the result of ?flashrom -V? (result.txt). > > > > I hope results are detailed enough to switch entry H67 in your hardware list onto tested. this was done already due to an earlier report, but i will add the mainboard to our list with a small note referencing this thread. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From vidwer at gmail.com Wed Jan 11 14:09:49 2012 From: vidwer at gmail.com (Idwer Vollering) Date: Wed, 11 Jan 2012 14:09:49 +0100 Subject: [flashrom] flashrom -V In-Reply-To: References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> Message-ID: 2012/1/11 Vince S : > Hello > The output of flashrom -V : > > > flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci > 3.1.7, GCC 4.6.1, little endian > flashrom is free software, get the source code at http://www.flashrom.org > > Calibrating delay loop... OS timer resolution is 1 usecs, 736M loops per > second, 10 myus = 11 us, 100 myus = 101 us, 1000 myus = 1000 us, 10000 myus > = 10004 us, 4 myus = 5 us, OK. > Initializing internal programmer > No coreboot table found. > DMI string system-manufacturer: "Acer" > DMI string system-product-name: "Aspire T180" > DMI string system-version: "R01-A2" > DMI string baseboard-manufacturer: "Acer" > DMI string baseboard-product-name: "EM61SM/EM61PM???????? " > DMI string baseboard-version: " " > DMI string chassis-type: "Desktop" > Found ITE Super I/O, ID 0x8726 on port 0x2e > Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. > This chipset is marked as untested. If you are using an up-to-date version > of flashrom please email a report to flashrom at flashrom.org including a > verbose (-V) log. Thank you! > Enabling flash write... This chipset is not really supported yet. > Guesswork... > ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 > Flash bus type is LPC > Found SMBus device 10de:03eb at 00:01:1 > MCP SPI BAR is at 0x00000000 > MCP SPI is not used. > Please send the output of "flashrom -V" to flashrom at flashrom.org with > your board name: flashrom -V as the subject to help us finish support for > your > chipset. Thanks. > OK. > This chipset supports the following protocols: LPC. > Super I/O ID 0x8726 is not on the list of flash capable controllers. > Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > id1 is normal flash content > Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > id1 is normal flash content > Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > id1 is normal flash content > Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address > 0xfff80000. > Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing > information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 > 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > content > > Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > normal flash content, id2 is normal flash content > Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > normal flash content, id2 is normal flash content > Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 > 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > content > Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 > 0x50, id1 is normal flash content > === > This flash part has status UNTESTED for operations: WRITE > The test status of this chip may have been updated in the latest development > version of flashrom. If you are running the latest development version, > please email a report to flashrom at 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, -Vr, > -Vw, -VE), and mention which mainboard or programmer you tested. > Please mention your board in the subject line. Thanks for your help! > > No operations were specified. > Restoring PCI config space for 00:01:0 reg 0x6d > Restoring PCI config space for 00:01:0 reg 0x90 > Restoring PCI config space for 00:01:0 reg 0x8c > Restoring PCI config space for 00:01:0 reg 0x88 > > > ======================================== > > Here the output of flashrom -VE : > > flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci > 3.1.7, GCC 4.6.1, little endian > flashrom is free software, get the source code at http://www.flashrom.org > > Calibrating delay loop... OS timer resolution is 1 usecs, 729M loops per > second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 990 us, 10000 myus = > 9955 us, 4 myus = 5 us, OK. > Initializing internal programmer > No coreboot table found. > DMI string system-manufacturer: "Acer" > DMI string system-product-name: "Aspire T180" > DMI string system-version: "R01-A2" > DMI string baseboard-manufacturer: "Acer" > DMI string baseboard-product-name: "EM61SM/EM61PM???????? " > DMI string baseboard-version: " " > DMI string chassis-type: "Desktop" > Found ITE Super I/O, ID 0x8726 on port 0x2e > Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. > This chipset is marked as untested. If you are using an up-to-date version > of flashrom please email a report to flashrom at flashrom.org including a > verbose (-V) log. Thank you! > Enabling flash write... This chipset is not really supported yet. > Guesswork... > ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 > Flash bus type is LPC > Found SMBus device 10de:03eb at 00:01:1 > MCP SPI BAR is at 0x00000000 > MCP SPI is not used. > Please send the output of "flashrom -V" to flashrom at flashrom.org with > your board name: flashrom -V as the subject to help us finish support for > your > chipset. Thanks. > OK. > This chipset supports the following protocols: LPC. > Super I/O ID 0x8726 is not on the list of flash capable controllers. > Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > id1 is normal flash content > Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > id1 is normal flash content > Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > id1 is normal flash content > Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address > 0xfff80000. > Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing > information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 > 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > content > > Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > normal flash content, id2 is normal flash content > Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > normal flash content, id2 is normal flash content > Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > parity violation, id1 is normal flash content, id2 is normal flash content > Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 > 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > content > Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 > 0x50, id1 is normal flash content > === > This flash part has status UNTESTED for operations: WRITE > The test status of this chip may have been updated in the latest development > version of flashrom. If you are running the latest development version, > please email a report to flashrom at 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, -Vr, > -Vw, -VE), and mention which mainboard or programmer you tested. > Please mention your board in the subject line. Thanks for your help! > Erasing and writing flash chip... Trying erase function 0... > 0x000000-0x000fff:E, 0x001000-0x001fff:E, 0x002000-0x002fff:E, > 0x003000-0x003fff:E, 0x004000-0x004fff:E, 0x005000-0x005fff:E, > 0x006000-0x006fff:E, 0x007000-0x007fff:E, 0x008000-0x008fff:E, > 0x009000-0x009fff:E, 0x00a000-0x00afff:E, 0x00b000-0x00bfff:E, > 0x00c000-0x00cfff:E, 0x00d000-0x00dfff:E, 0x00e000-0x00efff:E, > 0x00f000-0x00ffff:E, 0x010000-0x010fff:E, 0x011000-0x011fff:E, > 0x012000-0x012fff:E, 0x013000-0x013fff:E, 0x014000-0x014fff:E, > 0x015000-0x015fff:E, 0x016000-0x016fff:E, 0x017000-0x017fff:E, > 0x018000-0x018fff:E, 0x019000-0x019fff:E, 0x01a000-0x01afff:E, > 0x01b000-0x01bfff:E, 0x01c000-0x01cfff:E, 0x01d000-0x01dfff:E, > 0x01e000-0x01efff:E, 0x01f000-0x01ffff:E, 0x020000-0x020fff:E, > 0x021000-0x021fff:E, 0x022000-0x022fff:E, 0x023000-0x023fff:E, > 0x024000-0x024fff:E, 0x025000-0x025fff:E, 0x026000-0x026fff:E, > 0x027000-0x027fff:E, 0x028000-0x028fff:E, 0x029000-0x029fff:E, > 0x02a000-0x02afff:E, 0x02b000-0x02bfff:E, 0x02c000-0x02cfff:E, > 0x02d000-0x02dfff:E, 0x02e000-0x02efff:E, 0x02f000-0x02ffff:E, > 0x030000-0x030fff:E, 0x031000-0x031fff:E, 0x032000-0x032fff:E, > 0x033000-0x033fff:E, 0x034000-0x034fff:E, 0x035000-0x035fff:E, > 0x036000-0x036fff:E, 0x037000-0x037fff:E, 0x038000-0x038fff:E, > 0x039000-0x039fff:E, 0x03a000-0x03afff:E, 0x03b000-0x03bfff:E, > 0x03c000-0x03cfff:E, 0x03d000-0x03dfff:E, 0x03e000-0x03efff:E, > 0x03f000-0x03ffff:E, 0x040000-0x040fff:E, 0x041000-0x041fff:E, > 0x042000-0x042fff:E, 0x043000-0x043fff:E, 0x044000-0x044fff:E, > 0x045000-0x045fff:E, 0x046000-0x046fff:E, 0x047000-0x047fff:E, > 0x048000-0x048fff:E, 0x049000-0x049fff:E, 0x04a000-0x04afff:E, > 0x04b000-0x04bfff:E, 0x04c000-0x04cfff:E, 0x04d000-0x04dfff:E, > 0x04e000-0x04efff:E, 0x04f000-0x04ffff:E, 0x050000-0x050fff:E, > 0x051000-0x051fff:E, 0x052000-0x052fff:E, 0x053000-0x053fff:E, > 0x054000-0x054fff:E, 0x055000-0x055fff:E, 0x056000-0x056fff:E, > 0x057000-0x057fff:E, 0x058000-0x058fff:E, 0x059000-0x059fff:E, > 0x05a000-0x05afff:E, 0x05b000-0x05bfff:E, 0x05c000-0x05cfff:E, > 0x05d000-0x05dfff:E, 0x05e000-0x05efff:E, 0x05f000-0x05ffff:E, > 0x060000-0x060fff:E, 0x061000-0x061fff:E, 0x062000-0x062fff:E, > 0x063000-0x063fff:E, 0x064000-0x064fff:E, 0x065000-0x065fff:E, > 0x066000-0x066fff:E, 0x067000-0x067fff:E, 0x068000-0x068fff:E, > 0x069000-0x069fff:E, 0x06a000-0x06afff:E, 0x06b000-0x06bfff:E, > 0x06c000-0x06cfff:E, 0x06d000-0x06dfff:E, 0x06e000-0x06efff:E, > 0x06f000-0x06ffff:E, 0x070000-0x070fff:E, 0x071000-0x071fff:E, > 0x072000-0x072fff:E, 0x073000-0x073fff:E, 0x074000-0x074fff:E, > 0x075000-0x075fff:E, 0x076000-0x076fff:E, 0x077000-0x077fff:E, > 0x078000-0x078fff:E, 0x079000-0x079fff:E, 0x07a000-0x07afff:E, > 0x07b000-0x07bfff:E, 0x07c000-0x07cfff:E, 0x07d000-0x07dfff:E, > 0x07e000-0x07efff:E, 0x07f000-0x07ffff:E > Erase/write done. The chip is now erased, it doesn't contain BIOS/(U)EFI software anymore. > > Restoring PCI config space for 00:01:0 reg 0x6d > Restoring PCI config space for 00:01:0 reg 0x90 > Restoring PCI config space for 00:01:0 reg 0x8c > Restoring PCI config space for 00:01:0 reg 0x88 > > > =================================================== > > If you want the output of another command, please ask me > I finally flash my bios with a windows live disk? so i don't want to take > anyu risk but i want help Please do not reboot as your machine may have to be sent in for repair. Unless you have made a backup readout file, we will supply a link for the right BIOS rom. > > > > > _______________________________________________ > flashrom mailing list > flashrom at flashrom.org > http://www.flashrom.org/mailman/listinfo/flashrom From gzohop at gmail.com Wed Jan 11 14:16:55 2012 From: gzohop at gmail.com (Grzesiek) Date: Wed, 11 Jan 2012 14:16:55 +0100 Subject: [flashrom] Abit NF-M2 nView upgrade problem In-Reply-To: <201201111228.q0BCS09S000331@mail2.student.tuwien.ac.at> References: <4F0CB102.8030108@gmail.com> <201201102355.q0ANt07n031162@mail2.student.tuwien.ac.at> <4F0D3E23.1040404@gmail.com> <201201111228.q0BCS09S000331@mail2.student.tuwien.ac.at> Message-ID: <4F0D8BC7.5010302@gmail.com> On 11.01.2012 13:27, Stefan Tauner wrote: > On Wed, 11 Jan 2012 08:45:39 +0100 > Grzesiek wrote: > >> On 11.01.2012 00:54, Stefan Tauner wrote: >>> On Tue, 10 Jan 2012 22:43:30 +0100 >>> Grzesiek Pycia wrote: >>> >>>> Hi >>>> >>>> I'm trying to upgrade bios on Abit NF-M2 nView mainboard which is marked >>>> as supported but it is impossible, because it fails on erasing the chip, >>>> so I'm sending log as advised by flashrom. >>>> If there are some other information needed or testing please let me know >>>> I'll be happy to help out. >>> hello, >>> >>> your board needs a small piece of code to make the flash rom writable. >>> actually we already have it in the source and it is just not triggered >>> on your board. the question is why. we identify mainboards via PCI IDs >>> (and sometimes SMBIOS data) and apparently yours does not match our >>> pattern. please provide the output of >>> lspci -nn >>> lspci -nnxxxvvv >>> >> There it goes. > thanks! > your log shows that you have added a GeForce 8600 GT discrete graphics > card. normally we try to avoid to include pci devices in our pattern > that can easily be changed or disabled in the firmware, but in the > existing board enable code the onboard card was specified. this is a > counter example of what should have been done obviously. > > please change the source as specified in the patch snippet below and > recompile. it should then detect your mainboard reliably. it is a > one-line change in board_enable.c that removes the VGA IDs and adds the > IDs from the LPC controller, which should always be there. > > sorry for this! please report back if it has worked. i will commit it > then to our repository with other small changes. thanks! > > Seems to work, update and verification was successful. I'll report back in few hours if the board does work after reboot, because it is at remote location. Regards From vidwer at gmail.com Wed Jan 11 16:58:12 2012 From: vidwer at gmail.com (Idwer Vollering) Date: Wed, 11 Jan 2012 16:58:12 +0100 Subject: [flashrom] flashrom -V In-Reply-To: References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> Message-ID: 2012/1/11 Idwer Vollering : > 2012/1/11 Vince S : >> Hello >> The output of flashrom -V : >> >> >> flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci >> 3.1.7, GCC 4.6.1, little endian >> flashrom is free software, get the source code at http://www.flashrom.org >> >> Calibrating delay loop... OS timer resolution is 1 usecs, 736M loops per >> second, 10 myus = 11 us, 100 myus = 101 us, 1000 myus = 1000 us, 10000 myus >> = 10004 us, 4 myus = 5 us, OK. >> Initializing internal programmer >> No coreboot table found. >> DMI string system-manufacturer: "Acer" >> DMI string system-product-name: "Aspire T180" >> DMI string system-version: "R01-A2" >> DMI string baseboard-manufacturer: "Acer" >> DMI string baseboard-product-name: "EM61SM/EM61PM???????? " >> DMI string baseboard-version: " " >> DMI string chassis-type: "Desktop" >> Found ITE Super I/O, ID 0x8726 on port 0x2e >> Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. >> This chipset is marked as untested. If you are using an up-to-date version >> of flashrom please email a report to flashrom at flashrom.org including a >> verbose (-V) log. Thank you! >> Enabling flash write... This chipset is not really supported yet. >> Guesswork... >> ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 >> Flash bus type is LPC >> Found SMBus device 10de:03eb at 00:01:1 >> MCP SPI BAR is at 0x00000000 >> MCP SPI is not used. >> Please send the output of "flashrom -V" to flashrom at flashrom.org with >> your board name: flashrom -V as the subject to help us finish support for >> your >> chipset. Thanks. >> OK. >> This chipset supports the following protocols: LPC. >> Super I/O ID 0x8726 is not on the list of flash capable controllers. >> Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, >> id1 is normal flash content >> Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, >> id1 is normal flash content >> Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, >> id1 is normal flash content >> Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address >> 0xfff80000. >> Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing >> information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash >> content >> >> Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is >> normal flash content, id2 is normal flash content >> Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is >> normal flash content, id2 is normal flash content >> Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash >> content >> Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 >> 0x50, id1 is normal flash content >> === >> This flash part has status UNTESTED for operations: WRITE >> The test status of this chip may have been updated in the latest development >> version of flashrom. If you are running the latest development version, >> please email a report to flashrom at 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, -Vr, >> -Vw, -VE), and mention which mainboard or programmer you tested. >> Please mention your board in the subject line. Thanks for your help! >> >> No operations were specified. >> Restoring PCI config space for 00:01:0 reg 0x6d >> Restoring PCI config space for 00:01:0 reg 0x90 >> Restoring PCI config space for 00:01:0 reg 0x8c >> Restoring PCI config space for 00:01:0 reg 0x88 >> >> >> ======================================== >> >> Here the output of flashrom -VE : >> >> flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci >> 3.1.7, GCC 4.6.1, little endian >> flashrom is free software, get the source code at http://www.flashrom.org >> >> Calibrating delay loop... OS timer resolution is 1 usecs, 729M loops per >> second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 990 us, 10000 myus = >> 9955 us, 4 myus = 5 us, OK. >> Initializing internal programmer >> No coreboot table found. >> DMI string system-manufacturer: "Acer" >> DMI string system-product-name: "Aspire T180" >> DMI string system-version: "R01-A2" >> DMI string baseboard-manufacturer: "Acer" >> DMI string baseboard-product-name: "EM61SM/EM61PM???????? " >> DMI string baseboard-version: " " >> DMI string chassis-type: "Desktop" >> Found ITE Super I/O, ID 0x8726 on port 0x2e >> Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. >> This chipset is marked as untested. If you are using an up-to-date version >> of flashrom please email a report to flashrom at flashrom.org including a >> verbose (-V) log. Thank you! >> Enabling flash write... This chipset is not really supported yet. >> Guesswork... >> ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 >> Flash bus type is LPC >> Found SMBus device 10de:03eb at 00:01:1 >> MCP SPI BAR is at 0x00000000 >> MCP SPI is not used. >> Please send the output of "flashrom -V" to flashrom at flashrom.org with >> your board name: flashrom -V as the subject to help us finish support for >> your >> chipset. Thanks. >> OK. >> This chipset supports the following protocols: LPC. >> Super I/O ID 0x8726 is not on the list of flash capable controllers. >> Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, >> id1 is normal flash content >> Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, >> id1 is normal flash content >> Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, >> id1 is normal flash content >> Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address >> 0xfff80000. >> Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing >> information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash >> content >> >> Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is >> normal flash content, id2 is normal flash content >> Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is >> normal flash content, id2 is normal flash content >> Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 >> parity violation, id1 is normal flash content, id2 is normal flash content >> Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 >> Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash >> content >> Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 >> 0x50, id1 is normal flash content >> === >> This flash part has status UNTESTED for operations: WRITE >> The test status of this chip may have been updated in the latest development >> version of flashrom. If you are running the latest development version, >> please email a report to flashrom at 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, -Vr, >> -Vw, -VE), and mention which mainboard or programmer you tested. >> Please mention your board in the subject line. Thanks for your help! >> Erasing and writing flash chip... Trying erase function 0... >> 0x000000-0x000fff:E, 0x001000-0x001fff:E, 0x002000-0x002fff:E, >> 0x003000-0x003fff:E, 0x004000-0x004fff:E, 0x005000-0x005fff:E, >> 0x006000-0x006fff:E, 0x007000-0x007fff:E, 0x008000-0x008fff:E, >> 0x009000-0x009fff:E, 0x00a000-0x00afff:E, 0x00b000-0x00bfff:E, >> 0x00c000-0x00cfff:E, 0x00d000-0x00dfff:E, 0x00e000-0x00efff:E, >> 0x00f000-0x00ffff:E, 0x010000-0x010fff:E, 0x011000-0x011fff:E, >> 0x012000-0x012fff:E, 0x013000-0x013fff:E, 0x014000-0x014fff:E, >> 0x015000-0x015fff:E, 0x016000-0x016fff:E, 0x017000-0x017fff:E, >> 0x018000-0x018fff:E, 0x019000-0x019fff:E, 0x01a000-0x01afff:E, >> 0x01b000-0x01bfff:E, 0x01c000-0x01cfff:E, 0x01d000-0x01dfff:E, >> 0x01e000-0x01efff:E, 0x01f000-0x01ffff:E, 0x020000-0x020fff:E, >> 0x021000-0x021fff:E, 0x022000-0x022fff:E, 0x023000-0x023fff:E, >> 0x024000-0x024fff:E, 0x025000-0x025fff:E, 0x026000-0x026fff:E, >> 0x027000-0x027fff:E, 0x028000-0x028fff:E, 0x029000-0x029fff:E, >> 0x02a000-0x02afff:E, 0x02b000-0x02bfff:E, 0x02c000-0x02cfff:E, >> 0x02d000-0x02dfff:E, 0x02e000-0x02efff:E, 0x02f000-0x02ffff:E, >> 0x030000-0x030fff:E, 0x031000-0x031fff:E, 0x032000-0x032fff:E, >> 0x033000-0x033fff:E, 0x034000-0x034fff:E, 0x035000-0x035fff:E, >> 0x036000-0x036fff:E, 0x037000-0x037fff:E, 0x038000-0x038fff:E, >> 0x039000-0x039fff:E, 0x03a000-0x03afff:E, 0x03b000-0x03bfff:E, >> 0x03c000-0x03cfff:E, 0x03d000-0x03dfff:E, 0x03e000-0x03efff:E, >> 0x03f000-0x03ffff:E, 0x040000-0x040fff:E, 0x041000-0x041fff:E, >> 0x042000-0x042fff:E, 0x043000-0x043fff:E, 0x044000-0x044fff:E, >> 0x045000-0x045fff:E, 0x046000-0x046fff:E, 0x047000-0x047fff:E, >> 0x048000-0x048fff:E, 0x049000-0x049fff:E, 0x04a000-0x04afff:E, >> 0x04b000-0x04bfff:E, 0x04c000-0x04cfff:E, 0x04d000-0x04dfff:E, >> 0x04e000-0x04efff:E, 0x04f000-0x04ffff:E, 0x050000-0x050fff:E, >> 0x051000-0x051fff:E, 0x052000-0x052fff:E, 0x053000-0x053fff:E, >> 0x054000-0x054fff:E, 0x055000-0x055fff:E, 0x056000-0x056fff:E, >> 0x057000-0x057fff:E, 0x058000-0x058fff:E, 0x059000-0x059fff:E, >> 0x05a000-0x05afff:E, 0x05b000-0x05bfff:E, 0x05c000-0x05cfff:E, >> 0x05d000-0x05dfff:E, 0x05e000-0x05efff:E, 0x05f000-0x05ffff:E, >> 0x060000-0x060fff:E, 0x061000-0x061fff:E, 0x062000-0x062fff:E, >> 0x063000-0x063fff:E, 0x064000-0x064fff:E, 0x065000-0x065fff:E, >> 0x066000-0x066fff:E, 0x067000-0x067fff:E, 0x068000-0x068fff:E, >> 0x069000-0x069fff:E, 0x06a000-0x06afff:E, 0x06b000-0x06bfff:E, >> 0x06c000-0x06cfff:E, 0x06d000-0x06dfff:E, 0x06e000-0x06efff:E, >> 0x06f000-0x06ffff:E, 0x070000-0x070fff:E, 0x071000-0x071fff:E, >> 0x072000-0x072fff:E, 0x073000-0x073fff:E, 0x074000-0x074fff:E, >> 0x075000-0x075fff:E, 0x076000-0x076fff:E, 0x077000-0x077fff:E, >> 0x078000-0x078fff:E, 0x079000-0x079fff:E, 0x07a000-0x07afff:E, >> 0x07b000-0x07bfff:E, 0x07c000-0x07cfff:E, 0x07d000-0x07dfff:E, >> 0x07e000-0x07efff:E, 0x07f000-0x07ffff:E >> Erase/write done. > > The chip is now erased, it doesn't contain BIOS/(U)EFI software anymore. > >> >> Restoring PCI config space for 00:01:0 reg 0x6d >> Restoring PCI config space for 00:01:0 reg 0x90 >> Restoring PCI config space for 00:01:0 reg 0x8c >> Restoring PCI config space for 00:01:0 reg 0x88 >> >> >> =================================================== >> >> If you want the output of another command, please ask me >> I finally flash my bios with a windows live disk? so i don't want to take >> anyu risk but i want help > > Please do not reboot as your machine may have to be sent in for repair. > Unless you have made a backup readout file, we will supply a link for > the right BIOS rom. Here is the link: ftp://ftp.work.acer-euro.com/desktop/aspire_t180/bios/R01B4.zip and DOS/61AO427.BIN is the file that - I think - suits your board. > >> >> >> >> >> _______________________________________________ >> flashrom mailing list >> flashrom at flashrom.org >> http://www.flashrom.org/mailman/listinfo/flashrom From gzohop at gmail.com Wed Jan 11 18:33:37 2012 From: gzohop at gmail.com (Grzesiek Pycia) Date: Wed, 11 Jan 2012 18:33:37 +0100 Subject: [flashrom] Abit NF-M2 nView upgrade problem In-Reply-To: <4F0D8BC7.5010302@gmail.com> References: <4F0CB102.8030108@gmail.com> <201201102355.q0ANt07n031162@mail2.student.tuwien.ac.at> <4F0D3E23.1040404@gmail.com> <201201111228.q0BCS09S000331@mail2.student.tuwien.ac.at> <4F0D8BC7.5010302@gmail.com> Message-ID: <4F0DC7F1.5090007@gmail.com> W dniu 11.01.2012 14:16, Grzesiek pisze: > On 11.01.2012 13:27, Stefan Tauner wrote: >> On Wed, 11 Jan 2012 08:45:39 +0100 >> Grzesiek wrote: >> >> sorry for this! please report back if it has worked. i will commit it >> then to our repository with other small changes. thanks! >> >> > > Seems to work, update and verification was successful. > I'll report back in few hours if the board does work after reboot, > because it is at remote location. > Upgrade was successful, after reboot the mainboard works fine and bios is updated so You can commit changes. Thanks for help. Regards Grzegorz From vidwer at gmail.com Wed Jan 11 21:04:47 2012 From: vidwer at gmail.com (Idwer Vollering) Date: Wed, 11 Jan 2012 21:04:47 +0100 Subject: [flashrom] Fwd: flashrom -V In-Reply-To: References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> Message-ID: ---------- Forwarded message ---------- From: Vince S Date: 2012/1/11 Subject: Re: [flashrom] flashrom -V To: Idwer Vollering It s to late i already shutdown the oc so i can t restart... Le 11 janv. 2012 16:58, "Idwer Vollering" a ?crit?: > 2012/1/11 Idwer Vollering : > > 2012/1/11 Vince S : > >> Hello > >> The output of flashrom -V : > >> > >> > >> flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci > >> 3.1.7, GCC 4.6.1, little endian > >> flashrom is free software, get the source code at http://www.flashrom.org > >> > >> Calibrating delay loop... OS timer resolution is 1 usecs, 736M loops per > >> second, 10 myus = 11 us, 100 myus = 101 us, 1000 myus = 1000 us, 10000 myus > >> = 10004 us, 4 myus = 5 us, OK. > >> Initializing internal programmer > >> No coreboot table found. > >> DMI string system-manufacturer: "Acer" > >> DMI string system-product-name: "Aspire T180" > >> DMI string system-version: "R01-A2" > >> DMI string baseboard-manufacturer: "Acer" > >> DMI string baseboard-product-name: "EM61SM/EM61PM???????? " > >> DMI string baseboard-version: " " > >> DMI string chassis-type: "Desktop" > >> Found ITE Super I/O, ID 0x8726 on port 0x2e > >> Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. > >> This chipset is marked as untested. If you are using an up-to-date version > >> of flashrom please email a report to flashrom at flashrom.org including a > >> verbose (-V) log. Thank you! > >> Enabling flash write... This chipset is not really supported yet. > >> Guesswork... > >> ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 > >> Flash bus type is LPC > >> Found SMBus device 10de:03eb at 00:01:1 > >> MCP SPI BAR is at 0x00000000 > >> MCP SPI is not used. > >> Please send the output of "flashrom -V" to flashrom at flashrom.org with > >> your board name: flashrom -V as the subject to help us finish support for > >> your > >> chipset. Thanks. > >> OK. > >> This chipset supports the following protocols: LPC. > >> Super I/O ID 0x8726 is not on the list of flash capable controllers. > >> Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > >> id1 is normal flash content > >> Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > >> id1 is normal flash content > >> Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > >> id1 is normal flash content > >> Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address > >> 0xfff80000. > >> Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing > >> information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 > >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > >> content > >> > >> Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > >> normal flash content, id2 is normal flash content > >> Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > >> normal flash content, id2 is normal flash content > >> Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 > >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > >> content > >> Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 > >> 0x50, id1 is normal flash content > >> === > >> This flash part has status UNTESTED for operations: WRITE > >> The test status of this chip may have been updated in the latest development > >> version of flashrom. If you are running the latest development version, > >> please email a report to flashrom at 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, -Vr, > >> -Vw, -VE), and mention which mainboard or programmer you tested. > >> Please mention your board in the subject line. Thanks for your help! > >> > >> No operations were specified. > >> Restoring PCI config space for 00:01:0 reg 0x6d > >> Restoring PCI config space for 00:01:0 reg 0x90 > >> Restoring PCI config space for 00:01:0 reg 0x8c > >> Restoring PCI config space for 00:01:0 reg 0x88 > >> > >> > >> ======================================== > >> > >> Here the output of flashrom -VE : > >> > >> flashrom v0.9.4-r1394 on Linux 3.0.0-15-generic (x86_64), built with libpci > >> 3.1.7, GCC 4.6.1, little endian > >> flashrom is free software, get the source code at http://www.flashrom.org > >> > >> Calibrating delay loop... OS timer resolution is 1 usecs, 729M loops per > >> second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 990 us, 10000 myus = > >> 9955 us, 4 myus = 5 us, OK. > >> Initializing internal programmer > >> No coreboot table found. > >> DMI string system-manufacturer: "Acer" > >> DMI string system-product-name: "Aspire T180" > >> DMI string system-version: "R01-A2" > >> DMI string baseboard-manufacturer: "Acer" > >> DMI string baseboard-product-name: "EM61SM/EM61PM???????? " > >> DMI string baseboard-version: " " > >> DMI string chassis-type: "Desktop" > >> Found ITE Super I/O, ID 0x8726 on port 0x2e > >> Found chipset "NVIDIA MCP61" with PCI ID 10de:03e0. > >> This chipset is marked as untested. If you are using an up-to-date version > >> of flashrom please email a report to flashrom at flashrom.org including a > >> verbose (-V) log. Thank you! > >> Enabling flash write... This chipset is not really supported yet. > >> Guesswork... > >> ISA/LPC bridge reg 0x8a contents: 0x00, bit 6 is 0, bit 5 is 0 > >> Flash bus type is LPC > >> Found SMBus device 10de:03eb at 00:01:1 > >> MCP SPI BAR is at 0x00000000 > >> MCP SPI is not used. > >> Please send the output of "flashrom -V" to flashrom at flashrom.org with > >> your board name: flashrom -V as the subject to help us finish support for > >> your > >> chipset. Thanks. > >> OK. > >> This chipset supports the following protocols: LPC. > >> Super I/O ID 0x8726 is not on the list of flash capable controllers. > >> Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > >> id1 is normal flash content > >> Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > >> id1 is normal flash content > >> Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xbf, id2 0x50, > >> id1 is normal flash content > >> Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Found SST flash chip "SST49LF040B" (512 kB, LPC) at physical address > >> 0xfff80000. > >> Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing > >> information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 > >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > >> content > >> > >> Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > >> normal flash content, id2 is normal flash content > >> Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x49, id2 0x4d, id1 is > >> normal flash content, id2 is normal flash content > >> Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 > >> parity violation, id1 is normal flash content, id2 is normal flash content > >> Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xbf, id2 0x50 > >> Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 > >> 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash > >> content > >> Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xbf, id2 > >> 0x50, id1 is normal flash content > >> === > >> This flash part has status UNTESTED for operations: WRITE > >> The test status of this chip may have been updated in the latest development > >> version of flashrom. If you are running the latest development version, > >> please email a report to flashrom at 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, -Vr, > >> -Vw, -VE), and mention which mainboard or programmer you tested. > >> Please mention your board in the subject line. Thanks for your help! > >> Erasing and writing flash chip... Trying erase function 0... > >> 0x000000-0x000fff:E, 0x001000-0x001fff:E, 0x002000-0x002fff:E, > >> 0x003000-0x003fff:E, 0x004000-0x004fff:E, 0x005000-0x005fff:E, > >> 0x006000-0x006fff:E, 0x007000-0x007fff:E, 0x008000-0x008fff:E, > >> 0x009000-0x009fff:E, 0x00a000-0x00afff:E, 0x00b000-0x00bfff:E, > >> 0x00c000-0x00cfff:E, 0x00d000-0x00dfff:E, 0x00e000-0x00efff:E, > >> 0x00f000-0x00ffff:E, 0x010000-0x010fff:E, 0x011000-0x011fff:E, > >> 0x012000-0x012fff:E, 0x013000-0x013fff:E, 0x014000-0x014fff:E, > >> 0x015000-0x015fff:E, 0x016000-0x016fff:E, 0x017000-0x017fff:E, > >> 0x018000-0x018fff:E, 0x019000-0x019fff:E, 0x01a000-0x01afff:E, > >> 0x01b000-0x01bfff:E, 0x01c000-0x01cfff:E, 0x01d000-0x01dfff:E, > >> 0x01e000-0x01efff:E, 0x01f000-0x01ffff:E, 0x020000-0x020fff:E, > >> 0x021000-0x021fff:E, 0x022000-0x022fff:E, 0x023000-0x023fff:E, > >> 0x024000-0x024fff:E, 0x025000-0x025fff:E, 0x026000-0x026fff:E, > >> 0x027000-0x027fff:E, 0x028000-0x028fff:E, 0x029000-0x029fff:E, > >> 0x02a000-0x02afff:E, 0x02b000-0x02bfff:E, 0x02c000-0x02cfff:E, > >> 0x02d000-0x02dfff:E, 0x02e000-0x02efff:E, 0x02f000-0x02ffff:E, > >> 0x030000-0x030fff:E, 0x031000-0x031fff:E, 0x032000-0x032fff:E, > >> 0x033000-0x033fff:E, 0x034000-0x034fff:E, 0x035000-0x035fff:E, > >> 0x036000-0x036fff:E, 0x037000-0x037fff:E, 0x038000-0x038fff:E, > >> 0x039000-0x039fff:E, 0x03a000-0x03afff:E, 0x03b000-0x03bfff:E, > >> 0x03c000-0x03cfff:E, 0x03d000-0x03dfff:E, 0x03e000-0x03efff:E, > >> 0x03f000-0x03ffff:E, 0x040000-0x040fff:E, 0x041000-0x041fff:E, > >> 0x042000-0x042fff:E, 0x043000-0x043fff:E, 0x044000-0x044fff:E, > >> 0x045000-0x045fff:E, 0x046000-0x046fff:E, 0x047000-0x047fff:E, > >> 0x048000-0x048fff:E, 0x049000-0x049fff:E, 0x04a000-0x04afff:E, > >> 0x04b000-0x04bfff:E, 0x04c000-0x04cfff:E, 0x04d000-0x04dfff:E, > >> 0x04e000-0x04efff:E, 0x04f000-0x04ffff:E, 0x050000-0x050fff:E, > >> 0x051000-0x051fff:E, 0x052000-0x052fff:E, 0x053000-0x053fff:E, > >> 0x054000-0x054fff:E, 0x055000-0x055fff:E, 0x056000-0x056fff:E, > >> 0x057000-0x057fff:E, 0x058000-0x058fff:E, 0x059000-0x059fff:E, > >> 0x05a000-0x05afff:E, 0x05b000-0x05bfff:E, 0x05c000-0x05cfff:E, > >> 0x05d000-0x05dfff:E, 0x05e000-0x05efff:E, 0x05f000-0x05ffff:E, > >> 0x060000-0x060fff:E, 0x061000-0x061fff:E, 0x062000-0x062fff:E, > >> 0x063000-0x063fff:E, 0x064000-0x064fff:E, 0x065000-0x065fff:E, > >> 0x066000-0x066fff:E, 0x067000-0x067fff:E, 0x068000-0x068fff:E, > >> 0x069000-0x069fff:E, 0x06a000-0x06afff:E, 0x06b000-0x06bfff:E, > >> 0x06c000-0x06cfff:E, 0x06d000-0x06dfff:E, 0x06e000-0x06efff:E, > >> 0x06f000-0x06ffff:E, 0x070000-0x070fff:E, 0x071000-0x071fff:E, > >> 0x072000-0x072fff:E, 0x073000-0x073fff:E, 0x074000-0x074fff:E, > >> 0x075000-0x075fff:E, 0x076000-0x076fff:E, 0x077000-0x077fff:E, > >> 0x078000-0x078fff:E, 0x079000-0x079fff:E, 0x07a000-0x07afff:E, > >> 0x07b000-0x07bfff:E, 0x07c000-0x07cfff:E, 0x07d000-0x07dfff:E, > >> 0x07e000-0x07efff:E, 0x07f000-0x07ffff:E > >> Erase/write done. > > > > The chip is now erased, it doesn't contain BIOS/(U)EFI software anymore. > > > >> > >> Restoring PCI config space for 00:01:0 reg 0x6d > >> Restoring PCI config space for 00:01:0 reg 0x90 > >> Restoring PCI config space for 00:01:0 reg 0x8c > >> Restoring PCI config space for 00:01:0 reg 0x88 > >> > >> > >> =================================================== > >> > >> If you want the output of another command, please ask me > >> I finally flash my bios with a windows live disk? so i don't want to take > >> anyu risk but i want help > > > > Please do not reboot as your machine may have to be sent in for repair. > > Unless you have made a backup readout file, we will supply a link for > > the right BIOS rom. > > Here is the link: > ftp://ftp.work.acer-euro.com/desktop/aspire_t180/bios/R01B4.zip and > DOS/61AO427.BIN is the file that - I think - suits your board. > > > > >> > >> > >> > >> > >> _______________________________________________ > >> flashrom mailing list > >> flashrom at flashrom.org > >> http://www.flashrom.org/mailman/listinfo/flashrom From caracol at neuf.fr Wed Jan 11 21:52:56 2012 From: caracol at neuf.fr (nap) Date: Wed, 11 Jan 2012 21:52:56 +0100 Subject: [flashrom] ASUS P5KPL-CM is supported In-Reply-To: <201201092248.q09Mm2As019768@mail2.student.tuwien.ac.at> References: <4F0B46F6.4030300@neuf.fr> <201201092248.q09Mm2As019768@mail2.student.tuwien.ac.at> Message-ID: <4F0DF6A8.2090907@neuf.fr> Le 09/01/2012 23:38, Stefan Tauner a ?crit : > On Mon, 09 Jan 2012 20:58:46 +0100 > nap wrote: > >> The ASUS P5KPL-CM motherboard is correctly handled by flashrom out of >> the box. Reading, erasing, writing are OK. >> The flash chip is a socketed PDIP8 easily hot swappable. >> Tested with 1M and 2M flash chips. >> > > Hello, > > thanks for your report! > I have marked the mainboard as tested and will commit that later > together with other small changes. The vendor's webpage indicates that > the board shipped with a 1MB/8Mb chip. It seems your log includes the > 2Mb chip you were testing additionally. Just for the archive: do you > know the model number of the original chip shipped with the board? > To be more precise: - the socket is for a DIP8 300mil - the 8Mbit original flash chip is a MACRONIX MX25L8005PC-15G - the 8Mbit replacement flashed chip is a WINBOND 25X80AVAIZ - the 16Mbit replacement flashed chip is a MACRONIX MX25L1605DPI-12G From caracol at neuf.fr Wed Jan 11 22:45:06 2012 From: caracol at neuf.fr (nap) Date: Wed, 11 Jan 2012 22:45:06 +0100 Subject: [flashrom] ASUS P5QPL-AM is supported Message-ID: <4F0E02E2.7070905@neuf.fr> The ASUS P5QPL-AM motherboard is correctly handled by flashrom out of the box. Reading, erasing, writing are OK. For the flash chip: - the socket is for a DIP8 300mil - the 8Mbit original flash chip is a eFeon EN25F80-100QC (read only) - the 16Mbit replacement flashed chip is a MACRONIX MX25L1605DPI-12G nap # flashrom -V flashrom v0.9.4-r1395 on Linux 3.2.0-gentoo-x86_64-l1 (x86_64), built with libpci 3.1.7, GCC 4.5.3, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 2597M loops per second, 10 myus = 10 us, 100 myus = 108 us, 1000 myus = 1001 us, 10000 myus = 10013 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "System manufacturer" DMI string system-product-name: "System Product Name" DMI string system-version: "System Version" DMI string baseboard-manufacturer: "ASUSTeK Computer INC." DMI string baseboard-product-name: "P5QPL-AM" DMI string baseboard-version: "Rev X.0x" DMI string chassis-type: "Desktop" Found chipset "Intel ICH7/ICH7R" with PCI ID 8086:27b8. 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 disabled 0xffe00000/0xffa00000 FWH decode disabled 0xffd80000/0xff980000 FWH decode disabled 0xffd00000/0xff900000 FWH decode disabled 0xffc80000/0xff880000 FWH decode disabled 0xffc00000/0xff800000 FWH decode disabled 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: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 Root Complex Register Block address = 0xfed1c000 GCS = 0x80465: BIOS Interface Lock-Down: enabled, BOOT BIOS Straps: 0x1 (SPI) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3020 0x00: 0x0004 (SPIS) 0x02: 0x4140 (SPIC) 0x04: 0x00000000 (SPIA) 0x08: 0xc21514c2 (SPID0) 0x0c: 0xffffffff (SPID0+4) 0x10: 0xffffffff (SPID1) 0x14: 0xffffffff (SPID1+4) 0x18: 0x00000000 (SPID2) 0x1c: 0x00000000 (SPID2+4) 0x20: 0x00000000 (SPID3) 0x24: 0x00000000 (SPID3+4) 0x28: 0x00000000 (SPID4) 0x2c: 0x00000000 (SPID4+4) 0x30: 0x00000000 (SPID5) 0x34: 0x00000000 (SPID5+4) 0x38: 0x00000000 (SPID6) 0x3c: 0x00000000 (SPID6+4) 0x40: 0x00000000 (SPID7) 0x44: 0x00000000 (SPID7+4) 0x50: 0x00000000 (BBAR) 0x54: 0x0006 (PREOP) 0x56: 0x543b (OPTYPE) 0x58: 0x05200302 (OPMENU) 0x5c: 0x0006019f (OPMENU+4) 0x60: 0x00000000 (PBR0) 0x64: 0x00000000 (PBR1) 0x68: 0x00000000 (PBR2) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done preop0=0x06, preop1=0x50 op[0]=0x02, 3, 0 op[1]=0x03, 2, 0 op[2]=0xd8, 3, 0 op[3]=0x05, 0, 0 op[4]=0x90, 2, 0 op[5]=0x01, 1, 0 op[6]=0x9f, 0, 0 op[7]=0xc7, 1, 0 SPI Read Configuration: prefetching disabled, caching enabled, OK. This chipset supports the following protocols: SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Chip status register is 00 Chip status register: Status Register Write Disable (SRWD) is not set Chip status register: Bit 6 is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Found Macronix flash chip "MX25L1605" (2048 kB, SPI) at physical address 0xffe00000. Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF010.REMS, 128 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF040.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25LF040A.RES, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 probe_spi_res2: id1 0x14, id2 0x14 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P05.RES, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P10.RES, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xc2, id2 0x14 No operations were specified. Restoring MMIO space at 0x7f774c84c070 Restoring MMIO space at 0x7f774c84c07c Restoring MMIO space at 0x7f774c84c078 Restoring MMIO space at 0x7f774c84c076 Restoring MMIO space at 0x7f774c84c074 Restoring PCI config space for 00:1f:0 reg 0xdc # lspci -nnvvxxx 00:00.0 Host bridge [0600]: Intel Corporation 4 Series Chipset DRAM Controller [8086:2e30] (rev 03) Subsystem: ASUSTeK Computer Inc. Device [1043:836d] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- Kernel driver in use: agpgart-intel 00: 86 80 30 2e 06 00 90 20 03 00 00 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 6d 83 30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 40: 01 90 d1 fe 00 00 00 00 01 40 d1 fe 00 00 00 00 50: 00 00 80 03 09 00 00 00 00 00 00 00 00 00 00 00 60: 05 00 00 f0 00 00 00 00 01 80 d1 fe 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 10 11 11 00 00 33 33 00 ff 03 00 00 00 1a 38 00 a0: 20 00 00 08 00 00 00 78 00 00 e0 77 00 00 e0 77 b0: 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 03 03 00 00 60 66 66 13 00 00 00 d2 e0: 09 00 0c 61 24 0b a7 cf e2 9d 2f 81 00 00 00 00 f0: 00 00 00 00 09 00 00 00 a6 0f 05 00 00 00 00 00 00:02.0 VGA compatible controller [0300]: Intel Corporation 4 Series Chipset Integrated Graphics Controller [8086:2e32] (rev 03) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device [1043:836d] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- [disabled] Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a4] PCI Advanced Features AFCap: TP+ FLR+ AFCtrl: FLR- AFStatus: TP- Kernel driver in use: i915 00: 86 80 32 2e 07 00 90 00 03 00 00 03 00 00 00 00 10: 04 00 40 fe 00 00 00 00 0c 00 00 e0 00 00 00 00 20: 01 cc 00 00 00 00 00 00 00 00 00 00 43 10 6d 83 30: 00 00 00 00 90 00 00 00 00 00 00 00 0b 01 00 00 40: 09 00 0c 61 24 0b a7 cf e2 9d 2f 81 00 00 00 00 50: 00 00 80 03 09 00 00 00 00 00 00 00 00 00 00 78 60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 05 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 13 00 06 03 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 bc 01 00 00 d0: 01 a4 22 00 00 00 00 00 00 00 00 00 00 01 02 00 e0: 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 f0: 24 00 03 00 00 00 00 00 a6 0f 05 00 f4 e0 d8 77 00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8] (rev 01) Subsystem: ASUSTeK Computer Inc. Device [1043:83bc] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- RBE- FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <4us ClockPM- Surprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Slot #0, PowerLimit 0.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device [1043:8179] Capabilities: [a0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed+ WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 Status: NegoPending- InProgress- VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00 Status: NegoPending- InProgress- Capabilities: [180 v1] Root Complex Link Desc: PortNumber=01 ComponentID=00 EltType=Config Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+ Addr: 00000000fed1c001 00: 86 80 d0 27 07 01 10 00 01 00 04 06 08 00 81 00 10: 00 00 00 00 00 00 00 00 00 02 02 00 10 10 00 00 20: 00 78 10 78 21 78 31 78 00 00 00 00 00 00 00 00 30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 02 00 40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 4c 11 01 50: 00 00 01 10 60 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 05 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 0d a0 00 00 43 10 79 81 00 00 00 00 00 00 00 00 a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 e0: 00 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 86 0f 01 00 00 00 00 00 00:1c.1 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 [8086:27d2] (rev 01) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- RBE- FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us ClockPM- Surprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Slot #0, PowerLimit 0.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet+ LinkState+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device [1043:8179] Capabilities: [a0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed+ WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 Status: NegoPending- InProgress- VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00 Status: NegoPending- InProgress- Capabilities: [180 v1] Root Complex Link Desc: PortNumber=02 ComponentID=00 EltType=Config Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+ Addr: 00000000fed1c001 00: 86 80 d2 27 07 01 10 00 01 00 04 06 08 00 81 00 10: 00 00 00 00 00 00 00 00 00 01 01 00 d0 d0 00 00 20: a0 fe a0 fe e1 77 f1 77 00 00 00 00 00 00 00 00 30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 02 02 00 40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 2c 11 02 50: 40 00 11 30 60 00 00 00 00 00 48 01 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 05 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 0d a0 00 00 43 10 79 81 00 00 00 00 00 00 00 00 a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 e0: 00 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 86 0f 01 00 00 00 00 00 00:1d.0 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8] (rev 01) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8179] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [50] Subsystem: ASUSTeK Computer Inc. Device [1043:8179] 00: 86 80 4e 24 07 01 10 00 e1 01 04 06 00 00 01 00 10: 00 00 00 00 00 00 00 00 00 03 03 20 e0 e0 80 22 20: b0 fe b0 fe f1 ff 01 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 02 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00 50: 0d 00 00 00 43 10 79 81 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 86 0f 01 00 00 00 00 00 00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8179] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- 00: 86 80 b8 27 07 00 10 02 01 00 01 06 00 00 80 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 79 81 30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 40: 01 08 00 00 80 00 00 00 81 04 00 00 10 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 8b 8a 86 8a d0 00 00 00 80 85 8b 83 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 0f 14 95 02 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 20 06 00 00 39 00 00 00 13 00 00 00 00 03 00 00 b0: 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 33 22 11 00 67 45 00 00 c0 c0 00 00 00 00 00 00 e0: 09 00 0c 10 a8 00 24 00 00 00 00 00 00 00 00 00 f0: 01 c0 d1 fe 00 00 00 00 86 0f 01 00 00 00 00 00 00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 01) (prog-if 8a [Master SecP PriP]) Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8179] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> Message-ID: <201201120001.q0C01vWv003498@mail2.student.tuwien.ac.at> On Wed, 11 Jan 2012 13:20:25 +0100 Vince S wrote: > Hello hello and sorry for your loss! to spare others from experiencing what you have done today, i would like to know the reason WHY you did execute flashrom -E? what would have stopped you? do you think a message printed by flashrom like "The flash chip is now empty, do not turn off the PC!" would have helped you i.e. would have stopped you from powering off? to recover your board the flash chip has to be written with the correct image. as this can not be done from the PC itself it has to be done by an external programmer. maybe you know some hardware guys or a fablab in your area that could help. if the flash chip is in a socket you can also easily order a replacement and put it in yourself. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Thu Jan 12 01:38:23 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Thu, 12 Jan 2012 01:38:23 +0100 Subject: [flashrom] [PATCH] Postpone layout file reading In-Reply-To: <4F0CF05C.90102@gmx.net> References: <4F011F3F.10103@gmx.net> <201201050227.q052R368026755@mail2.student.tuwien.ac.at> <4F0CF05C.90102@gmx.net> Message-ID: <201201120038.q0C0cqWD024128@mail2.student.tuwien.ac.at> On Wed, 11 Jan 2012 03:13:48 +0100 Carl-Daniel Hailfinger wrote: > Am 05.01.2012 03:26 schrieb Stefan Tauner: > > On Mon, 02 Jan 2012 04:06:39 +0100 > > Carl-Daniel Hailfinger wrote: > > > >> + if (layoutfile) { > >> + fprintf(stderr, "Error: --layout specified " > >> + "more than once. Aborting.\n"); > > supporting more than one layout file might become handy for some. for > > example when using the same hardware platform with multiple firmwares > > one might have a common file which specifies for example the boot block > > and multiple other files for the different firmwares respectively. > > far-fetched? probably. hard to implement? not with an easy and ready to > > use data structure like an innovative linked list! ;) > > > > i am not suggesting adding this now. it just sprang to my mind when > > thinking about this. > > The usage of multiple layout files in one flashrom invocation is a > usability nightmare. If there are any conflicting region names or any > conflicting region definitions, which one has precedence? with all due respect, this is bullshit :) here is why: currently there is no check for multiple equally named regions in a single file either! is precedence documented anywhere? i guess not. :) the parser in read_romlayout() just does not care. precedence is defined by the search algorithm in find_romentry() afaics. if we check in the parser if an equally named region already exists and bail out in that case, i dont see a problem at all. this is needed anyway due to the "inconsistency" mentioned above. side note: layout file parsing should be postponed after argument processing too. if one specifies -l before -V+ there are no debug messages from the layout file parser.... btw: what is a "region definition"? do you mean overlapping address ranges? this is not handled yet either iirc. it does not make sense either. one might one to include existing PR* regions, FREG regions and maybe even other things that overlap multiple times... as long as there are no images/data sources associated with overlapping and *selected* regions, there is no need for precedence. this would have to be dealt with in the "layout: Add -i [:] support" patch. > And we will > get mails with complaints like "why doesn't specifying multiple layout > files work for me". if we ever meet, ill buy you a beer for any such (legit) mail. :) > Nack from me. If a user does not have the layout file he/she wants, > he/she can edit an existing one with a text editor and/or write a new > one. Users who don't understand layout files should be protected from > shooting themselves with random layout file combinations. users that dont understand layout files and using multiple ones anyway? i dont want to save such users TBH, else i would have to remove all flashrom options other than -R (see today's emails, why even -V can apparently lead to a bricked system for some users...). flashrom is a mighty tool, having a safety net or two is very important and i dont want to remove any, but bringing this argument up here is not fair imho. > > side note: > > we do not (i.e. i did not) check for duplicate -i arguments: > > Looking for region "pr0"... found. > > Looking for region "pr0"... found. > > Using regions: "pr0", "pr0". > > > > not a big issue i hope (i did not check it but presume it to be cosmetic > > only). > > Argh. This is not really a bug (it can't cause problems AFAICS), but for > UI consistency reasons we should indeed check for duplicate -i arguments > and abort flashrom if we find some. added to my todo list... not on top though, so if someone beats me to it, i am happy to ack/review too. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Thu Jan 12 01:47:52 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Thu, 12 Jan 2012 01:47:52 +0100 Subject: [flashrom] ASUS P5QPL-AM is supported In-Reply-To: <4F0E02E2.7070905@neuf.fr> References: <4F0E02E2.7070905@neuf.fr> Message-ID: <201201120048.q0C0mMhW030246@mail2.student.tuwien.ac.at> On Wed, 11 Jan 2012 22:45:06 +0100 nap wrote: > The ASUS P5QPL-AM motherboard is correctly handled by flashrom out of > the box. Reading, erasing, writing are OK. > For the flash chip: > - the socket is for a DIP8 300mil > - the 8Mbit original flash chip is a eFeon EN25F80-100QC (read only) > - the 16Mbit replacement flashed chip is a MACRONIX MX25L1605DPI-12G > > nap Hello nap, thanks for your report! I have marked the mainboard as supported and will commit that later together with other small changes. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Thu Jan 12 01:59:35 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Thu, 12 Jan 2012 01:59:35 +0100 Subject: [flashrom] [PATCH] Postpone layout file reading In-Reply-To: <201201120038.q0C0cqWD024128@mail2.student.tuwien.ac.at> References: <4F011F3F.10103@gmx.net> <201201050227.q052R368026755@mail2.student.tuwien.ac.at> <4F0CF05C.90102@gmx.net> <201201120038.q0C0cqWD024128@mail2.student.tuwien.ac.at> Message-ID: <201201120100.q0C105NF004315@mail2.student.tuwien.ac.at> On Thu, 12 Jan 2012 01:38:23 +0100 Stefan Tauner wrote: > side note: layout file parsing should be postponed after argument > processing too. if one specifies -l before -V+ there are no > debug messages from the layout file parser.... this nonsense is even funnier to read, if you know that i reimplemented the committed patch i acked in this very thread. i think ill better call it a day now. :) -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From paulepanter at users.sourceforge.net Thu Jan 12 02:10:10 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Thu, 12 Jan 2012 02:10:10 +0100 Subject: [flashrom] [PATCH] flashrom.c: Reorder list of options to test In-Reply-To: References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> Message-ID: <1326330610.6424.12.camel@mattotaupa> Date: Thu, 12 Jan 2012 01:59:42 +0100 Subject: [PATCH] flashrom.c: Reorder list of options to test If a chip is unknown the user is asked to test and report the result to the mailing list. Having `-VE` listed as the last option can result in an unbootable system for users not knowing what the command does, since rebooting the system after that command is fatal since the flash chip is empty. [1] Reorder the options as a quick fix to prevent that in the future as suggested by idwer on #flashrom. [1] http://www.flashrom.org/pipermail/flashrom/2012-January/008551.html Signed-off-by: Paul Menzel --- flashrom.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/flashrom.c b/flashrom.c index f1a6165..ee68344 100644 --- a/flashrom.c +++ b/flashrom.c @@ -1600,7 +1600,7 @@ void check_chip_supported(const struct flashctx *flash) "include the flashrom\n" "output with the additional -V option for all " "operations you tested (-V, -Vr,\n" - "-Vw, -VE), and mention which mainboard or " + "-VE, -Vw), and mention which mainboard or " "programmer you tested.\n" "Please mention your board in the subject line. " "Thanks for your help!\n"); -- 1.7.8.3 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From stefan.tauner at student.tuwien.ac.at Thu Jan 12 02:15:04 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Thu, 12 Jan 2012 02:15:04 +0100 Subject: [flashrom] [PATCH] Clean up error code definitions In-Reply-To: <4EC10809.5010109@gmx.net> References: <4EC05FC6.7080505@gmx.net> <201111140754.pAE7shQu029892@mail2.student.tuwien.ac.at> <201111140802.pAE82SOa004311@mail2.student.tuwien.ac.at> <4EC10809.5010109@gmx.net> Message-ID: <201201120115.q0C1FYP1013645@mail2.student.tuwien.ac.at> *push* i dont care much for the exact names, but i wish for a few things to be considered: - all of them should have a common prefix. this is mostly a problem for the value of "OK". often projects use "ERR_" as prefix which leads to ERR_OK macros or similar, which isnt too bad. i would prefer that over having different prefixes. if we want a very short prefix ERR_ is probably best because most return values will be some error. but there is also OK and some warnings, so i would favor something more neutral like RET_ or so. - do we need a "flashrom" prefix too? iirc these are internal values so we can ignore external users, right? we may want to define some external values too then? could be postponed... - all of them should be somewhat readable in context and have approximately the same length. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From paulepanter at users.sourceforge.net Thu Jan 12 02:16:45 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Thu, 12 Jan 2012 02:16:45 +0100 Subject: [flashrom] Aspire T180: recover erased chip (was: flashrom -V) In-Reply-To: <201201120001.q0C01vWv003498@mail2.student.tuwien.ac.at> References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> <201201120001.q0C01vWv003498@mail2.student.tuwien.ac.at> Message-ID: <1326331005.6424.18.camel@mattotaupa> Dear Vince, Am Donnerstag, den 12.01.2012, 01:01 +0100 schrieb Stefan Tauner: > On Wed, 11 Jan 2012 13:20:25 +0100 Vince S wrote: > hello and sorry for your loss! > to spare others from experiencing what you have done today, i would > like to know the reason WHY you did execute flashrom -E? > what would have stopped you? do you think a message printed by > flashrom like "The flash chip is now empty, do not turn off the PC!" > would have helped you i.e. would have stopped you from powering off? > > to recover your board the flash chip has to be written with the correct > image. as this can not be done from the PC itself it has to be done > by an external programmer. maybe you know some hardware guys or a fablab > in your area that could help. if the flash chip is in a socket you can > also easily order a replacement and put it in yourself. if I am not mistaken you can also find a system similar to yours (same socket and protocol [1]). Maybe you have other systems lying around or just ask around for example your family or friends. Boot that system, then when it is running, take out their chip [2], put yours in and flash the original image to it using Flashrom or the vendor tool. Swap the chips again, put it back in your system and you should be good to go. This is known as hot flashing. Thanks, Paul [1] http://flashrom.org/Technology [2] http://flashrom.org/File:Pushpin_roms_2.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From linuxjunkie999 at gmail.com Thu Jan 12 05:41:04 2012 From: linuxjunkie999 at gmail.com (Zach Stuart) Date: Wed, 11 Jan 2012 22:41:04 -0600 Subject: [flashrom] HP Viola-GL8E Pegatron ASUS M2N78-LA Message-ID: ** http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01421635&cc=us&dlc=en&lc=en&jumpid=reg_R1002_USEN#N52specifications straight from HP. This board is an oem rebrand slight modification of an ASUS mobo (cannot find an exact asus mobo). linux-uphg:/usr/sbin # flashrom -V flashrom v0.9.3-r1246 on Linux 2.6.37.6-0.5-desktop (x86_64), built with libpci 3.1.7, GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585], little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 548M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 1042 us, 10000 myus = 10743 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "Hewlett-Packard " DMI string system-product-name: " " DMI string system-version: " " DMI string baseboard-manufacturer: "PEGATRON CORPORATION" DMI string baseboard-product-name: "VIOLA" DMI string baseboard-version: "2.03" DMI string chassis-type: "Desktop" Found chipset "NVIDIA MCP78S", enabling flash write... chipset PCI ID is 10de:075c, This chipset is not really supported yet. Guesswork... ISA/LPC bridge reg 0x8a contents: 0x40, bit 6 is 1, bit 5 is 0 Flash bus type is SPI SPI on this chipset is WIP. Write is unsupported! Found SMBus device 10de:0752 at 00:01:1 MCP SPI BAR is at 0xfce80000 Mapping NVIDIA MCP6x SPI at 0xfce80000, unaligned size 0x544. SPI control is 0xc012, req=0, gnt=0 Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. This chipset supports the following protocols: SPI. Probing for AMD Am29F010A/B, 128 KB: skipped. Probing for AMD Am29F002(N)BB, 256 KB: skipped. Probing for AMD Am29F002(N)BT, 256 KB: skipped. Probing for AMD Am29F016D, 2048 KB: skipped. Probing for AMD Am29F040B, 512 KB: skipped. Probing for AMD Am29F080B, 1024 KB: skipped. Probing for AMD Am29LV040B, 512 KB: skipped. Probing for AMD Am29LV081B, 1024 KB: skipped. Probing for AMIC A25L05PT, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L05PU, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L10PT, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L10PU, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L20PT, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L20PU, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L40PT, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L40PU, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L80P, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L16PT, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L16PU, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L512, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L010, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L020, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L040, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L080, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L016, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L032, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25LQ032, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A29002B, 256 KB: skipped. Probing for AMIC A29002T, 256 KB: skipped. Probing for AMIC A29040B, 512 KB: skipped. Probing for AMIC A49LF040A, 512 KB: skipped. Probing for Atmel AT25DF021, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF041A, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF081, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF081A, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF161, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF321, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF321A, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF641, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DQ161, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25F512B, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25FS010, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25FS040, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF041, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF081A, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF161, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF161A, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26F004, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT29C512, 64 KB: skipped. Probing for Atmel AT29C010A, 128 KB: skipped. Probing for Atmel AT29C020, 256 KB: skipped. Probing for Atmel AT29C040A, 512 KB: skipped. Probing for Atmel AT45CS1282, 16896 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB011D, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB021D, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB041D, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB081D, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB161D, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB321C, 4224 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB321D, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB642D, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT49BV512, 64 KB: skipped. Probing for Atmel AT49F020, 256 KB: skipped. Probing for Atmel AT49F002(N), 256 KB: skipped. Probing for Atmel AT49F002(N)T, 256 KB: skipped. Probing for Bright BM29F040, 512 KB: skipped. Probing for EMST F49B002UA, 256 KB: skipped. Probing for EMST F25L008A, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B05, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B05T, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B10, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B10T, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B20, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B20T, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B40, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B40T, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B80, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B80T, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B16, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B16T, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B32, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B32T, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B64, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B64T, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25D16, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F05, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F10, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F20, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F40, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F80, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F16, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F32, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN29F010, 128 KB: skipped. Probing for Eon EN29F002(A)(N)B, 256 KB: skipped. Probing for Eon EN29F002(A)(N)T, 256 KB: skipped. Probing for Fujitsu MBM29F004BC, 512 KB: skipped. Probing for Fujitsu MBM29F004TC, 512 KB: skipped. Probing for Fujitsu MBM29F400BC, 512 KB: skipped. Probing for Fujitsu MBM29F400TC, 512 KB: skipped. Probing for Hyundai HY29F002T, 256 KB: skipped. Probing for Hyundai HY29F002B, 256 KB: skipped. Probing for Hyundai HY29F040A, 512 KB: skipped. Probing for Intel 28F001BN/BX-B, 128 KB: skipped. Probing for Intel 28F001BN/BX-T, 128 KB: skipped. Probing for Intel 28F002BC/BL/BV/BX-T, 256 KB: skipped. Probing for Intel 28F008S3/S5/SC, 512 KB: skipped. Probing for Intel 28F004B5/BE/BV/BX-B, 512 KB: skipped. Probing for Intel 28F004B5/BE/BV/BX-T, 512 KB: skipped. Probing for Intel 28F400BV/BX/CE/CV-B, 512 KB: skipped. Probing for Intel 28F400BV/BX/CE/CV-T, 512 KB: skipped. Probing for Intel 82802AB, 512 KB: skipped. Probing for Intel 82802AC, 1024 KB: skipped. Probing for Macronix MX25L512, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1005, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L2005, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L4005, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L8005, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Chip status register is 00 Chip status register: Status Register Write Disable (SRWD) is not set Chip status register: Bit 6 is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Found chip "Macronix MX25L8005" (1024 KB, SPI) at physical address 0xfff00000. Probing for Macronix MX25L1605, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1635D, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1635E, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L3205, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L3235D, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L6405, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L12805, 16384 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX29F001B, 128 KB: skipped. Probing for Macronix MX29F001T, 128 KB: skipped. Probing for Macronix MX29F002B, 256 KB: skipped. Probing for Macronix MX29F002T, 256 KB: skipped. Probing for Macronix MX29F040, 512 KB: skipped. Probing for Macronix MX29LV040, 512 KB: skipped. Probing for MoselVitelic V29C51000B, 64 KB: skipped. Probing for MoselVitelic V29C51000T, 64 KB: skipped. Probing for MoselVitelic V29C51400B, 512 KB: skipped. Probing for MoselVitelic V29C51400T, 512 KB: skipped. Probing for MoselVitelic V29LC51000, 64 KB: skipped. Probing for MoselVitelic V29LC51001, 128 KB: skipped. Probing for MoselVitelic V29LC51002, 256 KB: skipped. Probing for Numonyx M25PE10, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE20, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE40, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE80, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE16, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV010, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV016B, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV020, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV040, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV080B, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV512, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm29F002T, 256 KB: skipped. Probing for PMC Pm29F002B, 256 KB: skipped. Probing for PMC Pm39LV010, 128 KB: skipped. Probing for PMC Pm39LV020, 256 KB: skipped. Probing for PMC Pm39LV040, 512 KB: skipped. Probing for PMC Pm49FL002, 256 KB: skipped. Probing for PMC Pm49FL004, 512 KB: skipped. Probing for Sanyo LF25FW203A, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Sharp LHF00L04, 1024 KB: skipped. Probing for Spansion S25FL004A, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL008A, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL016A, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL032A, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL064A, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF010.REMS, 128 KB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF016B, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF032B, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF064C, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF040.REMS, 512 KB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF040B, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25LF040A.RES, 512 KB: probe_spi_res2: id1 0x13, id2 0x13 Probing for SST SST25VF040B.REMS, 512 KB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF080B, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST28SF040A, 512 KB: skipped. Probing for SST SST29EE010, 128 KB: skipped. Probing for SST SST29LE010, 128 KB: skipped. Probing for SST SST29EE020A, 256 KB: skipped. Probing for SST SST29LE020, 256 KB: skipped. Probing for SST SST39SF512, 64 KB: skipped. Probing for SST SST39SF010A, 128 KB: skipped. Probing for SST SST39SF020A, 256 KB: skipped. Probing for SST SST39SF040, 512 KB: skipped. Probing for SST SST39VF512, 64 KB: skipped. Probing for SST SST39VF010, 128 KB: skipped. Probing for SST SST39VF020, 256 KB: skipped. Probing for SST SST39VF040, 512 KB: skipped. Probing for SST SST39VF080, 1024 KB: skipped. Probing for SST SST49LF002A/B, 256 KB: skipped. Probing for SST SST49LF003A/B, 384 KB: skipped. Probing for SST SST49LF004A/B, 512 KB: skipped. Probing for SST SST49LF004C, 512 KB: skipped. Probing for SST SST49LF008A, 1024 KB: skipped. Probing for SST SST49LF008C, 1024 KB: skipped. Probing for SST SST49LF016C, 2048 KB: skipped. Probing for SST SST49LF020, 256 KB: skipped. Probing for SST SST49LF020A, 256 KB: skipped. Probing for SST SST49LF040, 512 KB: skipped. Probing for SST SST49LF040B, 512 KB: skipped. Probing for SST SST49LF080A, 1024 KB: skipped. Probing for SST SST49LF160C, 2048 KB: skipped. Probing for ST M25P05-A, 64 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P05.RES, 64 KB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P10.RES, 128 KB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P40, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P40-old, 512 KB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P16, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P32, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P64, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P128, 16384 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX32, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX64, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M29F002B, 256 KB: skipped. Probing for ST M29F002T/NT, 256 KB: skipped. Probing for ST M29F040B, 512 KB: skipped. Probing for ST M29F400BB, 512 KB: skipped. Probing for ST M29F400BT, 512 KB: skipped. Probing for ST M29W010B, 128 KB: skipped. Probing for ST M29W040B, 512 KB: skipped. Probing for ST M29W512B, 64 KB: skipped. Probing for ST M50FLW040A, 512 KB: skipped. Probing for ST M50FLW040B, 512 KB: skipped. Probing for ST M50FLW080A, 1024 KB: skipped. Probing for ST M50FLW080B, 1024 KB: skipped. Probing for ST M50FW002, 256 KB: skipped. Probing for ST M50FW016, 2048 KB: skipped. Probing for ST M50FW040, 512 KB: skipped. Probing for ST M50FW080, 1024 KB: skipped. Probing for ST M50LPW116, 2048 KB: skipped. Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 KB: skipped. Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 KB: skipped. Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 KB: skipped. Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 KB: skipped. Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 KB: skipped. Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 KB: skipped. Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 KB: skipped. Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 KB: skipped. Probing for TI TMS29F002RB, 256 KB: skipped. Probing for TI TMS29F002RT, 256 KB: skipped. Probing for Winbond W25Q80, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q16, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q32, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q64, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25x10, 128 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25x20, 256 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25x40, 512 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25x80, 1024 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25x16, 2048 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25x32, 4096 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25x64, 8192 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 KB: skipped. Probing for Winbond W29C020(C)/W29C022, 256 KB: skipped. Probing for Winbond W29C040/P, 512 KB: skipped. Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 KB: skipped. Probing for Winbond W39V040A, 512 KB: skipped. Probing for Winbond W39V040B, 512 KB: skipped. Probing for Winbond W39V040C, 512 KB: skipped. Probing for Winbond W39V040FA, 512 KB: skipped. Probing for Winbond W39V040FB, 512 KB: skipped. Probing for Winbond W39V040FC, 512 KB: skipped. Probing for Winbond W39V080A, 1024 KB: skipped. Probing for Winbond W49F002U/N, 256 KB: skipped. Probing for Winbond W49F020, 256 KB: skipped. Probing for Winbond W49V002A, 256 KB: skipped. Probing for Winbond W49V002FA, 256 KB: skipped. Probing for Winbond W39V080FA, 1024 KB: skipped. Probing for Winbond W39V080FA (dual mode), 512 KB: skipped. Probing for AMIC unknown AMIC SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel unknown Atmel SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon unknown Eon SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix unknown Macronix SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC unknown PMC SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST unknown SST SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST unknown ST SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Sanyo unknown Sanyo SPI chip, 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Generic unknown SPI chip (RDID), 0 KB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Generic unknown SPI chip (REMS), 0 KB: probe_spi_rems: id1 0xc2, id2 0x13 === This flash part has status UNTESTED for operations: WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! No operations were specified. -------------- next part -------------- An HTML attachment was scrubbed... URL: From c1b3rh4ck at gmail.com Thu Jan 12 07:12:58 2012 From: c1b3rh4ck at gmail.com (hector j) Date: Thu, 12 Jan 2012 01:12:58 -0500 Subject: [flashrom] Mainboard no tested Message-ID: Hi recently i'm using flashrom for update a new mainboard,a friend of mine giving me this week,i've used flashrom sometimes but unfortunately i've been checking and the chipset,i try flashrom and it show me this message : This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a *Enabling flash write... This chipset is not really supported yet. Guesswork... Please send the output of "flashrom -V" to flashrom at flashrom.org with your board name: flashrom -V as the subject to help us finish support for your chipset. Thanks. OK. so i'm attaching two file one the verbose exit,and two my mainboard information using dmidecode,and if you receive this email please send me a confirmation or if you need more information just send me a mail . ----- *"Quien se infiltra en la oscuridad ,es Quien encuentra la verdad .Lao Tse " * Debian User Penetration Testing Colombian Security Researcher LinuxUser #506301 ------------------------------------ Puffy Loves -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: flashrom2 Type: application/octet-stream Size: 14780 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: flashrom Type: application/octet-stream Size: 4745 bytes Desc: not available URL: From svn at flashrom.org Thu Jan 12 14:58:43 2012 From: svn at flashrom.org (repository service) Date: Thu, 12 Jan 2012 14:58:43 +0100 Subject: [flashrom] [commit] r1485 - trunk Message-ID: Author: hailfinger Date: Thu Jan 12 14:58:43 2012 New Revision: 1485 URL: http://flashrom.org/trac/flashrom/changeset/1485 Log: Reorder list of options to test If a chip is unknown the user is asked to test and report the result to the mailing list. Having `-VE` listed as the last option can result in an unbootable system for users not knowing what the command does, since rebooting the system after that command is fatal since the flash chip is empty. Example report at http://www.flashrom.org/pipermail/flashrom/2012-January/008551.html Reorder the options to prevent such accidents in the future. Suggested by Idwer Vollering. Signed-off-by: Paul Menzel Acked-by: Carl-Daniel Hailfinger Modified: trunk/flashrom.c Modified: trunk/flashrom.c ============================================================================== --- trunk/flashrom.c Wed Jan 11 03:10:11 2012 (r1484) +++ trunk/flashrom.c Thu Jan 12 14:58:43 2012 (r1485) @@ -1600,7 +1600,7 @@ "include the flashrom\n" "output with the additional -V option for all " "operations you tested (-V, -Vr,\n" - "-Vw, -VE), and mention which mainboard or " + "-VE, -Vw), and mention which mainboard or " "programmer you tested.\n" "Please mention your board in the subject line. " "Thanks for your help!\n"); From c-d.hailfinger.devel.2006 at gmx.net Thu Jan 12 14:59:36 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Thu, 12 Jan 2012 14:59:36 +0100 Subject: [flashrom] [PATCH] flashrom.c: Reorder list of options to test In-Reply-To: <1326330610.6424.12.camel@mattotaupa> References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> <1326330610.6424.12.camel@mattotaupa> Message-ID: <4F0EE748.30608@gmx.net> Am 12.01.2012 02:10 schrieb Paul Menzel: > If a chip is unknown the user is asked to test and report the result to the mailing list. Having `-VE` listed as the last option can result in an unbootable system for users not knowing what the command does, since rebooting the system after that command is fatal since the flash chip is empty. [1] > > Reorder the options as a quick fix to prevent that in the future as suggested by idwer on #flashrom. > > [1] http://www.flashrom.org/pipermail/flashrom/2012-January/008551.html Thanks for your patch! > Signed-off-by: Paul Menzel Acked-by: Carl-Daniel Hailfinger and committed in r1485. Regards, Carl-Daniel -- http://www.hailfinger.org/ From vince06fr at gmail.com Thu Jan 12 15:53:18 2012 From: vince06fr at gmail.com (Vince S) Date: Thu, 12 Jan 2012 15:53:18 +0100 Subject: [flashrom] flashrom -V In-Reply-To: <201201120001.q0C01vWv003498@mail2.student.tuwien.ac.at> References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> <201201120001.q0C01vWv003498@mail2.student.tuwien.ac.at> Message-ID: I think I made a keyboard mistake because I just wanted to run "flashrom-Vr" I were in a hurry and I've just copied the output of commands without reading for you before sending them off the pc I found a new bios for 16$ with th? tool for extract the old So it's my fault Le 12 janv. 2012 01:02, "Stefan Tauner" a ?crit : > On Wed, 11 Jan 2012 13:20:25 +0100 > Vince S wrote: > > > Hello > > hello and sorry for your loss! > to spare others from experiencing what you have done today, i would > like to know the reason WHY you did execute flashrom -E? > what would have stopped you? do you think a message printed by > flashrom like "The flash chip is now empty, do not turn off the PC!" > would have helped you i.e. would have stopped you from powering off? > > to recover your board the flash chip has to be written with the correct > image. as this can not be done from the PC itself it has to be done > by an external programmer. maybe you know some hardware guys or a fablab > in your area that could help. if the flash chip is in a socket you can > also easily order a replacement and put it in yourself. > > -- > Kind regards/Mit freundlichen Gr??en, Stefan Tauner > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rath at mglug.de Thu Jan 12 17:25:18 2012 From: rath at mglug.de (Oliver Rath) Date: Thu, 12 Jan 2012 17:25:18 +0100 Subject: [flashrom] i945GMx-VFX FM945xF0B 48.8EXI4.00B0 Message-ID: <4F0F096E.2010908@mglug.de> http://paste.flashrom.org/view.php?id=1011 http://paste.flashrom.org/view.php?id=1012 http://paste.flashrom.org/view.php?id=1013 http://paste.flashrom.org/view.php?id=1014 http://paste.flashrom.org/view.php?id=1015 http://paste.flashrom.org/view.php?id=1016 Maybe some is double .. Regards, Oliver alias spooch From peter.braun at pab-braun.de Fri Jan 13 13:57:57 2012 From: peter.braun at pab-braun.de (Peter A. Braun) Date: Fri, 13 Jan 2012 13:57:57 +0100 Subject: [flashrom] Report on Flashing Board with Intel H67 In-Reply-To: <201201111302.q0BD22tL008087@mail2.student.tuwien.ac.at> References: <005a01ccd00a$62847500$278d5f00$@braun@pab-braun.de> <201201111302.q0BD22tL008087@mail2.student.tuwien.ac.at> Message-ID: <000001ccd1f2$f9153830$eb3fa890$@braun@pab-braun.de> Hi Stefan, thank you very much for your kind reply. Wow. I really appreciate the level of detail. I were glad flashrom-community would evaluate my humble report as useful. Thank you very much. Now coming back to your points: - Next mails will not come in HTML but plain text. I hope changes in my mail setup/initialization file work well. Otherwise I need a hint to correct mail systems' features. - Your assumptions concerning the meaning of "works fine" and the interpretation of update information are correct. - Following your proposal to reset the CMOS chip I used a jumper on my MB as stated in the MSI manual. Analyzing the BIOS afterwards I found most of parameters were reset to default, but e.g. internal BIOS time hadn't been affected. What does your experience recommend? Do you think this behavior is correct or should I remove the battery additionally? - Using MSI tools to flash BIOS is not a good idea, because e.g. MSIHQ set off virus alarms (12 of 40 findings by virustotal.com analyzing the unpacked MSIHQ tool). - Going back to the old version is not such a good idea. You need to know -sorry for not mentioning it earlier- I had some trouble with the USB 3.0 ports. Removing or adding HD hot plugged led sometimes to blue screens (W7). That's what I want to improve by using a newer BIOS. - I had not generated a backup copy of the old BIOS, as I have a second board of same type and age in place. I will use its BIOS if I decide to go back to the old version with the other board. Otherwise I will back up the BIOS of this test board by a different SW. By the way, does flashrom support backing up the BIOS? I hope you and I will find all necessary information. Best regards, Peter -----Urspr?ngliche Nachricht----- Von: Stefan Tauner [mailto:stefan.tauner at student.tuwien.ac.at] Gesendet: Mittwoch, 11. Januar 2012 14:02 An: Peter A. Braun Cc: flashrom at flashrom.org Betreff: Re: [flashrom] Report on Flashing Board with Intel H67 On Wed, 11 Jan 2012 03:40:28 +0100 "Peter A. Braun" wrote: > Hi, hello peter and thanks for your report! please do not send html mails to mailing lists. your client seems to also send a plain text version, but that one has way too much line breaks in it to be readable (18 line breaks instead of 1 :) > > > last night I flashed my MSI H67MA-ED55(B3) with E7676IMS170. As the name says Intel H67 is the built in chipset. Flash chip is W25Q64. The flash process worked fine for me. by working fine you mean that flashrom said "VERIFIED" at the end, i presume. "E7676IMS[.]170" is the name of the file flashed in the zip file 7676v17.zip which is version 1.7 according to MSI. so far so good. > Two things are a bit strange. Currently I try to investigate the reasons for. Perhaps you have any suggestions. > > 1. Sys fans cannot longer be controlled, because according BIOS parameters are not longer accessible. Currently I don?t know how to get them back. > > 2. After cold booting the disabled ?Full Screen Logo Display? is enabled again. It seems to be the default. But other boot parameter are not changed back to default. the changelog of that bios version mentions "Update CPU smart fan module". so i guess what you are experiencing is that fine new update ;) the newer intel chipsets are quite complicated in these regards and since intel does not specify the update process in detail publicly, it could theoretically be that flashrom is involved too. i have experienced similar problems with an intel board (without flashrom involved) too, so i doubt flashrom is the culprit. try removing all power from the board (maybe even the small battery) for at least 10 seconds. this resets the embedded controller inside the chipset that is used for hardware monitoring and that might be powered whenever there is a power source, even if the computer is turned "off". one way to test if flashrom might be the problem would be to rewrite the old version (did you make a backup?) and reinstall 1.7 with MSI's tool. from my experience if this works it would not prove that flashrom is the problem, but only if it does not work it would prove that flashrom is not the problem. the reason is the problems i have seen as mentioned above. if you did not have problems with the old version, i would suggest rewriting your backup with flashrom. > I attached the result of ?flashrom -V? (result.txt). > > > > I hope results are detailed enough to switch entry H67 in your hardware list onto tested. this was done already due to an earlier report, but i will add the mainboard to our list with a small note referencing this thread. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From jerome.fau at laposte.net Fri Jan 13 14:13:58 2012 From: jerome.fau at laposte.net (jerome) Date: Fri, 13 Jan 2012 14:13:58 +0100 Subject: [flashrom] Flashing GA-X48A-UDR3 sucessful ! Message-ID: <4F102E16.9090603@laposte.net> Hi Just some word to say I have flash sucessfully my GA-X48A-UDR3 rev 2. (Gigabyte). For now, all work just fine. Thanks to dev team. ~ # flashrom -V flashrom v0.9.4-r1394 on Linux 2.6.39-bpo.2-amd64 (x86_64), built with libpci 3.1.7, GCC 4.6.1 20110616 (prerelease), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1664M loops per second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 999 us, 10000 myus = 10003 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "Gigabyte Technology Co., Ltd." DMI string system-product-name: "X58A-UD3R" DMI string system-version: " " DMI string baseboard-manufacturer: "Gigabyte Technology Co., Ltd." DMI string baseboard-product-name: "X58A-UD3R" DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8720 on port 0x2e Found chipset "Intel ICH10R" with PCI ID 8086:3a16. 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 disabled 0xffd00000/0xff900000 FWH decode disabled 0xffc80000/0xff880000 FWH decode disabled 0xffc00000/0xff800000 FWH decode disabled 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: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 Root Complex Register Block address = 0xfed1c000 GCS = 0x464: BIOS Interface Lock-Down: disabled, BOOT BIOS Straps: 0x1 (SPI) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3800 0x04: 0x0000 (HSFS) HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=0, SCIP=0, FDOPSS=0, FDV=0, FLOCKDN=0 0x06: 0x0000 (HSFC) HSFC: FGO=0, FCYCLE=0, FDBC=0, SME=0 0x08: 0x00000000 (FADDR) 0x50: 0x0000ffff (FRAP) BMWAG 0x00, BMRAG 0x00, BRWA 0xff, BRRA 0xff 0x54: 0x00001fff (FREG0: Flash Descriptor) Flash Descriptor region is unused. 0x58: 0x00001fff (FREG1: BIOS) BIOS region is unused. 0x5C: 0x00001fff (FREG2: Management Engine) Management Engine region is unused. 0x60: 0x00001fff (FREG3: Gigabit Ethernet) Gigabit Ethernet region is unused. 0x64: 0x00001fff (FREG4: Platform Data) Platform Data region is unused. 0x74: 0x00000000 (PR0) 0x78: 0x00000000 (PR1) 0x7C: 0x00000000 (PR2) 0x80: 0x00000000 (PR3) 0x84: 0x00000000 (PR4) 0x90: 0x04 (SSFS) SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 0x91: 0x004140 (SSFC) SSFC: SCGO=0, ACS=0, SPOP=0, COP=4, DBC=1, SME=0, SCF=0 0x94: 0x5006 (PREOP) 0x96: 0x0bb4 (OPTYPE) 0x98: 0x9f200105 (OPMENU) 0x9C: 0x00000302 (OPMENU+4) 0xA0: 0x00000000 (BBAR) 0xD0: 0x00000000 (FPB) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done preop0=0x06, preop1=0x50 op[0]=0x02, 3, 0 op[1]=0x03, 2, 0 op[2]=0xd8, 3, 0 op[3]=0x05, 0, 0 op[4]=0x90, 2, 0 op[5]=0x01, 1, 0 op[6]=0x9f, 0, 0 op[7]=0xc7, 1, 0 SPI Read Configuration: prefetching disabled, caching enabled, OK. This chipset supports the following protocols: FWH, SPI. No IT87* serial flash segment enabled. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Chip status register is 00 Chip status register: Status Register Write Disable (SRWD) is not set Chip status register: Bit 6 is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Found Macronix flash chip "MX25L1605" (2048 kB, SPI) at physical address 0xffe00000. Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF010.REMS, 128 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25VF040.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST25LF040A.RES, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 probe_spi_res2: id1 0x14, id2 0x14 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x14 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0x6f, id2 0xf4, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P05.RES, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P10.RES, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0x0f, id2 0x57, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x94, id2 0x9d, id1 is normal flash content, id2 is normal flash content Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2015 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xc2, id2 0x14 No operations were specified. Restoring MMIO space at 0x7fc30fa6d8a0 Restoring MMIO space at 0x7fc30fa6d89c Restoring MMIO space at 0x7fc30fa6d898 Restoring MMIO space at 0x7fc30fa6d896 Restoring MMIO space at 0x7fc30fa6d894 Restoring PCI config space for 00:1f:0 reg 0xdc -- J?r?me FAU From vidwer at gmail.com Fri Jan 13 17:01:06 2012 From: vidwer at gmail.com (Idwer Vollering) Date: Fri, 13 Jan 2012 17:01:06 +0100 Subject: [flashrom] [PATCH] flashrom.c: Reorder list of options to test In-Reply-To: <1326330610.6424.12.camel@mattotaupa> References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> <1326330610.6424.12.camel@mattotaupa> Message-ID: 2012/1/12 Paul Menzel : > Date: Thu, 12 Jan 2012 01:59:42 +0100 > Subject: [PATCH] flashrom.c: Reorder list of options to test > > If a chip is unknown the user is asked to test and report the result to the mailing list. Having `-VE` listed as the last option can result in an unbootable system for users not knowing what the command does, since rebooting the system after that command is fatal since the flash chip is empty. [1] > > Reorder the options as a quick fix to prevent that in the future as suggested by idwer on #flashrom. > > [1] http://www.flashrom.org/pipermail/flashrom/2012-January/008551.html > > Signed-off-by: Paul Menzel > --- > ?flashrom.c | ? ?2 +- > ?1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/flashrom.c b/flashrom.c > index f1a6165..ee68344 100644 > --- a/flashrom.c > +++ b/flashrom.c > @@ -1600,7 +1600,7 @@ void check_chip_supported(const struct flashctx *flash) > ? ? ? ? ? ? ? ? ? ? ? ? ? ?"include the flashrom\n" > ? ? ? ? ? ? ? ? ? ? ? ? ?"output with the additional -V option for all " > ? ? ? ? ? ? ? ? ? ? ? ? ? ?"operations you tested (-V, -Vr,\n" > - ? ? ? ? ? ? ? ? ? ? ? ? "-Vw, -VE), and mention which mainboard or " > + ? ? ? ? ? ? ? ? ? ? ? ? "-VE, -Vw), and mention which mainboard or " > ? ? ? ? ? ? ? ? ? ? ? ? ? ?"programmer you tested.\n" > ? ? ? ? ? ? ? ? ? ? ? ? ?"Please mention your board in the subject line. " > ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Thanks for your help!\n"); I was thinking of this (see patch), this way flashrom shows verbs (actions) instead of parameters. Signed-off-by: Idwer Vollering Index: flashrom.c =================================================================== --- flashrom.c (revision 1485) +++ flashrom.c (working copy) @@ -1598,10 +1598,11 @@ "any of the above operations\n" "work correctly for you with this flash part. Please " "include the flashrom\n" - "output with the additional -V option for all " - "operations you tested (-V, -Vr,\n" - "-VE, -Vw), and mention which mainboard or " + "output with the -V option for all " + "operations you tested (verbose, verbose read,\n" + "verbose erase, verbose write), and mention which mainboard or " "programmer you tested.\n" + "The parameters are listed after running 'flashrom --help'\n" "Please mention your board in the subject line. " "Thanks for your help!\n"); } > -- > 1.7.8.3 > > _______________________________________________ > flashrom mailing list > flashrom at flashrom.org > http://www.flashrom.org/mailman/listinfo/flashrom From stefan.tauner at student.tuwien.ac.at Fri Jan 13 21:39:23 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Fri, 13 Jan 2012 21:39:23 +0100 Subject: [flashrom] [PATCH] flashrom.c: Reorder list of options to test In-Reply-To: References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> <1326330610.6424.12.camel@mattotaupa> Message-ID: <201201132039.q0DKdoYl026722@mail2.student.tuwien.ac.at> On Fri, 13 Jan 2012 17:01:06 +0100 Idwer Vollering wrote: > + "operations you tested (verbose, verbose read,\n" first one should be "verbose probe" > "Please mention your board in the subject line. " can be removed. almost no reporter cares for this :/ and those few that do would choose an appropriate subject anyway imho. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From paulepanter at users.sourceforge.net Fri Jan 13 21:55:43 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Fri, 13 Jan 2012 21:55:43 +0100 Subject: [flashrom] [PATCH] flashrom.c: Reorder list of options to test In-Reply-To: <201201132039.q0DKdoYl026722@mail2.student.tuwien.ac.at> References: <201201100035.q0A0Z7dC017896@mail2.student.tuwien.ac.at> <1326330610.6424.12.camel@mattotaupa> <201201132039.q0DKdoYl026722@mail2.student.tuwien.ac.at> Message-ID: <1326488143.4053.5.camel@mattotaupa> Am Freitag, den 13.01.2012, 21:39 +0100 schrieb Stefan Tauner: > On Fri, 13 Jan 2012 17:01:06 +0100 wrote: [?] > > "Please mention your board in the subject line. " > can be removed. almost no reporter cares for this :/ and those few that > do would choose an appropriate subject anyway imho. Being the one having introduced this I would keep it. ;-) I think there is another place where this line is not written and people take that as an example. I have again forgotten the reason why messages cannot be more elaborate. Carl-Daniel or you mentioned to keep that to a minimum to be legible. But since `-V` prints a lot of information anyway I think it does not make a difference and we should even generate the subject line including the flashrom revision. Thanks, Paul -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From stefan.tauner at student.tuwien.ac.at Sun Jan 15 14:53:50 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 15 Jan 2012 14:53:50 +0100 Subject: [flashrom] Report on Flashing Board with Intel H67 In-Reply-To: <000001ccd1f2$f9153830$eb3fa890$@braun@pab-braun.de> References: <005a01ccd00a$62847500$278d5f00$@braun@pab-braun.de> <201201111302.q0BD22tL008087@mail2.student.tuwien.ac.at> <000001ccd1f2$f9153830$eb3fa890$@braun@pab-braun.de> Message-ID: <201201151354.q0FDsEZp023956@mail2.student.tuwien.ac.at> On Fri, 13 Jan 2012 13:57:57 +0100 "Peter A. Braun" wrote: > Hi Stefan, > > thank you very much for your kind reply. Wow. I really appreciate the level of detail. I were glad flashrom-community would evaluate my humble report as useful. Thank you very much. > > Now coming back to your points: > - Next mails will not come in HTML but plain text. I hope changes in my mail setup/initialization file work well. Otherwise I need a hint to correct mail systems' features. > - Your assumptions concerning the meaning of "works fine" and the interpretation of update information are correct. > - Following your proposal to reset the CMOS chip I used a jumper on my MB as stated in the MSI manual. Analyzing the BIOS afterwards I found most of parameters were reset to default, but e.g. internal BIOS time hadn't been affected. What does your experience recommend? Do you think this behavior is correct or should I remove the battery additionally? sounds normal, and removing the battery would most probably reset the real time clock too. if there is other data retained by the battery... i dont know. trying if it help/change anything, wont hurt, even if i doubt it. > - Using MSI tools to flash BIOS is not a good idea, because e.g. MSIHQ set off virus alarms (12 of 40 findings by virustotal.com analyzing the unpacked MSIHQ tool). might still be a false positive... i deem AV products to be snake oil. maybe the bios can update itself from USB? f9 at startup on my intel/ami bios. > - Going back to the old version is not such a good idea. You need to know -sorry for not mentioning it earlier- I had some trouble with the USB 3.0 ports. Removing or adding HD hot plugged led sometimes to blue screens (W7). That's what I want to improve by using a newer BIOS. your choice what is more important to you... > - I had not generated a backup copy of the old BIOS, as I have a second board of same type and age in place. I will use its BIOS if I decide to go back to the old version with the other board. Otherwise I will back up the BIOS of this test board by a different SW. By the way, does flashrom support backing up the BIOS? flashrom -r reads out the flash content and stores it in a file which can later be written back. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From erickfear at wp.pl Sun Jan 15 10:53:04 2012 From: erickfear at wp.pl (Adam Butler) Date: Sun, 15 Jan 2012 10:53:04 +0100 Subject: [flashrom] Gigabyte M61SME-S2/Nvidia MCP61 Message-ID: -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: mcp-mcts.jpg Type: image/jpeg Size: 14125 bytes Desc: not available URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: flashrom.txt URL: From stefan.tauner at student.tuwien.ac.at Sun Jan 15 15:04:07 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 15 Jan 2012 15:04:07 +0100 Subject: [flashrom] Flashing GA-X58A-UDR3 sucessful ! In-Reply-To: <4F102E16.9090603@laposte.net> References: <4F102E16.9090603@laposte.net> Message-ID: <201201151404.q0FE4WS3001201@mail2.student.tuwien.ac.at> On Fri, 13 Jan 2012 14:13:58 +0100 jerome wrote: > Hi > > Just some word to say I have flash sucessfully my GA-X48A-UDR3 rev 2. > (Gigabyte). > > For now, all work just fine. > > Thanks to dev team. > Hello jerome, thanks for your report! The board is named GA-X*5*8A-UDR3 after the northbridge used: X58. I have marked the mainboard as tested and will commit that later together with other small changes. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Sun Jan 15 15:15:17 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 15 Jan 2012 15:15:17 +0100 Subject: [flashrom] Mainboard no tested In-Reply-To: References: Message-ID: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> On Thu, 12 Jan 2012 01:12:58 -0500 hector j wrote: > Hi recently i'm using flashrom for update a new mainboard,a friend of mine > giving me this week,i've used flashrom sometimes but > unfortunately i've been checking and the chipset,i try flashrom and it show > me this message : > > This chipset is marked as untested. If you are using an up-to-date version > of flashrom please email a report to flashrom at flashrom.org including a > > *Enabling flash write... This chipset is not really supported yet. > Guesswork... > Please send the output of "flashrom -V" to flashrom at flashrom.org with > your board name: flashrom -V as the subject to help us finish support for > your > chipset. Thanks. > OK. > > so i'm attaching two file one the verbose exit,and two my mainboard > information using dmidecode,and if you receive this email please send me a > confirmation or if you need more information just send me a mail . hi from my very limited experience i think the chipset usually works just fine. in this case flashrom does not detect the flash chip. this can mean two things: - either we have to toggle an IO pin of the chipset (dependent on the mainboard) to enable the chip at all, or - the chip is not supported yet. most probably you just need a board enable (http://flashrom.org/Board_Enable) due to the first option. can you please confirm that this is you board http://www.msi.com/product/mb/K9N6PGM2-V.html#/?div=BIOS please also provide the output of lspci -xxxnnvv (run as root). creating the board enable can take days to months dependent on the motivation of our volunteers. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Sun Jan 15 15:37:12 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 15 Jan 2012 15:37:12 +0100 Subject: [flashrom] HP Viola-GL8E Pegatron ASUS M2N78-LA In-Reply-To: References: Message-ID: <201201151437.q0FEbam3001413@mail2.student.tuwien.ac.at> On Wed, 11 Jan 2012 22:41:04 -0600 Zach Stuart wrote: hi zach and thanks for your report! > ** > http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01421635&cc=us&dlc=en&lc=en&jumpid=reg_R1002_USEN#N52specifications > straight from HP. This board is an oem rebrand slight > modification of an ASUS mobo (cannot find an exact asus mobo). there might not be a matching one, but it may have been produced solely for HP to use. > > linux-uphg:/usr/sbin # flashrom -V > flashrom v0.9.3-r1246 on Linux 2.6.37.6-0.5-desktop (x86_64), built with > libpci 3.1.7, GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585], little > endian iirc we have enabled writing for this chipset in 0.9.4, which does not mean it will work on all boards, but that we do not forbid it unconditionally. please update and report any success or failure. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From jerome.fau at laposte.net Sun Jan 15 18:47:09 2012 From: jerome.fau at laposte.net (jerome) Date: Sun, 15 Jan 2012 18:47:09 +0100 Subject: [flashrom] Flashing GA-X58A-UDR3 sucessful ! In-Reply-To: <201201151404.q0FE4WS3001201@mail2.student.tuwien.ac.at> References: <4F102E16.9090603@laposte.net> <201201151404.q0FE4WS3001201@mail2.student.tuwien.ac.at> Message-ID: <4F13111D.6070303@laposte.net> You're right, sorry for error. *** blush *** Le 15/01/2012 15:04, Stefan Tauner a ?crit : > On Fri, 13 Jan 2012 14:13:58 +0100 > jerome wrote: > >> Hi >> >> Just some word to say I have flash sucessfully my GA-X48A-UDR3 rev 2. >> (Gigabyte). >> >> For now, all work just fine. >> >> Thanks to dev team. >> > > Hello jerome, > > thanks for your report! > The board is named GA-X*5*8A-UDR3 after the northbridge used: X58. > I have marked the mainboard as tested and will commit that later > together with other small changes. > -- J?r?me FAU From c1b3rh4ck at gmail.com Mon Jan 16 01:04:25 2012 From: c1b3rh4ck at gmail.com (hector j) Date: Sun, 15 Jan 2012 19:04:25 -0500 Subject: [flashrom] Mainboard no tested In-Reply-To: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> References: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> Message-ID: 2012/1/15 Stefan Tauner > On Thu, 12 Jan 2012 01:12:58 -0500 > hector j wrote: > > > Hi recently i'm using flashrom for update a new mainboard,a friend of > mine > > giving me this week,i've used flashrom sometimes but > > unfortunately i've been checking and the chipset,i try flashrom and it > show > > me this message : > > > > This chipset is marked as untested. If you are using an up-to-date > version > > of flashrom please email a report to flashrom at flashrom.org including a > > > > *Enabling flash write... This chipset is not really supported yet. > > Guesswork... > > Please send the output of "flashrom -V" to flashrom at flashrom.org with > > your board name: flashrom -V as the subject to help us finish support for > > your > > chipset. Thanks. > > OK. > > > > so i'm attaching two file one the verbose exit,and two my mainboard > > information using dmidecode,and if you receive this email please send me > a > > confirmation or if you need more information just send me a mail . > > hi > > from my very limited experience i think the chipset usually works just > fine. in this case flashrom does not detect the flash chip. this can > mean two things: > - either we have to toggle an IO pin of the chipset (dependent on the > mainboard) to enable the chip at all, or > - the chip is not supported yet. > > most probably you just need a board enable > (http://flashrom.org/Board_Enable) due to the first option. > > can you please confirm that this is you board > http://www.msi.com/product/mb/K9N6PGM2-V.html#/?div=BIOS > please also provide the output of lspci -xxxnnvv (run as root). > creating the board enable can take days to months dependent on the > motivation of our volunteers. > -- > Kind regards/Mit freundlichen Gr??en, Stefan Tauner > Hi, Is affirmative that's my board,but it not works,now i have two of the same boards and testing in the first didn't work,and the second is awaiting for,so im providing you the output,i'll read the link. thanks for your support. ----- *"Quien se infiltra en la oscuridad ,es Quien encuentra la verdad .Lao Tse " * Debian User Penetration Testing Colombian Security Researcher LinuxUser #506301 ------------------------------------ Puffy Loves -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 00:00.0 RAM memory: nVidia Corporation MCP61 Memory Controller (rev a1) 00:01.0 ISA bridge: nVidia Corporation MCP61 LPC Bridge (rev a2) 00:01.1 SMBus: nVidia Corporation MCP61 SMBus (rev a2) 00:01.2 RAM memory: nVidia Corporation MCP61 Memory Controller (rev a2) 00:01.3 Co-processor: nVidia Corporation MCP61 SMU (rev a2) 00:02.0 USB controller: nVidia Corporation MCP61 USB Controller (rev a3) 00:02.1 USB controller: nVidia Corporation MCP61 USB Controller (rev a3) 00:04.0 PCI bridge: nVidia Corporation MCP61 PCI bridge (rev a1) 00:05.0 Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2) 00:06.0 IDE interface: nVidia Corporation MCP61 IDE (rev a2) 00:07.0 Bridge: nVidia Corporation MCP61 Ethernet (rev a2) 00:08.0 IDE interface: nVidia Corporation MCP61 SATA Controller (rev a2) 00:09.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2) 00:0b.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2) 00:0c.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2) 00:0d.0 VGA compatible controller: nVidia Corporation C61 [GeForce 6150SE nForce 430] (rev a2) 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control From linuxjunkie999 at gmail.com Mon Jan 16 02:46:22 2012 From: linuxjunkie999 at gmail.com (Zach Stuart) Date: Sun, 15 Jan 2012 19:46:22 -0600 Subject: [flashrom] HP Viola-GL8E Pegatron ASUS M2N78-LA In-Reply-To: <201201151437.q0FEbam3001413@mail2.student.tuwien.ac.at> References: <201201151437.q0FEbam3001413@mail2.student.tuwien.ac.at> Message-ID: Sure I found the email as a draft... I dont have the mobo anymore. Sent from my iPhone Zach Stuart On Jan 15, 2012, at 8:37 AM, Stefan Tauner wrote: > On Wed, 11 Jan 2012 22:41:04 -0600 > Zach Stuart wrote: > > hi zach and thanks for your report! > >> ** >> http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01421635&cc=us&dlc=en&lc=en&jumpid=reg_R1002_USEN#N52specifications >> straight from HP. This board is an oem rebrand slight >> modification of an ASUS mobo (cannot find an exact asus mobo). > there might not be a matching one, but it may have been produced solely > for HP to use. > >> >> linux-uphg:/usr/sbin # flashrom -V >> flashrom v0.9.3-r1246 on Linux 2.6.37.6-0.5-desktop (x86_64), built with >> libpci 3.1.7, GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585], little >> endian > iirc we have enabled writing for this chipset in 0.9.4, which does not > mean it will work on all boards, but that we do not forbid it > unconditionally. please update and report any success or failure. > > -- > Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Mon Jan 16 15:19:11 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 16 Jan 2012 15:19:11 +0100 Subject: [flashrom] [PATCH] Add board enable for AOpen D2544-B1 (used in FCS ESPRIMO Q5010) Message-ID: <1326723551-4960-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Typical AWARD enable structure with an ICH GPIO board enable. Signed-off-by: Stefan Tauner --- The chip status register shows #TBL and #WP as active, so this code may not be everything we need. Check probe output for both *not* active before trying to write! board_enable.c | 11 +++++++++++ print.c | 1 + 2 files changed, 12 insertions(+), 0 deletions(-) diff --git a/board_enable.c b/board_enable.c index 2229f8b..05ac1d9 100644 --- a/board_enable.c +++ b/board_enable.c @@ -1560,6 +1560,16 @@ static int intel_ich_gpio34_raise(void) /* * Suited for: + * - AOpen D2544-B1: Intel 945GM + ICH7-M used in ... + * - FCS (e.g. ESPRIMO Q5010) + */ +static int intel_ich_gpio38_raise(void) +{ + return intel_ich_gpio_set(38, 1); +} + +/* + * Suited for: * - ASUS M6Ne (laptop): socket 479M (guessed) + Intel 855PM + ICH4-M */ static int intel_ich_gpio43_raise(void) @@ -2098,6 +2108,7 @@ const struct board_match board_matches[] = { {0x1106, 0x3177, 0x17F2, 0x3177, 0x1106, 0x3148, 0x17F2, 0x3148, NULL, NULL, NULL, P3, "Albatron", "PM266A Pro", 0, OK, w836xx_memw_enable_2e}, {0x1022, 0x2090, 0, 0, 0x1022, 0x2080, 0, 0, NULL, "artecgroup", "dbe61", P3, "Artec Group", "DBE61", 0, OK, board_artecgroup_dbe6x}, {0x1022, 0x2090, 0, 0, 0x1022, 0x2080, 0, 0, NULL, "artecgroup", "dbe62", P3, "Artec Group", "DBE62", 0, OK, board_artecgroup_dbe6x}, + {0x8086, 0x27b9, 0xa0a0, 0x0632, 0x8086, 0x27da, 0xa0a0, 0x0632, "^D2544-B1", NULL, NULL, P3, "AOpen", "D2544-B1", 0, OK, intel_ich_gpio38_raise}, {0x8086, 0x277c, 0xa0a0, 0x060b, 0x8086, 0x27da, 0xa0a0, 0x060b, NULL, NULL, NULL, P3, "AOpen", "i975Xa-YDG", 0, OK, board_aopen_i975xa_ydg}, {0x8086, 0x27b8, 0x1849, 0x27b8, 0x8086, 0x27da, 0x1849, 0x27da, "^ConRoeXFire-eSATA2", NULL, NULL, P3, "ASRock", "ConRoeXFire-eSATA2", 0, OK, intel_ich_gpio16_raise}, {0x1039, 0x0741, 0x1849, 0x0741, 0x1039, 0x5513, 0x1849, 0x5513, "^K7S41 $", NULL, NULL, P3, "ASRock", "K7S41", 0, OK, w836xx_memw_enable_2e}, diff --git a/print.c b/print.c index db7ed65..5804bcb 100644 --- a/print.c +++ b/print.c @@ -556,6 +556,7 @@ const struct board_info boards_known[] = { B("Advantech", "PCM-5820", 1, "http://www.emacinc.com/sbc_pc_compatible/pcm_5820.htm", NULL), B("agami", "Aruma", 1, "http://web.archive.org/web/20080212111524/http://www.agami.com/site/ais-6000-series", NULL), B("Albatron", "PM266A Pro", 1, "http://www.albatron.com.tw/English/Product/MB/pro_detail.asp?rlink=Overview&no=56", NULL), /* FIXME */ + B("AOpen", "D2544-B1", 1, "http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/professionalpc/ESPRIMO/Q/EsprimoQ50x0.htm", "This is an OEM board from FCS (e.g. ESPRIMO Q5010)."), B("AOpen", "vKM400Am-S", 1, "http://usa.aopen.com/products_detail.aspx?Auno=824", NULL), B("Artec Group","DBE61", 1, "http://wiki.thincan.org/DBE61", NULL), B("Artec Group","DBE62", 1, "http://wiki.thincan.org/DBE62", NULL), -- 1.7.1 From stefan.tauner at student.tuwien.ac.at Mon Jan 16 21:24:32 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 16 Jan 2012 21:24:32 +0100 Subject: [flashrom] Mainboard no tested In-Reply-To: References: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> Message-ID: <201201162025.q0GKP4KF005219@mail2.student.tuwien.ac.at> On Sun, 15 Jan 2012 19:04:25 -0500 hector j wrote: > 2012/1/15 Stefan Tauner > > > > > from my very limited experience i think the chipset usually works just > > fine. in this case flashrom does not detect the flash chip. this can > > mean two things: > > - either we have to toggle an IO pin of the chipset (dependent on the > > mainboard) to enable the chip at all, or > > - the chip is not supported yet. > > > > most probably you just need a board enable > > (http://flashrom.org/Board_Enable) due to the first option. > > > > can you please confirm that this is you board > > http://www.msi.com/product/mb/K9N6PGM2-V.html#/?div=BIOS > > please also provide the output of lspci -xxxnnvv (run as root). > > creating the board enable can take days to months dependent on the > > motivation of our volunteers. > > Hi, > Is affirmative that's my board,but it not works,now i have two of the same > boards and testing in the first didn't work,and the second is awaiting > for,so im providing you the output,i'll read the link. > > thanks for your support. the output of just "lspci" is not enough, we need the additional information given by "lspci -xxxnnvv". -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From c1b3rh4ck at gmail.com Mon Jan 16 22:27:50 2012 From: c1b3rh4ck at gmail.com (hector j) Date: Mon, 16 Jan 2012 16:27:50 -0500 Subject: [flashrom] Mainboard no tested In-Reply-To: <201201162025.q0GKP4KF005219@mail2.student.tuwien.ac.at> References: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> <201201162025.q0GKP4KF005219@mail2.student.tuwien.ac.at> Message-ID: 2012/1/16 Stefan Tauner > On Sun, 15 Jan 2012 19:04:25 -0500 > hector j wrote: > > > 2012/1/15 Stefan Tauner > > > > > > > > from my very limited experience i think the chipset usually works just > > > fine. in this case flashrom does not detect the flash chip. this can > > > mean two things: > > > - either we have to toggle an IO pin of the chipset (dependent on the > > > mainboard) to enable the chip at all, or > > > - the chip is not supported yet. > > > > > > most probably you just need a board enable > > > (http://flashrom.org/Board_Enable) due to the first option. > > > > > > can you please confirm that this is you board > > > http://www.msi.com/product/mb/K9N6PGM2-V.html#/?div=BIOS > > > please also provide the output of lspci -xxxnnvv (run as root). > > > creating the board enable can take days to months dependent on the > > > motivation of our volunteers. > > > > Hi, > > Is affirmative that's my board,but it not works,now i have two of the > same > > boards and testing in the first didn't work,and the second is awaiting > > for,so im providing you the output,i'll read the link. > > > > thanks for your support. > > the output of just "lspci" is not enough, we need the additional > information given by "lspci -xxxnnvv". > > -- > Kind regards/Mit freundlichen Gr??en, Stefan Tauner > ups,sorry ----- *"Quien se infiltra en la oscuridad ,es Quien encuentra la verdad .Lao Tse " * Debian User Penetration Testing Colombian Security Researcher LinuxUser #506301 ------------------------------------ Puffy Loves -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 00:00.0 RAM memory [0500]: nVidia Corporation MCP61 Memory Controller [10de:03ea] (rev a1) Subsystem: nVidia Corporation Device [10de:cb84] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr+ DiscTmrStat- DiscTmrSERREn- Capabilities: [b8] Subsystem: nVidia Corporation Device [10de:cb84] Capabilities: [8c] HyperTransport: MSI Mapping Enable- Fixed- Mapping Address Base: 00000000fee00000 00: de 10 f3 03 04 00 b0 00 a1 01 04 06 00 00 01 00 10: 00 00 00 00 00 00 00 00 00 01 01 40 f0 00 80 22 20: f0 ff 00 00 f0 ff 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 b8 00 00 00 00 00 00 00 00 00 02 02 40: 00 00 73 07 01 00 02 00 07 00 00 00 00 00 48 00 50: 00 00 00 00 00 00 00 00 f9 1f ff 1f 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 03 00 00 80 00 00 00 00 00 00 00 08 00 00 a8 90: 00 00 e0 fe 00 00 00 00 00 00 00 00 00 00 00 00 a0: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 ff ff 00 00 0d 8c 00 00 de 10 84 cb c0: de 10 84 cb 03 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:05.0 Audio device [0403]: nVidia Corporation MCP61 High Definition Audio [10de:03f0] (rev a2) Subsystem: Micro-Star International Co., Ltd. Device [1462:7309] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Subsystem: nVidia Corporation Device [10de:0000] Capabilities: [48] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+ Address: 00000000fee0300c Data: 4129 Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed- Mapping Address Base: 00000000fee00000 Capabilities: [80] Express (v1) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <512ns, L1 <4us ClockPM- Surprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #1, PowerLimit 75.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Off, PwrInd On, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- Changed: MRL- PresDet+ LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=WRR32 Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Kernel driver in use: pcieport 00: de 10 e8 03 04 04 10 00 a2 00 04 06 10 00 01 00 10: 00 00 00 00 00 00 00 00 00 02 02 00 f1 01 00 00 20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 40 00 00 00 00 00 00 00 00 00 02 00 40: 0d 48 00 00 de 10 00 00 01 50 02 f8 00 00 00 00 50: 05 60 83 00 0c 30 e0 fe 00 00 00 00 29 41 00 00 60: 08 80 00 a8 00 00 e0 fe 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 10 00 41 01 01 80 00 00 10 28 00 00 01 3d 11 00 90: 00 00 01 11 80 25 08 00 c0 01 08 00 08 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:0b.0 PCI bridge [0604]: nVidia Corporation MCP61 PCI Express bridge [10de:03e9] (rev a2) (prog-if 00 [Normal decode]) Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Subsystem: nVidia Corporation Device [10de:0000] Capabilities: [48] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+ Address: 00000000fee0300c Data: 4141 Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed- Mapping Address Base: 00000000fee00000 Capabilities: [80] Express (v1) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <4us ClockPM- Surprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #2, PowerLimit 10.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Off, PwrInd On, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=WRR32 Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Kernel driver in use: pcieport 00: de 10 e9 03 04 04 10 00 a2 00 04 06 10 00 01 00 10: 00 00 00 00 00 00 00 00 00 03 03 00 f1 01 00 00 20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 40 00 00 00 00 00 00 00 00 00 02 00 40: 0d 48 00 00 de 10 00 00 01 50 02 f8 00 00 00 00 50: 05 60 83 00 0c 30 e0 fe 00 00 00 00 41 41 00 00 60: 08 80 00 a8 00 00 e0 fe 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 10 00 41 01 01 80 00 00 10 28 00 00 11 3c 11 01 90: 00 00 11 10 00 05 10 00 c0 01 00 00 08 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:0c.0 PCI bridge [0604]: nVidia Corporation MCP61 PCI Express bridge [10de:03e9] (rev a2) (prog-if 00 [Normal decode]) Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Subsystem: nVidia Corporation Device [10de:0000] Capabilities: [48] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+ Address: 00000000fee0300c Data: 4149 Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed- Mapping Address Base: 00000000fee00000 Capabilities: [80] Express (v1) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <4us ClockPM- Surprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #3, PowerLimit 10.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Off, PwrInd On, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=WRR32 Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Kernel driver in use: pcieport 00: de 10 e9 03 04 04 10 00 a2 00 04 06 10 00 01 00 10: 00 00 00 00 00 00 00 00 00 04 04 00 f1 01 00 00 20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 40 00 00 00 00 00 00 00 00 00 02 00 40: 0d 48 00 00 de 10 00 00 01 50 02 f8 00 00 00 00 50: 05 60 83 00 0c 30 e0 fe 00 00 00 00 49 41 00 00 60: 08 80 00 a8 00 00 e0 fe 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 10 00 41 01 01 80 00 00 10 28 00 00 11 3c 11 02 90: 00 00 11 10 00 05 18 00 c0 01 00 00 08 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:0d.0 VGA compatible controller [0300]: nVidia Corporation C61 [GeForce 6150SE nForce 430] [10de:03d0] (rev a2) (prog-if 00 [VGA controller]) Subsystem: Micro-Star International Co., Ltd. Device [1462:7309] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- Kernel driver in use: k8temp 00: 22 10 03 11 00 00 10 00 00 00 00 06 00 00 80 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 40: ff 3b 04 00 40 00 10 0a 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 11 c0 0c 60: 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 11 01 32 51 21 40 70 50 00 2a 00 08 17 21 00 00 80: 00 00 07 23 13 21 13 21 00 00 00 00 00 00 00 00 90: 00 00 00 00 79 00 00 00 70 5c 00 18 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 01 a7 0d 00 00 00 60 0c 25 20 20 00 e0: 00 00 00 00 3e 60 46 00 19 17 00 00 00 00 00 00 f0: 0f 00 10 00 00 00 00 00 00 00 00 00 b2 0f 06 00 From stefan.tauner at student.tuwien.ac.at Tue Jan 17 02:53:48 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 17 Jan 2012 02:53:48 +0100 Subject: [flashrom] Problems flashing bios In-Reply-To: References: Message-ID: <201201170154.q0H1sK5K008491@mail2.student.tuwien.ac.at> hello axel i tried to reverse engineer what your bios does to disable the flash write protection. i was not very successfully yet though... if you still have access to the board, it would be great if you could compile/install superiotool and send us the output of "superiotool -deV". -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From jerome at jolimont.fr Tue Jan 17 09:22:09 2012 From: jerome at jolimont.fr (=?UTF-8?B?SsOpcsO0bWU=?=) Date: Tue, 17 Jan 2012 09:22:09 +0100 Subject: [flashrom] flashrom report for NVIDIA MCP51 Message-ID: <20120117092209.6cee0720@bouzin.lan> Hi. flashrom asked me to send you this report (see attached). Hope it helps. DMI string system-manufacturer: "Dell Inc" DMI string system-product-name: "XPS 630i" DMI string system-version: "Unknow" DMI string baseboard-manufacturer: "Dell Inc" DMI string baseboard-product-name: "0C113J" DMI string baseboard-version: "A00" DMI string chassis-type: "Desktop" Found ITE Super I/O, ID 0x8718 on port 0x2e Found chipset "NVIDIA MCP51" with PCI ID 10de:0260. This chipset is marked as untested. If you are using an up-to-date version of flashrom please email a report to flashrom at flashrom.org including a verbose (-V) log. Thank you! I was looking for something to flash a firmware on my DVD drive, but it looks like flashrom does not do that. I'll try with Intelliboot in DOS mode. Have a nice day. -- J?r?me -------------- next part -------------- A non-text attachment was scrubbed... Name: flashrom.log Type: text/x-log Size: 17412 bytes Desc: not available URL: From paulepanter at users.sourceforge.net Wed Jan 18 17:02:42 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Wed, 18 Jan 2012 17:02:42 +0100 Subject: [flashrom] =?utf-8?q?ASRock_775i65g=2C_Flashrom_r1485=3A_log_file?= =?utf-8?b?cyAoYGZsYXNocm9tIC1WYCwg4oCmKQ==?= Message-ID: <1326902562.29125.122.camel@mattotaupa> Dear Flashrom folks, this board [1] is already listed as supported [2], but having captured the output of the successful read, erase and write operations I send it to the list anyway. I also sent some more log files to the coreboot list [3]. Thanks, Paul [1] http://www.asrock.com/MB/overview.asp?Model=775i65G [2] http://flashrom.org/Supported_hardware#Supported_mainboards [3] http://www.coreboot.org/pipermail/coreboot/2012-January/067990.html -------------- next part -------------- flashrom v0.9.4-r1485 on Linux 3.1.0-3-grml-amd64 (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1808M loops per second, 10 myus = 10 us, 100 myus = 242 us, 1000 myus = 1000 us, 10000 myus = 10010 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To Be Filled By O.E.M." DMI string system-product-name: "To Be Filled By O.E.M." DMI string system-version: "To Be Filled By O.E.M." DMI string baseboard-manufacturer: " " DMI string baseboard-product-name: "775i65G." DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found chipset "Intel ICH5/ICH5R" with PCI ID 8086:24d0. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 OK. Disabling flash write protection for board "ASRock 775i65G"... Intel ICH LPC bridge: Raising GPIO23. OK. The following protocols are supported: FWH. Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH) at physical address 0xfff80000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Lock status of block at 0x00000000 is Full Access. Lock status of block at 0x00010000 is Full Access. Lock status of block at 0x00020000 is Full Access. Lock status of block at 0x00030000 is Full Access. Lock status of block at 0x00040000 is Full Access. Lock status of block at 0x00050000 is Full Access. Lock status of block at 0x00060000 is Full Access. Lock status of block at 0x00070000 is Full Access. Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH). No operations were specified. Restoring PCI config space for 00:1f:0 reg 0x4e -------------- next part -------------- flashrom v0.9.4-r1485 on Linux 3.1.0-3-grml-amd64 (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1743M loops per second, 10 myus = 9 us, 100 myus = 116 us, 1000 myus = 971 us, 10000 myus = 9646 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To Be Filled By O.E.M." DMI string system-product-name: "To Be Filled By O.E.M." DMI string system-version: "To Be Filled By O.E.M." DMI string baseboard-manufacturer: " " DMI string baseboard-product-name: "775i65G." DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found chipset "Intel ICH5/ICH5R" with PCI ID 8086:24d0. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 OK. Disabling flash write protection for board "ASRock 775i65G"... Intel ICH LPC bridge: Raising GPIO23. OK. The following protocols are supported: FWH. Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH) at physical address 0xfff80000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Lock status of block at 0x00000000 is Full Access. Lock status of block at 0x00010000 is Full Access. Lock status of block at 0x00020000 is Full Access. Lock status of block at 0x00030000 is Full Access. Lock status of block at 0x00040000 is Full Access. Lock status of block at 0x00050000 is Full Access. Lock status of block at 0x00060000 is Full Access. Lock status of block at 0x00070000 is Full Access. Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH). Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x00ffff:E, 0x010000-0x01ffff:E, 0x020000-0x02ffff:E, 0x030000-0x03ffff:E, 0x040000-0x04ffff:E, 0x050000-0x05ffff:E, 0x060000-0x06ffff:E, 0x070000-0x07ffff:E Erase/write done. Restoring PCI config space for 00:1f:0 reg 0x4e -------------- next part -------------- flashrom v0.9.4-r1485 on Linux 3.1.0-3-grml-amd64 (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1800M loops per second, 10 myus = 10 us, 100 myus = 240 us, 1000 myus = 995 us, 10000 myus = 9966 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To Be Filled By O.E.M." DMI string system-product-name: "To Be Filled By O.E.M." DMI string system-version: "To Be Filled By O.E.M." DMI string baseboard-manufacturer: " " DMI string baseboard-product-name: "775i65G." DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found chipset "Intel ICH5/ICH5R" with PCI ID 8086:24d0. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 OK. Disabling flash write protection for board "ASRock 775i65G"... Intel ICH LPC bridge: Raising GPIO23. OK. The following protocols are supported: FWH. Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH) at physical address 0xfff80000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Lock status of block at 0x00000000 is Full Access. Lock status of block at 0x00010000 is Full Access. Lock status of block at 0x00020000 is Full Access. Lock status of block at 0x00030000 is Full Access. Lock status of block at 0x00040000 is Full Access. Lock status of block at 0x00050000 is Full Access. Lock status of block at 0x00060000 is Full Access. Lock status of block at 0x00070000 is Full Access. Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH). Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Reading flash... done. Restoring PCI config space for 00:1f:0 reg 0x4e -------------- next part -------------- flashrom v0.9.4-r1485 on Linux 3.1.0-3-grml-amd64 (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1614M loops per second, delay more than 10% too short (got 89% of expected delay), recalculating... 1807M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 999 us, 10000 myus = 10000 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To Be Filled By O.E.M." DMI string system-product-name: "To Be Filled By O.E.M." DMI string system-version: "To Be Filled By O.E.M." DMI string baseboard-manufacturer: " " DMI string baseboard-product-name: "775i65G." DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found chipset "Intel ICH5/ICH5R" with PCI ID 8086:24d0. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 OK. Disabling flash write protection for board "ASRock 775i65G"... Intel ICH LPC bridge: Raising GPIO23. OK. The following protocols are supported: FWH. Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH) at physical address 0xfff80000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Lock status of block at 0x00000000 is Full Access. Lock status of block at 0x00010000 is Full Access. Lock status of block at 0x00020000 is Full Access. Lock status of block at 0x00030000 is Full Access. Lock status of block at 0x00040000 is Full Access. Lock status of block at 0x00050000 is Full Access. Lock status of block at 0x00060000 is Full Access. Lock status of block at 0x00070000 is Full Access. Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH). Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Reading flash... done. Restoring PCI config space for 00:1f:0 reg 0x4e -------------- next part -------------- flashrom v0.9.4-r1485 on Linux 3.1.0-3-grml-amd64 (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1682M loops per second, 10 myus = 10 us, 100 myus = 224 us, 1000 myus = 930 us, 10000 myus = 9314 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To Be Filled By O.E.M." DMI string system-product-name: "To Be Filled By O.E.M." DMI string system-version: "To Be Filled By O.E.M." DMI string baseboard-manufacturer: " " DMI string baseboard-product-name: "775i65G." DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found chipset "Intel ICH5/ICH5R" with PCI ID 8086:24d0. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 OK. Disabling flash write protection for board "ASRock 775i65G"... Intel ICH LPC bridge: Raising GPIO23. OK. The following protocols are supported: FWH. Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0x03, id2 0xe8, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH) at physical address 0xfff80000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Lock status of block at 0x00000000 is Full Access. Lock status of block at 0x00010000 is Full Access. Lock status of block at 0x00020000 is Full Access. Lock status of block at 0x00030000 is Full Access. Lock status of block at 0x00040000 is Full Access. Lock status of block at 0x00050000 is Full Access. Lock status of block at 0x00060000 is Full Access. Lock status of block at 0x00070000 is Full Access. Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH). Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Flash image seems to be a legacy BIOS. Disabling coreboot-related checks. Reading old flash chip contents... done. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x00ffff:W, 0x010000-0x01ffff:EW, 0x020000-0x02ffff:EW, 0x030000-0x03ffff:EW, 0x040000-0x04ffff:EW, 0x050000-0x05ffff:EW, 0x060000-0x06ffff:E, 0x070000-0x07ffff:EW Erase/write done. Verifying flash... VERIFIED. Restoring PCI config space for 00:1f:0 reg 0x4e -------------- next part -------------- flashrom v0.9.4-r1485 on Linux 3.1.0-3-grml-amd64 (x86_64), built with libpci 3.1.8, GCC 4.6.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1800M loops per second, 10 myus = 10 us, 100 myus = 120 us, 1000 myus = 995 us, 10000 myus = 9969 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To Be Filled By O.E.M." DMI string system-product-name: "To Be Filled By O.E.M." DMI string system-version: "To Be Filled By O.E.M." DMI string baseboard-manufacturer: " " DMI string baseboard-product-name: "775i65G." DMI string baseboard-version: " " DMI string chassis-type: "Desktop" Found chipset "Intel ICH5/ICH5R" with PCI ID 8086:24d0. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 OK. Disabling flash write protection for board "ASRock 775i65G"... Intel ICH LPC bridge: Raising GPIO23. OK. The following protocols are supported: FWH. Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH) at physical address 0xfff80000. Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Lock status of block at 0x00000000 is Full Access. Lock status of block at 0x00010000 is Full Access. Lock status of block at 0x00020000 is Full Access. Lock status of block at 0x00030000 is Full Access. Lock status of block at 0x00040000 is Full Access. Lock status of block at 0x00050000 is Full Access. Lock status of block at 0x00060000 is Full Access. Lock status of block at 0x00070000 is Full Access. Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xda, id2 0x54 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xda, id2 0x54 Found Winbond flash chip "W39V040FB" (512 kB, FWH). Lockout bits: Hardware bootblock locking (#TBL) is not active. Hardware remaining chip locking (#WP) is not active.. Flash image seems to be a legacy BIOS. Disabling coreboot-related checks. Reading old flash chip contents... done. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x00ffff:S, 0x010000-0x01ffff:W, 0x020000-0x02ffff:W, 0x030000-0x03ffff:W, 0x040000-0x04ffff:W, 0x050000-0x05ffff:W, 0x060000-0x06ffff:W, 0x070000-0x07ffff:W Erase/write done. Verifying flash... VERIFIED. Restoring PCI config space for 00:1f:0 reg 0x4e -------------- next part -------------- superiotool r (master-3ad8c54) Probing for ALi Super I/O at 0x3f0... Failed. Returned data: id=0xffff, rev=0xff Probing for ALi Super I/O at 0x370... Failed. Returned data: id=0xffff, rev=0xff Probing for Fintek Super I/O at 0x2e... Failed. Returned data: vid=0x4400, id=0x6388 Probing for Fintek Super I/O at 0x4e... Failed. Returned data: vid=0xffff, id=0xffff Probing for Fintek Super I/O at 0x2e... Failed. Returned data: vid=0xffff, id=0xffff Probing for Fintek Super I/O at 0x4e... Failed. Returned data: vid=0xffff, id=0xffff Probing for ITE Super I/O (init=standard) at 0x25e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8502e) at 0x25e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8761e) at 0x25e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8228e) at 0x25e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=0x87,0x87) at 0x25e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=standard) at 0x2e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8502e) at 0x2e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8761e) at 0x2e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8228e) at 0x2e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=0x87,0x87) at 0x2e... Failed. Returned data: id=0x8863, rev=0xf Probing for ITE Super I/O (init=standard) at 0x4e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8502e) at 0x4e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8761e) at 0x4e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=it8228e) at 0x4e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=0x87,0x87) at 0x4e... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=legacy/it8661f) at 0x370... Failed. Returned data: id=0xffff, rev=0xf Probing for ITE Super I/O (init=legacy/it8671f) at 0x370... Failed. Returned data: id=0xffff, rev=0xf Probing for NSC Super I/O at 0x2e... Failed. Returned data: port=0xff, port+1=0xff Probing for NSC Super I/O at 0x4e... Failed. Returned data: port=0xff, port+1=0xff Probing for NSC Super I/O at 0x15c... Failed. Returned data: port=0xff, port+1=0xff Probing for NSC Super I/O at 0x164e... Failed. Returned data: port=0xff, port+1=0xff Probing for Nuvoton Super I/O at 0x164e... Failed. Returned data: chip_id=0xffff Probing for Nuvoton Super I/O (sid=0xfc) at 0x164e... Failed. Returned data: sid=0xff, id=0xffff, rev=0x00 Probing for Nuvoton Super I/O at 0x2e... Failed. Returned data: chip_id=0x8863 Probing for Nuvoton Super I/O (sid=0xfc) at 0x2e... Failed. Returned data: sid=0xff, id=0x8863, rev=0x00 Probing for Nuvoton Super I/O at 0x4e... Failed. Returned data: chip_id=0xffff Probing for Nuvoton Super I/O (sid=0xfc) at 0x4e... Failed. Returned data: sid=0xff, id=0xffff, rev=0x00 Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370... Failed. Returned data: id=0xff, rev=0xff Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370... Failed. Returned data: id=0xff, rev=0xff Probing for Winbond Super I/O (init=0x88) at 0x2e... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x89) at 0x2e... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e... Found Winbond W83627EHF/EF/EHG/EG (id=0x88, rev=0x63) at 0x2e Register dump: idx 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f val 88 63 ff 00 44 00 00 ff 50 04 00 00 09 41 00 ff def 88 MM ff 00 MM 00 MM RR 50 04 00 RR 00 21 00 00 LDN 0x00 (Floppy) idx 30 60 61 70 74 f0 f1 f2 f4 f5 val 01 03 f0 06 02 0e 00 ff 00 00 def 01 03 f0 06 02 8e 00 ff 00 00 LDN 0x01 (Parallel port) idx 30 60 61 70 74 f0 val 00 03 78 07 03 3b def 01 03 78 07 04 3f LDN 0x02 (COM1) idx 30 60 61 70 f0 val 01 03 f8 04 00 def 01 03 f8 04 00 LDN 0x03 (COM2) idx 30 60 61 70 f0 f1 val 01 02 f8 03 00 5c def 01 02 f8 03 00 00 LDN 0x05 (Keyboard) idx 30 60 61 62 63 70 72 f0 val 01 00 60 00 64 01 0c 82 def 01 00 60 00 64 01 0c 83 LDN 0x06 (Serial flash interface) idx 30 62 63 val 00 ff ff def 00 00 00 LDN 0x07 (GPIO 1, GPIO 6, game port, MIDI port) idx 30 60 61 62 63 70 f0 f1 f2 f3 f4 f5 f6 f7 val 00 02 01 03 30 00 ff ff ff ff ff ff ff 00 def 00 02 01 03 30 09 ff 00 00 00 ff 00 00 00 LDN 0x08 (WDTO#, PLED) idx 30 f5 f6 f7 val 00 ff 00 ff def 00 00 00 00 LDN 0x09 (GPIO 2, GPIO 3, GPIO 4, GPIO 5, SUSLED) idx 30 e0 e1 e2 e3 e4 e5 f0 f1 f2 f3 f4 f5 f6 f7 val 0e ff 01 00 ff ff ff a0 f9 00 40 ff f3 00 00 def 00 ff 00 00 ff 00 00 ff 00 00 00 ff 00 00 00 LDN 0x0a (ACPI) idx 30 70 e0 e1 e2 e3 e4 e5 e6 e7 e8 f2 f3 f4 f6 f7 val 00 00 01 00 ff 24 00 00 0c 00 09 7c 00 00 00 00 def 00 00 01 00 ff 08 00 RR 00 00 RR 7c 00 00 00 00 LDN 0x0b (Hardware monitor) idx 30 60 61 70 f0 f1 val 01 02 90 00 c1 3f def 00 00 00 00 c1 00 Hardware monitor (0x0295) Probing for Winbond Super I/O (init=0x88) at 0x4e... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x89) at 0x4e... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x88) at 0x3f0... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x89) at 0x3f0... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x88) at 0x370... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x89) at 0x370... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x86,0x86) at 0x370... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x87,0x87) at 0x370... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x88) at 0x250... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x89) at 0x250... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x86,0x86) at 0x250... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for Winbond Super I/O (init=0x87,0x87) at 0x250... Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff Probing for VIA Super I/O at 0x3f0... PCI device 1106:0686 not found. Probing for AMD EC Super I/O at 0xaa... Probing for Server Engines Super I/O at 0x2e... Failed. Returned data: id=0xffff, rev=0xff Probing for Infineon Super I/O at 0x2e... Failed. Returned data: id=0xff, rev=0xff Probing for Infineon Super I/O at 0x4e... Failed. Returned data: id=0xff, rev=0xff -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From rath at mglug.de Thu Jan 19 17:58:53 2012 From: rath at mglug.de (Oliver Rath) Date: Thu, 19 Jan 2012 17:58:53 +0100 Subject: [flashrom] successfull Flash log [was Re: [PATCH] Add board enable for AOpen D2544-B1 (used in FCS ESPRIMO Q5010)] In-Reply-To: <1326723551-4960-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1326723551-4960-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <4F184BCD.9010109@mglug.de> Hi stefan, Ive added a verbose log of flash the esprimo machine. The flashing with the modified bios runs, but the additional functionality seems hidden. Regards, Oliver -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: successfull-flash-esprimo-q5010.txt URL: From svn at flashrom.org Thu Jan 19 18:50:33 2012 From: svn at flashrom.org (repository service) Date: Thu, 19 Jan 2012 18:50:33 +0100 Subject: [flashrom] [commit] r1486 - trunk Message-ID: Author: stefanct Date: Thu Jan 19 18:50:32 2012 New Revision: 1486 URL: http://flashrom.org/trac/flashrom/changeset/1486 Log: Add board enable for AOpen i945GMx-VFX (used in FCS ESPRIMO Q5010) Typical AWARD enable structure with an ICH GPIO board enable. This board seems also to be known as D2544-B1. Success report: http://www.flashrom.org/pipermail/flashrom/2012-January/008590.html Signed-off-by: Stefan Tauner Tested-by: Oliver Rath Acked-by: Stefan Tauner Modified: trunk/board_enable.c trunk/print.c Modified: trunk/board_enable.c ============================================================================== --- trunk/board_enable.c Thu Jan 12 14:58:43 2012 (r1485) +++ trunk/board_enable.c Thu Jan 19 18:50:32 2012 (r1486) @@ -1560,6 +1560,16 @@ /* * Suited for: + * - AOpen i945GMx-VFX: Intel 945GM + ICH7-M used in ... + * - FCS ESPRIMO Q5010 (SMBIOS: D2544-B1) + */ +static int intel_ich_gpio38_raise(void) +{ + return intel_ich_gpio_set(38, 1); +} + +/* + * Suited for: * - ASUS M6Ne (laptop): socket 479M (guessed) + Intel 855PM + ICH4-M */ static int intel_ich_gpio43_raise(void) @@ -2098,6 +2108,7 @@ {0x1106, 0x3177, 0x17F2, 0x3177, 0x1106, 0x3148, 0x17F2, 0x3148, NULL, NULL, NULL, P3, "Albatron", "PM266A Pro", 0, OK, w836xx_memw_enable_2e}, {0x1022, 0x2090, 0, 0, 0x1022, 0x2080, 0, 0, NULL, "artecgroup", "dbe61", P3, "Artec Group", "DBE61", 0, OK, board_artecgroup_dbe6x}, {0x1022, 0x2090, 0, 0, 0x1022, 0x2080, 0, 0, NULL, "artecgroup", "dbe62", P3, "Artec Group", "DBE62", 0, OK, board_artecgroup_dbe6x}, + {0x8086, 0x27b9, 0xa0a0, 0x0632, 0x8086, 0x27da, 0xa0a0, 0x0632, NULL, NULL, NULL, P3, "AOpen", "i945GMx-VFX", 0, OK, intel_ich_gpio38_raise}, {0x8086, 0x277c, 0xa0a0, 0x060b, 0x8086, 0x27da, 0xa0a0, 0x060b, NULL, NULL, NULL, P3, "AOpen", "i975Xa-YDG", 0, OK, board_aopen_i975xa_ydg}, {0x8086, 0x27b8, 0x1849, 0x27b8, 0x8086, 0x27da, 0x1849, 0x27da, "^ConRoeXFire-eSATA2", NULL, NULL, P3, "ASRock", "ConRoeXFire-eSATA2", 0, OK, intel_ich_gpio16_raise}, {0x1039, 0x0741, 0x1849, 0x0741, 0x1039, 0x5513, 0x1849, 0x5513, "^K7S41 $", NULL, NULL, P3, "ASRock", "K7S41", 0, OK, w836xx_memw_enable_2e}, Modified: trunk/print.c ============================================================================== --- trunk/print.c Thu Jan 12 14:58:43 2012 (r1485) +++ trunk/print.c Thu Jan 19 18:50:32 2012 (r1486) @@ -556,6 +556,7 @@ B("Advantech", "PCM-5820", 1, "http://www.emacinc.com/sbc_pc_compatible/pcm_5820.htm", NULL), B("agami", "Aruma", 1, "http://web.archive.org/web/20080212111524/http://www.agami.com/site/ais-6000-series", NULL), B("Albatron", "PM266A Pro", 1, "http://www.albatron.com.tw/English/Product/MB/pro_detail.asp?rlink=Overview&no=56", NULL), /* FIXME */ + B("AOpen", "i945GMx-VFX", 1, NULL, "This is (also?) an OEM board from FCS (used in e.g. ESPRIMO Q5010 with designation D2544-B1)."), B("AOpen", "vKM400Am-S", 1, "http://usa.aopen.com/products_detail.aspx?Auno=824", NULL), B("Artec Group","DBE61", 1, "http://wiki.thincan.org/DBE61", NULL), B("Artec Group","DBE62", 1, "http://wiki.thincan.org/DBE62", NULL), From stefan.tauner at student.tuwien.ac.at Thu Jan 19 18:54:18 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Thu, 19 Jan 2012 18:54:18 +0100 Subject: [flashrom] successfull Flash log [was Re: [PATCH] Add board enable for AOpen D2544-B1 (used in FCS ESPRIMO Q5010)] In-Reply-To: <4F184BCD.9010109@mglug.de> References: <1326723551-4960-1-git-send-email-stefan.tauner@student.tuwien.ac.at> <4F184BCD.9010109@mglug.de> Message-ID: <201201191754.q0JHskT0012374@mail2.student.tuwien.ac.at> On Thu, 19 Jan 2012 17:58:53 +0100 Oliver Rath wrote: > Hi stefan, > > Ive added a verbose log of flash the esprimo machine. The flashing with > the modified bios runs, but the additional functionality seems hidden. > > Regards, > Oliver > thanks for testing! i have committed the board enable with some slight modifications in r1486: - removed the DMI pattern in case there are non-FCS boards around. the pci ids should be enough to match the board uniquely i hope. - changed the naming a bit... aopen's name seems to be i945GMx-VFX not D2544-B1 as i thought. - removed the FCS url -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Fri Jan 20 03:54:20 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Fri, 20 Jan 2012 03:54:20 +0100 Subject: [flashrom] Mainboard no tested In-Reply-To: References: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> <201201162025.q0GKP4KF005219@mail2.student.tuwien.ac.at> Message-ID: <201201200254.q0K2smho028224@mail2.student.tuwien.ac.at> hello again this looks like it needs way more work than i thought in the beginning. the flash chip is probably behind the super i/o chip (fintek F71882) which flashrom does not yet support. there has been a patch in the works for a long time, but i think there was not much demand/testers to finish it. could you please apply the following patch to r1455 of flashrom, recompile, run flashrom -V and send us the log? http://patchwork.coreboot.org/patch/3440/ this will *not* enable you to use flashrom as a programmer, but it might induce further development. i think it is safe to test (no flash access is done). i will inform the author of the patch that a new victim^Wtester arrived ;) -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From andrey.smirnov at convergeddevices.com Fri Jan 20 03:55:43 2012 From: andrey.smirnov at convergeddevices.com (Andrey Smirnov) Date: Thu, 19 Jan 2012 18:55:43 -0800 Subject: [flashrom] [RFC] Does code implementing support for non-flash EEPROMs belong to 'flashrom'? Message-ID: <1327028143.23835.20.camel@marvin> Hell everybody, I'm working with a board that has a ST M95320-R(http://www.st.com/internet/mcu/product/113067.jsp) EEPROM chip that works as a NVM for a Gigabit Ethernet card. This chip supports very basic subset of instructions (read/write, write enable/disable, read/write status word). Right now, in order to write the firmware to the chip I use custom tool that does only this task. And I think it would be much more convenient not to reinvent the wheel and just implement support of the said microchip in more generic open source tool such as 'flashrom'. But as far as I can tell, 'flashrom' is the tool built with flash memory solely in mind (24bit address assumption, erase +write cycle, etc.). So what I would like to know if 'flashrom' ever aimed to implement its functionality for aforementioned kind of chips? Is there any point for me to try to implement said functionality in the code-base? Andrey Smirnov P.S. I'm not subscribed to the mailing list, please CC me in your responses. From c-d.hailfinger.devel.2006 at gmx.net Fri Jan 20 20:50:49 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Fri, 20 Jan 2012 20:50:49 +0100 Subject: [flashrom] Mainboard no tested In-Reply-To: <201201200254.q0K2smho028224@mail2.student.tuwien.ac.at> References: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> <201201162025.q0GKP4KF005219@mail2.student.tuwien.ac.at> <201201200254.q0K2smho028224@mail2.student.tuwien.ac.at> Message-ID: <4F19C599.9060901@gmx.net> Hi, thanks for the heads-up. Am 20.01.2012 03:54 schrieb Stefan Tauner: > this looks like it needs way more work than i thought in the beginning. > the flash chip is probably behind the super i/o chip (fintek F71882) > which flashrom does not yet support. there has been a patch in the > works for a long time, but i think there was not much demand/testers to > finish it. > > could you please apply the following patch to r1455 of flashrom, > recompile, run flashrom -V and send us the log? > http://patchwork.coreboot.org/patch/3440/ > > this will *not* enable you to use flashrom as a programmer, but it > might induce further development. i think it is safe to test (no flash > access is done). i will inform the author of the patch that a new > victim^Wtester arrived ;) I won't have time to do any Fintek development before mid February, but I'll read the report. Regards, Carl-Daniel -- http://www.hailfinger.org/ From c1b3rh4ck at gmail.com Sat Jan 21 00:58:26 2012 From: c1b3rh4ck at gmail.com (hector j) Date: Fri, 20 Jan 2012 18:58:26 -0500 Subject: [flashrom] Mainboard no tested In-Reply-To: <4F19C599.9060901@gmx.net> References: <201201151415.q0FEFf50011926@mail2.student.tuwien.ac.at> <201201162025.q0GKP4KF005219@mail2.student.tuwien.ac.at> <201201200254.q0K2smho028224@mail2.student.tuwien.ac.at> <4F19C599.9060901@gmx.net> Message-ID: 2012/1/20 Carl-Daniel Hailfinger > Hi, > > thanks for the heads-up. > > Am 20.01.2012 03:54 schrieb Stefan Tauner: > > this looks like it needs way more work than i thought in the beginning. > > the flash chip is probably behind the super i/o chip (fintek F71882) > > which flashrom does not yet support. there has been a patch in the > > works for a long time, but i think there was not much demand/testers to > > finish it. > > > > could you please apply the following patch to r1455 of flashrom, > > recompile, run flashrom -V and send us the log? > > http://patchwork.coreboot.org/patch/3440/ > > > > this will *not* enable you to use flashrom as a programmer, but it > > might induce further development. i think it is safe to test (no flash > > access is done). i will inform the author of the patch that a new > > victim^Wtester arrived ;) > > I won't have time to do any Fintek development before mid February, but > I'll read the report. > > Regards, > Carl-Daniel > > -- > http://www.hailfinger.org/ > > U_U ? -- *"Quien se infiltra en la oscuridad ,es Quien encuentra la verdad .Lao Tse " * Debian User Penetration Testing Colombian Security Researcher LinuxUser #506301 ------------------------------------ Puffy Loves -------------- next part -------------- An HTML attachment was scrubbed... URL: From pavel.stehlik at centrum.cz Sat Jan 21 18:36:15 2012 From: pavel.stehlik at centrum.cz (=?UTF-8?B?UGF2ZWwgU3RlaGzDrWs=?=) Date: Sat, 21 Jan 2012 18:36:15 +0100 Subject: [flashrom] ASUS M4N78 PRO -- flashrom -V Message-ID: <20120121183615.B5480843@centrum.cz> ? Bios written and read sueccessfully. (On Xubuntu 11.10 Oneiric) ????????????????????????? Thanks for your work on this utility, Pavel Stehlik. ? P.S. : Possibility to rewrite Macronix_MX25L8005 status register (user value, 00->FF or something like that) would be welcome. I wont to write-protect my BIOS and besides connecting pin 3(!WP) to gnd, setting of some bits of SR is neccessary. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: flashrom.txt URL: From pavel.stehlik at centrum.cz Sat Jan 21 18:36:15 2012 From: pavel.stehlik at centrum.cz (=?UTF-8?B?UGF2ZWwgU3RlaGzDrWs=?=) Date: Sat, 21 Jan 2012 18:36:15 +0100 Subject: [flashrom] ASUS M4N78 PRO -- flashrom -V Message-ID: <20120121183615.B5480843@centrum.cz> ? Bios written and read sueccessfully. (On Xubuntu 11.10 Oneiric) ????????????????????????? Thanks for your work on this utility, Pavel Stehlik. ? P.S. : Possibility to rewrite Macronix_MX25L8005 status register (user value, 00->FF or something like that) would be welcome. I wont to write-protect my BIOS and besides connecting pin 3(!WP) to gnd, setting of some bits of SR is neccessary. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: flashrom.txt URL: From marc.kolly at googlemail.com Sun Jan 22 11:33:52 2012 From: marc.kolly at googlemail.com (Marc Kolly) Date: Sun, 22 Jan 2012 11:33:52 +0100 Subject: [flashrom] Chip SST25VF040 @ flashrom v0.9.4-r1486 Message-ID: flashrom v0.9.4-r1486 on Linux 2.6.32-37-generic-pae (i686), built with libpci 3.0.0, GCC 4.4.3, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1823M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 982 us, 10000 myus = 10131 us, 4 myus = 5 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "LENOVO" DMI string system-product-name: "898573G" DMI string system-version: "ThinkCentre M55E" DMI string baseboard-manufacturer: "LENOVO" DMI string baseboard-product-name: "LENOVO" DMI string baseboard-version: "Not Specified" DMI string chassis-type: "Mini Tower" Found ITE Super I/O, ID 0x8718 on port 0x2e Found chipset "Intel ICH7/ICH7R" with PCI ID 8086:27b8. 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 enabled 0xff600000/0xff200000 FWH decode enabled 0xff500000/0xff100000 FWH decode enabled 0xff400000/0xff000000 FWH decode enabled Maximum FWH chip size: 0x100000 bytes BIOS Lock Enable: disabled, BIOS Write Enable: enabled, BIOS_CNTL is 0x1 Root Complex Register Block address = 0xfed1c000 GCS = 0x464: BIOS Interface Lock-Down: disabled, Boot BIOS Straps: 0x1 (SPI) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3020 0x00: 0x0004 (SPIS) 0x02: 0x7f10 (SPIC) 0x04: 0x0007ffc0 (SPIA) 0x08: 0x27c88086 (SPID0) 0x0c: 0x0000ffff (SPID0+4) 0x10: 0xd5b00000 (SPID1) 0x14: 0x27c98086 (SPID1+4) 0x18: 0x0000ffff (SPID2) 0x1c: 0xd5ba0000 (SPID2+4) 0x20: 0x27ca8086 (SPID3) 0x24: 0x0000ffff (SPID3+4) 0x28: 0xd5c40000 (SPID4) 0x2c: 0x27cb8086 (SPID4+4) 0x30: 0x0000ffff (SPID5) 0x34: 0xd5ce0000 (SPID5+4) 0x38: 0x00e1f5e9 (SPID6) 0x3c: 0x00000000 (SPID6+4) 0x40: 0x00e260ea (SPID7) 0x44: 0x000000f0 (SPID7+4) 0x50: 0x00000000 (BBAR) 0x54: 0x5006 (PREOP) 0x56: 0x463b (OPTYPE) 0x58: 0x05d80302 (OPMENU) 0x5c: 0xc79f0190 (OPMENU+4) 0x60: 0x00000000 (PBR0) 0x64: 0x00000000 (PBR1) 0x68: 0x00000000 (PBR2) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done SPI Read Configuration: prefetching disabled, caching enabled, OK. No IT87* serial flash segment enabled. The following protocols are supported: SPI. Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0xbf, id2 0x44 Chip status register is 00 Chip status register: Block Protect Write Disable (BPL) is not set Chip status register: Auto Address Increment Programming (AAI) is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Found SST flash chip "SST25VF040" (512 kB, SPI) at physical address 0xfff80000. === This flash part has status UNTESTED for operations: ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom at 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, -Vr, -VE, -Vw), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! Reading flash... done. Restoring MMIO space at 0xb7787070 Restoring MMIO space at 0xb778707c Restoring MMIO space at 0xb7787078 Restoring MMIO space at 0xb7787076 Restoring MMIO space at 0xb7787074 -------------- next part -------------- An HTML attachment was scrubbed... URL: From zakrzewskim at wp.pl Sun Jan 22 20:00:17 2012 From: zakrzewskim at wp.pl (Marek Zakrzewski) Date: Sun, 22 Jan 2012 20:00:17 +0100 Subject: [flashrom] Intel D425KT write not working Message-ID: <23FBAA1572EC46AA8B93DDBB0EFA05CA@MacPro> Write is not working, module is 1024kB, ROM is 2048kB. flashrom flashrom v0.9.4-r1486 on Linux 2.6.38.2-xxxx-std-ipv6-64 (x86_64), built with libpci 3.1.7, GCC 4.1.2 20080704 (Red Hat 4.1.2-51), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... delay loop is unreliable, trying to continue OK. -s: No such file or directory dmidecode execution unsuccessful - continuing without DMI info Found chipset "Intel NM10". Enabling flash write... WARNING: Setting 0xdc from 0xa to 0xb on NM10 failed. New value is 0xa. WARNING: SPI Configuration Lockdown activated. PROBLEMS, continuing anyway Found Winbond flash chip "W25Q80" (1024 kB, SPI) at physical address 0xfff00000. No operations were specified. flashrom -Vw flashrom v0.9.4-r1486 on Linux 2.6.38.2-xxxx-std-ipv6-64 (x86_64), built with libpci 3.1.7, GCC 4.1.2 20080704 (Red Hat 4.1.2-51), little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 372M loops per second, delay more than 10% too short (got 82% of expected delay), recalculating... 363M loops per second, delay more than 10% too short (got 80% of expected delay), recalculating... 373M loops per second, delay more than 10% too short (got 83% of expected delay), recalculating... 364M loops per second, delay more than 10% too short (got 82% of expected delay), recalculating... 359M loops per second, 10 myus = 8 us, 100 myus = 80 us, 1000 myus = 798 us, 10000 myus = 9481 us, 4 myus = 3 us, OK. Initializing internal programmer No coreboot table found. dmidecode execution unsuccessful - continuing without DMI info Found chipset "Intel NM10" with PCI ID 8086:27bc. Enabling flash write... 0x7fffffff/0x7fffffff FWH IDSEL: 0x0 0x7fffffff/0x7fffffff FWH IDSEL: 0x0 0x7fffffff/0x7fffffff FWH IDSEL: 0x1 0x7fffffff/0x7fffffff FWH IDSEL: 0x1 0x7fffffff/0x7fffffff FWH IDSEL: 0x2 0x7fffffff/0x7fffffff FWH IDSEL: 0x2 0x7fffffff/0x7fffffff FWH IDSEL: 0x3 0x7fffffff/0x7fffffff FWH IDSEL: 0x3 0x7fffffff/0x7fffffff FWH IDSEL: 0x4 0x7fffffff/0x7fffffff FWH IDSEL: 0x5 0x7fffffff/0x7fffffff FWH IDSEL: 0x6 0x7fffffff/0x7fffffff FWH IDSEL: 0x7 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled 0x7fffffff/0x7fffffff FWH decode disabled Maximum FWH chip size: 0x100000 bytes BIOS Lock Enable: enabled, BIOS Write Enable: disabled, BIOS_CNTL is 0xa WARNING: Setting 0xdc from 0xa to 0xb on NM10 failed. New value is 0xa. Root Complex Register Block address = 0xfed1c000 GCS = 0x200465: BIOS Interface Lock-Down: enabled, Boot BIOS Straps: 0x1 (SPI) Top Swap : not enabled SPIBAR = 0xfed1c000 + 0x3020 0x00: 0x8004 (SPIS) 0x02: 0x4130 (SPIC) 0x04: 0x00000000 (SPIA) 0x08: 0x00140000 (SPID0) 0x0c: 0x00000000 (SPID0+4) 0x10: 0x00000000 (SPID1) 0x14: 0x00000000 (SPID1+4) 0x18: 0xeb4150bf (SPID2) 0x1c: 0x0000001d (SPID2+4) 0x20: 0x00000000 (SPID3) 0x24: 0x00000000 (SPID3+4) 0x28: 0xffff0434 (SPID4) 0x2c: 0xffffff50 (SPID4+4) 0x30: 0x00000000 (SPID5) 0x34: 0x00000000 (SPID5+4) 0x38: 0x8be9090f (SPID6) 0x3c: 0x000000f8 (SPID6+4) 0x40: 0x00000000 (SPID7) 0x44: 0xffff0000 (SPID7+4) 0x50: 0x00000000 (BBAR) 0x54: 0x0006 (PREOP) 0x56: 0x103b (OPTYPE) 0x58: 0x05200302 (OPMENU) 0x5c: 0x0001009f (OPMENU+4) 0x60: 0x00000000 (PBR0) 0x64: 0x00000000 (PBR1) 0x68: 0x00000000 (PBR2) WARNING: SPI Configuration Lockdown activated. Reading OPCODES... done SPI Read Configuration: prefetching enabled, caching enabled, PROBLEMS, continuing anyway The following protocols are supported: SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for SST SST25LF040A, 512 kB: Invalid OPCODE 0xab, will not execute. Probing for SST SST25LF080A, 1024 kB: Invalid OPCODE 0xab, will not execute. Probing for SST SST25VF010, 128 kB: Invalid OPCODE 0x90, will not execute. Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for SST SST25VF040, 512 kB: Invalid OPCODE 0x90, will not execute. Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for SST SST25VF040B.REMS, 512 kB: Invalid OPCODE 0x90, will not execute. Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P05, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P10, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Chip status register is 00 Found Winbond flash chip "W25Q80" (1024 kB, SPI) at physical address 0xfff00000. Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4014 Probing for Generic unknown SPI chip (REMS), 0 kB: Invalid OPCODE 0x90, will not execute. Found Winbond flash chip "W25Q80" (1024 kB, SPI). Restoring MMIO space at 0x7fb1c2a0a070 Restoring PCI config space for 00:1f:0 reg 0xdc Found chipset "Intel NM10". Enabling flash write... WARNING: Setting 0xdc from 0xa to 0xb on NM10 failed. New value is 0xa. WARNING: SPI Configuration Lockdown activated. PROBLEMS, continuing anyway Found Winbond flash chip "W25Q80" (1024 kB, SPI) at physical address 0xfff00000. Error: Image size doesn't match -------------- next part -------------- An HTML attachment was scrubbed... URL: From voskar at centrum.cz Sun Jan 22 23:25:46 2012 From: voskar at centrum.cz (=?UTF-8?B?VsOtdCDFoGthYmFu?=) Date: Sun, 22 Jan 2012 23:25:46 +0100 Subject: [flashrom] Support MB Gigabyte GA-EP31-DS3L Message-ID: <20120122232546.833BB5E2@centrum.cz> Chips: W28X80 and?SST25VF080B ? Vendor:?Gigabyte? Mainboard:?GA-EP31-DS3L Required option: none Status: OK ? Thank you for this program. It was very helful for me in reparing laptop BIOS via this mainboard. ? Vit Skraban Czech Republic? EU ? From prakashp at arcor.de Mon Jan 23 19:55:48 2012 From: prakashp at arcor.de (Prakash Punnoor) Date: Mon, 23 Jan 2012 19:55:48 +0100 Subject: [flashrom] Difference of factory bios and dumped image In-Reply-To: References: <6081648.skmm3Pho3G@graviton> <4EFEF742.1050001@arcor.de> Message-ID: <3329219.d0cpeqJqVP@graviton> On Saturday 31 December 2011 13:55:45 Idwer Vollering wrote: > 2011/12/31 Prakash Punnoor : > > On 31.12.2011 11:39, Paul Menzel wrote: > >> Am Samstag, den 31.12.2011, 10:55 +0100 schrieb Prakash Punnoor: > >>> flashrom kind of works on my system, but not with the factory > >>> images. If I read it out with flashrom and write it back with > >>> flashrom (also to a different chip) it works. The sizes of factory > >>> and dumped image are same but they are somewhat binary different. > >>> Any idea? The motherboard is Abit A-S78H. As I am playing around > >>> with coreboot - so far unsuccessfully - I want to know whether > >>> flashrom is writing the generated image correctly... I can upload > >>> both images somewhere if interested. This is flashrom output on my > >>> system: > >>> > >>> > >>> flashrom v0.9.4-r1395 on Linux 3.2.0-rc7+ (x86_64), built with > >>> libpci 3.1.7, GCC 4.5.2, little endian > >>> flashrom is free software, get the source code at > >>> http://www.flashrom.org > >>> > >>> Calibrating delay loop... OK. > >>> Found chipset "AMD SB700/SB710/SB750/SB850". Enabling flash write... > >>> OK. This chipset supports the following protocols: LPC, FWH, SPI. > >>> Found Macronix flash chip "MX25L8005" (1024 kB, SPI) at physical > >>> address 0xfff00000. > >>> No operations were specified. > >> > >> Unfortunately this question seems not be listed in the FAQ. Most of > >> the > >> time some areas differ because the MAC address and other configuration > >> data of the downloaded images differs [2]. I hope you mean the > >> downloaded image by factory/vendor image. > > > > To clarify: > > - Image I got from vendor web page: Flashed with flashrom won't work > > (machine doesn't POST). Flashed with awdflash works. > > Is the bootblock in the downloaded image intact/present? You can use > bios_extract: http://cgit.freedesktop.org/~libv/bios_extract > > What happens when you reset the CMOS/ESCD data after flashing with > flashrom? awdflash does that with the /cp parameter, see > http://www.plasma-online.de/textual/howto/flash_award.html For what is worth, I tried flashing dumped file and then factory bios on top. this worked, so I guess everythign is alright. I'l send a separate mail for inclusion in wiki. Regards, Prakash -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: From prakash at punnoor.de Mon Jan 23 19:59:25 2012 From: prakash at punnoor.de (Prakash Punnoor) Date: Mon, 23 Jan 2012 19:59:25 +0100 Subject: [flashrom] abit A-S78H: flashrom -V Message-ID: <1594080.sdzT76M9ea@graviton> Hi, after some intial confusion I can confirm that flashrom works nicely on my motherboard. Cheers, Prakash Dumps: flashrom -V flashrom v0.9.4-r1395 on Linux 3.3.0-rc1+ (x86_64), built with libpci 3.1.7, GCC 4.5.2, little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 1 usecs, 1596M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 999 us, 10000 myus = 10000 us, 4 myus = 4 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "." DMI string system-product-name: "." DMI string system-version: "." DMI string baseboard-manufacturer: "http://www.abit.com.tw/" DMI string baseboard-product-name: "A-S78H(RS780+SB700)" DMI string baseboard-version: "1.x " DMI string chassis-type: "Desktop" Found chipset "AMD SB700/SB710/SB750/SB850" with PCI ID 1002:439d. Enabling flash write... SPI base address is at 0xfec10000 AltSpiCSEnable=0, SpiRomEnable=1, AbortEnable=0 PrefetchEnSPIFromIMC=0, PrefetchEnSPIFromHost=1, SpiOpEnInLpcMode=1 SpiArbEnable=0, SpiAccessMacRomEn=1, SpiHostAccessRomEn=1, ArbWaitCount=0, SpiBridgeDisable=0, DropOneClkOnRd=0 NormSpeed is 33 MHz GPIO11 used for SPI_DO GPIO12 used for SPI_DI GPIO31 used for SPI_HOLD GPIO32 used for SPI_CS GPIO47 used for SPI_CLK SB700 IMC is not active. ROM strap override is not active OK. This chipset supports the following protocols: LPC, FWH, SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Chip status register is 00 Chip status register: Status Register Write Disable (SRWD) is not set Chip status register: Bit 6 is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Found Macronix flash chip "MX25L8005" (1024 kB, SPI) at physical address 0xfff00000. Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF010.REMS, 128 kB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25VF040.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST25LF040A.RES, 512 kB: probe_spi_res2: id1 0x13, id2 0x13 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2 0x13 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0x8a, id2 0xba, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P05.RES, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P10.RES, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0x4d, id2 0x49, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x67, id2 0x6c, id1 is normal flash content, id2 is normal flash content Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2014 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xc2, id2 0x13 No operations were specified. lspci -nnvvxxx 00:00.0 Host bridge [0600]: Advanced Micro Devices [AMD] RS780 Host Bridge [1022:9600] Subsystem: ABIT Computer Corp. Device [147b:a705] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- (64-bit, non-prefetchable) Capabilities: [c4] HyperTransport: Slave or Primary Interface Command: BaseUnitID=0 UnitCnt=12 MastHost- DefDir- DUL- Link Control 0: CFlE- CST- CFE- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [44] HyperTransport: MSI Mapping Enable+ Fixed+ Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (int gfx) [1022:9602] 00: 22 10 02 96 07 00 30 02 00 00 04 06 00 63 01 00 10: 00 00 00 00 00 00 00 00 00 01 01 44 e1 e1 20 02 20: c0 fd d0 fd 01 d8 f1 df 00 00 00 00 00 00 00 00 30: 00 00 00 00 44 00 00 00 00 00 00 00 ff 00 08 00 40: 00 00 00 00 08 b0 03 a8 00 00 00 00 22 10 02 96 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 0d 00 00 00 22 10 02 96 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:09.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4) [1022:9608] (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag+ RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us ClockPM- Surprise- LLActRep+ BwNot+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #9, PowerLimit 25.000W; Interlock- NoCompl+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet+ LinkState+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Not Supported, TimeoutDis- ARIFwd- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee0f00c Data: 4151 Capabilities: [b0] Subsystem: ABIT Computer Corp. Device [147b:a705] Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+ Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 Capabilities: [110 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Kernel driver in use: pcieport 00: 22 10 08 96 07 04 10 00 00 00 04 06 10 00 01 00 10: 00 00 00 00 00 00 00 00 00 02 02 00 d1 d1 00 00 20: b0 fd b0 fd a1 fd a1 fd 00 00 00 00 00 00 00 00 30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 01 58 03 c8 00 00 00 00 10 a0 42 01 20 80 00 00 60: 10 08 00 00 12 0c 30 00 40 00 11 70 80 0c 4c 00 70: 00 00 48 01 00 00 01 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 05 b0 01 00 0c f0 e0 fe 51 41 00 00 00 00 00 00 b0: 0d b8 00 00 7b 14 05 a7 08 00 03 a8 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:0a.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5) [1022:9609] (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag+ RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us ClockPM- Surprise- LLActRep+ BwNot+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #10, PowerLimit 25.000W; Interlock- NoCompl+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet+ LinkState+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Not Supported, TimeoutDis- ARIFwd- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee0f00c Data: 4159 Capabilities: [b0] Subsystem: ABIT Computer Corp. Device [147b:a705] Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+ Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 Capabilities: [110 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Kernel driver in use: pcieport 00: 22 10 09 96 07 04 10 00 00 00 04 06 10 00 01 00 10: 00 00 00 00 00 00 00 00 00 03 03 00 c1 c1 00 00 20: f0 fd f0 fd e1 fd e1 fd 00 00 00 00 00 00 00 00 30: 00 00 00 00 50 00 00 00 00 00 00 00 05 01 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 01 58 03 c8 00 00 00 00 10 a0 42 01 20 80 00 00 60: 10 08 00 00 12 0c 30 01 40 00 11 70 80 0c 54 00 70: 00 00 48 01 00 00 01 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 05 b0 01 00 0c f0 e0 fe 59 41 00 00 00 00 00 00 b0: 0d b8 00 00 7b 14 05 a7 08 00 03 a8 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:11.0 SATA controller [0106]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [1002:4391] (prog-if 01 [AHCI 1.0]) Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [1002:4391] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [54] HyperTransport: MSI Mapping Enable+ Fixed+ 00: 02 10 84 43 27 00 b0 02 00 01 04 06 00 40 81 00 10: 00 00 00 00 00 00 00 00 00 04 04 40 b0 b0 80 22 20: 90 fd 90 fd 80 fd 80 fd 00 00 00 00 00 00 00 00 30: 00 00 00 00 54 00 00 00 00 00 00 00 00 00 00 00 40: 2e 00 0c ff 00 00 00 00 0c 0f 3c d1 00 01 00 00 50: 01 00 00 00 08 00 03 a8 00 00 00 00 85 00 ff ff 60: ca 0e 17 00 ba d8 10 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 06 e0: 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:18.0 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration [1022:1200] Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- Kernel driver in use: k10temp 00: 22 10 03 12 00 00 10 00 00 00 00 06 00 00 80 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 40: 00 01 00 00 5c 00 b0 4a 00 00 00 00 00 00 00 00 50: ee 1d 40 9a 93 4c 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 04 00 24 34 00 00 00 30 51 80 01 60 70: 51 11 32 60 01 01 98 00 14 0c 20 00 0d 08 07 00 80: 81 e6 00 e6 e6 41 e6 01 08 00 00 00 00 40 40 00 90: 43 00 00 00 66 00 00 00 00 77 1b 01 00 00 00 00 a0: 00 08 1c a0 80 18 88 10 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 39 c5 04 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 26 0f 81 c8 16 18 00 03 28 63 47 01 e0: 00 00 00 00 30 1a 40 1c 59 7f 07 00 00 00 00 00 f0: 0f 00 10 00 00 00 00 00 00 00 00 00 53 0f 10 00 00:18.4 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Link Control [1022:1204] Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- [disabled] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Kernel driver in use: radeon Kernel modules: radeon 00: 02 10 10 96 07 00 10 00 00 00 00 03 10 00 80 00 10: 08 00 00 d8 01 ee 00 00 00 00 df fd 00 00 00 00 20: 00 00 00 00 00 00 c0 fd 00 00 00 00 7b 14 05 a7 30: 00 00 00 00 50 00 00 00 00 00 00 00 05 01 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 7b 14 05 a7 50: 01 a0 03 06 00 00 00 00 10 a0 12 00 a0 8f 00 00 60: 10 08 0a 00 01 0d 00 00 00 00 01 11 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 80: 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 05 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 01) Subsystem: Realtek Semiconductor Co., Ltd. TEG-ECTX Gigabit PCI-E Adapter [Trendnet] [10ec:8168] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- Capabilities: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- AERCap: First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn- Capabilities: [12c v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Capabilities: [148 v1] Device Serial Number 45-12-00-00-10-ec-81-68 Capabilities: [154 v1] Power Budgeting Kernel driver in use: r8169 00: ec 10 68 81 07 04 10 00 01 00 00 02 10 00 00 00 10: 01 de 00 00 00 00 00 00 04 f0 bf fd 00 00 00 00 20: 00 00 00 00 00 00 00 00 02 01 00 00 ec 10 68 81 30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 01 00 00 40: 01 48 c2 f7 00 00 00 00 03 50 00 00 29 81 ec 10 50: 05 60 83 00 0c f0 e0 fe 00 00 00 00 81 41 00 00 60: 10 84 01 00 23 7f 00 00 10 58 1a 00 41 f4 03 00 70: 40 00 11 10 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 09 00 4c 01 01 1c 02 00 fb ff ff 11 90: 08 30 00 00 7f e2 0f 00 8f a0 03 00 c3 00 00 00 a0: 02 28 ff 01 00 00 00 00 00 08 00 00 03 00 03 00 b0: 00 00 00 00 ff 3f ff 3f ff ff 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88E8056 PCI- E Gigabit Ethernet Controller [11ab:4364] (rev 14) Subsystem: ABIT Computer Corp. Device [147b:a705] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- From stefan.tauner at student.tuwien.ac.at Tue Jan 24 03:58:12 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 24 Jan 2012 03:58:12 +0100 Subject: [flashrom] abit A-S78H: flashrom -V In-Reply-To: <1594080.sdzT76M9ea@graviton> References: <1594080.sdzT76M9ea@graviton> Message-ID: <201201240258.q0O2wM9T015893@mail2.student.tuwien.ac.at> On Mon, 23 Jan 2012 19:59:25 +0100 Prakash Punnoor wrote: > Hi, > > after some intial confusion I can confirm that flashrom works nicely on my > motherboard. > Hello Prakash, thanks for your report, good to hear that it worked out for you in the end! I have marked the mainboard as supported and will commit that later together with other small changes. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 24 04:01:29 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 24 Jan 2012 04:01:29 +0100 Subject: [flashrom] Support MB Gigabyte GA-EP31-DS3L In-Reply-To: <20120122232546.833BB5E2@centrum.cz> References: <20120122232546.833BB5E2@centrum.cz> Message-ID: <201201240301.q0O31dCJ017384@mail2.student.tuwien.ac.at> On Sun, 22 Jan 2012 23:25:46 +0100 "V?t ?kaban" wrote: > > Chips: > W28X80 and?SST25VF080B > ? > Vendor:?Gigabyte? > Mainboard:?GA-EP31-DS3L > Required option: none > Status: OK > ? > Thank you for this program. It was very helful for me in reparing laptop BIOS via this mainboard. Hello V?t, thanks for your report! There are 3 different revisions of that board listed on the vendor page, which one is yours? Could you please also send the verbose output of flashrom running on it (just probing i.e. flashrom -V is enough, a full erase/write is always nicer though). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 24 04:18:19 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 24 Jan 2012 04:18:19 +0100 Subject: [flashrom] Intel D425KT write not working In-Reply-To: <23FBAA1572EC46AA8B93DDBB0EFA05CA@MacPro> References: <23FBAA1572EC46AA8B93DDBB0EFA05CA@MacPro> Message-ID: <201201240318.q0O3IUIP025269@mail2.student.tuwien.ac.at> On Sun, 22 Jan 2012 20:00:17 +0100 "Marek Zakrzewski" wrote: > Write is not working, module is 1024kB, ROM is 2048kB. > > [?] > Found chipset "Intel NM10". Enabling flash write... WARNING: Setting 0xdc > from 0xa to 0xb on NM10 failed. New value is 0xa. > > WARNING: SPI Configuration Lockdown activated. > > PROBLEMS, continuing anyway > > Found Winbond flash chip "W25Q80" (1024 kB, SPI) at physical address > 0xfff00000. > > Error: Image size doesn't match > Hello Marek, thanks for your report! Please do not send html(-only) message to mailing lists. The board was locked down by intel so that only bios code can access the flash chip. There may or may not be a way to enable access to the host software (like flashrom), but this would need to be reverse engineered. Regarding the image size: flashrom just writes the file it gets as input to the device. It must be prepared so that it fits, else it wont continue as you have seen. Maybe your image contains actually 2 firmwares or is the wrong one... I have added your board to our list of (un)supported board for now and will commit that later. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 24 04:22:13 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 24 Jan 2012 04:22:13 +0100 Subject: [flashrom] Chip SST25VF040 @ flashrom v0.9.4-r1486 In-Reply-To: References: Message-ID: <201201240322.q0O3MNN0026943@mail2.student.tuwien.ac.at> On Sun, 22 Jan 2012 11:33:52 +0100 Marc Kolly wrote: > flashrom v0.9.4-r1486 on Linux 2.6.32-37-generic-pae (i686), built with > [?] > Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0xbf, id2 0x44 > Chip status register is 00 > Chip status register: Block Protect Write Disable (BPL) is not set > Chip status register: Auto Address Increment Programming (AAI) is not set > Chip status register: Bit 5 / Block Protect 3 (BP3) is not set > Chip status register: Bit 4 / Block Protect 2 (BP2) is not set > Chip status register: Bit 3 / Block Protect 1 (BP1) is not set > Chip status register: Bit 2 / Block Protect 0 (BP0) is not set > Chip status register: Write Enable Latch (WEL) is not set > Chip status register: Write In Progress (WIP/BUSY) is not set > [?] > This flash part has status UNTESTED for operations: ERASE WRITE [?] > Reading flash... done. Hello Marc, thanks for your report! Your log does only show a successful read, but this was already tested for this chip. Did you also try erase and write? If you have not and plan to, please store the backup you made with -r safely. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 24 04:29:44 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 24 Jan 2012 04:29:44 +0100 Subject: [flashrom] ASUS M4N78 PRO -- flashrom -V In-Reply-To: <20120121183615.B5480843@centrum.cz> References: <20120121183615.B5480843@centrum.cz> Message-ID: <201201240329.q0O3TsEf030469@mail2.student.tuwien.ac.at> On Sat, 21 Jan 2012 18:36:15 +0100 "Pavel Stehl?k" wrote: > ? > Bios written and read sueccessfully. (On Xubuntu 11.10 Oneiric) > ????????????????????????? Thanks for your work on this utility, Pavel Stehlik. Hello Pavel, thanks for your report! I have marked the mainboard as tested and will commit that later together with other small changes. > P.S. : Possibility to rewrite Macronix_MX25L8005 status register (user value, 00->FF or something like that) would be welcome. > I wont to write-protect my BIOS and besides connecting pin 3(!WP) to gnd, setting of some bits of SR is neccessary. without looking at the datasheet i presume that connecting !WP to ground is enough to write protect the whole chip. The lock bits in the status register are a sofware write protection that works independently of the hardware protection (normally). Some chips indicate the HW protection status in the SR though (and flashrom prints it sometimes). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From zakrzewskim at wp.pl Tue Jan 24 11:54:07 2012 From: zakrzewskim at wp.pl (Marek Zakrzewski) Date: Tue, 24 Jan 2012 11:54:07 +0100 Subject: [flashrom] Intel D425KT write not working In-Reply-To: <201201240318.q0O3IUIP025269@mail2.student.tuwien.ac.at> References: <23FBAA1572EC46AA8B93DDBB0EFA05CA@MacPro> <201201240318.q0O3IUIP025269@mail2.student.tuwien.ac.at> Message-ID: Hi, When reading from BIOS I got 1024kB file. Maybe I will send you both files so you can compare them ? Thanks, Marek -----Original Message----- From: Stefan Tauner [mailto:stefan.tauner at student.tuwien.ac.at] Sent: Tuesday, January 24, 2012 4:18 AM To: Marek Zakrzewski Cc: flashrom at flashrom.org Subject: Re: [flashrom] Intel D425KT write not working On Sun, 22 Jan 2012 20:00:17 +0100 "Marek Zakrzewski" wrote: > Write is not working, module is 1024kB, ROM is 2048kB. > > [.] > Found chipset "Intel NM10". Enabling flash write... WARNING: Setting 0xdc > from 0xa to 0xb on NM10 failed. New value is 0xa. > > WARNING: SPI Configuration Lockdown activated. > > PROBLEMS, continuing anyway > > Found Winbond flash chip "W25Q80" (1024 kB, SPI) at physical address > 0xfff00000. > > Error: Image size doesn't match > Hello Marek, thanks for your report! Please do not send html(-only) message to mailing lists. The board was locked down by intel so that only bios code can access the flash chip. There may or may not be a way to enable access to the host software (like flashrom), but this would need to be reverse engineered. Regarding the image size: flashrom just writes the file it gets as input to the device. It must be prepared so that it fits, else it wont continue as you have seen. Maybe your image contains actually 2 firmwares or is the wrong one... I have added your board to our list of (un)supported board for now and will commit that later. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From voskar at centrum.cz Wed Jan 25 21:39:15 2012 From: voskar at centrum.cz (=?UTF-8?B?VsOtdCDFoGthYmFu?=) Date: Wed, 25 Jan 2012 21:39:15 +0100 Subject: [flashrom] Support MB Gigabyte GA-EP31-DS3L In-Reply-To: <201201240301.q0O31dCJ017384@mail2.student.tuwien.ac.at> References: <20120122232546.833BB5E2@centrum.cz> <201201240301.q0O31dCJ017384@mail2.student.tuwien.ac.at> Message-ID: <20120125213915.8FA776C3@centrum.cz> Revision 2.1 I sending screenshot and verbose text document with SST25VF080B. If you would like to get information about W28X80, I can do it. ? Vit Skraban ______________________________________________________________ > Od: "Stefan Tauner" > Komu: "V?t ?kaban" > Datum: 24.01.2012 04:01 > P?edm?t: Re: [flashrom] Support MB Gigabyte GA-EP31-DS3L > On Sun, 22 Jan 2012 23:25:46 +0100 "V?t ?kaban" wrote: > > Chips: > W28X80 and?SST25VF080B > ? > Vendor:?Gigabyte? > Mainboard:?GA-EP31-DS3L > Required option: none > Status: OK > ? > Thank you for this program. It was very helful for me in reparing laptop BIOS via this mainboard. Hello V?t, thanks for your report! There are 3 different revisions of that board listed on the vendor page, which one is yours? Could you please also send the verbose output of flashrom running on it (just probing i.e. flashrom -V is enough, a full erase/write is always nicer though). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: flash.txt URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: flash.png Type: image/png Size: 359780 bytes Desc: not available URL: From stefan.tauner at student.tuwien.ac.at Fri Jan 27 06:55:55 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Fri, 27 Jan 2012 06:55:55 +0100 Subject: [flashrom] Support MB Gigabyte GA-EP31-DS3L In-Reply-To: <20120125213915.8FA776C3@centrum.cz> References: <20120122232546.833BB5E2@centrum.cz> <201201240301.q0O31dCJ017384@mail2.student.tuwien.ac.at> <20120125213915.8FA776C3@centrum.cz> Message-ID: <201201270555.q0R5tsIi011454@mail2.student.tuwien.ac.at> On Wed, 25 Jan 2012 21:39:15 +0100 "V?t ?kaban" wrote: > Revision 2.1 > I sending screenshot and verbose text document with SST25VF080B. > If you would like to get information about W28X80, I can do it. Hello V?t, thanks for the clarification! I have marked the mainboard as tested and will commit that later together with other small changes. Please do not send further screenshots to the mailing list. They dont offer any advantages over text logs, but are much bigger. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Fri Jan 27 07:03:44 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Fri, 27 Jan 2012 07:03:44 +0100 Subject: [flashrom] Intel D425KT write not working In-Reply-To: References: <23FBAA1572EC46AA8B93DDBB0EFA05CA@MacPro> <201201240318.q0O3IUIP025269@mail2.student.tuwien.ac.at> Message-ID: <201201270603.q0R63ht1014111@mail2.student.tuwien.ac.at> On Tue, 24 Jan 2012 11:54:07 +0100 "Marek Zakrzewski" wrote: > Hi, > > When reading from BIOS I got 1024kB file. > > Maybe I will send you both files so you can compare them ? > please do not send any copyrighted files (this includes firmware blobs) to the mailing list, because we are not allowed to host them. you can upload the files to our pastebin at http://paste.flashrom.org where they will be available for developers without infringing any copyrights (more or less :). we are pretty short on man power at the moment and i dont think anyone but you is interested in this board, so i fear you have to figure it out yourself. you can try bugging us on IRC though, i am not sure everyone capable is reading the mailing list... -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From mpie at msc-ge.com Fri Jan 27 10:14:21 2012 From: mpie at msc-ge.com (Markus Pietrek) Date: Fri, 27 Jan 2012 10:14:21 +0100 Subject: [flashrom] [PATCH] TunnelCreek uses ICH7 SPI instead of poulsbo Message-ID: <4F226AED.9040507@msc-ge.com> While LPC/FHW is not supported on TunnelCreek, SPI is (see TunnelCreek's HW ref manual 2.13) The SPI controller is compatible to ICH7 Reading has been tested on Q7_TCTC using the command "flashrom -p internal:laptop=force_I_want_a_brick -r /tmp/test.bin" Writing has not been verified! --- chipset_enable.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/chipset_enable.c b/chipset_enable.c index 21990f6..dc97703 100644 --- a/chipset_enable.c +++ b/chipset_enable.c @@ -1217,7 +1217,7 @@ const struct penable chipset_enables[] = { {0x8086, 0x7110, OK, "Intel", "PIIX4/4E/4M", enable_flash_piix4}, {0x8086, 0x7198, OK, "Intel", "440MX", enable_flash_piix4}, {0x8086, 0x8119, OK, "Intel", "SCH Poulsbo", enable_flash_poulsbo}, - {0x8086, 0x8186, NT, "Intel", "Atom E6xx(T)/Tunnel Creek", enable_flash_poulsbo}, + {0x8086, 0x8186, NT, "Intel", "Atom E6xx(T)/Tunnel Creek", enable_flash_ich7}, #endif {}, }; -- 1.7.4.1 Es gelten unsere Allgemeinen Leistungsbedingungen die unter http://www.msc-ge.com/alb abrufbar sind. Our standard terms and conditions apply which are available under http://www.msc-ge.com/alb . MSC Vertriebs GmbH Sitz der Gesellschaft: Industriestrasse 16, 76297 Stutensee Handelsregister: Mannheim, HRB Nr. 10 3631 Gesch?ftsf?hrung: Manfred Schwarztrauber, Lothar K?mmerlin, R?diger Kuhn, Silvano Geissler Umsatzsteuer ID Nr.: DE 143 585 507 WEEE Reg. Nr. : DE 31011852 Gleichmann & Co. Electronics GmbH Sitz der Gesellschaft: Schraderstrasse 44, 67227 Frankenthal Handelsregister: Ludwigshafen, HRB Nr. 21305 Gesch?ftsf?hrung: Manfred Schwarztrauber, Thomas Klein Umsatzsteuer ID Nr. : DE 148 421 329 WEEE Reg. Nr.: DE 72277043 Diese E-Mail enth?lt vertrauliche und/ oder rechtlich gesch?tzte Informationen. Wenn Sie nicht der beabsichtigte Empf?nger sind, informieren Sie bitte sofort den Absender und l?schen Sie diese E-Mail. The information contained in this message is confidential and/ or protected by law. If you are not the intended recipient, please contact the sender and delete this message. -------------- next part -------------- A non-text attachment was scrubbed... Name: EN_H_2_S_219.gif Type: image/gif Size: 172462 bytes Desc: not available URL: From paulepanter at users.sourceforge.net Fri Jan 27 11:12:35 2012 From: paulepanter at users.sourceforge.net (Paul Menzel) Date: Fri, 27 Jan 2012 11:12:35 +0100 Subject: [flashrom] [PATCH] TunnelCreek uses ICH7 SPI instead of poulsbo In-Reply-To: <4F226AED.9040507@msc-ge.com> References: <4F226AED.9040507@msc-ge.com> Message-ID: <1327659155.4408.4.camel@mattotaupa> Dear Markus, thank you for the patch. Am Freitag, den 27.01.2012, 10:14 +0100 schrieb Markus Pietrek: > While LPC/FHW is not supported on TunnelCreek, SPI is (see TunnelCreek's > HW ref manual 2.13) > The SPI controller is compatible to ICH7 > > Reading has been tested on Q7_TCTC using the command "flashrom -p > internal:laptop=force_I_want_a_brick -r /tmp/test.bin" > Writing has not been verified! Before the patch can be submitted could you please send the output of the command above (with `-V` added) to the list, put the URL to the archive entry to the commit message and add your Signed-off-by line [1]? That would be awesome. Since you have tested it, please add Acked-by: Paul Menzel to the commit message, although I am puzzled why this entry has been added in the first place. And last but not least, your MUA Thunderbird mangled the patch by adding automatic line breaks. So please turn those of when resending the patch. > --- > chipset_enable.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/chipset_enable.c b/chipset_enable.c > index 21990f6..dc97703 100644 > --- a/chipset_enable.c > +++ b/chipset_enable.c > @@ -1217,7 +1217,7 @@ const struct penable chipset_enables[] = { > {0x8086, 0x7110, OK, "Intel", "PIIX4/4E/4M", enable_flash_piix4}, > {0x8086, 0x7198, OK, "Intel", "440MX", enable_flash_piix4}, > {0x8086, 0x8119, OK, "Intel", "SCH Poulsbo", enable_flash_poulsbo}, > - {0x8086, 0x8186, NT, "Intel", "Atom E6xx(T)/Tunnel Creek", enable_flash_poulsbo}, > + {0x8086, 0x8186, NT, "Intel", "Atom E6xx(T)/Tunnel Creek", enable_flash_ich7}, > #endif > {}, > }; Thanks, Paul [1] http://flashrom.org/Development_Guidelines -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From zakrzewskim at wp.pl Fri Jan 27 12:22:23 2012 From: zakrzewskim at wp.pl (Marek Zakrzewski) Date: Fri, 27 Jan 2012 12:22:23 +0100 Subject: [flashrom] Intel D425KT write not working In-Reply-To: <201201270603.q0R63ht1014111@mail2.student.tuwien.ac.at> References: <23FBAA1572EC46AA8B93DDBB0EFA05CA@MacPro><201201240318.q0O3IUIP025269@mail2.student.tuwien.ac.at> <201201270603.q0R63ht1014111@mail2.student.tuwien.ac.at> Message-ID: -----Original Message----- From: Stefan Tauner [mailto:stefan.tauner at student.tuwien.ac.at] Sent: Friday, January 27, 2012 7:04 AM To: Marek Zakrzewski Cc: flashrom at flashrom.org Subject: Re: [flashrom] Intel D425KT write not working >please do not send any copyrighted files (this includes firmware blobs) >to the mailing list, because we are not allowed to host them. you can >upload the files to our pastebin at >http://paste.flashrom.org where they will be available for developers >without infringing any copyrights (more or less :). >we are pretty short on man power at the moment and i dont think anyone >but you is interested in this board, so i fear you have to figure it >out yourself. you can try bugging us on IRC though, i am not sure >everyone capable is reading the mailing list... Done: http://paste.flashrom.org/view.php?id=1027 The latest BIOS can be downloaded from here: http://downloadmirror.intel.com/20810/eng/MW0110P.BIO Best regards, Marek From stefan.tauner at student.tuwien.ac.at Fri Jan 27 14:02:28 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Fri, 27 Jan 2012 14:02:28 +0100 Subject: [flashrom] [PATCH] TunnelCreek uses ICH7 SPI instead of poulsbo In-Reply-To: <4F226AED.9040507@msc-ge.com> References: <4F226AED.9040507@msc-ge.com> Message-ID: <201201271302.q0RD2NTi013595@mail2.student.tuwien.ac.at> On Fri, 27 Jan 2012 10:14:21 +0100 "Markus Pietrek" wrote: > While LPC/FHW is not supported on TunnelCreek, SPI is (see TunnelCreek's > HW ref manual 2.13) > The SPI controller is compatible to ICH7 > > Reading has been tested on Q7_TCTC using the command "flashrom -p > internal:laptop=force_I_want_a_brick -r /tmp/test.bin" > Writing has not been verified! i beg to differ about tunnelcreek's lpc capabilities: "The Intel? AtomTM Processor E6xx Series implements an LPC interface as described in the LPC1.1 Specification." (from Intel? AtomTM Processor E6xx Series Datasheet (324208-003US), 1.3.8) more interestingly is that there was already code added to flashrom to support tunnelcreek. and most interestingly this was done by one of your colleagues ;) i have CCed ingo this email. please see commit r1430 and http://www.flashrom.org/pipermail/flashrom/2011-September/007823.html i have not checked the datasheet and/or the code of r1430 yet. it certainly can be simplified/unified with the other init functions and i have it on my todo list (at the end of it though). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From ifel at msc-ge.com Fri Jan 27 15:50:04 2012 From: ifel at msc-ge.com (Feldschmid, Ingo) Date: Fri, 27 Jan 2012 15:50:04 +0100 Subject: [flashrom] [PATCH] TunnelCreek uses ICH7 SPI instead of poulsbo In-Reply-To: <201201271302.q0RD2NTi013595@mail2.student.tuwien.ac.at> References: <4F226AED.9040507@msc-ge.com> <201201271302.q0RD2NTi013595@mail2.student.tuwien.ac.at> Message-ID: Yeah, scattered development centers :-) We already had an internal discussion, and would like to keep my (older) submitted fix, since the Tunnel Creek and the ICH7 have different bit mapping for the flash boot configuration. Best regards, Ingo Es gelten unsere Allgemeinen Leistungsbedingungen die unter http://www.msc-ge.com/alb abrufbar sind. Our standard terms and conditions apply which are available under http://www.msc-ge.com/alb . MSC Vertriebs GmbH Sitz der Gesellschaft: Industriestrasse 16, 76297 Stutensee Handelsregister: Mannheim, HRB Nr. 10 3631 Gesch?ftsf?hrung: Manfred Schwarztrauber, Lothar K?mmerlin, R?diger Kuhn, Silvano Geissler Umsatzsteuer ID Nr.: DE 143 585 507 WEEE Reg. Nr. : DE 31011852 Gleichmann & Co. Electronics GmbH Sitz der Gesellschaft: Schraderstrasse 44, 67227 Frankenthal Handelsregister: Ludwigshafen, HRB Nr. 21305 Gesch?ftsf?hrung: Manfred Schwarztrauber, Thomas Klein Umsatzsteuer ID Nr. : DE 148 421 329 WEEE Reg. Nr.: DE 72277043 Diese E-Mail enth?lt vertrauliche und/ oder rechtlich gesch?tzte Informationen. Wenn Sie nicht der beabsichtigte Empf?nger sind, informieren Sie bitte sofort den Absender und l?schen Sie diese E-Mail. The information contained in this message is confidential and/ or protected by law. If you are not the intended recipient, please contact the sender and delete this message. -----Urspr?ngliche Nachricht----- Von: Stefan Tauner [mailto:stefan.tauner at student.tuwien.ac.at] Gesendet: Freitag, 27. Januar 2012 14:02 An: Pietrek, Markus Cc: flashrom at flashrom.org; Feldschmid, Ingo Betreff: Re: [flashrom] [PATCH] TunnelCreek uses ICH7 SPI instead of poulsbo On Fri, 27 Jan 2012 10:14:21 +0100 "Markus Pietrek" wrote: > While LPC/FHW is not supported on TunnelCreek, SPI is (see > TunnelCreek's HW ref manual 2.13) The SPI controller is compatible to > ICH7 > > Reading has been tested on Q7_TCTC using the command "flashrom -p > internal:laptop=force_I_want_a_brick -r /tmp/test.bin" > Writing has not been verified! i beg to differ about tunnelcreek's lpc capabilities: "The Intel? AtomTM Processor E6xx Series implements an LPC interface as described in the LPC1.1 Specification." (from Intel? AtomTM Processor E6xx Series Datasheet (324208-003US), 1.3.8) more interestingly is that there was already code added to flashrom to support tunnelcreek. and most interestingly this was done by one of your colleagues ;) i have CCed ingo this email. please see commit r1430 and http://www.flashrom.org/pipermail/flashrom/2011-September/007823.html i have not checked the datasheet and/or the code of r1430 yet. it certainly can be simplified/unified with the other init functions and i have it on my todo list (at the end of it though). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner -------------- next part -------------- A non-text attachment was scrubbed... Name: EN_H_2_S_219.gif Type: image/gif Size: 172462 bytes Desc: not available URL: From vidwer at gmail.com Fri Jan 27 18:11:48 2012 From: vidwer at gmail.com (Idwer Vollering) Date: Fri, 27 Jan 2012 18:11:48 +0100 Subject: [flashrom] Board identification patch for the MSC Q7 Tunnel Creek board Message-ID: I have stripped the "embedded world 2012" banner. -- From: "Feldschmid, Ingo" To: Cc: Date: Fri, 27 Jan 2012 15:05:22 +0100 Subject: [flashrom] Board identification patch for the MSC Q7 Tunnel Creek board Hi, **** ** ** When trying to flash the bios chip on our Tunnel Creek module, there always is the ?you may be running flashrom on an unsupported laptop? warning. Since our board is neither unsupported nor a laptop, I would love to patch that. **** ** ** Basically, I added identification for our module to the board_matches list for phase P2, which is just before the laptop / laptop ok check. In the board function that is called from this list, I just set the global variable ?is_laptop? to zero. This will prevent the laptop warning for tunnel creek boards which have the dmi string ?Q7-TCTC?. **** ** ** I am not sure if this mechanism is the correct way to do this, since entries in this lists are normally used to execute board-specific flash-chip-enable functions. **** ** ** Of course, an easier path would be to just set the chassis information to something like ?Desktop?, but we are not building complete boards, just a COM (Computer-On-Module). Therefore, the module could be used in all different kinds of chassis, but the flash chip update mechanism would always work, since everything relevant is on the module. **** ** ** The attached patch has been built against flashrom trunk version 1486. **** I have also included two flashrom logs, just to prove that we can flawlessly read and write the bios flash chip on our module. **** ** ** Signed-off-by: Ingo Feldschmid **** ** ** Best regards,**** Ingo**** ** ** Es gelten unsere Allgemeinen Leistungsbedingungen die unter http://www.msc-ge.com/alb abrufbar sind. Our standard terms and conditions apply which are available under http://www.msc-ge.com/alb. MSC Vertriebs GmbH Sitz der Gesellschaft: Industriestrasse 16, 76297 Stutensee Handelsregister: Mannheim, Germany, HRB No. 10 3631 Geschaftsfuhrung: Manfred Schwarztrauber, Lothar Kummerlin, Rudiger Kuhn, Silvano Geissler Umsatzsteuer ID Nr.: DE 143 585 507 WEEE Reg. Nr.: DE 31011852 Gleichmann & Co. Electronics GmbH Sitz der Gesellschaft: Schraderstrasse 44, 67227 Frankenthal Handelsregister: Ludwigshafen, Germany, HRB No. 21305 Geschaftsfuhrung: Manfred Schwarztrauber, Thomas Klein Umsatzsteuer ID Nr.: DE 148 421 329 WEEE Reg. Nr.: DE 72277043 ------------------------------ Diese E-Mail enthalt vertrauliche und/ oder rechtlich geschutzte Informationen. Wenn Sie nicht der beabsichtigte Empfanger sind, informieren Sie bitte sofort den Absender und loschen Sie diese E-Mail. The information contained in this message is confidential and/ or protected by law. If you are not the intended recipient, please contact the sender and delete this message. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- flashrom v0.9.4-r1486 on Linux 3.1.1-ifel-01 (i686), built with libpci 3.1.7, GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585], little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 3 usecs, 498M loops per second, 10 myus = 12 us, 100 myus = 101 us, 1000 myus = 1001 us, 10000 myus = 10018 us, 12 myus = 13 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To be filled by O.E.M." DMI string system-product-name: "To be filled by O.E.M." DMI string system-version: "To be filled by O.E.M." DMI string baseboard-manufacturer: "MSC Vertriebs GmbH" DMI string baseboard-product-name: "Q7-TCTC" DMI string baseboard-version: "To be filled by O.E.M." DMI string chassis-type: "Other" DMI chassis-type is not specific enough. Found chipset "Intel Atom E6xx(T)/Tunnel Creek" with PCI ID 8086:8186. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: enabled, BIOS_CNTL is 0x9 BIOS Prefetch Enable: disabled, Root Complex Register Block address = 0xfed1c000 SPIBAR = 0xfed1c000 + 0x3020 0x00: 0x0004 (SPIS) 0x02: 0x41c0 (SPIC) 0x04: 0x00000000 (SPIA) 0x08: 0xbf4141bf (SPID0) 0x0c: 0x00000000 (SPID0+4) 0x10: 0x00000000 (SPID1) 0x14: 0x00000000 (SPID1+4) 0x18: 0x00000000 (SPID2) 0x1c: 0x00000000 (SPID2+4) 0x20: 0x00000000 (SPID3) 0x24: 0x00000000 (SPID3+4) 0x28: 0x00000000 (SPID4) 0x2c: 0x00000000 (SPID4+4) 0x30: 0x00000000 (SPID5) 0x34: 0x00000000 (SPID5+4) 0x38: 0x00000000 (SPID6) 0x3c: 0x00000000 (SPID6+4) 0x40: 0x00000000 (SPID7) 0x44: 0x00000000 (SPID7+4) 0x50: 0x00000000 (BBAR) 0x54: 0x5006 (PREOP) 0x56: 0x063b (OPTYPE) 0x58: 0x05200302 (OPMENU) 0x5c: 0x0050019f (OPMENU+4) 0x60: 0x00000000 (PBR0) 0x64: 0x00000000 (PBR1) 0x68: 0x00000000 (PBR2) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done SPI Read Configuration: prefetching disabled, caching enabled, OK. The following protocols are supported: Parallel, LPC, FWH, SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25LF040A, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 probe_spi_res2: id1 0xbf, id2 0x41 Probing for SST SST25LF080A, 1024 kB: probe_spi_res2: id1 0xbf, id2 0x41 Probing for SST SST25VF010, 128 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Chip status register is 00 Chip status register: Block Protect Write Disable (BPL) is not set Chip status register: Auto Address Increment Programming (AAI) is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Resulting block protection : none Found SST flash chip "SST25VF016B" (2048 kB, SPI) at physical address 0xffe00000. Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P05, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P10, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for AMD Am29F010A/B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BB, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F016D, 2048 kB: probe_jedec_common: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F080B, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV001BB, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV001BT, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV002BB, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV002BT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV004BB, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV004BT, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV008BB, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV008BT, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV081B, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C010A, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49BV512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F002(N), 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F002(N)T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Catalyst CAT28F512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Bright BM29F040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for EMST F49B002UA, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F002(A)(N)B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F002(A)(N)T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F004BC, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F004TC, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F400BC, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for Fujitsu MBM29F400TC, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for Hyundai HY29F002T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Hyundai HY29F002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Hyundai HY29F040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F001BN/BX-B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F001BN/BX-T, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F008S3/S5/SC, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001T, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002(N)B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002(N)T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29LV040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51000B, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51000T, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51400B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51400T, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51000, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51001, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51002, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002T, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002B, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Sharp LH28F008BJT-BTLZ1, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST28SF040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29EE010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29LE010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29EE020A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST29LE020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF010A, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF020A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF080, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M29F040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F400BB, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for ST M29F400BT, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for ST M29W010B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29W040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29W512B, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for TI TMS29F002RB, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for TI TMS29F002RT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012-old, 128 kB: Old Winbond W29* probe method disabled because the probing sequence puts the AMIC A49LF040A in a funky state. Use 'flashrom -c W29C010(M)/W29C011A/W29EE011/W29EE012-old' if you have a board with such a chip. Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C020(C)/W29C022, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C040/P, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39L040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49F002U/N, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49F020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Found SST flash chip "SST25VF016B" (2048 kB, SPI). Reading flash... done. Restoring MMIO space at 0xb74c9070 Restoring MMIO space at 0xb74c907c Restoring MMIO space at 0xb74c9078 Restoring MMIO space at 0xb74c9076 Restoring MMIO space at 0xb74c9074 -------------- next part -------------- A non-text attachment was scrubbed... Name: flashrom_patch_msc_q7tctc.diff Type: application/octet-stream Size: 1389 bytes Desc: not available URL: -------------- next part -------------- flashrom v0.9.4-r1486 on Linux 3.1.1-ifel-01 (i686), built with libpci 3.1.7, GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585], little endian flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop... OS timer resolution is 2 usecs, 498M loops per second, 10 myus = 12 us, 100 myus = 102 us, 1000 myus = 1001 us, 10000 myus = 10028 us, 8 myus = 10 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "To be filled by O.E.M." DMI string system-product-name: "To be filled by O.E.M." DMI string system-version: "To be filled by O.E.M." DMI string baseboard-manufacturer: "MSC Vertriebs GmbH" DMI string baseboard-product-name: "Q7-TCTC" DMI string baseboard-version: "To be filled by O.E.M." DMI string chassis-type: "Other" DMI chassis-type is not specific enough. Found chipset "Intel Atom E6xx(T)/Tunnel Creek" with PCI ID 8086:8186. Enabling flash write... BIOS Lock Enable: disabled, BIOS Write Enable: enabled, BIOS_CNTL is 0x9 BIOS Prefetch Enable: disabled, Root Complex Register Block address = 0xfed1c000 SPIBAR = 0xfed1c000 + 0x3020 0x00: 0x0004 (SPIS) 0x02: 0x7f90 (SPIC) 0x04: 0x001fffc0 (SPIA) 0x08: 0x8dfbf6e9 (SPID0) 0x0c: 0x000024a4 (SPID0+4) 0x10: 0x9b8d0000 (SPID1) 0x14: 0x00000000 (SPID1+4) 0x18: 0xffffffff (SPID2) 0x1c: 0xffffffff (SPID2+4) 0x20: 0xffffffff (SPID3) 0x24: 0xffffffff (SPID3+4) 0x28: 0x45494550 (SPID4) 0x2c: 0xfffc63dc (SPID4+4) 0x30: 0x9b8d0010 (SPID5) 0x34: 0x00000000 (SPID5+4) 0x38: 0x23e9090f (SPID6) 0x3c: 0x00ffffff (SPID6+4) 0x40: 0x00008000 (SPID7) 0x44: 0xfffc0000 (SPID7+4) 0x50: 0x00000000 (BBAR) 0x54: 0x5006 (PREOP) 0x56: 0x063b (OPTYPE) 0x58: 0x05200302 (OPMENU) 0x5c: 0x0050019f (OPMENU+4) 0x60: 0x00000000 (PBR0) 0x64: 0x00000000 (PBR1) 0x68: 0x00000000 (PBR2) Programming OPCODES... program_opcodes: preop=5006 optype=463b opmenu=05d80302c79f0190 done SPI Read Configuration: prefetching disabled, caching enabled, OK. The following protocols are supported: Parallel, LPC, FWH, SPI. Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DF641, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25LF040A, 512 kB: program_opcodes: preop=5006 optype=462b opmenu=05ab0302c79f0190 on-the-fly OPCODE (0xAB) re-programmed, op-pos=2 probe_spi_res2: id1 0xbf, id2 0x41 Probing for SST SST25LF080A, 1024 kB: probe_spi_res2: id1 0xbf, id2 0x41 Probing for SST SST25VF010, 128 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Chip status register is 00 Chip status register: Block Protect Write Disable (BPL) is not set Chip status register: Auto Address Increment Programming (AAI) is not set Chip status register: Bit 5 / Block Protect 3 (BP3) is not set Chip status register: Bit 4 / Block Protect 2 (BP2) is not set Chip status register: Bit 3 / Block Protect 1 (BP1) is not set Chip status register: Bit 2 / Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Resulting block protection : none Found SST flash chip "SST25VF016B" (2048 kB, SPI) at physical address 0xffe00000. Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P05, 64 kB: Ignoring RES in favour of RDID. Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P10, 128 kB: Ignoring RES in favour of RDID. Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xbf, id2 0x2541 Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xbf, id2 0x41 Probing for AMD Am29F010A/B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BB, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F016D, 2048 kB: probe_jedec_common: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F080B, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV001BB, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV001BT, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV002BB, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV002BT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV004BB, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV004BT, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV008BB, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV008BT, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV081B, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C010A, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT29C040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49BV512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F002(N), 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F002(N)T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Catalyst CAT28F512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Bright BM29F040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for EMST F49B002UA, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F002(A)(N)B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F002(A)(N)T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F004BC, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F004TC, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F400BC, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for Fujitsu MBM29F400TC, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for Hyundai HY29F002T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Hyundai HY29F002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Hyundai HY29F040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F001BN/BX-B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F001BN/BX-T, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F008S3/S5/SC, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001T, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002(N)B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002(N)T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29LV040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51000B, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51000T, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51400B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51400T, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51000, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51001, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29LC51002, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002T, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002B, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Sharp LH28F008BJT-BTLZ1, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST28SF040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29EE010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29LE010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29EE020A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST29LE020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF010A, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF020A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST39SF040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF512, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF010, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST39VF080, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M29F040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F400BB, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for ST M29F400BT, 512 kB: probe_m29f400bt: id1 0xff, id2 0xff Probing for ST M29W010B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29W040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29W512B, 64 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for TI TMS29F002RB, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for TI TMS29F002RT, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012-old, 128 kB: Old Winbond W29* probe method disabled because the probing sequence puts the AMIC A49LF040A in a funky state. Use 'flashrom -c W29C010(M)/W29C011A/W29EE011/W29EE012-old' if you have a board with such a chip. Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C020(C)/W29C022, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C040/P, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39L040, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49F002U/N, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49F020, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Found SST flash chip "SST25VF016B" (2048 kB, SPI). Flash image seems to be a legacy BIOS. Disabling coreboot-related checks. Reading old flash chip contents... done. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x000fff:E program_opcodes: preop=5006 optype=463b opmenu=05200302c79f0190 on-the-fly OPCODE (0x20) re-programmed, op-pos=2 W program_opcodes: preop=5006 optype=461b opmenu=05ad0302c79f0190 on-the-fly OPCODE (0xAD) re-programmed, op-pos=2 program_opcodes: preop=5006 optype=461b opmenu=05040302c79f0190 on-the-fly OPCODE (0x04) re-programmed, op-pos=2 , 0x001000-0x001fff:S, 0x002000-0x002fff:S, 0x003000-0x003fff:S, 0x004000-0x004fff:S, 0x005000-0x005fff:S, 0x006000-0x006fff:S, 0x007000-0x007fff:S, 0x008000-0x008fff:S, 0x009000-0x009fff:S, 0x00a000-0x00afff:S, 0x00b000-0x00bfff:S, 0x00c000-0x00cfff:S, 0x00d000-0x00dfff:S, 0x00e000-0x00efff:S, 0x00f000-0x00ffff:E program_opcodes: preop=5006 optype=463b opmenu=05200302c79f0190 on-the-fly OPCODE (0x20) re-programmed, op-pos=2 W program_opcodes: preop=5006 optype=461b opmenu=05ad0302c79f0190 on-the-fly OPCODE (0xAD) re-programmed, op-pos=2 program_opcodes: preop=5006 optype=461b opmenu=05040302c79f0190 on-the-fly OPCODE (0x04) re-programmed, op-pos=2 , 0x010000-0x010fff:S, 0x011000-0x011fff:S, 0x012000-0x012fff:S, 0x013000-0x013fff:S, 0x014000-0x014fff:S, 0x015000-0x015fff:S, 0x016000-0x016fff:S, 0x017000-0x017fff:S, 0x018000-0x018fff:S, 0x019000-0x019fff:S, 0x01a000-0x01afff:S, 0x01b000-0x01bfff:S, 0x01c000-0x01cfff:S, 0x01d000-0x01dfff:S, 0x01e000-0x01efff:S, 0x01f000-0x01ffff:S, 0x020000-0x020fff:S, 0x021000-0x021fff:S, 0x022000-0x022fff:S, 0x023000-0x023fff:S, 0x024000-0x024fff:S, 0x025000-0x025fff:S, 0x026000-0x026fff:S, 0x027000-0x027fff:S, 0x028000-0x028fff:S, 0x029000-0x029fff:S, 0x02a000-0x02afff:S, 0x02b000-0x02bfff:S, 0x02c000-0x02cfff:S, 0x02d000-0x02dfff:S, 0x02e000-0x02efff:S, 0x02f000-0x02ffff:S, 0x030000-0x030fff:S, 0x031000-0x031fff:S, 0x032000-0x032fff:S, 0x033000-0x033fff:S, 0x034000-0x034fff:S, 0x035000-0x035fff:S, 0x036000-0x036fff:S, 0x037000-0x037fff:S, 0x038000-0x038fff:S, 0x039000-0x039fff:S, 0x03a000-0x03afff:S, 0x03b000-0x03bfff:S, 0x03c000-0x03cfff:S, 0x03d000-0x03dfff:S, 0x03e000-0x03efff:S, 0x03f000-0x03ffff:S, 0x040000-0x040fff:S, 0x041000-0x041fff:S, 0x042000-0x042fff:S, 0x043000-0x043fff:S, 0x044000-0x044fff:S, 0x045000-0x045fff:S, 0x046000-0x046fff:S, 0x047000-0x047fff:S, 0x048000-0x048fff:S, 0x049000-0x049fff:S, 0x04a000-0x04afff:S, 0x04b000-0x04bfff:S, 0x04c000-0x04cfff:S, 0x04d000-0x04dfff:S, 0x04e000-0x04efff:S, 0x04f000-0x04ffff:S, 0x050000-0x050fff:S, 0x051000-0x051fff:S, 0x052000-0x052fff:S, 0x053000-0x053fff:S, 0x054000-0x054fff:S, 0x055000-0x055fff:S, 0x056000-0x056fff:S, 0x057000-0x057fff:S, 0x058000-0x058fff:S, 0x059000-0x059fff:S, 0x05a000-0x05afff:S, 0x05b000-0x05bfff:S, 0x05c000-0x05cfff:S, 0x05d000-0x05dfff:S, 0x05e000-0x05efff:S, 0x05f000-0x05ffff:S, 0x060000-0x060fff:S, 0x061000-0x061fff:S, 0x062000-0x062fff:S, 0x063000-0x063fff:S, 0x064000-0x064fff:S, 0x065000-0x065fff:S, 0x066000-0x066fff:S, 0x067000-0x067fff:S, 0x068000-0x068fff:S, 0x069000-0x069fff:S, 0x06a000-0x06afff:S, 0x06b000-0x06bfff:S, 0x06c000-0x06cfff:S, 0x06d000-0x06dfff:S, 0x06e000-0x06efff:S, 0x06f000-0x06ffff:S, 0x070000-0x070fff:S, 0x071000-0x071fff:S, 0x072000-0x072fff:S, 0x073000-0x073fff:S, 0x074000-0x074fff:S, 0x075000-0x075fff:S, 0x076000-0x076fff:S, 0x077000-0x077fff:S, 0x078000-0x078fff:S, 0x079000-0x079fff:S, 0x07a000-0x07afff:S, 0x07b000-0x07bfff:S, 0x07c000-0x07cfff:S, 0x07d000-0x07dfff:S, 0x07e000-0x07efff:S, 0x07f000-0x07ffff:S, 0x080000-0x080fff:S, 0x081000-0x081fff:S, 0x082000-0x082fff:S, 0x083000-0x083fff:S, 0x084000-0x084fff:S, 0x085000-0x085fff:S, 0x086000-0x086fff:S, 0x087000-0x087fff:S, 0x088000-0x088fff:S, 0x089000-0x089fff:S, 0x08a000-0x08afff:S, 0x08b000-0x08bfff:S, 0x08c000-0x08cfff:S, 0x08d000-0x08dfff:S, 0x08e000-0x08efff:S, 0x08f000-0x08ffff:S, 0x090000-0x090fff:S, 0x091000-0x091fff:S, 0x092000-0x092fff:S, 0x093000-0x093fff:S, 0x094000-0x094fff:S, 0x095000-0x095fff:S, 0x096000-0x096fff:S, 0x097000-0x097fff:S, 0x098000-0x098fff:S, 0x099000-0x099fff:S, 0x09a000-0x09afff:S, 0x09b000-0x09bfff:S, 0x09c000-0x09cfff:S, 0x09d000-0x09dfff:S, 0x09e000-0x09efff:S, 0x09f000-0x09ffff:S, 0x0a0000-0x0a0fff:S, 0x0a1000-0x0a1fff:S, 0x0a2000-0x0a2fff:S, 0x0a3000-0x0a3fff:S, 0x0a4000-0x0a4fff:S, 0x0a5000-0x0a5fff:S, 0x0a6000-0x0a6fff:S, 0x0a7000-0x0a7fff:S, 0x0a8000-0x0a8fff:S, 0x0a9000-0x0a9fff:S, 0x0aa000-0x0aafff:S, 0x0ab000-0x0abfff:S, 0x0ac000-0x0acfff:S, 0x0ad000-0x0adfff:S, 0x0ae000-0x0aefff:S, 0x0af000-0x0affff:S, 0x0b0000-0x0b0fff:S, 0x0b1000-0x0b1fff:S, 0x0b2000-0x0b2fff:S, 0x0b3000-0x0b3fff:S, 0x0b4000-0x0b4fff:S, 0x0b5000-0x0b5fff:S, 0x0b6000-0x0b6fff:S, 0x0b7000-0x0b7fff:S, 0x0b8000-0x0b8fff:S, 0x0b9000-0x0b9fff:S, 0x0ba000-0x0bafff:S, 0x0bb000-0x0bbfff:S, 0x0bc000-0x0bcfff:S, 0x0bd000-0x0bdfff:S, 0x0be000-0x0befff:S, 0x0bf000-0x0bffff:S, 0x0c0000-0x0c0fff:S, 0x0c1000-0x0c1fff:S, 0x0c2000-0x0c2fff:S, 0x0c3000-0x0c3fff:S, 0x0c4000-0x0c4fff:S, 0x0c5000-0x0c5fff:S, 0x0c6000-0x0c6fff:S, 0x0c7000-0x0c7fff:S, 0x0c8000-0x0c8fff:S, 0x0c9000-0x0c9fff:S, 0x0ca000-0x0cafff:S, 0x0cb000-0x0cbfff:S, 0x0cc000-0x0ccfff:S, 0x0cd000-0x0cdfff:S, 0x0ce000-0x0cefff:S, 0x0cf000-0x0cffff:S, 0x0d0000-0x0d0fff:S, 0x0d1000-0x0d1fff:S, 0x0d2000-0x0d2fff:S, 0x0d3000-0x0d3fff:S, 0x0d4000-0x0d4fff:S, 0x0d5000-0x0d5fff:S, 0x0d6000-0x0d6fff:S, 0x0d7000-0x0d7fff:S, 0x0d8000-0x0d8fff:S, 0x0d9000-0x0d9fff:S, 0x0da000-0x0dafff:S, 0x0db000-0x0dbfff:S, 0x0dc000-0x0dcfff:S, 0x0dd000-0x0ddfff:S, 0x0de000-0x0defff:S, 0x0df000-0x0dffff:S, 0x0e0000-0x0e0fff:S, 0x0e1000-0x0e1fff:S, 0x0e2000-0x0e2fff:S, 0x0e3000-0x0e3fff:S, 0x0e4000-0x0e4fff:S, 0x0e5000-0x0e5fff:S, 0x0e6000-0x0e6fff:S, 0x0e7000-0x0e7fff:S, 0x0e8000-0x0e8fff:S, 0x0e9000-0x0e9fff:S, 0x0ea000-0x0eafff:S, 0x0eb000-0x0ebfff:S, 0x0ec000-0x0ecfff:S, 0x0ed000-0x0edfff:S, 0x0ee000-0x0eefff:S, 0x0ef000-0x0effff:S, 0x0f0000-0x0f0fff:S, 0x0f1000-0x0f1fff:S, 0x0f2000-0x0f2fff:S, 0x0f3000-0x0f3fff:S, 0x0f4000-0x0f4fff:S, 0x0f5000-0x0f5fff:S, 0x0f6000-0x0f6fff:S, 0x0f7000-0x0f7fff:S, 0x0f8000-0x0f8fff:S, 0x0f9000-0x0f9fff:S, 0x0fa000-0x0fafff:S, 0x0fb000-0x0fbfff:S, 0x0fc000-0x0fcfff:S, 0x0fd000-0x0fdfff:S, 0x0fe000-0x0fefff:S, 0x0ff000-0x0fffff:S, 0x100000-0x100fff:S, 0x101000-0x101fff:S, 0x102000-0x102fff:S, 0x103000-0x103fff:S, 0x104000-0x104fff:S, 0x105000-0x105fff:S, 0x106000-0x106fff:S, 0x107000-0x107fff:S, 0x108000-0x108fff:S, 0x109000-0x109fff:S, 0x10a000-0x10afff:S, 0x10b000-0x10bfff:S, 0x10c000-0x10cfff:S, 0x10d000-0x10dfff:S, 0x10e000-0x10efff:S, 0x10f000-0x10ffff:S, 0x110000-0x110fff:S, 0x111000-0x111fff:S, 0x112000-0x112fff:S, 0x113000-0x113fff:S, 0x114000-0x114fff:S, 0x115000-0x115fff:S, 0x116000-0x116fff:S, 0x117000-0x117fff:S, 0x118000-0x118fff:S, 0x119000-0x119fff:S, 0x11a000-0x11afff:S, 0x11b000-0x11bfff:S, 0x11c000-0x11cfff:S, 0x11d000-0x11dfff:S, 0x11e000-0x11efff:S, 0x11f000-0x11ffff:S, 0x120000-0x120fff:S, 0x121000-0x121fff:S, 0x122000-0x122fff:S, 0x123000-0x123fff:S, 0x124000-0x124fff:S, 0x125000-0x125fff:S, 0x126000-0x126fff:S, 0x127000-0x127fff:S, 0x128000-0x128fff:S, 0x129000-0x129fff:S, 0x12a000-0x12afff:S, 0x12b000-0x12bfff:S, 0x12c000-0x12cfff:S, 0x12d000-0x12dfff:S, 0x12e000-0x12efff:S, 0x12f000-0x12ffff:S, 0x130000-0x130fff:S, 0x131000-0x131fff:S, 0x132000-0x132fff:S, 0x133000-0x133fff:S, 0x134000-0x134fff:S, 0x135000-0x135fff:S, 0x136000-0x136fff:S, 0x137000-0x137fff:S, 0x138000-0x138fff:S, 0x139000-0x139fff:S, 0x13a000-0x13afff:S, 0x13b000-0x13bfff:S, 0x13c000-0x13cfff:S, 0x13d000-0x13dfff:S, 0x13e000-0x13efff:S, 0x13f000-0x13ffff:S, 0x140000-0x140fff:S, 0x141000-0x141fff:S, 0x142000-0x142fff:S, 0x143000-0x143fff:S, 0x144000-0x144fff:S, 0x145000-0x145fff:S, 0x146000-0x146fff:S, 0x147000-0x147fff:S, 0x148000-0x148fff:S, 0x149000-0x149fff:S, 0x14a000-0x14afff:S, 0x14b000-0x14bfff:S, 0x14c000-0x14cfff:S, 0x14d000-0x14dfff:S, 0x14e000-0x14efff:S, 0x14f000-0x14ffff:S, 0x150000-0x150fff:S, 0x151000-0x151fff:S, 0x152000-0x152fff:S, 0x153000-0x153fff:S, 0x154000-0x154fff:S, 0x155000-0x155fff:S, 0x156000-0x156fff:S, 0x157000-0x157fff:S, 0x158000-0x158fff:S, 0x159000-0x159fff:S, 0x15a000-0x15afff:S, 0x15b000-0x15bfff:S, 0x15c000-0x15cfff:S, 0x15d000-0x15dfff:S, 0x15e000-0x15efff:S, 0x15f000-0x15ffff:S, 0x160000-0x160fff:S, 0x161000-0x161fff:S, 0x162000-0x162fff:S, 0x163000-0x163fff:S, 0x164000-0x164fff:S, 0x165000-0x165fff:S, 0x166000-0x166fff:S, 0x167000-0x167fff:S, 0x168000-0x168fff:S, 0x169000-0x169fff:S, 0x16a000-0x16afff:S, 0x16b000-0x16bfff:S, 0x16c000-0x16cfff:S, 0x16d000-0x16dfff:S, 0x16e000-0x16efff:S, 0x16f000-0x16ffff:S, 0x170000-0x170fff:S, 0x171000-0x171fff:S, 0x172000-0x172fff:S, 0x173000-0x173fff:S, 0x174000-0x174fff:S, 0x175000-0x175fff:S, 0x176000-0x176fff:S, 0x177000-0x177fff:S, 0x178000-0x178fff:S, 0x179000-0x179fff:S, 0x17a000-0x17afff:S, 0x17b000-0x17bfff:S, 0x17c000-0x17cfff:S, 0x17d000-0x17dfff:S, 0x17e000-0x17efff:S, 0x17f000-0x17ffff:S, 0x180000-0x180fff:S, 0x181000-0x181fff:S, 0x182000-0x182fff:S, 0x183000-0x183fff:S, 0x184000-0x184fff:S, 0x185000-0x185fff:S, 0x186000-0x186fff:S, 0x187000-0x187fff:S, 0x188000-0x188fff:S, 0x189000-0x189fff:S, 0x18a000-0x18afff:S, 0x18b000-0x18bfff:S, 0x18c000-0x18cfff:S, 0x18d000-0x18dfff:S, 0x18e000-0x18efff:S, 0x18f000-0x18ffff:S, 0x190000-0x190fff:S, 0x191000-0x191fff:S, 0x192000-0x192fff:S, 0x193000-0x193fff:S, 0x194000-0x194fff:S, 0x195000-0x195fff:S, 0x196000-0x196fff:S, 0x197000-0x197fff:S, 0x198000-0x198fff:S, 0x199000-0x199fff:S, 0x19a000-0x19afff:S, 0x19b000-0x19bfff:S, 0x19c000-0x19cfff:S, 0x19d000-0x19dfff:S, 0x19e000-0x19efff:S, 0x19f000-0x19ffff:S, 0x1a0000-0x1a0fff:S, 0x1a1000-0x1a1fff:S, 0x1a2000-0x1a2fff:S, 0x1a3000-0x1a3fff:S, 0x1a4000-0x1a4fff:S, 0x1a5000-0x1a5fff:S, 0x1a6000-0x1a6fff:S, 0x1a7000-0x1a7fff:S, 0x1a8000-0x1a8fff:S, 0x1a9000-0x1a9fff:S, 0x1aa000-0x1aafff:S, 0x1ab000-0x1abfff:S, 0x1ac000-0x1acfff:S, 0x1ad000-0x1adfff:S, 0x1ae000-0x1aefff:S, 0x1af000-0x1affff:S, 0x1b0000-0x1b0fff:S, 0x1b1000-0x1b1fff:S, 0x1b2000-0x1b2fff:S, 0x1b3000-0x1b3fff:S, 0x1b4000-0x1b4fff:S, 0x1b5000-0x1b5fff:S, 0x1b6000-0x1b6fff:S, 0x1b7000-0x1b7fff:S, 0x1b8000-0x1b8fff:S, 0x1b9000-0x1b9fff:S, 0x1ba000-0x1bafff:S, 0x1bb000-0x1bbfff:S, 0x1bc000-0x1bcfff:S, 0x1bd000-0x1bdfff:S, 0x1be000-0x1befff:S, 0x1bf000-0x1bffff:S, 0x1c0000-0x1c0fff:S, 0x1c1000-0x1c1fff:S, 0x1c2000-0x1c2fff:S, 0x1c3000-0x1c3fff:S, 0x1c4000-0x1c4fff:S, 0x1c5000-0x1c5fff:S, 0x1c6000-0x1c6fff:S, 0x1c7000-0x1c7fff:S, 0x1c8000-0x1c8fff:S, 0x1c9000-0x1c9fff:S, 0x1ca000-0x1cafff:S, 0x1cb000-0x1cbfff:S, 0x1cc000-0x1ccfff:S, 0x1cd000-0x1cdfff:S, 0x1ce000-0x1cefff:S, 0x1cf000-0x1cffff:S, 0x1d0000-0x1d0fff:S, 0x1d1000-0x1d1fff:S, 0x1d2000-0x1d2fff:S, 0x1d3000-0x1d3fff:S, 0x1d4000-0x1d4fff:S, 0x1d5000-0x1d5fff:S, 0x1d6000-0x1d6fff:S, 0x1d7000-0x1d7fff:S, 0x1d8000-0x1d8fff:S, 0x1d9000-0x1d9fff:S, 0x1da000-0x1dafff:S, 0x1db000-0x1dbfff:S, 0x1dc000-0x1dcfff:S, 0x1dd000-0x1ddfff:S, 0x1de000-0x1defff:S, 0x1df000-0x1dffff:S, 0x1e0000-0x1e0fff:S, 0x1e1000-0x1e1fff:S, 0x1e2000-0x1e2fff:S, 0x1e3000-0x1e3fff:S, 0x1e4000-0x1e4fff:S, 0x1e5000-0x1e5fff:S, 0x1e6000-0x1e6fff:S, 0x1e7000-0x1e7fff:S, 0x1e8000-0x1e8fff:S, 0x1e9000-0x1e9fff:S, 0x1ea000-0x1eafff:S, 0x1eb000-0x1ebfff:S, 0x1ec000-0x1ecfff:S, 0x1ed000-0x1edfff:S, 0x1ee000-0x1eefff:S, 0x1ef000-0x1effff:S, 0x1f0000-0x1f0fff:S, 0x1f1000-0x1f1fff:S, 0x1f2000-0x1f2fff:S, 0x1f3000-0x1f3fff:S, 0x1f4000-0x1f4fff:S, 0x1f5000-0x1f5fff:S, 0x1f6000-0x1f6fff:S, 0x1f7000-0x1f7fff:S, 0x1f8000-0x1f8fff:S, 0x1f9000-0x1f9fff:S, 0x1fa000-0x1fafff:S, 0x1fb000-0x1fbfff:S, 0x1fc000-0x1fcfff:S, 0x1fd000-0x1fdfff:S, 0x1fe000-0x1fefff:S, 0x1ff000-0x1fffff:S Erase/write done. Verifying flash... VERIFIED. Restoring MMIO space at 0xb749e070 Restoring MMIO space at 0xb749e07c Restoring MMIO space at 0xb749e078 Restoring MMIO space at 0xb749e076 Restoring MMIO space at 0xb749e074 From authenticgeek at gmail.com Sat Jan 28 21:51:08 2012 From: authenticgeek at gmail.com (Nick O'Neill) Date: Sat, 28 Jan 2012 12:51:08 -0800 Subject: [flashrom] board inspection results Message-ID: <5ECE5F82501B49BA94E20909EE13C68F@gmail.com> Hi, I'm trying to write to a Macronix MX25L3205 on a Samsung Series 5 laptop, I backed up the original contents and attempted to flash a new one which always fails at the same spot. Erasing fails at that spot, but succeeds up to then. I'm happy to do some work to get this working, here's the requested information: bin (http://paste.flashrom.org/view.php?id=1032) for unknown by nickoneill superio (http://paste.flashrom.org/view.php?id=1031) for unknown by nickoneill lspci (http://paste.flashrom.org/view.php?id=1030) for unknown by nickoneill flash (http://paste.flashrom.org/view.php?id=1029) for unknown by nickoneill Thanks, Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From r.marek at assembler.cz Sun Jan 29 00:16:55 2012 From: r.marek at assembler.cz (Rudolf Marek) Date: Sun, 29 Jan 2012 00:16:55 +0100 Subject: [flashrom] [PATCH] Add RDC R6030 chipset Message-ID: <4F2481E7.1050509@assembler.cz> Hello, Following patch adds the support for ROMCS_EN for writes aka chipset_enable on RDC R6030 found on bifferboard. The patch for flashchip will follow in near future. Signed-off-by: Rudolf Marek Thanks Rudolf -------------- next part -------------- A non-text attachment was scrubbed... Name: rdc.patch Type: text/x-diff Size: 947 bytes Desc: not available URL: From c-d.hailfinger.devel.2006 at gmx.net Sun Jan 29 02:53:18 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Sun, 29 Jan 2012 02:53:18 +0100 Subject: [flashrom] board inspection results In-Reply-To: <5ECE5F82501B49BA94E20909EE13C68F@gmail.com> References: <5ECE5F82501B49BA94E20909EE13C68F@gmail.com> Message-ID: <4F24A68E.60609@gmx.net> Hi Nick, Am 28.01.2012 21:51 schrieb Nick O'Neill: > Hi, I'm trying to write to a Macronix MX25L3205 on a Samsung Series 5 laptop, I backed up the original contents and attempted to flash a new one which always fails at the same spot. Erasing fails at that spot, but succeeds up to then. > > I'm happy to do some work to get this working, here's the requested information: > > bin (http://paste.flashrom.org/view.php?id=1032) for unknown by nickoneill > superio (http://paste.flashrom.org/view.php?id=1031) for unknown by nickoneill > lspci (http://paste.flashrom.org/view.php?id=1030) for unknown by nickoneill > flash (http://paste.flashrom.org/view.php?id=1029) for unknown by nickoneill That's really odd... do you have dmidecode installed, and if yes, does it print boatloads of info about your system if you run it? That said, you should try to run the latest development version of flashrom from svn (see http://www.flashrom.org/Downloads for instructions) and paste the output of flashrom -V so we can find out more about your chipset, especially lockdown info and other fun stuff. Please note that flashing laptops is very risky. Some laptops may turn off during flashing, and then you have to open the laptop and maybe even get a soldering iron to reflash the flash chip externally. Regards, Carl-Daniel -- http://www.hailfinger.org/ From c-d.hailfinger.devel.2006 at gmx.net Sun Jan 29 03:21:46 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Sun, 29 Jan 2012 03:21:46 +0100 Subject: [flashrom] Board identification patch for the MSC Q7 Tunnel Creek board In-Reply-To: References: Message-ID: <4F24AD3A.9050604@gmx.net> Hi, thanks for this patch. Am 27.01.2012 18:11 schrieb Idwer Vollering: > From: "Feldschmid, Ingo" > Date: Fri, 27 Jan 2012 15:05:22 +0100 > > When trying to flash the bios chip on our Tunnel Creek module, there always > is the ?you may be running flashrom on an unsupported laptop? warning. > Since our board is neither unsupported nor a laptop, I would love to patch > that. > > Basically, I added identification for our module to the board_matches list > for phase P2, which is just before the laptop / laptop ok check. In the > board function that is called from this list, I just set the global > variable ?is_laptop? to zero. This will prevent the laptop warning for > tunnel creek boards which have the dmi string ?Q7-TCTC?. > > I am not sure if this mechanism is the correct way to do this, since > entries in this lists are normally used to execute board-specific > flash-chip-enable functions. This is exactly what phase 2 board enables are designed for. I'm happy it works as designed. > Of course, an easier path would be to just set the chassis information to > something like ?Desktop?, but we are not building complete boards, just a > COM (Computer-On-Module). Therefore, the module could be used in all > different kinds of chassis, but the flash chip update mechanism would > always work, since everything relevant is on the module. Is there a chassis type which is called Computer-On-Module or something like that? Then again, the situation here is complicated because even if such a chassis type can be encoded in DMI data, flashrom can't really know if flashing can be done safely. > The attached patch has been built against flashrom trunk version 1486. > > I have also included two flashrom logs, just to prove that we can > flawlessly read and write the bios flash chip on our module. > > Signed-off-by: Ingo Feldschmid > > Index: board_enable.c > =================================================================== > --- board_enable.c (revision 1486) > +++ board_enable.c (working copy) > @@ -2045,6 +2045,17 @@ > return it87_gpio_set(63, 1); > } > > +/* > + * Suited for: > + * - MSC Q7 Tunnel Creek Module, phase 2 detection patch > + */ > +static int msc_q7tctc_p2(void) > +{ > + /* we are a computer-on-module, not a laptop */ > + is_laptop = 0; > + return 1; > +} > + > #endif > > /* > @@ -2220,6 +2231,7 @@ > {0x1106, 0x0259, 0x1106, 0xAA07, 0x1106, 0x3227, 0x1106, 0xAA07, NULL, NULL, NULL, P3, "VIA", "EPIA EK", 0, NT, via_vt823x_gpio9_raise}, > {0x1106, 0x3177, 0x1106, 0xAA01, 0x1106, 0x3123, 0x1106, 0xAA01, NULL, NULL, NULL, P3, "VIA", "EPIA M/MII/...", 0, OK, via_vt823x_gpio15_raise}, > {0x1106, 0x0259, 0x1106, 0x3227, 0x1106, 0x3065, 0x1106, 0x3149, NULL, NULL, NULL, P3, "VIA", "EPIA-N/NL", 0, OK, via_vt823x_gpio9_raise}, > + {0x8086, 0x8186, 0x8086, 0x8186, 0x0000, 0x0000, 0x0000, 0x0000, "^Q7-TCTC", NULL, NULL, P2, "MSC", "Q7-TCTC", 0, OK, msc_q7tctc_p2}, > #endif > { 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, P3, NULL, NULL, 0, NT, NULL}, /* end marker */ > }; The only question I have is whether we can make the match more specific: - Second set of PCI IDs, preferably one which has a vendor ID of MSC-GE - Use "^Q7-TCTC$" instead Otherwise it looks good. Once the question above is answered, this patch is Acked-by: Carl-Daniel Hailfinger Regards, Carl-Daniel -- http://www.hailfinger.org/ From c-d.hailfinger.devel.2006 at gmx.net Sun Jan 29 04:00:27 2012 From: c-d.hailfinger.devel.2006 at gmx.net (Carl-Daniel Hailfinger) Date: Sun, 29 Jan 2012 04:00:27 +0100 Subject: [flashrom] [coreboot] FOSDEM 2012 In-Reply-To: <4EC4439F.5020406@gmx.net> References: <4EBD5FE7.3050609@gmx.net> <4EC4439F.5020406@gmx.net> Message-ID: <4F24B64B.2070908@gmx.net> We (coreboot+flashrom) will have one main talk (coreboot on laptops) and one joint booth at FOSDEM. Thanks to Rudolf Marek for applying for the booth. http://www.coreboot.org/FOSDEM_2012 I'll only have intermittent internet access while I finish the slides for the main talk. Could someone else please take care of our wiki page and fill in what needs to be done/brought? It seems my HP 635 laptop will not be working well enough to demo coreboot on it, so I'd be really glad if somebody can bring a Thinkpad which has working VGA out, preferably at a resolution a beamer can work with. Regards, Carl-Daniel From stefan.tauner at student.tuwien.ac.at Sun Jan 29 08:42:48 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 29 Jan 2012 08:42:48 +0100 Subject: [flashrom] Board identification patch for the MSC Q7 Tunnel Creek board In-Reply-To: <4F24AD3A.9050604@gmx.net> References: <4F24AD3A.9050604@gmx.net> Message-ID: <201201290742.q0T7gVun010201@mail2.student.tuwien.ac.at> On Sun, 29 Jan 2012 03:21:46 +0100 Carl-Daniel Hailfinger wrote: > Hi, > > thanks for this patch. > > Am 27.01.2012 18:11 schrieb Idwer Vollering: > > From: "Feldschmid, Ingo" > > Date: Fri, 27 Jan 2012 15:05:22 +0100 > > > > [?] > > Of course, an easier path would be to just set the chassis information to > > something like ?Desktop?, but we are not building complete boards, just a > > COM (Computer-On-Module). Therefore, the module could be used in all > > different kinds of chassis, but the flash chip update mechanism would > > always work, since everything relevant is on the module. > > Is there a chassis type which is called Computer-On-Module or something > like that? Then again, the situation here is complicated because even if > such a chassis type can be encoded in DMI data, flashrom can't really > know if flashing can be done safely. there are a few chassis types that might match, but nothing spot-on and there is lot of room for interpretation anyway. and as you said it would not buy us anything, because we have not enough data to deduce if there are significant numbers of "funny" configurations with ECs etc. the P2 enable seems to be the way to go for such devices. > > The attached patch has been built against flashrom trunk version 1486. > > > > I have also included two flashrom logs, just to prove that we can > > flawlessly read and write the bios flash chip on our module. > > > > Signed-off-by: Ingo Feldschmid > > > > Index: board_enable.c > > =================================================================== > > --- board_enable.c (revision 1486) > > +++ board_enable.c (working copy) > > @@ -2045,6 +2045,17 @@ > > return it87_gpio_set(63, 1); > > } > > > > +/* > > + * Suited for: > > + * - MSC Q7 Tunnel Creek Module, phase 2 detection patch > > + */ > > +static int msc_q7tctc_p2(void) please rename to something more generic, maybe "p2_not_a_laptop", so that we can reuse the function. > > +{ > > + /* we are a computer-on-module, not a laptop */ change the comment accordingly. > > + is_laptop = 0; > > + return 1; > > +} > > + > > #endif > > > > /* > > @@ -2220,6 +2231,7 @@ > > {0x1106, 0x0259, 0x1106, 0xAA07, 0x1106, 0x3227, 0x1106, 0xAA07, NULL, NULL, NULL, P3, "VIA", "EPIA EK", 0, NT, via_vt823x_gpio9_raise}, > > {0x1106, 0x3177, 0x1106, 0xAA01, 0x1106, 0x3123, 0x1106, 0xAA01, NULL, NULL, NULL, P3, "VIA", "EPIA M/MII/...", 0, OK, via_vt823x_gpio15_raise}, > > {0x1106, 0x0259, 0x1106, 0x3227, 0x1106, 0x3065, 0x1106, 0x3149, NULL, NULL, NULL, P3, "VIA", "EPIA-N/NL", 0, OK, via_vt823x_gpio9_raise}, > > + {0x8086, 0x8186, 0x8086, 0x8186, 0x0000, 0x0000, 0x0000, 0x0000, "^Q7-TCTC", NULL, NULL, P2, "MSC", "Q7-TCTC", 0, OK, msc_q7tctc_p2}, > > #endif > > { 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, P3, NULL, NULL, 0, NT, NULL}, /* end marker */ > > }; > > The only question I have is whether we can make the match more specific: > - Second set of PCI IDs, preferably one which has a vendor ID of MSC-GE > - Use "^Q7-TCTC$" instead another minor request: please sort the list by manufacturer (then by device) name (and change the function name of course). thanks for contributing! -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Sun Jan 29 09:05:54 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 29 Jan 2012 09:05:54 +0100 Subject: [flashrom] Board identification patch for the MSC Q7 Tunnel Creek board In-Reply-To: <4F24AD3A.9050604@gmx.net> References: <4F24AD3A.9050604@gmx.net> Message-ID: <201201290805.q0T85cZY017996@mail2.student.tuwien.ac.at> ah and i forgot: an entry in print.c that the board is supported might also be a good idea. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Sun Jan 29 10:00:50 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 29 Jan 2012 10:00:50 +0100 Subject: [flashrom] [PATCH] Add RDC R6030 chipset In-Reply-To: <4F2481E7.1050509@assembler.cz> References: <4F2481E7.1050509@assembler.cz> Message-ID: <201201290900.q0T90ZpS007776@mail2.student.tuwien.ac.at> On Sun, 29 Jan 2012 00:16:55 +0100 Rudolf Marek wrote: > Hello, > > Following patch adds the support for ROMCS_EN for writes aka chipset_enable on > RDC R6030 found on bifferboard. > > The patch for flashchip will follow in near future. > > Signed-off-by: Rudolf Marek > thanks rudolf for the patch. the chipset/soc itself seems to be named R8610 afaics. i could not find any references to R6030 as a model name. the pci id is 6030h though... i would suggest changing the R6030 strings to R8610 if i am not mistaken. > Index: chipset_enable.c > =================================================================== > --- chipset_enable.c (revision 1485) > +++ chipset_enable.c (working copy) > @@ -54,6 +54,17 @@ > return 0; > } > > +static int enable_flash_rdc(struct pci_dev *dev, const char *name) please also add a suffix to the function name to indicate the model. > +{ > + uint8_t tmp; > + > + tmp = pci_read_byte(dev, 0x43); > + tmp |= 0x80; > + pci_write_byte(dev, 0x43, tmp); > + > + return 0; > +} > + i have verified that this enables write cycles as you said. i am (still) not familiar with LPC, but there must be a few other things that are needed to get this chipset to work (at least in non-bifferboard configurations)(?) and afaics we would also like to check a few other things. there is "FRS" which indicates the flash type boot strap, which could also be X bus. guess X bus does not work transparently, does it? what about the FRR (flash rom region) registers? this does not registers a flashrom programmer!? maybe i am just confused... :) -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From r.marek at assembler.cz Sun Jan 29 14:34:17 2012 From: r.marek at assembler.cz (Rudolf Marek) Date: Sun, 29 Jan 2012 14:34:17 +0100 Subject: [flashrom] [PATCH] Add RDC R6030 chipset In-Reply-To: <201201290900.q0T90ZpS007776@mail2.student.tuwien.ac.at> References: <4F2481E7.1050509@assembler.cz> <201201290900.q0T90ZpS007776@mail2.student.tuwien.ac.at> Message-ID: <4F254AD9.9010502@assembler.cz> > thanks rudolf for the patch. > the chipset/soc itself seems to be named R8610 afaics. i could not find > any references to R6030 as a model name. the pci id is 6030h though... > i would suggest changing the R6030 strings to R8610 if i am not > mistaken. Maybe R8610/R3210 SoC because the R3210 is non-industrial version. Also VortexCPUs use same chipset enable register. >> +static int enable_flash_rdc(struct pci_dev *dev, const char *name) > please also add a suffix to the function name to indicate the model. OK > i have verified that this enables write cycles as you said. i am (still) > not familiar with LPC, but there must be a few other things that > are needed to get this chipset to work (at least in non-bifferboard > configurations)(?) and afaics we would also like to check a few other > things. LPC is just a "Serial" version of plain old ISA BUS. Which has 16Data lines (wires) and 24? Address wires. Aka "PARALEL type of flashes in flashrom". Plus of course bits (wires) to tell what transacation is on the bus... > there is "FRS" which indicates the flash type boot strap, which could > also be X bus. guess X bus does not work transparently, does it? > what about the FRR (flash rom region) registers? Yeah right maybe we can tell flashrom if it is worth to probe for LPC/FWH or just for "PARALLEL" type flashes. > > this does not registers a flashrom programmer!? It should not? From a programming point of view Paralel/FWH/LPC flashes are detected via reads/writes to the 4G-something memory space with magic sequences like AAA 555 etc... The ROM_CS just tells the SoC to generate chipselect also for writes, effectively making "write protection" disabled. There still could be some flashchip based protection. I will update the patch to look for LPC/FWH and rename that a bit. Thanks Rudolf From stefan.tauner at student.tuwien.ac.at Sun Jan 29 14:52:46 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 29 Jan 2012 14:52:46 +0100 Subject: [flashrom] [PATCH] SFDP 3.0 In-Reply-To: <1326236299-6660-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1326236299-6660-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <1327845167-9760-1-git-send-email-stefan.tauner@student.tuwien.ac.at> after fixing an embarrassing off-by-one error and a few other mistakes, i refactored the setting of erasers and (hopefully) added support for the preliminary SFDP version by intel. Stefan Tauner (1): add support for SFDP (JESD216) Makefile | 2 +- chipdrivers.h | 4 + flash.h | 2 + flashchips.c | 24 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- sfdp.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ spi.h | 5 + spi25.c | 31 +++++ 9 files changed, 451 insertions(+), 2 deletions(-) create mode 100644 sfdp.c From stefan.tauner at student.tuwien.ac.at Sun Jan 29 14:52:47 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 29 Jan 2012 14:52:47 +0100 Subject: [flashrom] [PATCH] add support for SFDP (JESD216) In-Reply-To: <1326236299-6660-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1326236299-6660-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <1327845167-9760-2-git-send-email-stefan.tauner@student.tuwien.ac.at> Similar to modules using the opaque programmer framework (e.g. ICH Hardware Sequencing) this uses a generic struct flashchip element in flashchips.c with dummy values and a special probe function that fills the obtained values into that generic struct. Documentation used: http://www.jedec.org/standards-documents/docs/jesd216 (2011-04) W25Q32BV data sheet Revision F (2011-04-01) EN25QH16 data sheet Revision F (2011-06-01) todo: - handle programmers which have a problem with the dummy bytes needed - move sfdp_add_uniform_eraser to flashchips.c? Signed-off-by: Stefan Tauner --- Makefile | 2 +- chipdrivers.h | 4 + flash.h | 2 + flashchips.c | 24 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- sfdp.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ spi.h | 5 + spi25.c | 31 +++++ 9 files changed, 451 insertions(+), 2 deletions(-) create mode 100644 sfdp.c diff --git a/Makefile b/Makefile index 83aa038..b890d8a 100644 --- a/Makefile +++ b/Makefile @@ -252,7 +252,7 @@ endif CHIP_OBJS = jedec.o stm50flw0x0x.o w39.o w29ee011.o \ sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \ sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o sharplhf00l04.o \ - a25.o at25.o opaque.o + a25.o at25.o opaque.o sfdp.o LIB_OBJS = layout.o diff --git a/chipdrivers.h b/chipdrivers.h index a1d0cd9..bd81098 100644 --- a/chipdrivers.h +++ b/chipdrivers.h @@ -41,6 +41,7 @@ int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int b int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen); +erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode); int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len); @@ -58,6 +59,9 @@ int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, u int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); +/* sfdp.c */ +int probe_spi_sfdp(struct flashctx *flash); + /* opaque.c */ int probe_opaque(struct flashctx *flash); int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); diff --git a/flash.h b/flash.h index e51b6d4..6bcae71 100644 --- a/flash.h +++ b/flash.h @@ -174,6 +174,8 @@ struct flashctx { struct registered_programmer *pgm; }; +typedef int (erasefunc_t)(struct flashctx *flash, unsigned int addr, unsigned int blocklen); + #define TEST_UNTESTED 0 #define TEST_OK_PROBE (1 << 0) diff --git a/flashchips.c b/flashchips.c index ca1c57f..f0fde20 100644 --- a/flashchips.c +++ b/flashchips.c @@ -8872,6 +8872,30 @@ const struct flashchip flashchips[] = { .read = read_memmapped, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, + + { + .vendor = "Unknown", + .name = "SFDP device", + .bustype = BUS_SPI, + .manufacture_id = GENERIC_MANUF_ID, + .model_id = SFDP_DEVICE_ID, + /* We present our own "report this" text hence we do not + * want the default "This flash part has status UNTESTED..." + * text to be printed. */ + .tested = TEST_OK_PREW, + .probe = probe_spi_sfdp, + .read = spi_chip_read, + /* FIXME: some vendor extensions define this */ + .voltage = {}, + /* Everything below will be set by the probing function. */ + .page_size = 0, + .write = NULL, + .total_size = 0, + .feature_bits = 0, + .block_erasers = {}, + .unlock = NULL, + .printlock = NULL, + }, { .vendor = "Programmer", diff --git a/flashchips.h b/flashchips.h index 03efb86..1f2a8ca 100644 --- a/flashchips.h +++ b/flashchips.h @@ -36,6 +36,7 @@ #define GENERIC_MANUF_ID 0xffff /* Check if there is a vendor ID */ #define GENERIC_DEVICE_ID 0xffff /* Only match the vendor ID */ +#define SFDP_DEVICE_ID 0xfffe #define ALLIANCE_ID 0x52 /* Alliance Semiconductor */ #define ALLIANCE_AS29F002B 0x34 diff --git a/flashrom.c b/flashrom.c index ee68344..84fb3fc 100644 --- a/flashrom.c +++ b/flashrom.c @@ -986,7 +986,33 @@ int probe_flash(struct registered_programmer *pgm, int startchip, * probe_flash() is the first one and thus no chip has been * found before. */ - if (startchip == 0 || fill_flash->model_id != GENERIC_DEVICE_ID) + if (startchip == 0 && fill_flash->model_id == SFDP_DEVICE_ID) { + msg_cinfo("===\n" + "SFDP has autodetected a flash chip which is " + "not natively supported by flashrom yet.\n"); + if (count_usable_erasers(fill_flash) == 0) + msg_cinfo("The standard operations read and " + "verify should work, but to support " + "erase, write and all other " + "possible features"); + else + msg_cinfo("All standard operations (read, " + "verify, erase and write) should " + "work, but to support all possible " + "features"); + + msg_cinfo(" we need to add them manually.\nYou " + "can help us by mailing us the output of " + "the following command to flashrom at flashrom." + "org: \n'flashrom -VV [plus the " + "-p/--programmer parameter (if needed)]" + "'\nThanks for your help!\n" + "===\n"); + } + + if (startchip == 0 || + ((fill_flash->model_id != GENERIC_DEVICE_ID) && + (fill_flash->model_id != SFDP_DEVICE_ID))) break; notfound: diff --git a/sfdp.c b/sfdp.c new file mode 100644 index 0000000..4687737 --- /dev/null +++ b/sfdp.c @@ -0,0 +1,356 @@ +/* + * This file is part of the flashrom project. + * + * Copyright (C) 2011-2012 Stefan Tauner + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "flash.h" +#include "spi.h" +#include "chipdrivers.h" + +static int spi_sfdp_wrapper(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + int i, ret; + const unsigned char cmd[JEDEC_SFDP_OUTSIZE] = { + JEDEC_SFDP, + (address >> 16) & 0xff, + (address >> 8) & 0xff, + (address >> 0) & 0xff, + 0 + }; + msg_cspew("spi_sfdp_wrapper: addr=0x%x, len=%d, data:\n", address, len); + ret = spi_send_command(flash, sizeof(cmd), len, cmd, buf); + for (i = 0; i < len; i++) + msg_cspew(" 0x%02x", buf[i]); + msg_cspew("\n"); + return ret; +} + +/* FIXME: eventually something similar like this but more generic should be + * available to split up spi commands. use that then instead */ +static int spi_sfdp(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + /* FIXME: this is wrong. */ + int maxstep = 8; + int ret = 0; + while (len > 0) { + int step = min(len, maxstep); + ret = spi_sfdp_wrapper(flash, address, buf, step); + if (ret) + return ret; + address += step; + buf += step; + len -= step; + } + return ret; +} + +struct sfdp_tbl_hdr { + uint8_t id; + uint8_t v_minor; + uint8_t v_major; + uint8_t len; + uint32_t ptp; /* 24b pointer */ +}; + +static int sfdp_add_uniform_eraser(struct flashctx *f, uint8_t opcode, uint32_t bsize) +{ + uint32_t total_size = f->total_size * 1024; + int i; + erasefunc_t *erasefn = spi_get_erasefn_from_opcode(opcode); + if (erasefn == NULL) + return 1; + for (i = 0; i < NUM_ERASEFUNCTIONS; i++) { + struct block_eraser eraser = f->block_erasers[i]; + if (eraser.eraseblocks[0].size != 0) + continue; + eraser.block_erase = erasefn; + eraser.eraseblocks[0].size = bsize; + eraser.eraseblocks[0].count = total_size/bsize; + msg_cdbg2(" Block eraser %d: %d x %d B with opcode " + "0x%02x\n", i, total_size/bsize, bsize, + opcode); + return 0; + } + msg_cinfo("%s: Not enough space to store another eraser (i=%d)." + " Please report this at flashrom at flashrom.org\n", + __func__, i); + return 1; +} + +static int sfdp_fill_flash(struct flashctx *f, uint8_t *buf, uint16_t len) +{ + uint32_t tmp32; + uint8_t tmp8; + uint32_t total_size; /* in bytes */ + uint32_t bsize; + uint8_t opcode_4k = 0xFF; + int dw, j; + + msg_cdbg2("Parsing JEDEC SFDP parameter table...\n"); + if (len != 9 * 4 && len != 4 * 4) { + msg_cerr("%s: len out of spec\n", __func__); + return 1; + } + + /* 1. double word */ + dw = 0; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + tmp8 = (tmp32 >> 17) & 0x3; + switch (tmp8) { + case 0x0: + msg_cdbg2(" 3-Byte only addressing.\n"); + break; + case 0x1: + msg_cdbg2(" 3-Byte (and optionally 4-Byte) addressing.\n"); + break; + case 0x2: + msg_cdbg(" 4-Byte only addressing not supported.\n"); + return 1; + default: + msg_cdbg(" Required addressing mode (0x%x) not supported.\n", + tmp8); + return 1; + } + + msg_cdbg2(" Writes to the status register have "); + if (tmp32 & (1 << 3)) { + f->unlock = spi_disable_blockprotect; + msg_cdbg2("to be enabled with "); + if (tmp32 & (1 << 4)) { + f->feature_bits = FEATURE_WRSR_WREN; + msg_cdbg2("WREN (0x06).\n"); + } else { + f->feature_bits = FEATURE_WRSR_EWSR; + msg_cdbg2("EWSR (0x50).\n"); + } + } else + msg_cdbg2("not to be especially enabled.\n"); + + msg_cdbg2(" Write granularity is "); + if (tmp32 & (1 << 2)) { + msg_cdbg2(" at least 64 B.\n"); + f->page_size = 64; + f->write = spi_chip_write_256; + } else { + msg_cdbg2(" 1 B only.\n"); + f->page_size = 256; /* ? */ + f->write = spi_chip_write_1; + } + + if ((tmp32 & 0x3) == 0x1) { + opcode_4k = (tmp32 >> 8) & 0xFF; /* will be dealt with later */ + } + + /* 2. double word */ + dw = 1; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + if (tmp32 & (1 << 31)) { + msg_cerr(" Flash chip size >= 4 Gb/500 MB not supported.\n"); + return 1; + } + total_size = (tmp32 & 0x7FFFFFFF) / 8; + f->total_size = total_size / 1024; + msg_cdbg2(" Flash chip size is %d kB.\n", f->total_size); + + /* FIXME: double words 3-7 contain unused fast read information */ + + if (len == 4 * 4) { + msg_cdbg("It seems like this chip supports the preliminary " + "Intel version of SFDP, skipping processing of double " + "words 3-9.\n"); + goto proc_4k; + } + + dw = 8; + for (j = 0; j < 4; j++) { + /* 8 double words from the start + 2 words for every eraser */ + tmp32 = buf[(4 * dw) + (2 * j)]; + if (tmp32 == 0) { + msg_cdbg2(" Block eraser %d is unused.\n", j); + continue; + } + if (tmp32 >= 31) { + msg_cdbg2(" Block size of eraser %d (2^%d) is too big." + "\n", j, tmp32); + continue; + } + bsize = 1 << (tmp32); /* bsize = 2 ^ field */ + + tmp8 = buf[(4 * dw) + (2 * j) + 1]; + if(sfdp_add_uniform_eraser(f, tmp8, bsize)) + continue; + /* If there is a valid 4k value in the last double words, + * we want to override the value from double word 1, hence force + * skipping its processing: */ + if (bsize == 4 * 1024) + opcode_4k = 0xFF; + } + +proc_4k: + if (opcode_4k != 0xFF) { + sfdp_add_uniform_eraser(f, opcode_4k, 4 * 1024); + } + return 0; +} + +static int sfdp_fetch_pt(struct flashctx *flash, uint32_t addr, uint8_t *buf, uint16_t len) +{ + uint16_t i; + if (spi_sfdp(flash, addr, buf, len)) { + msg_cerr("Receiving SFDP parameter table failed.\n"); + return 1; + } + msg_cspew(" Parameter table contents:\n"); + for(i = 0; i < len; i++) { + if ((i % 8) == 0) { + msg_cspew(" 0x%03x: ", i); + } + msg_cspew(" 0x%02x", buf[i]); + if ((i % 8) == 7) { + msg_cspew("\n"); + continue; + } + if ((i % 8) == 3) { + msg_cspew(" "); + continue; + } + } + msg_cspew("\n"); + return 0; +} + +int probe_spi_sfdp(struct flashctx *flash) +{ + int ret = 0; + uint8_t buf[8]; + uint32_t tmp32; + uint8_t nph; + /* need to limit the table loop by comparing i to uint8_t nph hence: */ + uint16_t i; + struct sfdp_tbl_hdr *hdrs; + uint8_t *hbuf; + uint8_t *tbuf; + + if (spi_sfdp(flash, 0x00, buf, 4)) { + msg_cerr("Receiving SFDP signature failed.\n"); + return 0; + } + tmp32 = buf[0]; + tmp32 |= ((unsigned int)buf[1]) << 8; + tmp32 |= ((unsigned int)buf[2]) << 16; + tmp32 |= ((unsigned int)buf[3]) << 24; + + msg_cdbg2("SFDP signature = 0x%08x (should be 0x50444653)\n", tmp32); + if (tmp32 != 0x50444653) { + msg_cdbg("No SFDP signature found.\n"); + return 0; + } + if (spi_sfdp(flash, 0x04, buf, 3)) { + msg_cerr("Receiving SFDP revision and number of parameter " + "headers (NPH) failed. "); + return 0; + } + msg_cdbg2("SFDP revision = %d.%d\n", buf[1], buf[0]); + nph = buf[2]; + msg_cdbg2("SFDP number of parameter headers (NPH) = %d (+ 1 mandatory)" + "\n", nph); + + /* Fetch all parameter headers, even if we don't use them all (yet). */ + hbuf = malloc(sizeof(struct sfdp_tbl_hdr) * (nph + 1)); + hdrs = malloc((nph + 1) * 8); + if (hbuf == NULL || hdrs == NULL ) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (spi_sfdp(flash, 0x08, hbuf, (nph + 1) * 8)) { + msg_cerr("Receiving SFDP parameter table headers failed.\n"); + goto cleanup_hdrs; + } + + i = 0; + do { + uint16_t len; + hdrs[i].id = hbuf[(8 * i) + 0]; + hdrs[i].v_minor = hbuf[(8 * i) + 1]; + hdrs[i].v_major = hbuf[(8 * i) + 2]; + hdrs[i].len = hbuf[(8 * i) + 3]; + hdrs[i].ptp = hbuf[(8 * i) + 4]; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 5]) << 8; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 6]) << 16; + msg_cdbg2("SFDP parameter table header %d/%d:\n", i, nph); + msg_cdbg2(" ID 0x%02x, version %d.%d\n", hdrs[i].id, + hdrs[i].v_major, hdrs[i].v_minor); + len = hdrs[i].len * 4; + tmp32 = hdrs[i].ptp; + msg_cdbg2(" Length %d B, Parameter Table Pointer 0x%06x\n", + len, tmp32); + + if (len + tmp32 > UINT16_MAX) { + msg_cerr("SFDP Parameter Table %d supposedly " + "overflows addressable SFDP area. This most\n" + "probably indicates a corrupt SFDP parameter " + "table header. Aborting SFDP probe!\n", i); + ret = 0; + goto cleanup_hdrs; + } + + tbuf = malloc(len); + if (tbuf == NULL) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (sfdp_fetch_pt(flash, tmp32, tbuf, len)){ + msg_cerr("Fetching SFDP parameter table %d failed.\n", + i); + free(tbuf); + break; + } + if (i == 0) { /* Mandatory JEDEC SFDP parameter table */ + if (hdrs[i].id != 0) + msg_cdbg("ID of the mandatory JEDEC SFDP " + "parameter table is not 0 as demanded " + "by JESD216 (warning only).\n"); + + if (len != 9 * 4 && len != 4 * 4) { + msg_cdbg("Length of the mandatory JEDEC SFDP " + "parameter table is %d B instead of " + "36 B (i.e. 9 double words) as " + "demanded by JESD216, skipping " + "parsing.\n", len); + } else if (sfdp_fill_flash(flash, tbuf, len) == 0) + ret = 1; + } + + free(tbuf); + i++; + } while(i <= nph); + +cleanup_hdrs: + free(hdrs); + free(hbuf); + return ret; +} diff --git a/spi.h b/spi.h index b908603..5f07eae 100644 --- a/spi.h +++ b/spi.h @@ -40,6 +40,11 @@ #define JEDEC_REMS_OUTSIZE 0x04 #define JEDEC_REMS_INSIZE 0x02 +/* Read Serial Flash Discoverable Parameters (SFDP) */ +#define JEDEC_SFDP 0x5a +#define JEDEC_SFDP_OUTSIZE 0x05 /* 8b op, 24b addr, 8b dummy */ +/* JEDEC_SFDP_INSIZE : any length */ + /* Read Electronic Signature */ #define JEDEC_RES 0xab #define JEDEC_RES_OUTSIZE 0x04 diff --git a/spi25.c b/spi25.c index 3ce7f08..15ec300 100644 --- a/spi25.c +++ b/spi25.c @@ -720,6 +720,37 @@ int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, return spi_chip_erase_c7(flash); } +erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode) +{ + switch(opcode){ + case 0x00: + case 0xff: + /* Not specified, assuming "not supported". */ + return NULL; + case 0x20: + return &spi_block_erase_20; + break; + case 0x52: + return &spi_block_erase_52; + break; + case 0x60: + return &spi_block_erase_60; + break; + case 0xc7: + return &spi_block_erase_c7; + break; + case 0xd7: + return &spi_block_erase_d7; + break; + case 0xd8: + return &spi_block_erase_d8; + default: + msg_cinfo("%s: unknown erase opcode (0x%02x). Please report " + "this at flashrom at flashrom.org\n", __func__, opcode); + return NULL; + } +} + int spi_write_status_enable(struct flashctx *flash) { static const unsigned char cmd[JEDEC_EWSR_OUTSIZE] = { JEDEC_EWSR }; -- 1.7.1 From stefan.tauner at student.tuwien.ac.at Sun Jan 29 15:11:56 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Sun, 29 Jan 2012 15:11:56 +0100 Subject: [flashrom] [PATCH] Add RDC R6030 chipset In-Reply-To: <4F254AD9.9010502@assembler.cz> References: <4F2481E7.1050509@assembler.cz> <201201290900.q0T90ZpS007776@mail2.student.tuwien.ac.at> <4F254AD9.9010502@assembler.cz> Message-ID: <201201291411.q0TEBg1k000592@mail2.student.tuwien.ac.at> On Sun, 29 Jan 2012 14:34:17 +0100 Rudolf Marek wrote: > > this does not registers a flashrom programmer!? > > It should not? From a programming point of view Paralel/FWH/LPC flashes are > detected via reads/writes to the 4G-something memory space with magic sequences > like AAA 555 etc... The ROM_CS just tells the SoC to generate chipselect also > for writes, effectively making "write protection" disabled. There still could be > some flashchip based protection. i was talking about flashrom's internal representation of programmers not the SoC in question ;) registration is not needed, because internal.c:328 does that automatically for all internal programmers. (i am not really sure this is wise due to the imbalance between parallel and spi programmers). -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Mon Jan 30 00:24:02 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 30 Jan 2012 00:24:02 +0100 Subject: [flashrom] [PATCH] SFDP 3.1 In-Reply-To: <1327845167-9760-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1327845167-9760-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <1327879443-11326-1-git-send-email-stefan.tauner@student.tuwien.ac.at> thanks to david's testing a few other STUPID bugs are taken out... we might be getting there eventually :) Stefan Tauner (1): add support for SFDP (JESD216) Makefile | 2 +- chipdrivers.h | 4 + flash.h | 2 + flashchips.c | 24 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- sfdp.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ spi.h | 5 + spi25.c | 31 +++++ 9 files changed, 451 insertions(+), 2 deletions(-) create mode 100644 sfdp.c From stefan.tauner at student.tuwien.ac.at Mon Jan 30 00:24:03 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Mon, 30 Jan 2012 00:24:03 +0100 Subject: [flashrom] [PATCH] add support for SFDP (JESD216) In-Reply-To: <1327845167-9760-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1327845167-9760-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <1327879443-11326-2-git-send-email-stefan.tauner@student.tuwien.ac.at> Similar to modules using the opaque programmer framework (e.g. ICH Hardware Sequencing) this uses a generic struct flashchip element in flashchips.c with dummy values and a special probe function that fills the obtained values into that generic struct. Documentation used: http://www.jedec.org/standards-documents/docs/jesd216 (2011-04) W25Q32BV data sheet Revision F (2011-04-01) EN25QH16 data sheet Revision F (2011-06-01) todo: - handle programmers which have a problem with the dummy bytes needed - move sfdp_add_uniform_eraser to flashchips.c? Signed-off-by: Stefan Tauner --- Makefile | 2 +- chipdrivers.h | 4 + flash.h | 2 + flashchips.c | 24 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- sfdp.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ spi.h | 5 + spi25.c | 31 +++++ 9 files changed, 451 insertions(+), 2 deletions(-) create mode 100644 sfdp.c diff --git a/Makefile b/Makefile index 83aa038..b890d8a 100644 --- a/Makefile +++ b/Makefile @@ -252,7 +252,7 @@ endif CHIP_OBJS = jedec.o stm50flw0x0x.o w39.o w29ee011.o \ sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \ sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o sharplhf00l04.o \ - a25.o at25.o opaque.o + a25.o at25.o opaque.o sfdp.o LIB_OBJS = layout.o diff --git a/chipdrivers.h b/chipdrivers.h index a1d0cd9..bd81098 100644 --- a/chipdrivers.h +++ b/chipdrivers.h @@ -41,6 +41,7 @@ int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int b int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen); +erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode); int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len); @@ -58,6 +59,9 @@ int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, u int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); +/* sfdp.c */ +int probe_spi_sfdp(struct flashctx *flash); + /* opaque.c */ int probe_opaque(struct flashctx *flash); int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); diff --git a/flash.h b/flash.h index e51b6d4..6bcae71 100644 --- a/flash.h +++ b/flash.h @@ -174,6 +174,8 @@ struct flashctx { struct registered_programmer *pgm; }; +typedef int (erasefunc_t)(struct flashctx *flash, unsigned int addr, unsigned int blocklen); + #define TEST_UNTESTED 0 #define TEST_OK_PROBE (1 << 0) diff --git a/flashchips.c b/flashchips.c index ca1c57f..f0fde20 100644 --- a/flashchips.c +++ b/flashchips.c @@ -8872,6 +8872,30 @@ const struct flashchip flashchips[] = { .read = read_memmapped, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, + + { + .vendor = "Unknown", + .name = "SFDP device", + .bustype = BUS_SPI, + .manufacture_id = GENERIC_MANUF_ID, + .model_id = SFDP_DEVICE_ID, + /* We present our own "report this" text hence we do not + * want the default "This flash part has status UNTESTED..." + * text to be printed. */ + .tested = TEST_OK_PREW, + .probe = probe_spi_sfdp, + .read = spi_chip_read, + /* FIXME: some vendor extensions define this */ + .voltage = {}, + /* Everything below will be set by the probing function. */ + .page_size = 0, + .write = NULL, + .total_size = 0, + .feature_bits = 0, + .block_erasers = {}, + .unlock = NULL, + .printlock = NULL, + }, { .vendor = "Programmer", diff --git a/flashchips.h b/flashchips.h index 03efb86..1f2a8ca 100644 --- a/flashchips.h +++ b/flashchips.h @@ -36,6 +36,7 @@ #define GENERIC_MANUF_ID 0xffff /* Check if there is a vendor ID */ #define GENERIC_DEVICE_ID 0xffff /* Only match the vendor ID */ +#define SFDP_DEVICE_ID 0xfffe #define ALLIANCE_ID 0x52 /* Alliance Semiconductor */ #define ALLIANCE_AS29F002B 0x34 diff --git a/flashrom.c b/flashrom.c index ee68344..84fb3fc 100644 --- a/flashrom.c +++ b/flashrom.c @@ -986,7 +986,33 @@ int probe_flash(struct registered_programmer *pgm, int startchip, * probe_flash() is the first one and thus no chip has been * found before. */ - if (startchip == 0 || fill_flash->model_id != GENERIC_DEVICE_ID) + if (startchip == 0 && fill_flash->model_id == SFDP_DEVICE_ID) { + msg_cinfo("===\n" + "SFDP has autodetected a flash chip which is " + "not natively supported by flashrom yet.\n"); + if (count_usable_erasers(fill_flash) == 0) + msg_cinfo("The standard operations read and " + "verify should work, but to support " + "erase, write and all other " + "possible features"); + else + msg_cinfo("All standard operations (read, " + "verify, erase and write) should " + "work, but to support all possible " + "features"); + + msg_cinfo(" we need to add them manually.\nYou " + "can help us by mailing us the output of " + "the following command to flashrom at flashrom." + "org: \n'flashrom -VV [plus the " + "-p/--programmer parameter (if needed)]" + "'\nThanks for your help!\n" + "===\n"); + } + + if (startchip == 0 || + ((fill_flash->model_id != GENERIC_DEVICE_ID) && + (fill_flash->model_id != SFDP_DEVICE_ID))) break; notfound: diff --git a/sfdp.c b/sfdp.c new file mode 100644 index 0000000..6ede009 --- /dev/null +++ b/sfdp.c @@ -0,0 +1,356 @@ +/* + * This file is part of the flashrom project. + * + * Copyright (C) 2011-2012 Stefan Tauner + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "flash.h" +#include "spi.h" +#include "chipdrivers.h" + +static int spi_sfdp_wrapper(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + int i, ret; + const unsigned char cmd[JEDEC_SFDP_OUTSIZE] = { + JEDEC_SFDP, + (address >> 16) & 0xff, + (address >> 8) & 0xff, + (address >> 0) & 0xff, + 0 + }; + msg_cspew("spi_sfdp_wrapper: addr=0x%x, len=%d, data:\n", address, len); + ret = spi_send_command(flash, sizeof(cmd), len, cmd, buf); + for (i = 0; i < len; i++) + msg_cspew(" 0x%02x", buf[i]); + msg_cspew("\n"); + return ret; +} + +/* FIXME: eventually something similar like this but more generic should be + * available to split up spi commands. use that then instead */ +static int spi_sfdp(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + /* FIXME: this is wrong. */ + int maxstep = 8; + int ret = 0; + while (len > 0) { + int step = min(len, maxstep); + ret = spi_sfdp_wrapper(flash, address, buf, step); + if (ret) + return ret; + address += step; + buf += step; + len -= step; + } + return ret; +} + +struct sfdp_tbl_hdr { + uint8_t id; + uint8_t v_minor; + uint8_t v_major; + uint8_t len; + uint32_t ptp; /* 24b pointer */ +}; + +static int sfdp_add_uniform_eraser(struct flashctx *f, uint8_t opcode, uint32_t bsize) +{ + uint32_t total_size = f->total_size * 1024; + int i; + erasefunc_t *erasefn = spi_get_erasefn_from_opcode(opcode); + if (erasefn == NULL) + return 1; + for (i = 0; i < NUM_ERASEFUNCTIONS; i++) { + struct block_eraser *eraser = &f->block_erasers[i]; + if (eraser->eraseblocks[0].size != 0) + continue; + eraser->block_erase = erasefn; + eraser->eraseblocks[0].size = bsize; + eraser->eraseblocks[0].count = total_size/bsize; + msg_cdbg2(" Block eraser %d: %d x %d B with opcode " + "0x%02x\n", i, total_size/bsize, bsize, + opcode); + return 0; + } + msg_cinfo("%s: Not enough space to store another eraser (i=%d)." + " Please report this at flashrom at flashrom.org\n", + __func__, i); + return 1; +} + +static int sfdp_fill_flash(struct flashctx *f, uint8_t *buf, uint16_t len) +{ + uint32_t tmp32; + uint8_t tmp8; + uint32_t total_size; /* in bytes */ + uint32_t bsize; + uint8_t opcode_4k = 0xFF; + int dw, j; + + msg_cdbg2("Parsing JEDEC SFDP parameter table...\n"); + if (len != 9 * 4 && len != 4 * 4) { + msg_cerr("%s: len out of spec\n", __func__); + return 1; + } + + /* 1. double word */ + dw = 0; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + tmp8 = (tmp32 >> 17) & 0x3; + switch (tmp8) { + case 0x0: + msg_cdbg2(" 3-Byte only addressing.\n"); + break; + case 0x1: + msg_cdbg2(" 3-Byte (and optionally 4-Byte) addressing.\n"); + break; + case 0x2: + msg_cdbg(" 4-Byte only addressing not supported.\n"); + return 1; + default: + msg_cdbg(" Required addressing mode (0x%x) not supported.\n", + tmp8); + return 1; + } + + msg_cdbg2(" Writes to the status register have "); + if (tmp32 & (1 << 3)) { + f->unlock = spi_disable_blockprotect; + msg_cdbg2("to be enabled with "); + if (tmp32 & (1 << 4)) { + f->feature_bits = FEATURE_WRSR_WREN; + msg_cdbg2("WREN (0x06).\n"); + } else { + f->feature_bits = FEATURE_WRSR_EWSR; + msg_cdbg2("EWSR (0x50).\n"); + } + } else + msg_cdbg2("not to be especially enabled.\n"); + + msg_cdbg2(" Write granularity is "); + if (tmp32 & (1 << 2)) { + msg_cdbg2("at least 64 B.\n"); + f->page_size = 64; + f->write = spi_chip_write_256; + } else { + msg_cdbg2("1 B only.\n"); + f->page_size = 256; /* ? */ + f->write = spi_chip_write_1; + } + + if ((tmp32 & 0x3) == 0x1) { + opcode_4k = (tmp32 >> 8) & 0xFF; /* will be dealt with later */ + } + + /* 2. double word */ + dw = 1; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + if (tmp32 & (1 << 31)) { + msg_cerr(" Flash chip size >= 4 Gb/512 MB not supported.\n"); + return 1; + } + total_size = ((tmp32 & 0x7FFFFFFF) + 1) / 8; + f->total_size = total_size / 1024; + msg_cdbg2(" Flash chip size is %d kB.\n", f->total_size); + + /* FIXME: double words 3-7 contain unused fast read information */ + + if (len == 4 * 4) { + msg_cdbg("It seems like this chip supports the preliminary " + "Intel version of SFDP, skipping processing of double " + "words 3-9.\n"); + goto proc_4k; + } + + dw = 8; + for (j = 0; j < 4; j++) { + /* 8 double words from the start + 2 words for every eraser */ + tmp32 = buf[(4 * dw) + (2 * j)]; + if (tmp32 == 0) { + msg_cdbg2(" Block eraser %d is unused.\n", j); + continue; + } + if (tmp32 >= 31) { + msg_cdbg2(" Block size of eraser %d (2^%d) is too big." + "\n", j, tmp32); + continue; + } + bsize = 1 << (tmp32); /* bsize = 2 ^ field */ + + tmp8 = buf[(4 * dw) + (2 * j) + 1]; + if(sfdp_add_uniform_eraser(f, tmp8, bsize)) + continue; + /* If there is a valid 4k value in the last double words, + * we want to override the value from double word 1, hence force + * skipping its processing: */ + if (bsize == 4 * 1024) + opcode_4k = 0xFF; + } + +proc_4k: + if (opcode_4k != 0xFF) { + sfdp_add_uniform_eraser(f, opcode_4k, 4 * 1024); + } + return 0; +} + +static int sfdp_fetch_pt(struct flashctx *flash, uint32_t addr, uint8_t *buf, uint16_t len) +{ + uint16_t i; + if (spi_sfdp(flash, addr, buf, len)) { + msg_cerr("Receiving SFDP parameter table failed.\n"); + return 1; + } + msg_cspew(" Parameter table contents:\n"); + for(i = 0; i < len; i++) { + if ((i % 8) == 0) { + msg_cspew(" 0x%03x: ", i); + } + msg_cspew(" 0x%02x", buf[i]); + if ((i % 8) == 7) { + msg_cspew("\n"); + continue; + } + if ((i % 8) == 3) { + msg_cspew(" "); + continue; + } + } + msg_cspew("\n"); + return 0; +} + +int probe_spi_sfdp(struct flashctx *flash) +{ + int ret = 0; + uint8_t buf[8]; + uint32_t tmp32; + uint8_t nph; + /* need to limit the table loop by comparing i to uint8_t nph hence: */ + uint16_t i; + struct sfdp_tbl_hdr *hdrs; + uint8_t *hbuf; + uint8_t *tbuf; + + if (spi_sfdp(flash, 0x00, buf, 4)) { + msg_cerr("Receiving SFDP signature failed.\n"); + return 0; + } + tmp32 = buf[0]; + tmp32 |= ((unsigned int)buf[1]) << 8; + tmp32 |= ((unsigned int)buf[2]) << 16; + tmp32 |= ((unsigned int)buf[3]) << 24; + + msg_cdbg2("SFDP signature = 0x%08x (should be 0x50444653)\n", tmp32); + if (tmp32 != 0x50444653) { + msg_cdbg("No SFDP signature found.\n"); + return 0; + } + if (spi_sfdp(flash, 0x04, buf, 3)) { + msg_cerr("Receiving SFDP revision and number of parameter " + "headers (NPH) failed. "); + return 0; + } + msg_cdbg2("SFDP revision = %d.%d\n", buf[1], buf[0]); + nph = buf[2]; + msg_cdbg2("SFDP number of parameter headers (NPH) = %d (+ 1 mandatory)" + "\n", nph); + + /* Fetch all parameter headers, even if we don't use them all (yet). */ + hbuf = malloc(sizeof(struct sfdp_tbl_hdr) * (nph + 1)); + hdrs = malloc((nph + 1) * 8); + if (hbuf == NULL || hdrs == NULL ) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (spi_sfdp(flash, 0x08, hbuf, (nph + 1) * 8)) { + msg_cerr("Receiving SFDP parameter table headers failed.\n"); + goto cleanup_hdrs; + } + + i = 0; + do { + uint16_t len; + hdrs[i].id = hbuf[(8 * i) + 0]; + hdrs[i].v_minor = hbuf[(8 * i) + 1]; + hdrs[i].v_major = hbuf[(8 * i) + 2]; + hdrs[i].len = hbuf[(8 * i) + 3]; + hdrs[i].ptp = hbuf[(8 * i) + 4]; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 5]) << 8; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 6]) << 16; + msg_cdbg2("SFDP parameter table header %d/%d:\n", i, nph); + msg_cdbg2(" ID 0x%02x, version %d.%d\n", hdrs[i].id, + hdrs[i].v_major, hdrs[i].v_minor); + len = hdrs[i].len * 4; + tmp32 = hdrs[i].ptp; + msg_cdbg2(" Length %d B, Parameter Table Pointer 0x%06x\n", + len, tmp32); + + if (len + tmp32 > UINT16_MAX) { + msg_cerr("SFDP Parameter Table %d supposedly " + "overflows addressable SFDP area. This most\n" + "probably indicates a corrupt SFDP parameter " + "table header. Aborting SFDP probe!\n", i); + ret = 0; + goto cleanup_hdrs; + } + + tbuf = malloc(len); + if (tbuf == NULL) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (sfdp_fetch_pt(flash, tmp32, tbuf, len)){ + msg_cerr("Fetching SFDP parameter table %d failed.\n", + i); + free(tbuf); + break; + } + if (i == 0) { /* Mandatory JEDEC SFDP parameter table */ + if (hdrs[i].id != 0) + msg_cdbg("ID of the mandatory JEDEC SFDP " + "parameter table is not 0 as demanded " + "by JESD216 (warning only).\n"); + + if (len != 9 * 4 && len != 4 * 4) { + msg_cdbg("Length of the mandatory JEDEC SFDP " + "parameter table is %d B instead of " + "36 B (i.e. 9 double words) as " + "demanded by JESD216, skipping " + "parsing.\n", len); + } else if (sfdp_fill_flash(flash, tbuf, len) == 0) + ret = 1; + } + + free(tbuf); + i++; + } while(i <= nph); + +cleanup_hdrs: + free(hdrs); + free(hbuf); + return ret; +} diff --git a/spi.h b/spi.h index b908603..5f07eae 100644 --- a/spi.h +++ b/spi.h @@ -40,6 +40,11 @@ #define JEDEC_REMS_OUTSIZE 0x04 #define JEDEC_REMS_INSIZE 0x02 +/* Read Serial Flash Discoverable Parameters (SFDP) */ +#define JEDEC_SFDP 0x5a +#define JEDEC_SFDP_OUTSIZE 0x05 /* 8b op, 24b addr, 8b dummy */ +/* JEDEC_SFDP_INSIZE : any length */ + /* Read Electronic Signature */ #define JEDEC_RES 0xab #define JEDEC_RES_OUTSIZE 0x04 diff --git a/spi25.c b/spi25.c index 3ce7f08..15ec300 100644 --- a/spi25.c +++ b/spi25.c @@ -720,6 +720,37 @@ int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, return spi_chip_erase_c7(flash); } +erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode) +{ + switch(opcode){ + case 0x00: + case 0xff: + /* Not specified, assuming "not supported". */ + return NULL; + case 0x20: + return &spi_block_erase_20; + break; + case 0x52: + return &spi_block_erase_52; + break; + case 0x60: + return &spi_block_erase_60; + break; + case 0xc7: + return &spi_block_erase_c7; + break; + case 0xd7: + return &spi_block_erase_d7; + break; + case 0xd8: + return &spi_block_erase_d8; + default: + msg_cinfo("%s: unknown erase opcode (0x%02x). Please report " + "this at flashrom at flashrom.org\n", __func__, opcode); + return NULL; + } +} + int spi_write_status_enable(struct flashctx *flash) { static const unsigned char cmd[JEDEC_EWSR_OUTSIZE] = { JEDEC_EWSR }; -- 1.7.1 From r.marek at assembler.cz Mon Jan 30 09:27:23 2012 From: r.marek at assembler.cz (Rudolf Marek) Date: Mon, 30 Jan 2012 09:27:23 +0100 Subject: [flashrom] [PATCH] Add RDC R6030 chipset In-Reply-To: <201201291411.q0TEBg1k000592@mail2.student.tuwien.ac.at> References: <4F2481E7.1050509@assembler.cz> <201201290900.q0T90ZpS007776@mail2.student.tuwien.ac.at> <4F254AD9.9010502@assembler.cz> <201201291411.q0TEBg1k000592@mail2.student.tuwien.ac.at> Message-ID: <4F26546B.3050606@assembler.cz> Hi, Here is an updated patch. Signed-off-by: Rudolf Marek I can test this in the evening. Thanks Rudolf -------------- next part -------------- A non-text attachment was scrubbed... Name: a.patch Type: text/x-diff Size: 1238 bytes Desc: not available URL: From ifel at msc-ge.com Mon Jan 30 09:38:52 2012 From: ifel at msc-ge.com (Feldschmid, Ingo) Date: Mon, 30 Jan 2012 09:38:52 +0100 Subject: [flashrom] Board identification patch for the MSC Q7 Tunnel Creek board Message-ID: Hi, thanks for all the input. I have created a new patch file, which addresses the problems mentioned in the last few replies: - print.c: added entry in boards_known array- board_enable.c: phase 2 function name changed to "p2_not_a_laptop" - board_enable.c: new entry in board_matches array sorted by vendor name - board_enable.c: board detection mechanism changed to use first pci identifier for tunnel creek and second pci identifier for EG20T and dmi information for vendor name The detection mechanism should now work for all boards with Tunnel Creek CPU with EG20T southbridge from vendor "MSC Vertriebs GmbH". I tried to narrow it down with the CPU/chipset/DMI combination, since we don't have any company-specific pci devices on this board. Signed-off-by: Ingo Feldschmid Best regards, Ingo Es gelten unsere Allgemeinen Leistungsbedingungen die unter http://www.msc-ge.com/alb abrufbar sind. Our standard terms and conditions apply which are available under http://www.msc-ge.com/alb . MSC Vertriebs GmbH Sitz der Gesellschaft: Industriestrasse 16, 76297 Stutensee Handelsregister: Mannheim, HRB Nr. 10 3631 Geschaftsfuhrung: Manfred Schwarztrauber, Lothar Kummerlin, Rudiger Kuhn, Silvano Geissler Umsatzsteuer ID Nr.: DE 143 585 507 WEEE Reg. Nr. : DE 31011852 Gleichmann & Co. Electronics GmbH Sitz der Gesellschaft: Schraderstrasse 44, 67227 Frankenthal Handelsregister: Ludwigshafen, HRB Nr. 21305 Geschaftsfuhrung: Manfred Schwarztrauber, Thomas Klein Umsatzsteuer ID Nr. : DE 148 421 329 WEEE Reg. Nr.: DE 72277043 Diese E-Mail enthalt vertrauliche und/ oder rechtlich geschutzte Informationen. Wenn Sie nicht der beabsichtigte Empfanger sind, informieren Sie bitte sofort den Absender und loschen Sie diese E-Mail. The information contained in this message is confidential and/ or protected by law. If you are not the intended recipient, please contact the sender and delete this message. -------------- next part -------------- A non-text attachment was scrubbed... Name: q7tctc_patch2.diff Type: application/octet-stream Size: 2794 bytes Desc: q7tctc_patch2.diff URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: EN_H_2_S_219.gif Type: image/gif Size: 172462 bytes Desc: not available URL: From stefan.tauner at student.tuwien.ac.at Tue Jan 31 06:51:00 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 31 Jan 2012 06:51:00 +0100 Subject: [flashrom] [PATCH] dummyflasher: Add a status register to SPI chips. Message-ID: <1327989061-15494-2-git-send-email-stefan.tauner@student.tuwien.ac.at> This is just a quick hack, that could be expanded. What do you think? Signed-off-by: Stefan Tauner --- dummyflasher.c | 34 +++++++++++++++++++++++++++++++--- 1 files changed, 31 insertions(+), 3 deletions(-) diff --git a/dummyflasher.c b/dummyflasher.c index 99f81f5..4ccfd9c 100644 --- a/dummyflasher.c +++ b/dummyflasher.c @@ -55,6 +55,7 @@ static unsigned int emu_jedec_be_52_size = 0; static unsigned int emu_jedec_be_d8_size = 0; static unsigned int emu_jedec_ce_60_size = 0; static unsigned int emu_jedec_ce_c7_size = 0; +static uint8_t emu_status = 0; #endif #endif @@ -126,6 +127,9 @@ int dummy_init(void) { char *bustext = NULL; char *tmp = NULL; +#if EMULATE_SPI_CHIP + char *status = NULL; +#endif #if EMULATE_CHIP struct stat image_stat; #endif @@ -178,6 +182,14 @@ int dummy_init(void) goto dummy_init_out; } #if EMULATE_SPI_CHIP + status = extract_programmer_param("status"); + if (status) { + emu_status = atoi(status); + msg_pdbg("Initial status register is set to 0x%02x.\n", + emu_status); + free(status); + } + if (!strcmp(tmp, "M25P10.RES")) { emu_chip = EMULATE_ST_M25P10_RES; emu_chip_size = 128 * 1024; @@ -385,10 +397,26 @@ static int emulate_spi_chip_response(unsigned int writecnt, if (readcnt > 2) readarr[2] = 0x4a; break; - case JEDEC_RDSR: - memset(readarr, 0, readcnt); + case JEDEC_RDSR: { + uint8_t tmp_status = emu_status; if (aai_active) - memset(readarr, 1 << 6, readcnt); + tmp_status |= 1 << 6; + memset(readarr, tmp_status, readcnt); + break; + } + case JEDEC_WREN: + emu_status |= (1 << 1); + break; + case JEDEC_WRSR: + if (!(emu_status & (1 << 1))) { + msg_perr("WRSR attempted, but WEL is 0!\n"); + return 1; + } + if (aai_active) { + msg_perr("WRSR attempted during AAI sequence!\n"); + return 1; + } + emu_status = writearr[1] & 0xFC; /* resets WEL and WIP */ break; case JEDEC_READ: offs = writearr[1] << 16 | writearr[2] << 8 | writearr[3]; -- 1.7.1 From stefan.tauner at student.tuwien.ac.at Tue Jan 31 06:51:01 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 31 Jan 2012 06:51:01 +0100 Subject: [flashrom] [PATCH] print*.c: Refine the do not count nor print generic flash chip entries. Message-ID: <1327989061-15494-3-git-send-email-stefan.tauner@student.tuwien.ac.at> Previously only the generic "unknown XXXX SPI chips" were ignored (because their name started with "unknown". This patch adds also all chips whose vendor starts with "Unknown" (none so far). Change the vendor of the entry for the opaque programmer framework to "Unknown" to ignore it. Another patch will add the SFDP chip template also with an "Unknown" vendor field. Rationale: these entries do not contain any useful information when shown in -L or wiki output. It would be better to add them to a general feature section or similar. Signed-off-by: Stefan Tauner --- flashchips.c | 2 +- print.c | 10 ++++++---- print_wiki.c | 11 ++++++----- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/flashchips.c b/flashchips.c index ca1c57f..0c8257b 100644 --- a/flashchips.c +++ b/flashchips.c @@ -8874,7 +8874,7 @@ const struct flashchip flashchips[] = { }, { - .vendor = "Programmer", + .vendor = "Unknown", .name = "Opaque flash chip", .bustype = BUS_PROG, .manufacture_id = PROGMANUF_ID, diff --git a/print.c b/print.c index 0e152a6..ba86ebb 100644 --- a/print.c +++ b/print.c @@ -74,8 +74,9 @@ static void print_supported_chips(void) /* calculate maximum column widths and by iterating over all chips */ for (f = flashchips; f->name != NULL; f++) { - /* Ignore "unknown XXXX SPI chip" entries. */ - if (!strncmp(f->name, "unknown", 7)) + /* Ignore generic entries. */ + if (!strncmp(f->vendor, "Unknown", 7) || + !strncmp(f->name, "unknown", 7)) continue; chipcount++; @@ -161,8 +162,9 @@ static void print_supported_chips(void) msg_ginfo("(P = PROBE, R = READ, E = ERASE, W = WRITE)\n\n"); for (f = flashchips; f->name != NULL; f++) { - /* Don't print "unknown XXXX SPI chip" entries. */ - if (!strncmp(f->name, "unknown", 7)) + /* Don't print generic entries. */ + if (!strncmp(f->vendor, "Unknown", 7) || + !strncmp(f->name, "unknown", 7)) continue; /* support for multiline vendor names: diff --git a/print_wiki.c b/print_wiki.c index 1c9241e..70f4427 100644 --- a/print_wiki.c +++ b/print_wiki.c @@ -216,9 +216,9 @@ static void print_supported_chips_wiki(int cols) char vmin[6]; for (f = flashchips; f->name != NULL; f++) { - /* Don't count "unknown XXXX SPI chip" entries. */ - if (!strncmp(f->name, "unknown", 7)) - continue; + /* Don't count generic entries. */ + if (!strncmp(f->vendor, "Unknown", 7) || + !strncmp(f->name, "unknown", 7)) chipcount++; } @@ -227,8 +227,9 @@ static void print_supported_chips_wiki(int cols) "| valign=\"top\"|\n\n%s", chipcount, chip_th); for (f = flashchips; f->name != NULL; f++, i++) { - /* Don't print "unknown XXXX SPI chip" entries. */ - if (!strncmp(f->name, "unknown", 7)) + /* Don't print generic entries. */ + if (!strncmp(f->vendor, "Unknown", 7) || + !strncmp(f->name, "unknown", 7)) continue; /* Alternate colors if the vendor changes. */ -- 1.7.1 From stefan.tauner at student.tuwien.ac.at Tue Jan 31 06:50:59 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 31 Jan 2012 06:50:59 +0100 Subject: [flashrom] [PATCH] spi25.c: Refactor spi_write_status_register helpers. Message-ID: <1327989061-15494-1-git-send-email-stefan.tauner@student.tuwien.ac.at> In r1115 "Write protection handling for Atmel AT25*" the old spi_write_status_register function was duplicated to send WREN and EWSR commands respectively controlled by a new common wrapper function spi_write_status_register without a reason. Both functions' resulting code is equal apart from the opcode used. The code itself does also differ in the macros used, but their value (apart from the opcode) is equal. This patch adds a new parameter for the opcode to the helper function which allows removal of the other one. This relies on the fact that EWSR and WREN have the same INSIZE and OUTSIZE though. If that is really seen as an issue, the sizes could be made parameters too. This patch also changes the wrapper so that it no longer sets the feature bits of the struct flash(ctx) argument. This may result in changed output, because it no longer implicitly disables the debug message in following executions. Also, spi_write_status_enable has been dead code since r658 or so. Remove it. Signed-off-by: Stefan Tauner --- spi25.c | 90 ++++++++++----------------------------------------------------- 1 files changed, 14 insertions(+), 76 deletions(-) diff --git a/spi25.c b/spi25.c index 3ce7f08..d81616c 100644 --- a/spi25.c +++ b/spi25.c @@ -720,81 +720,19 @@ int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, return spi_chip_erase_c7(flash); } -int spi_write_status_enable(struct flashctx *flash) -{ - static const unsigned char cmd[JEDEC_EWSR_OUTSIZE] = { JEDEC_EWSR }; - int result; - - /* Send EWSR (Enable Write Status Register). */ - result = spi_send_command(flash, sizeof(cmd), JEDEC_EWSR_INSIZE, cmd, NULL); - - if (result) - msg_cerr("%s failed\n", __func__); - - return result; -} - -/* - * This is according the SST25VF016 datasheet, who knows it is more - * generic that this... - */ -static int spi_write_status_register_ewsr(struct flashctx *flash, int status) +static int spi_write_status_register_flag(struct flashctx *flash, int status, const unsigned char opcode) { int result; int i = 0; - struct spi_command cmds[] = { - { - /* WRSR requires either EWSR or WREN depending on chip type. */ - .writecnt = JEDEC_EWSR_OUTSIZE, - .writearr = (const unsigned char[]){ JEDEC_EWSR }, - .readcnt = 0, - .readarr = NULL, - }, { - .writecnt = JEDEC_WRSR_OUTSIZE, - .writearr = (const unsigned char[]){ JEDEC_WRSR, (unsigned char) status }, - .readcnt = 0, - .readarr = NULL, - }, { - .writecnt = 0, - .writearr = NULL, - .readcnt = 0, - .readarr = NULL, - }}; - - result = spi_send_multicommand(flash, cmds); - if (result) { - msg_cerr("%s failed during command execution\n", - __func__); - /* No point in waiting for the command to complete if execution - * failed. - */ - return result; - } - /* WRSR performs a self-timed erase before the changes take effect. - * This may take 50-85 ms in most cases, and some chips apparently - * allow running RDSR only once. Therefore pick an initial delay of - * 100 ms, then wait in 10 ms steps until a total of 5 s have elapsed. + /* + * WRSR requires either EWSR or WREN depending on chip type. + * The code below relies on the fact hat EWSR and WREN have the same + * INSIZE and OUTSIZE. */ - programmer_delay(100 * 1000); - while (spi_read_status_register(flash) & JEDEC_RDSR_BIT_WIP) { - if (++i > 490) { - msg_cerr("Error: WIP bit after WRSR never cleared\n"); - return TIMEOUT_ERROR; - } - programmer_delay(10 * 1000); - } - return 0; -} - -static int spi_write_status_register_wren(struct flashctx *flash, int status) -{ - int result; - int i = 0; struct spi_command cmds[] = { { - /* WRSR requires either EWSR or WREN depending on chip type. */ .writecnt = JEDEC_WREN_OUTSIZE, - .writearr = (const unsigned char[]){ JEDEC_WREN }, + .writearr = (const unsigned char[]){ opcode }, .readcnt = 0, .readarr = NULL, }, { @@ -811,8 +749,7 @@ static int spi_write_status_register_wren(struct flashctx *flash, int status) result = spi_send_multicommand(flash, cmds); if (result) { - msg_cerr("%s failed during command execution\n", - __func__); + msg_cerr("%s failed during command execution\n", __func__); /* No point in waiting for the command to complete if execution * failed. */ @@ -836,17 +773,18 @@ static int spi_write_status_register_wren(struct flashctx *flash, int status) int spi_write_status_register(struct flashctx *flash, int status) { + int feature_bits = flash->feature_bits; int ret = 1; - if (!(flash->feature_bits & (FEATURE_WRSR_WREN | FEATURE_WRSR_EWSR))) { + if (!(feature_bits & (FEATURE_WRSR_WREN | FEATURE_WRSR_EWSR))) { msg_cdbg("Missing status register write definition, assuming " "EWSR is needed\n"); - flash->feature_bits |= FEATURE_WRSR_EWSR; + feature_bits |= FEATURE_WRSR_EWSR; } - if (flash->feature_bits & FEATURE_WRSR_WREN) - ret = spi_write_status_register_wren(flash, status); - if (ret && (flash->feature_bits & FEATURE_WRSR_EWSR)) - ret = spi_write_status_register_ewsr(flash, status); + if (feature_bits & FEATURE_WRSR_WREN) + ret = spi_write_status_register_flag(flash, status, JEDEC_WREN); + if (ret && (feature_bits & FEATURE_WRSR_EWSR)) + ret = spi_write_status_register_flag(flash, status, JEDEC_EWSR); return ret; } -- 1.7.1 From stefan.tauner at student.tuwien.ac.at Tue Jan 31 06:59:24 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 31 Jan 2012 06:59:24 +0100 Subject: [flashrom] [PATCH] SFDP 3.2 In-Reply-To: <1327879443-11326-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1327879443-11326-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: just a few minor changes. this should be reviewed now. the only show stopper is the hacky workaround for programmer which dont allow arbitrary writearr sizes and dummy bytes. i may add some vendor-specific tables later, but this will be in a patch of its own of course. Stefan Tauner (1): Add support for SFDP (JESD216). Makefile | 2 +- chipdrivers.h | 4 + flash.h | 2 + flashchips.c | 23 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- sfdp.c | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ spi.h | 5 + spi25.c | 31 +++++ 9 files changed, 449 insertions(+), 2 deletions(-) create mode 100644 sfdp.c From stefan.tauner at student.tuwien.ac.at Tue Jan 31 06:59:25 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 31 Jan 2012 06:59:25 +0100 Subject: [flashrom] [PATCH] Add support for SFDP (JESD216). In-Reply-To: <1327879443-11326-1-git-send-email-stefan.tauner@student.tuwien.ac.at> References: <1327879443-11326-1-git-send-email-stefan.tauner@student.tuwien.ac.at> Message-ID: <84758b260241cd069355aca2c618fc144576a422.1327989256.git.stefan.tauner@student.tuwien.ac.at> Similar to modules using the opaque programmer framework (e.g. ICH Hardware Sequencing) this uses a template struct flashchip element in flashchips.c with a special probe function that fills the obtained values into that struct. This allows yet unknown SPI chips to be supported (read, erase, write) almost as if it was already added to flashchips.c. Documentation used: http://www.jedec.org/standards-documents/docs/jesd216 (2011-04) W25Q32BV data sheet Revision F (2011-04-01) EN25QH16 data sheet Revision F (2011-06-01) todo: - handle programmers which have a problem with the dummy bytes needed - move sfdp_add_uniform_eraser to spi25.c for further use like spi_get_erasefn_from_opcode? - is setting the generic SPI unlock method safe? - what page_size should be set? Tested-by: David Hendricks on W25Q64CV Signed-off-by: Stefan Tauner --- Makefile | 2 +- chipdrivers.h | 4 + flash.h | 2 + flashchips.c | 23 ++++ flashchips.h | 1 + flashrom.c | 28 +++++- sfdp.c | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ spi.h | 5 + spi25.c | 31 +++++ 9 files changed, 449 insertions(+), 2 deletions(-) create mode 100644 sfdp.c diff --git a/Makefile b/Makefile index 83aa038..b890d8a 100644 --- a/Makefile +++ b/Makefile @@ -252,7 +252,7 @@ endif CHIP_OBJS = jedec.o stm50flw0x0x.o w39.o w29ee011.o \ sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \ sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o sharplhf00l04.o \ - a25.o at25.o opaque.o + a25.o at25.o opaque.o sfdp.o LIB_OBJS = layout.o diff --git a/chipdrivers.h b/chipdrivers.h index a1d0cd9..bd81098 100644 --- a/chipdrivers.h +++ b/chipdrivers.h @@ -41,6 +41,7 @@ int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int b int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen); int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen); +erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode); int spi_chip_write_1(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_write_256(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len); @@ -58,6 +59,9 @@ int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, u int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize); int spi_aai_write(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); +/* sfdp.c */ +int probe_spi_sfdp(struct flashctx *flash); + /* opaque.c */ int probe_opaque(struct flashctx *flash); int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); diff --git a/flash.h b/flash.h index e51b6d4..6bcae71 100644 --- a/flash.h +++ b/flash.h @@ -174,6 +174,8 @@ struct flashctx { struct registered_programmer *pgm; }; +typedef int (erasefunc_t)(struct flashctx *flash, unsigned int addr, unsigned int blocklen); + #define TEST_UNTESTED 0 #define TEST_OK_PROBE (1 << 0) diff --git a/flashchips.c b/flashchips.c index 0c8257b..b22e709 100644 --- a/flashchips.c +++ b/flashchips.c @@ -8872,6 +8872,29 @@ const struct flashchip flashchips[] = { .read = read_memmapped, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, + + { + .vendor = "Unknown", + .name = "SFDP device", + .bustype = BUS_SPI, + .manufacture_id = GENERIC_MANUF_ID, + .model_id = SFDP_DEVICE_ID, + /* We present our own "report this" text hence we do not + * want the default "This flash part has status UNTESTED..." + * text to be printed. */ + .tested = TEST_OK_PREW, + .probe = probe_spi_sfdp, + .unlock = spi_disable_blockprotect, /* is this safe? */ + .read = spi_chip_read, + .page_size = 256, /* ? */ + /* FIXME: some vendor extensions define this */ + .voltage = {}, + /* Everything below will be set by the probing function. */ + .write = NULL, + .total_size = 0, + .feature_bits = 0, + .block_erasers = {}, + }, { .vendor = "Unknown", diff --git a/flashchips.h b/flashchips.h index 03efb86..1f2a8ca 100644 --- a/flashchips.h +++ b/flashchips.h @@ -36,6 +36,7 @@ #define GENERIC_MANUF_ID 0xffff /* Check if there is a vendor ID */ #define GENERIC_DEVICE_ID 0xffff /* Only match the vendor ID */ +#define SFDP_DEVICE_ID 0xfffe #define ALLIANCE_ID 0x52 /* Alliance Semiconductor */ #define ALLIANCE_AS29F002B 0x34 diff --git a/flashrom.c b/flashrom.c index ee68344..84fb3fc 100644 --- a/flashrom.c +++ b/flashrom.c @@ -986,7 +986,33 @@ int probe_flash(struct registered_programmer *pgm, int startchip, * probe_flash() is the first one and thus no chip has been * found before. */ - if (startchip == 0 || fill_flash->model_id != GENERIC_DEVICE_ID) + if (startchip == 0 && fill_flash->model_id == SFDP_DEVICE_ID) { + msg_cinfo("===\n" + "SFDP has autodetected a flash chip which is " + "not natively supported by flashrom yet.\n"); + if (count_usable_erasers(fill_flash) == 0) + msg_cinfo("The standard operations read and " + "verify should work, but to support " + "erase, write and all other " + "possible features"); + else + msg_cinfo("All standard operations (read, " + "verify, erase and write) should " + "work, but to support all possible " + "features"); + + msg_cinfo(" we need to add them manually.\nYou " + "can help us by mailing us the output of " + "the following command to flashrom at flashrom." + "org: \n'flashrom -VV [plus the " + "-p/--programmer parameter (if needed)]" + "'\nThanks for your help!\n" + "===\n"); + } + + if (startchip == 0 || + ((fill_flash->model_id != GENERIC_DEVICE_ID) && + (fill_flash->model_id != SFDP_DEVICE_ID))) break; notfound: diff --git a/sfdp.c b/sfdp.c new file mode 100644 index 0000000..7c00ff5 --- /dev/null +++ b/sfdp.c @@ -0,0 +1,355 @@ +/* + * This file is part of the flashrom project. + * + * Copyright (C) 2011-2012 Stefan Tauner + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "flash.h" +#include "spi.h" +#include "chipdrivers.h" + +static int spi_sfdp_wrapper(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + int i, ret; + const unsigned char cmd[JEDEC_SFDP_OUTSIZE] = { + JEDEC_SFDP, + (address >> 16) & 0xff, + (address >> 8) & 0xff, + (address >> 0) & 0xff, + 0 + }; + msg_cspew("spi_sfdp_wrapper: addr=0x%x, len=%d, data:\n", address, len); + ret = spi_send_command(flash, sizeof(cmd), len, cmd, buf); + for (i = 0; i < len; i++) + msg_cspew(" 0x%02x", buf[i]); + msg_cspew("\n"); + return ret; +} + +/* FIXME: eventually something similar like this but more generic should be + * available to split up spi commands. use that then instead */ +static int spi_sfdp(struct flashctx *flash, uint32_t address, uint8_t *buf, int len) +{ + /* FIXME: this is wrong. */ + int maxstep = 8; + int ret = 0; + while (len > 0) { + int step = min(len, maxstep); + ret = spi_sfdp_wrapper(flash, address, buf, step); + if (ret) + return ret; + address += step; + buf += step; + len -= step; + } + return ret; +} + +struct sfdp_tbl_hdr { + uint8_t id; + uint8_t v_minor; + uint8_t v_major; + uint8_t len; + uint32_t ptp; /* 24b pointer */ +}; + +static int sfdp_add_uniform_eraser(struct flashctx *f, uint8_t opcode, uint32_t bsize) +{ + uint32_t total_size = f->total_size * 1024; + int i; + erasefunc_t *erasefn = spi_get_erasefn_from_opcode(opcode); + if (erasefn == NULL) + return 1; + for (i = 0; i < NUM_ERASEFUNCTIONS; i++) { + struct block_eraser *eraser = &f->block_erasers[i]; + if (eraser->eraseblocks[0].size != 0 || !eraser->block_erase) + continue; + eraser->block_erase = erasefn; + eraser->eraseblocks[0].size = bsize; + eraser->eraseblocks[0].count = total_size/bsize; + msg_cdbg2(" Block eraser %d: %d x %d B with opcode " + "0x%02x\n", i, total_size/bsize, bsize, + opcode); + return 0; + } + msg_cinfo("%s: Not enough space to store another eraser (i=%d)." + " Please report this at flashrom at flashrom.org\n", + __func__, i); + return 1; +} + +static int sfdp_fill_flash(struct flashctx *f, uint8_t *buf, uint16_t len) +{ + uint32_t tmp32; + uint8_t tmp8; + uint32_t total_size; /* in bytes */ + uint32_t bsize; + uint8_t opcode_4k = 0xFF; + int dw, j; + + msg_cdbg("Parsing JEDEC SFDP parameter table... "); + if (len != 9 * 4 && len != 4 * 4) { + msg_cerr("%s: len out of spec\n", __func__); + return 1; + } + msg_cdbg2("\n"); + + /* 1. double word */ + dw = 0; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + tmp8 = (tmp32 >> 17) & 0x3; + switch (tmp8) { + case 0x0: + msg_cdbg2(" 3-Byte only addressing.\n"); + break; + case 0x1: + msg_cdbg2(" 3-Byte (and optionally 4-Byte) addressing.\n"); + break; + case 0x2: + msg_cdbg(" 4-Byte only addressing not supported.\n"); + return 1; + default: + msg_cdbg(" Required addressing mode (0x%x) not supported.\n", + tmp8); + return 1; + } + + msg_cdbg2(" Writes to the status register have "); + if (tmp32 & (1 << 3)) { + msg_cdbg2("to be enabled with "); + if (tmp32 & (1 << 4)) { + f->feature_bits = FEATURE_WRSR_WREN; + msg_cdbg2("WREN (0x06).\n"); + } else { + f->feature_bits = FEATURE_WRSR_EWSR; + msg_cdbg2("EWSR (0x50).\n"); + } + } else + msg_cdbg2("not to be especially enabled.\n"); + + msg_cdbg2(" Write granularity is "); + if (tmp32 & (1 << 2)) { + msg_cdbg2("at least 64 B.\n"); + f->write = spi_chip_write_256; + } else { + msg_cdbg2("1 B only.\n"); + f->write = spi_chip_write_1; + } + + if ((tmp32 & 0x3) == 0x1) { + opcode_4k = (tmp32 >> 8) & 0xFF; /* will be dealt with later */ + } + + /* 2. double word */ + dw = 1; + tmp32 = buf[(4 * dw) + 0]; + tmp32 |= ((unsigned int)buf[(4 * dw) + 1]) << 8; + tmp32 |= ((unsigned int)buf[(4 * dw) + 2]) << 16; + tmp32 |= ((unsigned int)buf[(4 * dw) + 3]) << 24; + + if (tmp32 & (1 << 31)) { + msg_cerr("Flash chip size >= 4 Gb/512 MB not supported.\n"); + return 1; + } + total_size = ((tmp32 & 0x7FFFFFFF) + 1) / 8; + f->total_size = total_size / 1024; + msg_cdbg2(" Flash chip size is %d kB.\n", f->total_size); + + /* FIXME: double words 3-7 contain unused fast read information */ + + if (len == 4 * 4) { + msg_cdbg("It seems like this chip supports the preliminary " + "Intel version of SFDP, skipping processing of double " + "words 3-9.\n"); + goto proc_4k; + } + + dw = 8; + for (j = 0; j < 4; j++) { + /* 8 double words from the start + 2 words for every eraser */ + tmp32 = buf[(4 * dw) + (2 * j)]; + if (tmp32 == 0) { + msg_cdbg2(" Block eraser %d is unused.\n", j); + continue; + } + if (tmp32 >= 31) { + msg_cdbg2(" Block size of eraser %d (2^%d) is too big." + "\n", j, tmp32); + continue; + } + bsize = 1 << (tmp32); /* bsize = 2 ^ field */ + + tmp8 = buf[(4 * dw) + (2 * j) + 1]; + if(sfdp_add_uniform_eraser(f, tmp8, bsize)) + continue; + /* If there is a valid 4k value in the last double words, + * we want to override the value from double word 1, hence force + * skipping its processing: */ + if (bsize == 4 * 1024) + opcode_4k = 0xFF; + } + +proc_4k: + if (opcode_4k != 0xFF) { + sfdp_add_uniform_eraser(f, opcode_4k, 4 * 1024); + } + msg_cdbg("done.\n"); + return 0; +} + +static int sfdp_fetch_pt(struct flashctx *flash, uint32_t addr, uint8_t *buf, uint16_t len) +{ + uint16_t i; + if (spi_sfdp(flash, addr, buf, len)) { + msg_cerr("Receiving SFDP parameter table failed.\n"); + return 1; + } + msg_cspew(" Parameter table contents:\n"); + for(i = 0; i < len; i++) { + if ((i % 8) == 0) { + msg_cspew(" 0x%03x: ", i); + } + msg_cspew(" 0x%02x", buf[i]); + if ((i % 8) == 7) { + msg_cspew("\n"); + continue; + } + if ((i % 8) == 3) { + msg_cspew(" "); + continue; + } + } + msg_cspew("\n"); + return 0; +} + +int probe_spi_sfdp(struct flashctx *flash) +{ + int ret = 0; + uint8_t buf[8]; + uint32_t tmp32; + uint8_t nph; + /* need to limit the table loop by comparing i to uint8_t nph hence: */ + uint16_t i; + struct sfdp_tbl_hdr *hdrs; + uint8_t *hbuf; + uint8_t *tbuf; + + if (spi_sfdp(flash, 0x00, buf, 4)) { + msg_cerr("Receiving SFDP signature failed.\n"); + return 0; + } + tmp32 = buf[0]; + tmp32 |= ((unsigned int)buf[1]) << 8; + tmp32 |= ((unsigned int)buf[2]) << 16; + tmp32 |= ((unsigned int)buf[3]) << 24; + + msg_cdbg2("SFDP signature = 0x%08x (should be 0x50444653)\n", tmp32); + if (tmp32 != 0x50444653) { + msg_cdbg("No SFDP signature found.\n"); + return 0; + } + if (spi_sfdp(flash, 0x04, buf, 3)) { + msg_cerr("Receiving SFDP revision and number of parameter " + "headers (NPH) failed. "); + return 0; + } + msg_cdbg2("SFDP revision = %d.%d\n", buf[1], buf[0]); + nph = buf[2]; + msg_cdbg2("SFDP number of parameter headers (NPH) = %d (+ 1 mandatory)" + "\n", nph); + + /* Fetch all parameter headers, even if we don't use them all (yet). */ + hbuf = malloc(sizeof(struct sfdp_tbl_hdr) * (nph + 1)); + hdrs = malloc((nph + 1) * 8); + if (hbuf == NULL || hdrs == NULL ) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (spi_sfdp(flash, 0x08, hbuf, (nph + 1) * 8)) { + msg_cerr("Receiving SFDP parameter table headers failed.\n"); + goto cleanup_hdrs; + } + + i = 0; + do { + uint16_t len; + hdrs[i].id = hbuf[(8 * i) + 0]; + hdrs[i].v_minor = hbuf[(8 * i) + 1]; + hdrs[i].v_major = hbuf[(8 * i) + 2]; + hdrs[i].len = hbuf[(8 * i) + 3]; + hdrs[i].ptp = hbuf[(8 * i) + 4]; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 5]) << 8; + hdrs[i].ptp |= ((unsigned int)hbuf[(8 * i) + 6]) << 16; + msg_cdbg2("SFDP parameter table header %d/%d:\n", i, nph); + msg_cdbg2(" ID 0x%02x, version %d.%d\n", hdrs[i].id, + hdrs[i].v_major, hdrs[i].v_minor); + len = hdrs[i].len * 4; + tmp32 = hdrs[i].ptp; + msg_cdbg2(" Length %d B, Parameter Table Pointer 0x%06x\n", + len, tmp32); + + if (len + tmp32 > UINT16_MAX) { + msg_cerr("SFDP Parameter Table %d supposedly " + "overflows addressable SFDP area. This most\n" + "probably indicates a corrupt SFDP parameter " + "table header. Aborting SFDP probe!\n", i); + ret = 0; + goto cleanup_hdrs; + } + + tbuf = malloc(len); + if (tbuf == NULL) { + msg_gerr("Out of memory!\n"); + exit(1); /* FIXME: shutdown gracefully */ + } + if (sfdp_fetch_pt(flash, tmp32, tbuf, len)){ + msg_cerr("Fetching SFDP parameter table %d failed.\n", + i); + free(tbuf); + break; + } + if (i == 0) { /* Mandatory JEDEC SFDP parameter table */ + if (hdrs[i].id != 0) + msg_cdbg("ID of the mandatory JEDEC SFDP " + "parameter table is not 0 as demanded " + "by JESD216 (warning only).\n"); + + if (len != 9 * 4 && len != 4 * 4) { + msg_cdbg("Length of the mandatory JEDEC SFDP " + "parameter table is %d B instead of " + "36 B (i.e. 9 double words) as " + "demanded by JESD216, skipping " + "parsing.\n", len); + } else if (sfdp_fill_flash(flash, tbuf, len) == 0) + ret = 1; + } + + free(tbuf); + i++; + } while(i <= nph); + +cleanup_hdrs: + free(hdrs); + free(hbuf); + return ret; +} diff --git a/spi.h b/spi.h index b908603..5f07eae 100644 --- a/spi.h +++ b/spi.h @@ -40,6 +40,11 @@ #define JEDEC_REMS_OUTSIZE 0x04 #define JEDEC_REMS_INSIZE 0x02 +/* Read Serial Flash Discoverable Parameters (SFDP) */ +#define JEDEC_SFDP 0x5a +#define JEDEC_SFDP_OUTSIZE 0x05 /* 8b op, 24b addr, 8b dummy */ +/* JEDEC_SFDP_INSIZE : any length */ + /* Read Electronic Signature */ #define JEDEC_RES 0xab #define JEDEC_RES_OUTSIZE 0x04 diff --git a/spi25.c b/spi25.c index d81616c..8b3887e 100644 --- a/spi25.c +++ b/spi25.c @@ -720,6 +720,37 @@ int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, return spi_chip_erase_c7(flash); } +erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode) +{ + switch(opcode){ + case 0xff: + case 0x00: + /* Not specified, assuming "not supported". */ + return NULL; + case 0x20: + return &spi_block_erase_20; + break; + case 0x52: + return &spi_block_erase_52; + break; + case 0x60: + return &spi_block_erase_60; + break; + case 0xc7: + return &spi_block_erase_c7; + break; + case 0xd7: + return &spi_block_erase_d7; + break; + case 0xd8: + return &spi_block_erase_d8; + default: + msg_cinfo("%s: unknown erase opcode (0x%02x). Please report " + "this at flashrom at flashrom.org\n", __func__, opcode); + return NULL; + } +} + static int spi_write_status_register_flag(struct flashctx *flash, int status, const unsigned char opcode) { int result; -- 1.7.1 From svn at flashrom.org Tue Jan 31 07:51:56 2012 From: svn at flashrom.org (repository service) Date: Tue, 31 Jan 2012 07:51:56 +0100 Subject: [flashrom] [commit] r1487 - trunk Message-ID: Author: stefanct Date: Tue Jan 31 07:51:56 2012 New Revision: 1487 URL: http://flashrom.org/trac/flashrom/changeset/1487 Log: Add board enable for the MSC Q7 Tunnel Creek board This patch adds a generic phase 2 board enable that does nothing but set is_laptop to 0 to circumvent an erroneous laptop detection due to ambigous DMI chassis information. Signed-off-by: Ingo Feldschmid Acked-by: Stefan Tauner Modified: trunk/board_enable.c trunk/print.c Modified: trunk/board_enable.c ============================================================================== --- trunk/board_enable.c Thu Jan 19 18:50:32 2012 (r1486) +++ trunk/board_enable.c Tue Jan 31 07:51:56 2012 (r1487) @@ -2045,6 +2045,19 @@ return it87_gpio_set(63, 1); } +/* + * Suited for all boards with ambiguous DMI chassis information, which should be + * whitelisted because they are known to work: + * - MSC Q7 Tunnel Creek Module (Q7-TCTC) + */ +static int p2_not_a_laptop(void) +{ + /* label this board as not a laptop */ + is_laptop = 0; + msg_pdbg("Laptop detection overridden by P2 board enable.\n"); + return 0; +} + #endif /* @@ -2191,6 +2204,7 @@ {0x1022, 0x7468, 0, 0, 0, 0, 0, 0, NULL, "iwill", "dk8_htx", P3, "IWILL", "DK8-HTX", 0, OK, w83627hf_gpio24_raise_2e}, {0x8086, 0x27A0, 0x8086, 0x27a0, 0x8086, 0x27b8, 0x8086, 0x27b8, NULL, "kontron", "986lcd-m", P3, "Kontron", "986LCD-M", 0, OK, board_kontron_986lcd_m}, {0x8086, 0x2411, 0x8086, 0x2411, 0x8086, 0x7125, 0x0e11, 0xb165, NULL, NULL, NULL, P3, "Mitac", "6513WU", 0, OK, board_mitac_6513wu}, + {0x8086, 0x8186, 0x8086, 0x8186, 0x8086, 0x8800, 0x0000, 0x0000, "^MSC Vertriebs GmbH$", NULL, NULL, P2, "MSC", "Q7-TCTC", 0, OK, p2_not_a_laptop}, {0x10DE, 0x005E, 0x1462, 0x7125, 0x10DE, 0x0052, 0x1462, 0x7125, NULL, NULL, NULL, P3, "MSI", "K8N Neo4-F", 0, OK, nvidia_mcp_gpio2_raise}, /* TODO: Should probably be K8N Neo4 Platinum, see http://www.coreboot.org/pipermail/flashrom/2010-August/004362.html. */ {0x8086, 0x7190, 0, 0, 0x8086, 0x7110, 0, 0, "^MS-6163 (i440BX)$", NULL, NULL, P3, "MSI", "MS-6163 (MS-6163 Pro)", 0, OK, intel_piix4_gpo14_raise}, {0x1039, 0x0745, 0, 0, 0x1039, 0x0018, 0, 0, "^MS-6561", NULL, NULL, P3, "MSI", "MS-6561 (745 Ultra)", 0, OK, w836xx_memw_enable_2e}, Modified: trunk/print.c ============================================================================== --- trunk/print.c Thu Jan 19 18:50:32 2012 (r1486) +++ trunk/print.c Tue Jan 31 07:51:56 2012 (r1487) @@ -791,6 +791,7 @@ B("Lanner", "EM-8510C", 1, NULL, NULL), B("Lex", "CV700A", 1, "http://www.lex.com.tw/product/CV700A-spec.htm", NULL), B("Mitac", "6513WU", 1, "http://web.archive.org/web/20050313054828/http://www.mitac.com/micweb/products/tyan/6513wu/6513wu.htm", NULL), + B("MSC", "Q7-TCTC", 1, "http://www.msc-ge.com/en/produkte/com/moduls/overview/5779-www.html", NULL), B("MSI", "MS-6153", 1, "http://www.msi.com/product/mb/MS-6153.html", NULL), B("MSI", "MS-6156", 1, "http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/boards/Motherboards/MicroStar/Ms6156/MS6156.htm", NULL), B("MSI", "MS-6163 (MS-6163 Pro)",1, "http://www.msi.com/product/mb/MS-6163-Pro.html", NULL), From stefan.tauner at student.tuwien.ac.at Tue Jan 31 07:57:56 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 31 Jan 2012 07:57:56 +0100 Subject: [flashrom] Board identification patch for the MSC Q7 Tunnel Creek board In-Reply-To: References: Message-ID: <201201310657.q0V6veAa002376@mail2.student.tuwien.ac.at> On Mon, 30 Jan 2012 09:38:52 +0100 "Feldschmid, Ingo" wrote: > Hi, > > thanks for all the input. I have created a new patch file, which > addresses the problems mentioned in the last few replies: > > - print.c: added entry in boards_known array- board_enable.c: phase 2 > function name changed to "p2_not_a_laptop" > - board_enable.c: new entry in board_matches array sorted by vendor name > - board_enable.c: board detection mechanism changed to use first pci > identifier for tunnel creek and second pci identifier for EG20T and dmi > information for vendor name > > The detection mechanism should now work for all boards with Tunnel Creek > CPU with EG20T southbridge from vendor "MSC Vertriebs GmbH". I tried to > narrow it down with the CPU/chipset/DMI combination, since we don't have > any company-specific pci devices on this board. > > Signed-off-by: Ingo Feldschmid thanks for the rework! Acked-by: Stefan Tauner i have changed a few things additionally: most noteworthy i have changed the board enable to return 0 instead of 1. this is not checked atm, but if it ever will, then 0 will be the right choice. I have also added a debug print so that "DMI chassis-type is not specific enough." is followed by "Laptop detection overridden by P2 board enable." in verbose output. committed in r1487. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner From stefan.tauner at student.tuwien.ac.at Tue Jan 31 08:10:00 2012 From: stefan.tauner at student.tuwien.ac.at (Stefan Tauner) Date: Tue, 31 Jan 2012 08:10:00 +0100 Subject: [flashrom] [RFC] Does code implementing support for non-flash EEPROMs belong to 'flashrom'? In-Reply-To: <1327028143.23835.20.camel@marvin> References: <1327028143.23835.20.camel@marvin> Message-ID: <201201310709.q0V79hCR008019@mail2.student.tuwien.ac.at> On Thu, 19 Jan 2012 18:55:43 -0800 Andrey Smirnov wrote: > Hell everybody, > > I'm working with a board that has a ST > M95320-R(http://www.st.com/internet/mcu/product/113067.jsp) EEPROM chip > that works as a NVM for a Gigabit Ethernet card. This chip supports very > basic subset of instructions (read/write, write enable/disable, > read/write status word). Right now, in order to write the firmware to > the chip I use custom tool that does only this task. And I think it > would be much more convenient not to reinvent the wheel and just > implement support of the said microchip in more generic open source tool > such as 'flashrom'. But as far as I can tell, 'flashrom' is the tool > built with flash memory solely in mind (24bit address assumption, erase > +write cycle, etc.). So what I would like to know if 'flashrom' ever > aimed to implement its functionality for aforementioned kind of chips? > Is there any point for me to try to implement said functionality in the > code-base? > > Andrey Smirnov > > P.S. I'm not subscribed to the mailing list, please CC me in your > responses. hi andrey, as expected no one replied so far... and you probably wont get another reply before after FOSDEM if at all. on the other hand this is also positive: no one was annoyed enough after reading the subject line to try to stop you ;) flashrom was never intended to access EEPROMs, but on the other hand it was not designed to talk to other programmers than PC chipsets in the beginning either. it would be interesting to see where the problems lie and how far you could get. i would love to see patches for this purpose from you. but if you like to work on it i cant guarantee that it will be merged eventually of course. if you need any help just ask on IRC. -- Kind regards/Mit freundlichen Gr??en, Stefan Tauner