From 4056bb42c634012eee9a02a70e2c99f30abf809f Mon Sep 17 00:00:00 2001 From: Shiqing Gao Date: Thu, 12 Aug 2021 16:51:58 +0800 Subject: [PATCH] config_tools: add a new entry MAX_EFI_MMAP_ENTRIES It is used to specify the maximum number of EFI memmap entries. On some platforms, like Tiger Lake, the number of EFI memmap entries becomes 268 when the BIOS settings are changed. The current value of MAX_EFI_MMAP_ENTRIES (256) defined in hypervisor is not big enough to cover such cases. As the number of EFI memmap entries depends on the platforms and the BIOS settings, this patch introduces a new entry MAX_EFI_MMAP_ENTRIES in configurations so that it can be adjusted for different cases. Tracked-On: #6442 Signed-off-by: Shiqing Gao --- hypervisor/common/efi_mmap.c | 6 +++--- hypervisor/include/common/efi_mmap.h | 2 -- misc/config_tools/data/cfl-k700-i7/hybrid_rt.xml | 1 + misc/config_tools/data/cfl-k700-i7/industry.xml | 1 + misc/config_tools/data/ehl-crb-b/fusa_partition.xml | 1 + misc/config_tools/data/ehl-crb-b/hybrid.xml | 1 + misc/config_tools/data/ehl-crb-b/hybrid_rt.xml | 1 + misc/config_tools/data/ehl-crb-b/hybrid_rt_fusa.xml | 1 + misc/config_tools/data/ehl-crb-b/industry.xml | 1 + misc/config_tools/data/ehl-crb-b/logical_partition.xml | 1 + misc/config_tools/data/ehl-crb-b/sdc.xml | 1 + misc/config_tools/data/generic_board/hybrid.xml | 1 + misc/config_tools/data/generic_board/industry.xml | 1 + misc/config_tools/data/generic_board/logical_partition.xml | 1 + misc/config_tools/data/nuc11tnbi5/hybrid.xml | 1 + misc/config_tools/data/nuc11tnbi5/industry.xml | 1 + misc/config_tools/data/nuc11tnbi5/logical_partition.xml | 1 + misc/config_tools/data/nuc7i7dnb/hybrid.xml | 1 + misc/config_tools/data/nuc7i7dnb/industry.xml | 1 + misc/config_tools/data/nuc7i7dnb/logical_partition.xml | 1 + misc/config_tools/data/nuc7i7dnb/sdc.xml | 1 + misc/config_tools/data/qemu/sdc.xml | 1 + misc/config_tools/data/tgl-rvp/hybrid.xml | 1 + misc/config_tools/data/tgl-rvp/hybrid_rt.xml | 1 + misc/config_tools/data/tgl-rvp/industry.xml | 1 + misc/config_tools/data/tgl-rvp/logical_partition.xml | 1 + misc/config_tools/data/tgl-rvp/sdc.xml | 1 + misc/config_tools/data/whl-ipc-i5/hybrid.xml | 1 + misc/config_tools/data/whl-ipc-i5/hybrid_rt.xml | 1 + misc/config_tools/data/whl-ipc-i5/industry.xml | 1 + misc/config_tools/data/whl-ipc-i5/logical_partition.xml | 1 + misc/config_tools/data/whl-ipc-i5/sdc.xml | 1 + misc/config_tools/data/whl-ipc-i7/hybrid.xml | 1 + misc/config_tools/data/whl-ipc-i7/hybrid_rt.xml | 1 + misc/config_tools/data/whl-ipc-i7/industry.xml | 1 + misc/config_tools/data/whl-ipc-i7/logical_partition.xml | 1 + misc/config_tools/data/whl-ipc-i7/sdc.xml | 1 + misc/config_tools/schema/config.xsd | 5 +++++ misc/config_tools/xforms/config_common.xsl | 4 ++++ 39 files changed, 47 insertions(+), 5 deletions(-) diff --git a/hypervisor/common/efi_mmap.c b/hypervisor/common/efi_mmap.c index bf30d0e70..015b8bdc2 100644 --- a/hypervisor/common/efi_mmap.c +++ b/hypervisor/common/efi_mmap.c @@ -11,7 +11,7 @@ #include static uint16_t hv_memdesc_nr; -static struct efi_memory_desc hv_memdesc[MAX_EFI_MMAP_ENTRIES]; +static struct efi_memory_desc hv_memdesc[CONFIG_MAX_EFI_MMAP_ENTRIES]; static void sort_efi_mmap_entries(void) { @@ -37,8 +37,8 @@ void init_efi_mmap_entries(struct efi_info *uefi_info) uint32_t entry = 0U; while ((void *)efi_memdesc < (efi_memmap + uefi_info->memmap_size)) { - if (entry >= MAX_EFI_MMAP_ENTRIES) { - pr_err("Too many efi memmap entries, entries up %d are ignored.", MAX_EFI_MMAP_ENTRIES); + if (entry >= CONFIG_MAX_EFI_MMAP_ENTRIES) { + pr_err("Too many efi memmap entries, entries up %d are ignored.", CONFIG_MAX_EFI_MMAP_ENTRIES); break; } diff --git a/hypervisor/include/common/efi_mmap.h b/hypervisor/include/common/efi_mmap.h index 615192bba..bb8a33afd 100644 --- a/hypervisor/include/common/efi_mmap.h +++ b/hypervisor/include/common/efi_mmap.h @@ -8,8 +8,6 @@ #define EFI_MMAP_H #include -#define MAX_EFI_MMAP_ENTRIES 256U - void init_efi_mmap_entries(struct efi_info *uefi_info); uint32_t get_efi_mmap_entries_count(void); diff --git a/misc/config_tools/data/cfl-k700-i7/hybrid_rt.xml b/misc/config_tools/data/cfl-k700-i7/hybrid_rt.xml index 93f0b6d7a..b5400e3a0 100644 --- a/misc/config_tools/data/cfl-k700-i7/hybrid_rt.xml +++ b/misc/config_tools/data/cfl-k700-i7/hybrid_rt.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/cfl-k700-i7/industry.xml b/misc/config_tools/data/cfl-k700-i7/industry.xml index badf8d5c5..ba6f01555 100644 --- a/misc/config_tools/data/cfl-k700-i7/industry.xml +++ b/misc/config_tools/data/cfl-k700-i7/industry.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/ehl-crb-b/fusa_partition.xml b/misc/config_tools/data/ehl-crb-b/fusa_partition.xml index 37cb0828a..51372d96e 100644 --- a/misc/config_tools/data/ehl-crb-b/fusa_partition.xml +++ b/misc/config_tools/data/ehl-crb-b/fusa_partition.xml @@ -57,6 +57,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/ehl-crb-b/hybrid.xml b/misc/config_tools/data/ehl-crb-b/hybrid.xml index a5706a42c..e9238b71a 100644 --- a/misc/config_tools/data/ehl-crb-b/hybrid.xml +++ b/misc/config_tools/data/ehl-crb-b/hybrid.xml @@ -57,6 +57,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/ehl-crb-b/hybrid_rt.xml b/misc/config_tools/data/ehl-crb-b/hybrid_rt.xml index d7756af34..92d9ba804 100644 --- a/misc/config_tools/data/ehl-crb-b/hybrid_rt.xml +++ b/misc/config_tools/data/ehl-crb-b/hybrid_rt.xml @@ -60,6 +60,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/ehl-crb-b/hybrid_rt_fusa.xml b/misc/config_tools/data/ehl-crb-b/hybrid_rt_fusa.xml index 6deb7bfeb..d8d871b4c 100644 --- a/misc/config_tools/data/ehl-crb-b/hybrid_rt_fusa.xml +++ b/misc/config_tools/data/ehl-crb-b/hybrid_rt_fusa.xml @@ -57,6 +57,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/ehl-crb-b/industry.xml b/misc/config_tools/data/ehl-crb-b/industry.xml index aa860ca35..fa67078ee 100644 --- a/misc/config_tools/data/ehl-crb-b/industry.xml +++ b/misc/config_tools/data/ehl-crb-b/industry.xml @@ -60,6 +60,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/ehl-crb-b/logical_partition.xml b/misc/config_tools/data/ehl-crb-b/logical_partition.xml index 4fb9ee765..d44ec8a62 100644 --- a/misc/config_tools/data/ehl-crb-b/logical_partition.xml +++ b/misc/config_tools/data/ehl-crb-b/logical_partition.xml @@ -57,6 +57,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/ehl-crb-b/sdc.xml b/misc/config_tools/data/ehl-crb-b/sdc.xml index 6376709ab..35309da50 100644 --- a/misc/config_tools/data/ehl-crb-b/sdc.xml +++ b/misc/config_tools/data/ehl-crb-b/sdc.xml @@ -57,6 +57,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/generic_board/hybrid.xml b/misc/config_tools/data/generic_board/hybrid.xml index 46f68fccb..2075a3d34 100644 --- a/misc/config_tools/data/generic_board/hybrid.xml +++ b/misc/config_tools/data/generic_board/hybrid.xml @@ -48,6 +48,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/generic_board/industry.xml b/misc/config_tools/data/generic_board/industry.xml index b56ce266f..70be97bc5 100644 --- a/misc/config_tools/data/generic_board/industry.xml +++ b/misc/config_tools/data/generic_board/industry.xml @@ -48,6 +48,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/generic_board/logical_partition.xml b/misc/config_tools/data/generic_board/logical_partition.xml index 33dd550b7..5a906e946 100644 --- a/misc/config_tools/data/generic_board/logical_partition.xml +++ b/misc/config_tools/data/generic_board/logical_partition.xml @@ -48,6 +48,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/nuc11tnbi5/hybrid.xml b/misc/config_tools/data/nuc11tnbi5/hybrid.xml index 9ce4384d8..dbfcbc7e6 100644 --- a/misc/config_tools/data/nuc11tnbi5/hybrid.xml +++ b/misc/config_tools/data/nuc11tnbi5/hybrid.xml @@ -48,6 +48,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/nuc11tnbi5/industry.xml b/misc/config_tools/data/nuc11tnbi5/industry.xml index abbb482f5..a9a19588f 100644 --- a/misc/config_tools/data/nuc11tnbi5/industry.xml +++ b/misc/config_tools/data/nuc11tnbi5/industry.xml @@ -48,6 +48,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/nuc11tnbi5/logical_partition.xml b/misc/config_tools/data/nuc11tnbi5/logical_partition.xml index b6fe93563..740426b1f 100644 --- a/misc/config_tools/data/nuc11tnbi5/logical_partition.xml +++ b/misc/config_tools/data/nuc11tnbi5/logical_partition.xml @@ -48,6 +48,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/nuc7i7dnb/hybrid.xml b/misc/config_tools/data/nuc7i7dnb/hybrid.xml index adc210983..21f702e51 100644 --- a/misc/config_tools/data/nuc7i7dnb/hybrid.xml +++ b/misc/config_tools/data/nuc7i7dnb/hybrid.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/nuc7i7dnb/industry.xml b/misc/config_tools/data/nuc7i7dnb/industry.xml index 167184341..3b2ef668e 100644 --- a/misc/config_tools/data/nuc7i7dnb/industry.xml +++ b/misc/config_tools/data/nuc7i7dnb/industry.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/nuc7i7dnb/logical_partition.xml b/misc/config_tools/data/nuc7i7dnb/logical_partition.xml index 382d89fda..05649b878 100644 --- a/misc/config_tools/data/nuc7i7dnb/logical_partition.xml +++ b/misc/config_tools/data/nuc7i7dnb/logical_partition.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/nuc7i7dnb/sdc.xml b/misc/config_tools/data/nuc7i7dnb/sdc.xml index 5e141a89c..0dca190a9 100644 --- a/misc/config_tools/data/nuc7i7dnb/sdc.xml +++ b/misc/config_tools/data/nuc7i7dnb/sdc.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/qemu/sdc.xml b/misc/config_tools/data/qemu/sdc.xml index f686602e4..15a9afea6 100644 --- a/misc/config_tools/data/qemu/sdc.xml +++ b/misc/config_tools/data/qemu/sdc.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/tgl-rvp/hybrid.xml b/misc/config_tools/data/tgl-rvp/hybrid.xml index f0038e06c..425585c8d 100644 --- a/misc/config_tools/data/tgl-rvp/hybrid.xml +++ b/misc/config_tools/data/tgl-rvp/hybrid.xml @@ -52,6 +52,7 @@ 0x100 + 300 256 1 96 diff --git a/misc/config_tools/data/tgl-rvp/hybrid_rt.xml b/misc/config_tools/data/tgl-rvp/hybrid_rt.xml index e525277a2..ed629a556 100644 --- a/misc/config_tools/data/tgl-rvp/hybrid_rt.xml +++ b/misc/config_tools/data/tgl-rvp/hybrid_rt.xml @@ -55,6 +55,7 @@ 0x100 + 300 256 1 96 diff --git a/misc/config_tools/data/tgl-rvp/industry.xml b/misc/config_tools/data/tgl-rvp/industry.xml index 9e08b64b5..a60776531 100644 --- a/misc/config_tools/data/tgl-rvp/industry.xml +++ b/misc/config_tools/data/tgl-rvp/industry.xml @@ -51,6 +51,7 @@ 0x100 + 300 256 1 96 diff --git a/misc/config_tools/data/tgl-rvp/logical_partition.xml b/misc/config_tools/data/tgl-rvp/logical_partition.xml index 22d98e00a..a58222dee 100644 --- a/misc/config_tools/data/tgl-rvp/logical_partition.xml +++ b/misc/config_tools/data/tgl-rvp/logical_partition.xml @@ -52,6 +52,7 @@ 0x100 + 300 256 1 96 diff --git a/misc/config_tools/data/tgl-rvp/sdc.xml b/misc/config_tools/data/tgl-rvp/sdc.xml index c9a2f977a..2db5df099 100644 --- a/misc/config_tools/data/tgl-rvp/sdc.xml +++ b/misc/config_tools/data/tgl-rvp/sdc.xml @@ -52,6 +52,7 @@ 0x100 + 300 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i5/hybrid.xml b/misc/config_tools/data/whl-ipc-i5/hybrid.xml index 6abdc2744..8a89f1c73 100644 --- a/misc/config_tools/data/whl-ipc-i5/hybrid.xml +++ b/misc/config_tools/data/whl-ipc-i5/hybrid.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i5/hybrid_rt.xml b/misc/config_tools/data/whl-ipc-i5/hybrid_rt.xml index 662c3ac95..16f5bd895 100644 --- a/misc/config_tools/data/whl-ipc-i5/hybrid_rt.xml +++ b/misc/config_tools/data/whl-ipc-i5/hybrid_rt.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i5/industry.xml b/misc/config_tools/data/whl-ipc-i5/industry.xml index d57ce744f..0403f2055 100644 --- a/misc/config_tools/data/whl-ipc-i5/industry.xml +++ b/misc/config_tools/data/whl-ipc-i5/industry.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i5/logical_partition.xml b/misc/config_tools/data/whl-ipc-i5/logical_partition.xml index 98b0a2fc6..8f7333128 100644 --- a/misc/config_tools/data/whl-ipc-i5/logical_partition.xml +++ b/misc/config_tools/data/whl-ipc-i5/logical_partition.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i5/sdc.xml b/misc/config_tools/data/whl-ipc-i5/sdc.xml index 5b66f5c7b..1f7efa60e 100644 --- a/misc/config_tools/data/whl-ipc-i5/sdc.xml +++ b/misc/config_tools/data/whl-ipc-i5/sdc.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i7/hybrid.xml b/misc/config_tools/data/whl-ipc-i7/hybrid.xml index 7296cb44b..057c590f6 100644 --- a/misc/config_tools/data/whl-ipc-i7/hybrid.xml +++ b/misc/config_tools/data/whl-ipc-i7/hybrid.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i7/hybrid_rt.xml b/misc/config_tools/data/whl-ipc-i7/hybrid_rt.xml index 85fcb87d7..95efa3809 100644 --- a/misc/config_tools/data/whl-ipc-i7/hybrid_rt.xml +++ b/misc/config_tools/data/whl-ipc-i7/hybrid_rt.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i7/industry.xml b/misc/config_tools/data/whl-ipc-i7/industry.xml index 39eeebd89..22b7fb968 100644 --- a/misc/config_tools/data/whl-ipc-i7/industry.xml +++ b/misc/config_tools/data/whl-ipc-i7/industry.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i7/logical_partition.xml b/misc/config_tools/data/whl-ipc-i7/logical_partition.xml index bab5ea8c8..ee30d4897 100644 --- a/misc/config_tools/data/whl-ipc-i7/logical_partition.xml +++ b/misc/config_tools/data/whl-ipc-i7/logical_partition.xml @@ -44,6 +44,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/data/whl-ipc-i7/sdc.xml b/misc/config_tools/data/whl-ipc-i7/sdc.xml index ca0d0620f..44bbc9fa7 100644 --- a/misc/config_tools/data/whl-ipc-i7/sdc.xml +++ b/misc/config_tools/data/whl-ipc-i7/sdc.xml @@ -48,6 +48,7 @@ 0x100 + 256 256 1 96 diff --git a/misc/config_tools/schema/config.xsd b/misc/config_tools/schema/config.xsd index 6e1699e41..367b5c92f 100644 --- a/misc/config_tools/schema/config.xsd +++ b/misc/config_tools/schema/config.xsd @@ -285,6 +285,11 @@ initialization. + + + The maximum number of EFI memmap entries. + + The pre-defined number of interrupt sources of all pass-through devices. diff --git a/misc/config_tools/xforms/config_common.xsl b/misc/config_tools/xforms/config_common.xsl index 629e2c5ec..e4bb228d4 100644 --- a/misc/config_tools/xforms/config_common.xsl +++ b/misc/config_tools/xforms/config_common.xsl @@ -167,6 +167,10 @@ + + + +