Hi,
On 28.01.2010 16:36, Michael Karcher wrote:
This patch may or may not help the HP xw9400 workstation [...]
Signed-off-by: Michael Karcher flashrom@mkarcher.dialup.fu-berlin.de
Turns out that this patch was not needed for flash detection, but it may be needed as board enable for writing. Besides that, it allows MCP55 GPIO access which we need anyway.
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 */
break; default: fprintf(stderr,case 0x0364: /* MCP55 */
@@ -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);
}
Regards, Carl-Daniel