[OpenBIOS] [PATCH 3/5] arch: update pci_host_t host_ranges with values for each architecture

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Sat Jul 8 21:36:57 CEST 2017


As derived from the current logic in pci_host_set_ranges().

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
---
 arch/ppc/qemu/init.c    |   21 +++++++++++++++++++++
 arch/sparc64/openbios.c |    6 ++++++
 arch/x86/openbios.c     |    4 ++++
 3 files changed, 31 insertions(+)

diff --git a/arch/ppc/qemu/init.c b/arch/ppc/qemu/init.c
index ffbf08d..6984e91 100644
--- a/arch/ppc/qemu/init.c
+++ b/arch/ppc/qemu/init.c
@@ -108,6 +108,11 @@ static const pci_arch_t known_arch[] = {
         .io_len = 0x00010000,
         .rbase = 0x00000000,
         .rlen = 0x00400000,
+        .host_ranges = {
+            { .type = IO_SPACE, .parentaddr = 0, .childaddr = 0x80000000, .len = 0x00010000 },
+            { .type = MEMORY_SPACE_32, .parentaddr = 0, .childaddr = 0xc0100000, .len = 0x10000000 },
+            { .type = 0, .parentaddr = 0, .childaddr = 0, .len = 0 }
+         },
         .irqs = { 9, 11, 9, 11 }
     },
     [ARCH_MAC99] = {
@@ -125,6 +130,11 @@ static const pci_arch_t known_arch[] = {
         .io_len = 0x00800000,
         .rbase = 0x00000000,
         .rlen = 0x01000000,
+        .host_ranges = {
+            { .type = IO_SPACE, .parentaddr = 0, .childaddr = 0xf2000000, .len = 0x00800000 },
+            { .type = MEMORY_SPACE_32, .parentaddr = 0x80000000, .childaddr = 0x80000000, .len = 0x10000000 },
+            { .type = 0, .parentaddr = 0, .childaddr = 0, .len = 0 }
+         },
         .irqs = { 0x1b, 0x1c, 0x1d, 0x1e }
     },
     [ARCH_MAC99_U3] = {
@@ -142,6 +152,11 @@ static const pci_arch_t known_arch[] = {
         .io_len = 0x00800000,
         .rbase = 0x00000000,
         .rlen = 0x01000000,
+        .host_ranges = {
+            { .type = IO_SPACE, .parentaddr = 0, .childaddr = 0xf2000000, .len = 0x00800000 },
+            { .type = MEMORY_SPACE_32, .parentaddr = 0x80000000, .childaddr = 0x80000000, .len = 0x10000000 },
+            { .type = 0, .parentaddr = 0, .childaddr = 0, .len = 0 }
+         },
         .irqs = { 0x1b, 0x1c, 0x1d, 0x1e }
     },
     [ARCH_HEATHROW] = {
@@ -159,6 +174,12 @@ static const pci_arch_t known_arch[] = {
         .io_len = 0x00800000,
         .rbase = 0xfd000000,
         .rlen = 0x01000000,
+        .host_ranges = {
+            { .type = IO_SPACE, .parentaddr = 0, .childaddr = 0xfe000000, .len = 0x00800000 },
+            { .type = MEMORY_SPACE_32, .parentaddr = 0, .childaddr = 0xfd000000, .len = 0x01000000 },
+            { .type = MEMORY_SPACE_32, .parentaddr = 0x80000000, .childaddr = 0x80000000, .len = 0x10000000 },
+            { .type = 0, .parentaddr = 0, .childaddr = 0, .len = 0 }
+         },
         .irqs = { 21, 22, 23, 24 }
     },
 };
diff --git a/arch/sparc64/openbios.c b/arch/sparc64/openbios.c
index d624eb2..20673bc 100644
--- a/arch/sparc64/openbios.c
+++ b/arch/sparc64/openbios.c
@@ -64,6 +64,12 @@ static const struct hwdef hwdefs[] = {
             .mem_len = 0x10000000,
             .io_base = APB_SPECIAL_BASE + 0x2000000ULL, // PCI Bus I/O space
             .io_len = 0x10000,
+            .host_ranges = {
+                { .type = CONFIGURATION_SPACE, .parentaddr = 0, .childaddr = APB_SPECIAL_BASE + 0x1000000ULL, .len = 0x2000000 },
+                { .type = IO_SPACE, .parentaddr = 0, .childaddr = APB_SPECIAL_BASE + 0x2000000ULL, .len = 0x10000 },
+                { .type = MEMORY_SPACE_32, .parentaddr = 0, .childaddr = APB_MEM_BASE + 0x100000ULL, .len = 0x10000000 },
+                { .type = 0, .parentaddr = 0, .childaddr = 0, .len = 0 }
+            },
             .irqs = { 0, 1, 2, 3 },
         },
         .machine_id_low = 0,
diff --git a/arch/x86/openbios.c b/arch/x86/openbios.c
index d8a0f9e..8a48a95 100644
--- a/arch/x86/openbios.c
+++ b/arch/x86/openbios.c
@@ -30,6 +30,10 @@ static const pci_arch_t default_pci_host = {
     .vendor_id = PCI_VENDOR_ID_INTEL,
     .device_id = PCI_DEVICE_ID_INTEL_82441,
     .io_base = 0x1000,
+    .host_ranges = {
+        { .type = IO_SPACE, .parentaddr = 0, .childaddr = 0x1000, .len = 0 },
+        { .type = 0, .parentaddr = 0, .childaddr = 0, .len = 0 }
+     }
 };
 #endif
 
-- 
1.7.10.4




More information about the OpenBIOS mailing list