This patch may or may not help the HP xw9400 workstation with the
undetected flash chip. Please test.

Signed-off-by: Michael Karcher <[email protected]>
---
 board_enable.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/board_enable.c b/board_enable.c
index 2c836a9..6970be2 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -478,6 +478,7 @@ static int nvidia_mcp_gpio_set(int gpio, int raise)
            dev = pci_dev_find_vendorclass(0x10DE, 0x0C05);
            switch (dev->device_id) {
            case 0x0264: /* MCP51 */
+           case 0x0364: /* MCP55 */
                break;
            default:
                fprintf(stderr,
@@ -513,6 +514,26 @@ static int nvidia_mcp_gpio2_raise(const char *name)
  */
 static int nvidia_mcp_gpio5_raise(const char *name)
 {
+       /* experimental stuff - maybe it helps the hidden flash
+          chip problem on Tyan S2915-E */
+       struct pci_dev * dev;
+       uint16_t base;
+       uint16_t tmp;
+       dev = pci_dev_find(0x10de,0x0364);
+       if(!dev) {
+               fprintf(stderr, "SMBus bridge not found?!\n");
+               return -1;
+       }
+       base = pci_read_long(dev,0x60) & 0xFF00;
+       if(base < 0x400) {
+               fprintf(stderr, "bogus I/O base %04x\n", base);
+               return -1;
+       }
+       tmp = INW(base+2);
+       tmp &= 0xFEFF;
+       OUTW(tmp, base+2);
+
+       /* Obvious stuff for the HP variant */
        return nvidia_mcp_gpio_set(0x05, 1);
 }
 
-- 
1.6.5


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to