From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: qemu-devel@nongnu.org, hpoussin@reactos.org,
aleksandar.rikalo@syrmia.com, f4bug@amsat.org,
aurelien@aurel32.net, jiaxun.yang@flygoat.com,
jasowang@redhat.com, fthain@telegraphics.com.au,
laurent@vivier.eu
Subject: [PATCH v2 03/10] hw/mips/jazz: move PROM and checksum calculation from dp8393x device to board
Date: Fri, 25 Jun 2021 07:53:54 +0100 [thread overview]
Message-ID: <20210625065401.30170-4-mark.cave-ayland@ilande.co.uk> (raw)
In-Reply-To: <20210625065401.30170-1-mark.cave-ayland@ilande.co.uk>
This is in preparation for each board to have its own separate bit storage
format and checksum for storing the MAC address.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
hw/mips/jazz.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/hw/mips/jazz.c b/hw/mips/jazz.c
index 1e1cf8154e..89ca8bb910 100644
--- a/hw/mips/jazz.c
+++ b/hw/mips/jazz.c
@@ -119,6 +119,8 @@ static const MemoryRegionOps dma_dummy_ops = {
#define MAGNUM_BIOS_SIZE \
(BIOS_SIZE < MAGNUM_BIOS_SIZE_MAX ? BIOS_SIZE : MAGNUM_BIOS_SIZE_MAX)
+#define SONIC_PROM_SIZE 0x1000
+
static void mips_jazz_init(MachineState *machine,
enum jazz_model_e jazz_model)
{
@@ -137,6 +139,7 @@ static void mips_jazz_init(MachineState *machine,
MemoryRegion *rtc = g_new(MemoryRegion, 1);
MemoryRegion *i8042 = g_new(MemoryRegion, 1);
MemoryRegion *dma_dummy = g_new(MemoryRegion, 1);
+ MemoryRegion *dp8393x_prom = g_new(MemoryRegion, 1);
NICInfo *nd;
DeviceState *dev, *rc4030;
SysBusDevice *sysbus;
@@ -228,6 +231,10 @@ static void mips_jazz_init(MachineState *machine,
NULL, "dummy_dma", 0x1000);
memory_region_add_subregion(address_space, 0x8000d000, dma_dummy);
+ memory_region_init_rom(dp8393x_prom, NULL, "dp8393x-jazz.prom",
+ SONIC_PROM_SIZE, &error_fatal);
+ memory_region_add_subregion(address_space, 0x8000b000, dp8393x_prom);
+
/* ISA bus: IO space at 0x90000000, mem space at 0x91000000 */
memory_region_init(isa_io, NULL, "isa-io", 0x00010000);
memory_region_init(isa_mem, NULL, "isa-mem", 0x01000000);
@@ -275,6 +282,9 @@ static void mips_jazz_init(MachineState *machine,
nd->model = g_strdup("dp83932");
}
if (strcmp(nd->model, "dp83932") == 0) {
+ int checksum, i;
+ uint8_t *prom;
+
qemu_check_nic_model(nd, "dp83932");
dev = qdev_new("dp8393x");
@@ -285,8 +295,19 @@ static void mips_jazz_init(MachineState *machine,
sysbus = SYS_BUS_DEVICE(dev);
sysbus_realize_and_unref(sysbus, &error_fatal);
sysbus_mmio_map(sysbus, 0, 0x80001000);
- sysbus_mmio_map(sysbus, 1, 0x8000b000);
sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(rc4030, 4));
+
+ /* Add MAC address with valid checksum to PROM */
+ prom = memory_region_get_ram_ptr(dp8393x_prom);
+ checksum = 0;
+ for (i = 0; i < 6; i++) {
+ prom[i] = nd->macaddr.a[i];
+ checksum += prom[i];
+ if (checksum > 0xff) {
+ checksum = (checksum + 1) & 0xff;
+ }
+ }
+ prom[7] = 0xff - checksum;
break;
} else if (is_help_option(nd->model)) {
error_report("Supported NICs: dp83932");
--
2.20.1
next prev parent reply other threads:[~2021-06-25 6:56 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-25 6:53 [PATCH v2 00/10] dp8393x: fixes for MacOS toolbox ROM Mark Cave-Ayland
2021-06-25 6:53 ` [PATCH v2 01/10] dp8393x: checkpatch fixes Mark Cave-Ayland
2021-06-25 8:45 ` Philippe Mathieu-Daudé
2021-06-25 6:53 ` [PATCH v2 02/10] dp8393x: convert to trace-events Mark Cave-Ayland
2021-06-25 8:47 ` Philippe Mathieu-Daudé
2021-06-25 6:53 ` Mark Cave-Ayland [this message]
2021-07-01 21:43 ` [PATCH v2 03/10] hw/mips/jazz: move PROM and checksum calculation from dp8393x device to board Philippe Mathieu-Daudé
2021-06-25 6:53 ` [PATCH v2 04/10] hw/m68k/q800: " Mark Cave-Ayland
2021-07-01 21:43 ` Philippe Mathieu-Daudé
2021-06-25 6:53 ` [PATCH v2 05/10] dp8393x: remove onboard PROM containing MAC address and checksum Mark Cave-Ayland
2021-07-01 21:43 ` Philippe Mathieu-Daudé
2021-06-25 6:53 ` [PATCH v2 06/10] qemu/bitops.h: add bitrev8 implementation Mark Cave-Ayland
2021-07-01 21:46 ` Philippe Mathieu-Daudé
2021-06-25 6:53 ` [PATCH v2 07/10] hw/m68k/q800: fix PROM checksum and MAC address storage Mark Cave-Ayland
2021-06-25 6:53 ` [PATCH v2 08/10] dp8393x: don't force 32-bit register access Mark Cave-Ayland
2021-07-01 21:34 ` Philippe Mathieu-Daudé
2021-07-02 4:36 ` Finn Thain
2021-07-03 6:21 ` Mark Cave-Ayland
2021-07-03 8:52 ` Philippe Mathieu-Daudé
2021-07-03 12:04 ` Mark Cave-Ayland
2021-07-03 13:10 ` Philippe Mathieu-Daudé
2021-07-03 14:16 ` Mark Cave-Ayland
2021-07-03 14:22 ` Philippe Mathieu-Daudé
2021-06-25 6:54 ` [PATCH v2 09/10] dp8393x: fix CAM descriptor entry index Mark Cave-Ayland
2021-07-03 12:59 ` Philippe Mathieu-Daudé
2021-07-05 19:13 ` Philippe Mathieu-Daudé
2021-06-25 6:54 ` [PATCH v2 10/10] hw/mips/jazz: specify correct endian for dp8393x device Mark Cave-Ayland
2021-06-25 8:51 ` Philippe Mathieu-Daudé
2021-06-25 12:01 ` Mark Cave-Ayland
2021-07-01 21:45 ` Philippe Mathieu-Daudé
2021-06-26 8:55 ` [PATCH v2 00/10] dp8393x: fixes for MacOS toolbox ROM Finn Thain
2021-07-02 13:03 ` Philippe Mathieu-Daudé
2021-07-03 6:32 ` Mark Cave-Ayland
2021-07-03 8:48 ` Philippe Mathieu-Daudé
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=20210625065401.30170-4-mark.cave-ayland@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@telegraphics.com.au \
--cc=hpoussin@reactos.org \
--cc=jasowang@redhat.com \
--cc=jiaxun.yang@flygoat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).