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 <shiqing.gao@intel.com>
This commit is contained in:
Shiqing Gao 2021-08-12 16:51:58 +08:00 committed by wenlingz
parent 651d44432c
commit 91777a83b5
39 changed files with 47 additions and 5 deletions

View File

@ -11,7 +11,7 @@
#include <logmsg.h>
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;
}

View File

@ -8,8 +8,6 @@
#define EFI_MMAP_H
#include <types.h>
#define MAX_EFI_MMAP_ENTRIES 256U
void init_efi_mmap_entries(struct efi_info *uefi_info);
uint32_t get_efi_mmap_entries_count(void);

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -57,6 +57,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -57,6 +57,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -60,6 +60,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -57,6 +57,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -60,6 +60,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -57,6 +57,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -57,6 +57,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -48,6 +48,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -48,6 +48,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -48,6 +48,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -48,6 +48,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -48,6 +48,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -48,6 +48,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -52,6 +52,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>300</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -55,6 +55,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>300</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -51,6 +51,7 @@
</MEMORY>
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>300</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -52,6 +52,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>300</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -52,6 +52,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>300</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -44,6 +44,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -48,6 +48,7 @@
<CAPACITIES>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_EFI_MMAP_ENTRIES>256</MAX_EFI_MMAP_ENTRIES>
<MAX_IR_ENTRIES>256</MAX_IR_ENTRIES>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>

View File

@ -285,6 +285,11 @@ initialization.</xs:documentation>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MAX_EFI_MMAP_ENTRIES" type="xs:integer" default="256">
<xs:annotation>
<xs:documentation>The maximum number of EFI memmap entries.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MAX_PT_IRQ_ENTRIES" type="xs:integer" default="256">
<xs:annotation>
<xs:documentation>The pre-defined number of interrupt sources of all pass-through devices.</xs:documentation>

View File

@ -167,6 +167,10 @@
<xsl:with-param name="key" select="'MAX_IOAPIC_NUM'" />
</xsl:call-template>
<xsl:call-template name="integer-by-key">
<xsl:with-param name="key" select="'MAX_EFI_MMAP_ENTRIES'" />
</xsl:call-template>
<xsl:call-template name="integer-by-key">
<xsl:with-param name="key" select="'MAX_IR_ENTRIES'" />
</xsl:call-template>