aboutsummaryrefslogtreecommitdiffstats
path: root/hw/pcnet.c
diff options
context:
space:
mode:
authorGerhard Wiesinger <lists@wiesinger.com>2011-03-05 13:44:39 +0100
committerBlue Swirl <blauwirbel@gmail.com>2011-03-05 13:07:25 +0000
commit219982ef42154ad58a629f59267797c5454fc742 (patch)
tree83a385ea43eb78dd1801a068567cf5171ac0a4a4 /hw/pcnet.c
parent60c07d933c66c4b30a83b7ccbc8a0cb3df1b2d0e (diff)
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 <lists@wiesinger.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw/pcnet.c')
-rw-r--r--hw/pcnet.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/hw/pcnet.c b/hw/pcnet.c
index db52dc59e..6dfdcc420 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++)