mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00

These are very similar to the recently added Generic Initiators but instead of representing an initiator of memory traffic they represent an edge point beyond which may lie either targets or initiators. Here we add these ports such that they may be targets of hmat_lb records to describe the latency and bandwidth from host side initiators to the port. A discoverable mechanism such as UEFI CDAT read from CXL devices and switches is used to discover the remainder of the path, and the OS can build up full latency and bandwidth numbers as need for work and data placement decisions. Acked-by: Markus Armbruster <armbru@redhat.com> Tested-by: "Huang, Ying" <ying.huang@intel.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Message-Id: <20240916174122.1843197-1-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
46 lines
1.6 KiB
C
46 lines
1.6 KiB
C
/*
|
|
* Support for generating PCI related ACPI tables and passing them to Guests
|
|
*
|
|
* Copyright (C) 2006 Fabrice Bellard
|
|
* Copyright (C) 2008-2010 Kevin O'Connor <kevin@koconnor.net>
|
|
* Copyright (C) 2013-2019 Red Hat Inc
|
|
* Copyright (C) 2019 Intel Corporation
|
|
*
|
|
* Author: Wei Yang <richardw.yang@linux.intel.com>
|
|
* Author: Michael S. Tsirkin <mst@redhat.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef HW_ACPI_PCI_H
|
|
#define HW_ACPI_PCI_H
|
|
|
|
#include "hw/acpi/bios-linker-loader.h"
|
|
#include "hw/acpi/acpi_aml_interface.h"
|
|
|
|
typedef struct AcpiMcfgInfo {
|
|
uint64_t base;
|
|
uint32_t size;
|
|
} AcpiMcfgInfo;
|
|
|
|
void build_mcfg(GArray *table_data, BIOSLinker *linker, AcpiMcfgInfo *info,
|
|
const char *oem_id, const char *oem_table_id);
|
|
Aml *aml_pci_device_dsm(void);
|
|
|
|
void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus);
|
|
void build_pci_bridge_aml(AcpiDevAmlIf *adev, Aml *scope);
|
|
|
|
void build_srat_generic_affinity_structures(GArray *table_data);
|
|
|
|
#endif
|