[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 0/5] dp8393x: fixes for MacOS toolbox ROM

From: Mark Cave-Ayland
Subject: [PATCH 0/5] dp8393x: fixes for MacOS toolbox ROM
Date: Sun, 13 Jun 2021 17:37:33 +0100

Here is the next set of patches from my attempts to boot MacOS under QEMU's
Q800 machine related to the Sonic network adapter.

Patches 1 and 2 sort out checkpatch and convert from DPRINTF macros to

Patch 3 fixes the PROM checksum and MAC address storage format as found by
stepping through the MacOS toolbox.

Patch 4 ensures that the CPU loads/stores are correctly converted to 16-bit
accesses for the network card and patch 5 fixes a bug when selecting the
index specified for CAM entries.


- The Sonic network adapter is used as part of the MIPS jazz machine, however
  I don't have a working kernel and system to test it with. Any pointers to
  test images would be appreciated.

- The changes to the PROM checksum in patch 3 were determined by stepping
  through the MacOS toolbox, and is different from the existing algorithm.
  Has the current PROM checksum algorithm been validated on a MIPS guest or
  was it just a guess? It might be that 2 different algorithms are needed for
  the Q800 vs. Jazz machine.

- My current guess is the jazzsonic driver is broken since the last set of
  dp8393x changes as the MIPS jazz machine does not set the "big_endian"
  property on the dp8393x device. I'd expect that the following diff would
  be needed, but I can't confirm this without a suitable test image.

diff --git a/hw/mips/jazz.c b/hw/mips/jazz.c
index 1e1cf8154e..1df67035aa 100644
--- a/hw/mips/jazz.c
+++ b/hw/mips/jazz.c
@@ -280,6 +280,7 @@ static void mips_jazz_init(MachineState *machine,
             dev = qdev_new("dp8393x");
             qdev_set_nic_properties(dev, nd);
             qdev_prop_set_uint8(dev, "it_shift", 2);
+            qdev_prop_set_bit(dev, "big_endian", true);
             object_property_set_link(OBJECT(dev), "dma_mr",
                                      OBJECT(rc4030_dma_mr), &error_abort);
             sysbus = SYS_BUS_DEVICE(dev);

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

[q800-macos-upstream patchset series: 3]

Mark Cave-Ayland (5):
  dp8393x: checkpatch fixes
  dp8393x: convert to trace-events
  dp8393x: fix PROM checksum and MAC address storage
  dp8393x: don't force 32-bit register access
  dp8393x: fix CAM descriptor entry index

 hw/net/dp8393x.c    | 332 ++++++++++++++++++++++++--------------------
 hw/net/trace-events |  17 +++
 2 files changed, 198 insertions(+), 151 deletions(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]