mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-23 14:07:42 +00:00
acrn-config: find 64-bit mmio for HI_MMIO_START/HI_MMIO_END
Find the 64-bit mmio window from /proc/iomem to generate HI_MMIO_START/HI_MMIO_END. Tracked-On: #4569 Signed-off-by: Wei Liu <weix.w.liu@intel.com> Acked-by: Victor Sun <victor.sun@intel.com> Acked-by: Terry Zou <terry.zou@intel.com>
This commit is contained in:
parent
d9d50461ba
commit
d18fd5f844
@ -70,6 +70,47 @@ def parse_boot_info():
|
||||
return (err_dic, sos_cmdlines, sos_rootfs, vuart0_dic, vuart1_dic, vm_types)
|
||||
|
||||
|
||||
def find_hi_mmio_window(config):
|
||||
|
||||
i_cnt = 0
|
||||
mmio_min = 0
|
||||
mmio_max = 0
|
||||
is_hi_mmio = False
|
||||
|
||||
iomem_lines = board_cfg_lib.get_info(board_cfg_lib.BOARD_INFO_FILE, "<IOMEM_INFO>", "</IOMEM_INFO>")
|
||||
|
||||
for line in iomem_lines:
|
||||
if "PCI Bus" not in line:
|
||||
continue
|
||||
|
||||
line_start_addr = int(line.split('-')[0], 16)
|
||||
line_end_addr = int(line.split('-')[1].split()[0], 16)
|
||||
if line_start_addr < board_cfg_lib.SIZE_4G and line_end_addr < board_cfg_lib.SIZE_4G:
|
||||
continue
|
||||
elif line_start_addr < board_cfg_lib.SIZE_4G and line_end_addr >= board_cfg_lib.SIZE_4G:
|
||||
i_cnt += 1
|
||||
is_hi_mmio = True
|
||||
mmio_min = board_cfg_lib.SIZE_4G
|
||||
mmio_max = line_end_addr
|
||||
continue
|
||||
|
||||
is_hi_mmio = True
|
||||
if i_cnt == 0:
|
||||
mmio_min = line_start_addr
|
||||
mmio_max = line_end_addr
|
||||
|
||||
if mmio_max < line_end_addr:
|
||||
mmio_max = line_end_addr
|
||||
i_cnt += 1
|
||||
|
||||
print("", file=config)
|
||||
if is_hi_mmio:
|
||||
print("#define HI_MMIO_START\t\t0x%xUL" % mmio_min, file=config)
|
||||
print("#define HI_MMIO_END\t\t0x%xUL" % mmio_max, file=config)
|
||||
else:
|
||||
print("#define HI_MMIO_START\t\t~0UL", file=config)
|
||||
print("#define HI_MMIO_END\t\t0UL", file=config)
|
||||
|
||||
def generate_file(config):
|
||||
"""
|
||||
Start to generate board.c
|
||||
@ -171,6 +212,10 @@ def generate_file(config):
|
||||
print("#define MAX_HIDDEN_PDEVS_NUM {}U".format(len(board_cfg_lib.KNOWN_HIDDEN_PDEVS_BOARD_DB[board_cfg_lib.BOARD_NAME])), file=config)
|
||||
else:
|
||||
print("#define MAX_HIDDEN_PDEVS_NUM 0U", file=config)
|
||||
|
||||
# generate HI_MMIO_START/HI_MMIO_END
|
||||
find_hi_mmio_window(config)
|
||||
|
||||
print("", file=config)
|
||||
|
||||
print("{}".format(MISC_CFG_END), file=config)
|
||||
|
Loading…
Reference in New Issue
Block a user