[flashrom] [PATCH] experimental patch for HP branded Tyan S2915
Michael Karcher
flashrom at mkarcher.dialup.fu-berlin.de
Thu Jan 28 16:36:50 CET 2010
This patch may or may not help the HP xw9400 workstation with the
undetected flash chip. Please test.
Signed-off-by: Michael Karcher <flashrom at mkarcher.dialup.fu-berlin.de>
---
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
More information about the flashrom
mailing list