36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
|
|
From b5bcfc82399f2651e8370fe25e07104327ed5ae4 Mon Sep 17 00:00:00 2001
|
||
|
|
From: dinglimin <dinglimin@cmss.chinamobile.com>
|
||
|
|
Date: Mon, 26 Aug 2024 18:27:47 +0800
|
||
|
|
Subject: [PATCH] rtl8139: Fix behaviour for old kernels.
|
||
|
|
|
||
|
|
Old linux kernel rtl8139 drivers (ex. debian 2.1) uses outb to set the rx
|
||
|
|
mode for RxConfig. Unfortunatelly qemu does not support outb for RxConfig.
|
||
|
|
|
||
|
|
Signed-off-by: Hans <sungdgdhtryrt@gmail.com>
|
||
|
|
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||
|
|
Signed-off-by: dinglimin <dinglimin@cmss.chinamobile.com>
|
||
|
|
---
|
||
|
|
hw/net/rtl8139.c | 6 +++++-
|
||
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
|
||
|
|
index 8af396cf06..7bcc05e2a5 100644
|
||
|
|
--- a/hw/net/rtl8139.c
|
||
|
|
+++ b/hw/net/rtl8139.c
|
||
|
|
@@ -2746,7 +2746,11 @@ static void rtl8139_io_writeb(void *opaque, uint8_t addr, uint32_t val)
|
||
|
|
}
|
||
|
|
|
||
|
|
break;
|
||
|
|
-
|
||
|
|
+ case RxConfig:
|
||
|
|
+ DPRINTF("RxConfig write(b) val=0x%02x\n", val);
|
||
|
|
+ rtl8139_RxConfig_write(s,
|
||
|
|
+ (rtl8139_RxConfig_read(s) & 0xFFFFFF00) | val);
|
||
|
|
+ break;
|
||
|
|
default:
|
||
|
|
DPRINTF("not implemented write(b) addr=0x%x val=0x%02x\n", addr,
|
||
|
|
val);
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|