Hi Ron, I've updated the patch slightly to add a routine to enable flash writes on the epia mainboard with out the need for the seperate setpci command.
Mark
On Friday 28 Feb 2003 22:13, Ronald G. Minnich wrote:
thanks for the patch!
I'll try to get it in today or monday.
ron
--- freebios/util/flash_and_burn/flash_rom.c Fri Feb 28 17:21:37 2003 +++ mod-freebios/util/flash_and_burn/flash_rom.c Sat Mar 1 15:37:40 2003 @@ -146,6 +146,30 @@ return 0; }
+int +enable_flash_epia(struct pci_dev *dev, char *name) { +/* register 40.b gets bit 4 set to enable flash access + * information from README file for epia mainboard + * + * Should I put a check to make sure it only gets set on device 0:11.0 ? + * + */ + unsigned char old, new; + int ok; + + old = pci_read_byte(dev, 0x40); + + new = old | 0x10; + + ok = pci_write_byte(dev, 0x40, new); + if (!ok) { + printf("Failed to set 0x%x to 0x%x on %s and got 0x%x (WARNING ONLY)\n", + old, new, name, ok); + return -1; + } + return 0; +} + struct flashchip * probe_flash(struct flashchip * flash) { int fd_mem; @@ -260,6 +284,7 @@
{0x1, 0x1, "sis630 -- what's the ID?", enable_flash_sis630}, {0x8086, 0x2480, "E7500", enable_flash_e7500}, + {0x1106, 0x8231, "Via EPIA", enable_flash_epia}, };
int @@ -291,7 +316,8 @@ }
/* now do the deed. */ - enable->doit(dev, enable->name); + if ( enable ) + enable->doit(dev, enable->name); return 0; }