[coreboot] Probe missing on W49F002U

Jun Ma sync.jma at gmail.com
Fri Feb 29 02:21:48 CET 2008


Hi, all.
  I downloaded flashrom from
http://www.openbios.org/viewvc/trunk/util/flashrom.tar.gz?view=tar,
also it was built correctly,  when I scp it to an SIS530/SIS5595 board
with debian-4.0r2, it just can't
recognize my Winbond W49G002U EEPROM, here comes the verbose log:


Sis530:~# ./flashrom -c W49F002U
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "SIS5595", enabling flash write... OK.
No EEPROM/flash device found.
Sis530:~# ./flashrom -R
flashrom r
Sis530:~# ./flashrom --version
flashrom r
Sis530:~# ./flashrom -V -r
Calibrating delay loop... 59M loops per second. OK.
No coreboot table found.
Found chipset "SIS5595", enabling flash write... OK.
Probing for Am29F040B, 512 KB
probe_29f040b: id1 0xff, id2 0xff
Probing for Am29LV040B, 512 KB
probe_29f040b: id1 0xff, id2 0xff
Probing for Am29F016D, 2048 KB
probe_29f040b: id1 0xff, id2 0xff
Probing for AE49F2008, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for At29C040A, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for At29C020, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for At49F002(N), 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for At49F002(N)T, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for EN29F002(A)(N)T, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for EN29F002(A)(N)B, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for MBM29F400TC, 512 KB
probe_m29f400bt: id1 0xff, id2 0xff
Probing for MX29F002, 256 KB
probe_29f002: id1 0xff, id2 0xff
Probing for MX25L4005, 512 KB
generic_spi_command called, but no SPI chipset detected
Probing for MX25L8005, 1024 KB
generic_spi_command called, but no SPI chipset detected
Probing for MX25L3205, 4096 KB
generic_spi_command called, but no SPI chipset detected
Probing for S25FL016A, 2048 KB
generic_spi_command called, but no SPI chipset detected
Probing for SST25VF040B, 512 KB
generic_spi_command called, but no SPI chipset detected
Probing for SST25VF016B, 2048 KB
generic_spi_command called, but no SPI chipset detected
Probing for SST29EE020A, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST28SF040A, 512 KB
probe_28sf040: id1 0xff, id2 0xff
Probing for SST39SF010A, 128 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST39SF020A, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST39SF040, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST39VF020, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF040B, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF040, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF020A, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF080A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF002A/B, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF003A/B, 384 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF004A/B, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF008A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF004C, 512 KB
probe_49lfxxxc: id1 0xff, id2 0xff
Probing for SST49LF008C, 1024 KB
probe_49lfxxxc: id1 0xff, id2 0xff
Probing for SST49LF016C, 2048 KB
probe_49lfxxxc: id1 0xff, id2 0xff
Probing for SST49LF160C, 2048 KB
probe_49lfxxxc: id1 0xff, id2 0xff
Probing for Pm49FL002, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for Pm49FL004, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for Pm25LV512, 64 KB
generic_spi_command called, but no SPI chipset detected
Probing for Pm25LV010, 128 KB
generic_spi_command called, but no SPI chipset detected
Probing for Pm25LV020, 256 KB
generic_spi_command called, but no SPI chipset detected
Probing for Pm25LV040, 512 KB
generic_spi_command called, but no SPI chipset detected
Probing for Pm25LV080B, 1024 KB
generic_spi_command called, but no SPI chipset detected
Probing for Pm25LV016B, 2048 KB
generic_spi_command called, but no SPI chipset detected
Probing for W29C011, 128 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W29C040P, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W29C020C, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W29EE011, 128 KB
probe_w29ee011: id1 0xff, id2 0xff
Probing for W49F002U, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W49V002A, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W49V002FA, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W39V040FA, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W39V040A, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W39V040B, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W39V080A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for W25x10, 128 KB
generic_spi_command called, but no SPI chipset detected
Probing for W25x20, 256 KB
generic_spi_command called, but no SPI chipset detected
Probing for W25x40, 512 KB
generic_spi_command called, but no SPI chipset detected
Probing for W25x80, 1024 KB
generic_spi_command called, but no SPI chipset detected
Probing for M29F002B, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FW040, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M29W040B, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M29F002T/NT, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M29F400BT, 512 KB
probe_m29f400bt: id1 0xff, id2 0xff
Probing for M50FLW040A, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FLW040B, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FLW080A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FLW080B, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FW080, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FW016, 2048 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50LPW116, 2048 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M29W010B, 128 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M29F040B, 512 KB
probe_29f040b: id1 0xff, id2 0xff
Probing for M25P05-A, 64 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P10-A, 128 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P20, 256 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P40, 512 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P80, 1024 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P16, 2048 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P32, 4096 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P64, 8192 KB
generic_spi_command called, but no SPI chipset detected
Probing for M25P128, 16384 KB
generic_spi_command called, but no SPI chipset detected
Probing for 82802ab, 512 KB
probe_82802ab: id1 0xff, id2 0xff
Probing for 82802ac, 1024 KB
probe_82802ab: id1 0xff, id2 0xff
Probing for F49B002UA, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for LHF00L04, 1024 KB
probe_lhf00l04: id1 0xff, id2 0xff
Probing for S29C51001T, 128 KB
probe_jedec: id1 0xff, id2 0xff
Probing for S29C51002T, 256 KB
probe_jedec: id1 0xff, id2 0xff
Probing for S29C51004T, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for S29C31004T, 512 KB
probe_jedec: id1 0xff, id2 0xff
Probing for EON unknown SPI chip, 0 KB
WARNING: size: 0 -> 4096 (page size)
generic_spi_command called, but no SPI chipset detected
Probing for MX unknown SPI chip, 0 KB
WARNING: size: 0 -> 4096 (page size)
generic_spi_command called, but no SPI chipset detected
Probing for PMC unknown SPI chip, 0 KB
WARNING: size: 0 -> 4096 (page size)
generic_spi_command called, but no SPI chipset detected
Probing for SST unknown SPI chip, 0 KB
WARNING: size: 0 -> 4096 (page size)
generic_spi_command called, but no SPI chipset detected
Probing for ST unknown SPI chip, 0 KB
WARNING: size: 0 -> 4096 (page size)
generic_spi_command called, but no SPI chipset detected
No EEPROM/flash device found.
Sis530:~#


After quick reading of your source code, I saw this probing function:
int probe_jedec(struct flashchip *flash)
{
       volatile uint8_t *bios = flash->virtual_memory;
       uint8_t id1, id2;
       uint32_t largeid1, largeid2;

       /* Issue JEDEC Product ID Entry command */
       *(volatile uint8_t *)(bios + 0x5555) = 0xAA;
       myusec_delay(10);
       *(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
       myusec_delay(10);
       *(volatile uint8_t *)(bios + 0x5555) = 0x90;
       /* Older chips may need up to 100 us to respond. The ATMEL 29C020
        * needs 10 ms according to the data sheet, but it has been tested
        * to work reliably with 20 us. Allow a factor of 2 safety margin.
        */
       myusec_delay(40);

       /* Read product ID */
       id1 = *(volatile uint8_t *)bios;
       id2 = *(volatile uint8_t *)(bios + 0x01);
       largeid1 = id1;
       largeid2 = id2;

       /* Check if it is a continuation ID, this should be a while loop. */
       if (id1 == 0x7F) {
               largeid1 <<= 8;
               id1 = *(volatile uint8_t *)(bios + 0x100);
               largeid1 |= id1;
       }
       if (id2 == 0x7F) {
               largeid2 <<= 8;
               id2 = *(volatile uint8_t *)(bios + 0x101);
               largeid2 |= id2;
       }

       /* Issue JEDEC Product ID Exit command */
       *(volatile uint8_t *)(bios + 0x5555) = 0xAA;
       myusec_delay(10);
       *(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
       myusec_delay(10);
       *(volatile uint8_t *)(bios + 0x5555) = 0xF0;
       myusec_delay(40);

       printf_debug("%s: id1 0x%x, id2 0x%x\n", __FUNCTION__,
largeid1, largeid2);
       if (largeid1 == flash->manufacture_id && largeid2 == flash->model_id)
               return 1;

       return 0;
}

Seems flashrom routing got 0xff, 0xff on largeid1, largeid2.
Has anybody tested this routing on SIS530?
Thanks.

Jun.




More information about the coreboot mailing list