From 219982ef42154ad58a629f59267797c5454fc742 Mon Sep 17 00:00:00 2001 From: Gerhard Wiesinger Date: Sat, 5 Mar 2011 13:44:39 +0100 Subject: hw/pcnet.c: Fix EPROM contents to suit AMD netware drivers bugfix under DOS for AMD netware driver: AMD PCNTNW Ethernet MLID v3.10 (960115), network card not found bugfix works well under DOS with: 1.) AMD NDIS driver v2.0.1 2.) AMD PCNTNW Ethernet MLID v3.10 (960115) 3.) Knoppix 6.2 Signed-off-by: Gerhard Wiesinger Signed-off-by: Blue Swirl --- hw/pcnet.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'hw/pcnet.c') diff --git a/hw/pcnet.c b/hw/pcnet.c index db52dc59e1..6dfdcc420f 100644 --- a/hw/pcnet.c +++ b/hw/pcnet.c @@ -1562,8 +1562,24 @@ void pcnet_h_reset(void *opaque) /* Initialize the PROM */ + /* + Datasheet: http://pdfdata.datasheetsite.com/web/24528/AM79C970A.pdf + page 95 + */ memcpy(s->prom, s->conf.macaddr.a, 6); + /* Reserved Location: must be 00h */ + s->prom[6] = s->prom[7] = 0x00; + /* Reserved Location: must be 00h */ + s->prom[8] = 0x00; + /* Hardware ID: must be 11h if compatibility to AMD drivers is desired */ + s->prom[9] = 0x11; + /* User programmable space, init with 0 */ + s->prom[10] = s->prom[11] = 0x00; + /* LSByte of two-byte checksum, which is the sum of bytes 00h-0Bh + and bytes 0Eh and 0Fh, must therefore be initialized with 0! */ s->prom[12] = s->prom[13] = 0x00; + /* Must be ASCII W (57h) if compatibility to AMD + driver software is desired */ s->prom[14] = s->prom[15] = 0x57; for (i = 0,checksum = 0; i < 16; i++) -- cgit v1.2.3