summaryrefslogtreecommitdiff
path: root/target/qemu-mips64/patches
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2009-05-30 18:07:43 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2009-05-30 18:07:43 +0200
commit37175a9783c561c8a3f94b6818dabf512c3674e9 (patch)
treeaf305d32733cbc31b70aa709db228dc8ce6e655f /target/qemu-mips64/patches
parent141bcc0f9d8ebfd06865420653333347d19dc39d (diff)
qemu MIPS support
- add support of all MIPS variants - MIPS32 boots fine with MALTA emulation - MIPS64 has a problem booting in 64 kernel mode, even linux 2.6.30rc7 halt on boot - remove Config.default
Diffstat (limited to 'target/qemu-mips64/patches')
-rw-r--r--target/qemu-mips64/patches/io_map_base.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/target/qemu-mips64/patches/io_map_base.patch b/target/qemu-mips64/patches/io_map_base.patch
new file mode 100644
index 000000000..be39ffe09
--- /dev/null
+++ b/target/qemu-mips64/patches/io_map_base.patch
@@ -0,0 +1,52 @@
+diff -Nur linux-2.6.28.orig/arch/mips/include/asm/mips-boards/generic.h linux-2.6.28/arch/mips/include/asm/mips-boards/generic.h
+--- linux-2.6.28.orig/arch/mips/include/asm/mips-boards/generic.h 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.28/arch/mips/include/asm/mips-boards/generic.h 2009-01-09 23:03:02.000000000 +0100
+@@ -92,7 +92,7 @@
+ extern void mips_reboot_setup(void);
+
+ #ifdef CONFIG_PCI
+-extern void mips_pcibios_init(void);
++extern int mips_pcibios_init(void);
+ #else
+ #define mips_pcibios_init() do { } while (0)
+ #endif
+diff -Nur linux-2.6.28.orig/arch/mips/mti-malta/malta-pci.c linux-2.6.28/arch/mips/mti-malta/malta-pci.c
+--- linux-2.6.28.orig/arch/mips/mti-malta/malta-pci.c 2008-12-25 00:26:37.000000000 +0100
++++ linux-2.6.28/arch/mips/mti-malta/malta-pci.c 2009-01-09 23:02:02.000000000 +0100
+@@ -87,10 +87,11 @@
+ .mem_resource = &msc_mem_resource,
+ };
+
+-void __init mips_pcibios_init(void)
++int __init mips_pcibios_init(void)
+ {
+ struct pci_controller *controller;
+ resource_size_t start, end, map, start1, end1, map1, map2, map3, mask;
++ void __iomem *io_map_base;
+
+ switch (mips_revision_sconid) {
+ case MIPS_REVISION_SCON_GT64120:
+@@ -230,7 +231,7 @@
+ controller = &msc_controller;
+ break;
+ default:
+- return;
++ return 0;
+ }
+
+ if (controller->io_resource->start < 0x00001000UL) /* FIXME */
+@@ -239,5 +240,14 @@
+ iomem_resource.end &= 0xfffffffffULL; /* 64 GB */
+ ioport_resource.end = controller->io_resource->end;
+
++ io_map_base = ioremap(MIPS_MSC01_PCI_REG_BASE,
++ controller->io_resource->end - controller->io_resource->start + 1);
++ if (!io_map_base)
++ return -EBUSY;
++
++ controller->io_map_base = (unsigned long)io_map_base;
++
+ register_pci_controller(controller);
++
++ return 0;
+ }