-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello,
This patch adds support for BIOS flashing on the all SiliconImage SATA controllers. It was easy because
1) flashrom has now nice API 2) documentation is public on the web site
Signed-off-by: Rudolf Marek r.marek@assembler.cz
PS: maybe we could write to that company and tell them. For Windows/Linux they force the customer to download freedos from sourceforge ;) There is also a file with a list of roms:
AMD’s Am29F010B/Am29LV010B (1 Megabit) and Am29F040B (4 Megabit) AMD’s Am29LV400B (4 Megabit) variable sectors Atmel’s AT49BV512 (64KB), AT29LV010A (1 Megabit), and AT49LV040 (4 Megabit) SST’s 39SF010 (1 Megabit), 39VF010 (1 Megabit), 39VF020 (2 Megabit), 39SF020 (2 Megabit), and 39VF040 (4 Megabit). SANYO’s LE28C1001D (1 Megabit) WinBound’s 29EE011 (1 Megabit) and 29EE512 (64KB) STMicroelectronics M29F010B/ M29W010B (1 Megabit) STMicroelectronics M29W040B (4 Megabit) STMicroelectronics M29W400B (4 Megabit) variable sectors MXIC MX29LV040 (4 Megabit) PMC Pm39LV010(1Megabit) and PMC Pm39LV040 (4Megabit)
Thanks, Rudolf
On Sun, May 17, 2009 at 06:49:52PM +0200, Rudolf Marek wrote:
This patch adds support for BIOS flashing on the all SiliconImage SATA controllers. It was easy because
- flashrom has now nice API
- documentation is public on the web site
Signed-off-by: Rudolf Marek r.marek@assembler.cz
Acked-by: Uwe Hermann uwe@hermann-uwe.de
But see below...
PS: maybe we could write to that company and tell them. For Windows/Linux they force the customer to download freedos from sourceforge ;)
Sure, go ahead :)
Index: sata_sil.c
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ sata_sil.c 2009-05-17 18:13:19.683305043 +0200 +#define PCI_VENDOR_ID_SIL 0x1095
+uint8_t *sil_bar; +uint16_t id;
+struct pcidev_status satas_sil[] = {
- {0x1095, 0x0680, PCI_NT, "Silicon Image, Inc.", "PCI0680 Ultra ATA-133 Host Controller"},
- {0x1095, 0x3114, PCI_OK, "Silicon Image, Inc.", "SiI 3114 [SATALink/SATARaid] Serial ATA Controller"},
- {0x1095, 0x3124, PCI_NT, "Silicon Image, Inc.", "SiI 3124 PCI-X Serial ATA Controller"},
- {0x1095, 0x3132, PCI_OK, "Silicon Image, Inc.", "SiI 3132 Serial ATA Raid II Controller"},
- {0x1095, 0x3512, PCI_NT, "Silicon Image, Inc.", "SiI 3512 [SATALink/SATARaid] Serial ATA Controller"},
Please drop the ", Inc." part from the strings for brevity.
- /* check if rom cycle are OK */
rom -> ROM
+void satasil_chip_writeb(uint8_t val, chipaddr addr) +{
- uint32_t ctrl_reg, addr_reg;
addr_reg should be data_reg, I think.
- while ((ctrl_reg = mmio_readl(sil_bar)) & (1 << 25)) ;
- /* Mask out unused/reserved bits, set writes and start transaction */
- ctrl_reg &= 0xfcf80000;
- ctrl_reg |= (1 << 25) | (0 << 24) | ((uint32_t) addr & 0xffffff);
- addr_reg = (mmio_readl((sil_bar + 4)) & ~0xff) | val;
- mmio_writel(addr_reg, (sil_bar + 4));
- mmio_writel(ctrl_reg, sil_bar);
- while (mmio_readl(sil_bar) & (1 << 25)) ;
Uwe.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Ok its fixed and also renamed. Committed revision 527.
Rudolf