mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
acpi: Extract crs build form acpi_build.c
Extract crs build form acpi_build.c, the function could also be used to build the crs for pxbs for arm. The resources are composed by two parts: 1. The bar space of pci-bridge/pcie-root-ports 2. The resources needed by devices behind PXBs. The base and limit of memory/io are obtained from the config via two APIs: pci_bridge_get_base and pci_bridge_get_limit Signed-off-by: Yubo Miao <miaoyubo@huawei.com> Signed-off-by: Jiahui Cen <cenjiahui@huawei.com> Message-Id: <20201119014841.7298-5-cenjiahui@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
09fad16744
commit
37d5c0a8ff
3 changed files with 307 additions and 293 deletions
|
@ -224,6 +224,20 @@ struct AcpiBuildTables {
|
|||
BIOSLinker *linker;
|
||||
} AcpiBuildTables;
|
||||
|
||||
typedef
|
||||
struct CrsRangeEntry {
|
||||
uint64_t base;
|
||||
uint64_t limit;
|
||||
} CrsRangeEntry;
|
||||
|
||||
typedef
|
||||
struct CrsRangeSet {
|
||||
GPtrArray *io_ranges;
|
||||
GPtrArray *mem_ranges;
|
||||
GPtrArray *mem_64bit_ranges;
|
||||
} CrsRangeSet;
|
||||
|
||||
|
||||
/*
|
||||
* ACPI 5.0: 6.4.3.8.2 Serial Bus Connection Descriptors
|
||||
* Serial Bus Type
|
||||
|
@ -432,6 +446,14 @@ build_append_gas_from_struct(GArray *table, const struct AcpiGenericAddress *s)
|
|||
s->access_width, s->address);
|
||||
}
|
||||
|
||||
void crs_range_insert(GPtrArray *ranges, uint64_t base, uint64_t limit);
|
||||
void crs_replace_with_free_ranges(GPtrArray *ranges,
|
||||
uint64_t start, uint64_t end);
|
||||
void crs_range_set_init(CrsRangeSet *range_set);
|
||||
void crs_range_set_free(CrsRangeSet *range_set);
|
||||
|
||||
Aml *build_crs(PCIHostState *host, CrsRangeSet *range_set);
|
||||
|
||||
void build_srat_memory(AcpiSratMemoryAffinity *numamem, uint64_t base,
|
||||
uint64_t len, int node, MemoryAffinityFlags flags);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue