diff options
author | Stanislav Sedov <stas@FreeBSD.org> | 2011-08-31 02:34:44 +0000 |
---|---|---|
committer | Stanislav Sedov <stas@FreeBSD.org> | 2011-08-31 02:34:44 +0000 |
commit | 764bc338f928e1e94d90b2e502c87a58bfba7918 (patch) | |
tree | f5023c5d9405944498667b711a0e6a5a58a2f369 /emulators | |
parent | - Update to 0.1.8 (diff) |
- Fix SMC91c111 device emulation in qemu. This allows FreeBSD to boot on
the GUMSTIX platform.
Approved by: nox (maintainer)
Obtained from: qemu git
Diffstat (limited to 'emulators')
-rw-r--r-- | emulators/qemu/Makefile | 2 | ||||
-rw-r--r-- | emulators/qemu/files/patch-smc-fix | 38 |
2 files changed, 39 insertions, 1 deletions
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile index b208ffa712d9..d99a5b77fc64 100644 --- a/emulators/qemu/Makefile +++ b/emulators/qemu/Makefile @@ -7,7 +7,7 @@ PORTNAME= qemu PORTVERSION= 0.11.1 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= emulators MASTER_SITES= ${MASTER_SITE_SAVANNAH} \ http://bellard.org/qemu/ diff --git a/emulators/qemu/files/patch-smc-fix b/emulators/qemu/files/patch-smc-fix new file mode 100644 index 000000000000..0fb2a1ae7adb --- /dev/null +++ b/emulators/qemu/files/patch-smc-fix @@ -0,0 +1,38 @@ +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; + |