Patchwork hw/pcnet.c: Fix EPROM contents to suit AMD netware drivers

login
register
mail settings
Submitter Gerhard Wiesinger
Date Feb. 23, 2011, 8:20 p.m.
Message ID <alpine.LFD.2.02.1102232119190.25224@bbs.intern>
Download mbox | patch
Permalink /patch/84238/
State New
Headers show

Comments

Gerhard Wiesinger - Feb. 23, 2011, 8:20 p.m.
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
---
  hw/pcnet.c |   16 ++++++++++++++++
  1 files changed, 16 insertions(+), 0 deletions(-)
Gerhard Wiesinger - March 1, 2011, 7:20 p.m.
Hello,

Any feedback to the patch, ready to commit?

Thnx.

Ciao,
Gerhard

--
http://www.wiesinger.com/

On Wed, 23 Feb 2011, Gerhard Wiesinger wrote:

> 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
> ---
> hw/pcnet.c |   16 ++++++++++++++++
> 1 files changed, 16 insertions(+), 0 deletions(-)
>
> diff --git a/hw/pcnet.c b/hw/pcnet.c
> index db52dc5..6dfdcc4 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++)
> -- 
> 1.7.3.4
>
>
>
Blue Swirl - March 5, 2011, 12:13 p.m.
On Tue, Mar 1, 2011 at 9:20 PM, Gerhard Wiesinger <lists@wiesinger.com> wrote:
> Hello,
>
> Any feedback to the patch, ready to commit?

ERROR: Missing Signed-off-by: line(s)

Please add Signed-off-by: line.
Gerhard Wiesinger - March 5, 2011, 12:45 p.m.
On Sat, 5 Mar 2011, Blue Swirl wrote:

> On Tue, Mar 1, 2011 at 9:20 PM, Gerhard Wiesinger <lists@wiesinger.com> wrote:
>> Hello,
>>
>> Any feedback to the patch, ready to commit?
>
> ERROR: Missing Signed-off-by: line(s)
>
> Please add Signed-off-by: line.

Resend.

Ciao,
Gerhard

--
http://www.wiesinger.com/

Patch

diff --git a/hw/pcnet.c b/hw/pcnet.c
index db52dc5..6dfdcc4 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++)