freebsd-ports/emulators/qemu/files/patch-smc-fix
Stanislav Sedov 764bc338f9 - Fix SMC91c111 device emulation in qemu. This allows FreeBSD to boot on
the GUMSTIX platform.

Approved by:	nox (maintainer)
Obtained from:	qemu git
2011-08-31 02:34:44 +00:00

38 lines
1.1 KiB
Text

diff --git a/hw/smc91c111.c b/hw/smc91c111.c
index c1a88c9..e4a2447 100644
--- qemu/hw/smc91c111.c
+++ qemu/hw/smc91c111.c
@@ -250,6 +250,7 @@ static void smc91c111_writeb(void *opaque, target_phys_addr_t offset,
{
smc91c111_state *s = (smc91c111_state *)opaque;
+ offset = offset & 0xf;
if (offset == 14) {
s->bank = value;
return;
@@ -276,6 +277,8 @@ static void smc91c111_writeb(void *opaque, target_phys_addr_t offset,
case 10: case 11: /* RPCR */
/* Ignored */
return;
+ case 12: case 13: /* Reserved */
+ return;
}
break;
@@ -421,6 +424,7 @@ static uint32_t smc91c111_readb(void *opaque, target_phys_addr_t offset)
{
smc91c111_state *s = (smc91c111_state *)opaque;
+ offset = offset & 0xf;
if (offset == 14) {
return s->bank;
}
@@ -461,6 +465,8 @@ static uint32_t smc91c111_readb(void *opaque, target_phys_addr_t offset)
case 10: case 11: /* RPCR */
/* Not implemented. */
return 0;
+ case 12: case 13: /* Reserved */
+ return 0;
}
break;