On 06.02.2008 02:09, Carl-Daniel Hailfinger wrote: > On 04.02.2008 22:04, Chris Lingard wrote: > >> I recently found someone who could do the work of modifying the >> motherboard, Harald kindly posted me the chip. >> >> The machine came back and it would not boot with the switch up >> >> I then probably made a mistake, I used the BIOS itself to dump the >> factory BIOS to several floppies; then flipped the switch and wrote the >> factory BIOS to the new chip. The machine now boots from either BIOS. >> >> Using flashrom to detect the chip I get: >> >> Calibrating delay loop... 853M loops per second. OK. >> No coreboot table found. >> Found chipset "NVIDIA MCP55", enabling flash write... OK. >> Found board "GIGABYTE GA-M57SLI-S4": enabling flash write... 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 >> OK. >> >> <snip> >> >> Probing for MX25L4005, 512 KB >> RDID returned 7f 9d 7e. >> probe_spi: id1 0x7f, id2 0x9d7e >> >> <snip> >> >> No EEPROM/flash device found. >> >> The factory BIOS is the same except that it returns >> >> Probing for MX25L4005, 512 KB >> RDID returned 7f 9d 7e. >> >> <snip> >> >> No EEPROM/flash device found. >> >> > > Please specify which flash chips you are using. The snipped logs are > extremely misleading, especially because the RDID output contradicts the > MX25L4005 claim in the mail subject. > The RDID you are seeing is from a Pm25LV040 (7f 9d 7e). > > >> The block diagram shows the BIOS connected directly to the 570-SLI and >> not via the 8716 >> >> > > That block diagram is correct for v1.x of the board. > > >> Could someone please give me a clue of either what I have missed out, or >> how to proceed? >> >> > > We need to know the exact flash chip types before we can proceed. >
Can you try the patch below? We need full output from flashrom -V. Signed-off-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]> Index: flashrom-spi_pm25/flash.h =================================================================== --- flashrom-spi_pm25/flash.h (Revision 3086) +++ flashrom-spi_pm25/flash.h (Arbeitskopie) @@ -158,7 +158,8 @@ /* Programmable Micro Corp is listed in JEP106W in bank 2, so it should have * a 0x7F continuation code prefix. */ -#define PMC_ID 0x9D /* PMC */ +#define PMC_ID 0x7F9D /* PMC */ +#define PMC_ID_NOPREFIX 0x9D /* PMC, missing 0x7F prefix */ #define PMC_49FL002 0x6D #define PMC_49FL004 0x6E Index: flashrom-spi_pm25/flashchips.c =================================================================== --- flashrom-spi_pm25/flashchips.c (Revision 3086) +++ flashrom-spi_pm25/flashchips.c (Arbeitskopie) @@ -100,9 +100,9 @@ probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc}, {"SST49LF160C", SST_ID, SST_49LF160C, 2048, 4 * 1024 , probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc}, - {"Pm49FL002", PMC_ID, PMC_49FL002, 256, 16 * 1024, + {"Pm49FL002", PMC_ID_NOPREFIX, PMC_49FL002, 256, 16 * 1024, probe_jedec, erase_chip_jedec, write_49fl004}, - {"Pm49FL004", PMC_ID, PMC_49FL004, 512, 64 * 1024, + {"Pm49FL004", PMC_ID_NOPREFIX, PMC_49FL004, 512, 64 * 1024, probe_jedec, erase_chip_jedec, write_49fl004}, {"W29C011", WINBOND_ID, W_29C011, 128, 128, probe_jedec, erase_chip_jedec, write_jedec}, @@ -205,6 +205,8 @@ probe_spi, NULL, NULL}, {"MX unknown SPI chip", MX_ID, GENERIC_DEVICE_ID, 0, 0, probe_spi, NULL, NULL}, + {"PMC unknown SPI chip", PMC_ID, GENERIC_DEVICE_ID, 0, 0, + probe_spi, NULL, NULL}, {"SST unknown SPI chip", SST_ID, GENERIC_DEVICE_ID, 0, 0, probe_spi, NULL, NULL}, {"ST unknown SPI chip", ST_ID, GENERIC_DEVICE_ID, 0, 0, Index: flashrom-spi_pm25/spi.c =================================================================== --- flashrom-spi_pm25/spi.c (Revision 3086) +++ flashrom-spi_pm25/spi.c (Arbeitskopie) @@ -281,8 +281,14 @@ uint8_t manuf_id; uint16_t model_id; if (!generic_spi_rdid(readarr)) { - manuf_id = readarr[0]; - model_id = (readarr[1] << 8) | readarr[2]; + /* Check if this is a continuation vendor ID */ + if (readarr[0] == 0x7f) { + manuf_id = (readarr[0] << 8) | readarr[1]; + model_id = readarr[2]; + } else { + manuf_id = readarr[0]; + model_id = (readarr[1] << 8) | readarr[2]; + } printf_debug("%s: id1 0x%x, id2 0x%x\n", __FUNCTION__, manuf_id, model_id); if (manuf_id == flash->manufacture_id && model_id == flash->model_id) { -- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot