[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 13/14] dp8393x: Don't reset Silicon Revision register
From: |
Finn Thain |
Subject: |
[PATCH v3 13/14] dp8393x: Don't reset Silicon Revision register |
Date: |
Mon, 20 Jan 2020 09:59:21 +1100 |
The jazzsonic driver in Linux uses the Silicon Revision register value
to probe the chip. The driver fails unless the SR register contains 4.
Unfortunately, reading this register in QEMU usually returns 0 because
the s->regs[] array gets wiped after a software reset.
Fixes: bd8f1ebce4 ("net/dp8393x: fix hardware reset")
Signed-off-by: Finn Thain <address@hidden>
---
hw/net/dp8393x.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c
index 1b73a8703b..71af0fad51 100644
--- a/hw/net/dp8393x.c
+++ b/hw/net/dp8393x.c
@@ -591,6 +591,10 @@ static uint64_t dp8393x_read(void *opaque, hwaddr addr,
unsigned int size)
val |= s->cam[s->regs[SONIC_CEP] & 0xf][2* (SONIC_CAP0 - reg)];
}
break;
+ /* Read-only */
+ case SONIC_SR:
+ val = 4; /* only revision recognized by Linux/mips */
+ break;
/* All other registers have no special contrainst */
default:
val = s->regs[reg];
@@ -971,7 +975,6 @@ static void dp8393x_realize(DeviceState *dev, Error **errp)
qemu_format_nic_info_str(qemu_get_queue(s->nic), s->conf.macaddr.a);
s->watchdog = timer_new_ns(QEMU_CLOCK_VIRTUAL, dp8393x_watchdog, s);
- s->regs[SONIC_SR] = 0x0004; /* only revision recognized by Linux */
memory_region_init_ram(&s->prom, OBJECT(dev),
"dp8393x-prom", SONIC_PROM_SIZE, &local_err);
--
2.24.1
- Re: [PATCH v3 04/14] dp8393x: Have dp8393x_receive() return the packet size, (continued)
- [PATCH v3 02/14] dp8393x: Always use 32-bit accesses, Finn Thain, 2020/01/19
- [PATCH v3 08/14] dp8393x: Don't clobber packet checksum, Finn Thain, 2020/01/19
- [PATCH v3 05/14] dp8393x: Update LLFA and CRDA registers from rx descriptor, Finn Thain, 2020/01/19
- [PATCH v3 09/14] dp8393x: Use long-word-aligned RRA pointers in 32-bit mode, Finn Thain, 2020/01/19
- [PATCH v3 10/14] dp8393x: Pad frames to word or long word boundary, Finn Thain, 2020/01/19
- [PATCH v3 03/14] dp8393x: Clean up endianness hacks, Finn Thain, 2020/01/19
- [PATCH v3 13/14] dp8393x: Don't reset Silicon Revision register,
Finn Thain <=
[PATCH v3 12/14] dp8393x: Always update RRA pointers and sequence numbers, Finn Thain, 2020/01/19
[PATCH v3 14/14] dp8393x: Don't stop reception upon RBE interrupt assertion, Finn Thain, 2020/01/19
Re: [PATCH v3 00/14] Fixes for DP8393X SONIC device emulation, Laurent Vivier, 2020/01/27
Re: [PATCH v3 00/14] Fixes for DP8393X SONIC device emulation, Finn Thain, 2020/01/27