aboutsummaryrefslogtreecommitdiff
path: root/emulators/qemu/files
diff options
context:
space:
mode:
authorStanislav Sedov <stas@FreeBSD.org>2011-08-31 02:34:44 +0000
committerStanislav Sedov <stas@FreeBSD.org>2011-08-31 02:34:44 +0000
commit764bc338f928e1e94d90b2e502c87a58bfba7918 (patch)
treef5023c5d9405944498667b711a0e6a5a58a2f369 /emulators/qemu/files
parent4fc8c9131ae8f2112892fba15d5b414c3b8a0959 (diff)
downloadports-764bc338f928e1e94d90b2e502c87a58bfba7918.tar.gz
ports-764bc338f928e1e94d90b2e502c87a58bfba7918.zip
- Fix SMC91c111 device emulation in qemu. This allows FreeBSD to boot on
the GUMSTIX platform. Approved by: nox (maintainer) Obtained from: qemu git
Notes
Notes: svn path=/head/; revision=280802
Diffstat (limited to 'emulators/qemu/files')
-rw-r--r--emulators/qemu/files/patch-smc-fix38
1 files changed, 38 insertions, 0 deletions
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;
+