All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: Finn Thain <fthain@fastmail.com.au>
Cc: aleksandar.rikalo@syrmia.com, jasowang@redhat.com,
	qemu-devel@nongnu.org, "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	hpoussin@reactos.org, aurelien@aurel32.net,
	"Laurent Vivier" <laurent@vivier.eu>
Subject: Re: [PATCH 0/5] dp8393x: fixes for MacOS toolbox ROM
Date: Thu, 24 Jun 2021 15:42:14 +0100	[thread overview]
Message-ID: <246849c9-c674-7b33-6fe0-ddfff1d128fe@ilande.co.uk> (raw)
In-Reply-To: <2a99f70-4584-be2f-4d82-72641d65d7a@nippy.intranet>

On 18/06/2021 07:22, Finn Thain wrote:

> I was able to test this patch series successfully, using both
> "qemu-system-mipsel -M magnum" and "qemu-system-m68k -M q800". With the
> latter emulator I used a Linux/m68k guest and with the former I used both
> Linux/mips and NetBSD/arc guests.
> 
> Basic dp8393x functionality worked fine. I don't know how the m68k guest
> obtained its MAC address setting, but the macsonic driver banner message
> agrees with what's on the wire, at least.
> 
> The mips guest has ARC firmware which allowed the MAC address to be
> programmed manually:
> 
>   JAZZ Setup Program Version 0.17            Friday, 6-18-2021   5:06:02 AM
>   Copyright (c) 1991, 1992  Microsoft Corporation
> 
>       The current Ethernet station address is: 900090001122
>       Enter the new station address:  900090123456
>       The value written to NVRAM is: 9000901234560042
>   Press any key to continue...
> 
> I'm guessing that the "0042" is the checksum?
> 
> BTW, the patch in the message quoted above does not seem to affect my
> results. (This host is little-endian...) I don't know how to test
> that one. For the others:
> Tested-by: Finn Thain <fthain@linux-m68k.org>

Thanks for the link and the detailed testing information. I've been trying to 
understand why you had to set the MAC address in the ARC firmware so I had a bit of 
an experiment here.

The reason that you need to do this is because of the NVRAM configuration in your 
command line, in particular -global ds1225y.size=8200. What this does is extend the 
NVRAM over the top of the dp8393x-prom area where QEMU places the NIC MAC address and 
checksum on startup, so the NVRAM captures the MAC address reads/writes instead. The 
net effect of this is that the empty NVRAM initially reads all zeros and why an 
initial setup is required to set the MAC address.

This can be seen quite clearly in the "info mtree" output:

     0000000080009000-000000008000b007 (prio 0, i/o): nvram
     000000008000b000-000000008000bfff (prio 0, rom): dp8393x-prom

However if you completely drop -global ds1225y.size=8200 from your command line then 
the NVRAM doesn't overrun into the dp8393x-prom area, and the ARC firmware picks up 
the MAC address from QEMU correctly:

     0000000080009000-000000008000afff (prio 0, i/o): nvram
     000000008000b000-000000008000bfff (prio 0, rom): dp8393x-prom

I've also looked over the entire SONIC datasheet to see if the PROM format is 
documented, and according to that there is no non-volatile storage available on the 
chip itself. Testing shows that the checksum algorithm currently used for the dp8393x 
device generates the same result as that generated by the ARC firmware, which is 
known to be different than that used by the Q800 machine.

 From this I conclude that the PROM is provided by the board and not the chipset, and 
therefore each machine should construct its own PROM accordingly. I'll send a v2 
patchset shortly with these changes which shall also include the proposed endian patch.


ATB,

Mark.


  reply	other threads:[~2021-06-24 14:43 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-13 16:37 [PATCH 0/5] dp8393x: fixes for MacOS toolbox ROM Mark Cave-Ayland
2021-06-13 16:37 ` [PATCH 1/5] dp8393x: checkpatch fixes Mark Cave-Ayland
2021-06-13 16:37 ` [PATCH 2/5] dp8393x: convert to trace-events Mark Cave-Ayland
2021-06-13 16:37 ` [PATCH 3/5] dp8393x: fix PROM checksum and MAC address storage Mark Cave-Ayland
2021-06-13 16:37 ` [PATCH 4/5] dp8393x: don't force 32-bit register access Mark Cave-Ayland
2021-06-13 16:37 ` [PATCH 5/5] dp8393x: fix CAM descriptor entry index Mark Cave-Ayland
2021-06-14  5:36 ` [PATCH 0/5] dp8393x: fixes for MacOS toolbox ROM Philippe Mathieu-Daudé
2021-06-14  7:51   ` Mark Cave-Ayland
2021-06-16  3:09     ` Finn Thain
2021-06-16  6:10       ` Mark Cave-Ayland
2021-06-18  6:22         ` Finn Thain
2021-06-24 14:42           ` Mark Cave-Ayland [this message]
2021-06-25  4:36             ` Finn Thain
2021-06-25  6:17               ` Mark Cave-Ayland
2021-06-25  9:32                 ` Finn Thain
2021-06-25 11:49                   ` Mark Cave-Ayland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=246849c9-c674-7b33-6fe0-ddfff1d128fe@ilande.co.uk \
    --to=mark.cave-ayland@ilande.co.uk \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=aurelien@aurel32.net \
    --cc=f4bug@amsat.org \
    --cc=fthain@fastmail.com.au \
    --cc=hpoussin@reactos.org \
    --cc=jasowang@redhat.com \
    --cc=laurent@vivier.eu \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.