]> rtime.felk.cvut.cz Git - jailhouse.git/commitdiff
tools: config create: do not break up ROM memory region
authorHenning Schild <henning.schild@siemens.com>
Fri, 20 Mar 2015 13:37:12 +0000 (14:37 +0100)
committerJan Kiszka <jan.kiszka@siemens.com>
Sat, 21 Mar 2015 14:15:09 +0000 (15:15 +0100)
Just take the ROM memory region as one, that avoids creating unalligned
memory regions on some systems.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
tools/jailhouse-config-create

index 1f95dbb882381390c859a97af33d1d129da56f69..15506b3294374b74b1b282e77599b51d60407dc2 100755 (executable)
@@ -486,9 +486,13 @@ def parse_iomem(pcidevices):
     regions = IOMemRegionTree.parse_iomem_tree(
         IOMemRegionTree.parse_iomem_file())
 
-    # filter the list for MSI-X pages
+    rom_region = MemRegion(0xc0000, 0xdffff, 'ROMs')
+    add_rom_region = False
+
     ret = []
     for r in regions:
+        append_r = True
+        # filter the list for MSI-X pages
         for d in pcidevices:
             if d.msix_address >= r.start and d.msix_address <= r.stop:
                 if d.msix_address > r.start:
@@ -499,11 +503,19 @@ def parse_iomem(pcidevices):
                     tail_r = MemRegion(d.msix_address + d.msix_region_size,
                                        r.stop, r.typestr, r.comments)
                     ret.append(tail_r)
-                r = None
+                append_r = False
                 break
-        if r:
+        # filter out the ROMs
+        if (r.start >= rom_region.start and r.stop <= rom_region.stop):
+            add_rom_region = True
+            append_r = False
+        if append_r:
             ret.append(r)
 
+    # add a region that covers all potential ROMs
+    if add_rom_region:
+        ret.append(rom_region)
+
     # newer Linux kernels will report the first page as reserved
     # it is needed for CPU init so include it anyways
     if (ret[0].typestr == 'System RAM' and ret[0].start == 0x1000):