From 8918cd931be78e78aa7a83c93ad7222163b03e2b Mon Sep 17 00:00:00 2001 From: Henning Schild Date: Fri, 20 Mar 2015 14:37:12 +0100 Subject: [PATCH] tools: config create: do not break up ROM memory region Just take the ROM memory region as one, that avoids creating unalligned memory regions on some systems. Signed-off-by: Henning Schild Signed-off-by: Jan Kiszka --- tools/jailhouse-config-create | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tools/jailhouse-config-create b/tools/jailhouse-config-create index 1f95dbb..15506b3 100755 --- a/tools/jailhouse-config-create +++ b/tools/jailhouse-config-create @@ -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): -- 2.39.2