[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 13/23] dp8393x: Don't reset Silicon Revision register
From: |
Jason Wang |
Subject: |
[PULL 13/23] dp8393x: Don't reset Silicon Revision register |
Date: |
Mon, 2 Mar 2020 15:40:26 +0800 |
From: Finn Thain <address@hidden>
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")
Suggested-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Finn Thain <address@hidden>
Signed-off-by: Jason Wang <address@hidden>
---
hw/net/dp8393x.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c
index cfbc2ee..c2ac2a1 100644
--- a/hw/net/dp8393x.c
+++ b/hw/net/dp8393x.c
@@ -923,6 +923,7 @@ static void dp8393x_reset(DeviceState *dev)
timer_del(s->watchdog);
memset(s->regs, 0, sizeof(s->regs));
+ s->regs[SONIC_SR] = 0x0004; /* only revision recognized by Linux/mips */
s->regs[SONIC_CR] = SONIC_CR_RST | SONIC_CR_STP | SONIC_CR_RXDIS;
s->regs[SONIC_DCR] &= ~(SONIC_DCR_EXBUS | SONIC_DCR_LBR);
s->regs[SONIC_RCR] &= ~(SONIC_RCR_LB0 | SONIC_RCR_LB1 | SONIC_RCR_BRD |
SONIC_RCR_RNT);
@@ -975,7 +976,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.5.0
- [PULL 01/23] dp8393x: Mask EOL bit from descriptor addresses, (continued)
- [PULL 01/23] dp8393x: Mask EOL bit from descriptor addresses, Jason Wang, 2020/03/02
- [PULL 03/23] dp8393x: Clean up endianness hacks, Jason Wang, 2020/03/02
- [PULL 02/23] dp8393x: Always use 32-bit accesses, Jason Wang, 2020/03/02
- [PULL 07/23] dp8393x: Implement packet size limit and RBAE interrupt, Jason Wang, 2020/03/02
- [PULL 04/23] dp8393x: Have dp8393x_receive() return the packet size, Jason Wang, 2020/03/02
- [PULL 05/23] dp8393x: Update LLFA and CRDA registers from rx descriptor, Jason Wang, 2020/03/02
- [PULL 08/23] dp8393x: Don't clobber packet checksum, Jason Wang, 2020/03/02
- [PULL 06/23] dp8393x: Clear RRRA command register bit only when appropriate, Jason Wang, 2020/03/02
- [PULL 11/23] dp8393x: Clear descriptor in_use field to release packet, Jason Wang, 2020/03/02
- [PULL 10/23] dp8393x: Pad frames to word or long word boundary, Jason Wang, 2020/03/02
- [PULL 13/23] dp8393x: Don't reset Silicon Revision register,
Jason Wang <=
- [PULL 16/23] NetRxPkt: Introduce support for additional hash types, Jason Wang, 2020/03/02
- [PULL 18/23] hw: net: cadence_gem: Fix build errors in DB_PRINT(), Jason Wang, 2020/03/02
- [PULL 09/23] dp8393x: Use long-word-aligned RRA pointers in 32-bit mode, Jason Wang, 2020/03/02
- [PULL 15/23] e1000e: Avoid hw_error if legacy mode used, Jason Wang, 2020/03/02
- [PULL 14/23] dp8393x: Don't stop reception upon RBE interrupt assertion, Jason Wang, 2020/03/02
- [PULL 19/23] block/replication.c: Ignore requests after failover, Jason Wang, 2020/03/02
- [PULL 12/23] dp8393x: Always update RRA pointers and sequence numbers, Jason Wang, 2020/03/02
- [PULL 20/23] tests/test-replication.c: Add test for for secondary node continuing replication, Jason Wang, 2020/03/02
- [PULL 17/23] NetRxPkt: fix hash calculation of IPV6 TCP, Jason Wang, 2020/03/02
- [PULL 22/23] colo: Update Documentation for continuous replication, Jason Wang, 2020/03/02