mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
pc,virtio,pci: fixes, features
Fixes all over the place. ACPI index support. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> -----BEGIN PGP SIGNATURE----- iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmBZISUPHG1zdEByZWRo YXQuY29tAAoJECgfDbjSjVRpTI4IAKEwjtmm/yQxYPZS0691NA4fzmwVWdnUSe/w MMUh6ZyWTAhF4vpQKKiE3jMXt8I4ZkGzo0unB8t4WI5ZqOSHjL2oGvGUGF1i8ab4 RezIF+PA+m+boVOIcsAUxHHmmYKTFSoR2fEK/ekvd2vFhQFaZoZYkHc+XFURVXCi LEgOb/4jAhGPUkaWqaeKkIvAKo2FCqYF6U0XynsG4lV0CfE/xxSiCsdjWlQYFHko S8/eyuf3rX28BJ5ltbWYGTXcthgqE2Arqr3sUMgOmAm4OrXkXjniAyfR0Y1A369F A33ETiZvLdddldn9wf18QTMwFzczu44edYLr5JFxYhyhTYFgLCk= =rH7A -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging pc,virtio,pci: fixes, features Fixes all over the place. ACPI index support. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # gpg: Signature made Mon 22 Mar 2021 22:58:45 GMT # gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469 # gpg: issuer "mst@redhat.com" # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full] # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full] # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: acpi: Move setters/getters of oem fields to X86MachineState acpi: Set proper maximum size for "etc/acpi/rsdp" blob acpi: Move maximum size logic into acpi_add_rom_blob() microvm: Don't open-code "etc/table-loader" acpi: Set proper maximum size for "etc/table-loader" blob tests: acpi: update expected blobs pci: acpi: add _DSM method to PCI devices acpi: add aml_to_decimalstring() and aml_call6() helpers pci: acpi: ensure that acpi-index is unique pci: introduce acpi-index property for PCI device tests: acpi: temporary whitelist DSDT changes virtio-pmem: fix virtio_pmem_resp assign problem vhost-user: Monitor slave channel in vhost_user_read() vhost-user: Introduce nested event loop in vhost_user_read() vhost-user: Convert slave channel to QIOChannelSocket vhost-user: Factor out duplicated slave_fd teardown code vhost-user: Fix double-close on slave_read() error path vhost-user: Drop misleading EAGAIN checks in slave_read() virtio: Fix virtio_mmio_read()/virtio_mmio_write() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
9741498849
35 changed files with 583 additions and 308 deletions
|
@ -4,9 +4,6 @@
|
|||
#include "hw/acpi/acpi-defs.h"
|
||||
#include "hw/acpi/bios-linker-loader.h"
|
||||
|
||||
/* Reserve RAM space for tables: add another order of magnitude. */
|
||||
#define ACPI_BUILD_TABLE_MAX_SIZE 0x200000
|
||||
|
||||
#define ACPI_BUILD_APPNAME6 "BOCHS "
|
||||
#define ACPI_BUILD_APPNAME8 "BXPC "
|
||||
|
||||
|
@ -301,6 +298,7 @@ Aml *aml_arg(int pos);
|
|||
Aml *aml_to_integer(Aml *arg);
|
||||
Aml *aml_to_hexstring(Aml *src, Aml *dst);
|
||||
Aml *aml_to_buffer(Aml *src, Aml *dst);
|
||||
Aml *aml_to_decimalstring(Aml *src, Aml *dst);
|
||||
Aml *aml_store(Aml *val, Aml *target);
|
||||
Aml *aml_and(Aml *arg1, Aml *arg2, Aml *dst);
|
||||
Aml *aml_or(Aml *arg1, Aml *arg2, Aml *dst);
|
||||
|
@ -323,6 +321,8 @@ Aml *aml_call3(const char *method, Aml *arg1, Aml *arg2, Aml *arg3);
|
|||
Aml *aml_call4(const char *method, Aml *arg1, Aml *arg2, Aml *arg3, Aml *arg4);
|
||||
Aml *aml_call5(const char *method, Aml *arg1, Aml *arg2, Aml *arg3, Aml *arg4,
|
||||
Aml *arg5);
|
||||
Aml *aml_call6(const char *method, Aml *arg1, Aml *arg2, Aml *arg3, Aml *arg4,
|
||||
Aml *arg5, Aml *arg6);
|
||||
Aml *aml_gpio_int(AmlConsumerAndProducer con_and_pro,
|
||||
AmlLevelAndEdge edge_level,
|
||||
AmlActiveHighAndLow active_level, AmlShared shared,
|
||||
|
|
|
@ -35,4 +35,5 @@ typedef struct 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);
|
||||
#endif
|
||||
|
|
|
@ -46,6 +46,7 @@ typedef struct AcpiPciHpPciStatus {
|
|||
typedef struct AcpiPciHpState {
|
||||
AcpiPciHpPciStatus acpi_pcihp_pci_status[ACPI_PCIHP_MAX_HOTPLUG_BUS];
|
||||
uint32_t hotplug_select;
|
||||
uint32_t acpi_index;
|
||||
PCIBus *root;
|
||||
MemoryRegion io;
|
||||
bool legacy_piix;
|
||||
|
@ -71,13 +72,17 @@ void acpi_pcihp_reset(AcpiPciHpState *s, bool acpihp_root_off);
|
|||
|
||||
extern const VMStateDescription vmstate_acpi_pcihp_pci_status;
|
||||
|
||||
#define VMSTATE_PCI_HOTPLUG(pcihp, state, test_pcihp) \
|
||||
bool vmstate_acpi_pcihp_use_acpi_index(void *opaque, int version_id);
|
||||
|
||||
#define VMSTATE_PCI_HOTPLUG(pcihp, state, test_pcihp, test_acpi_index) \
|
||||
VMSTATE_UINT32_TEST(pcihp.hotplug_select, state, \
|
||||
test_pcihp), \
|
||||
VMSTATE_STRUCT_ARRAY_TEST(pcihp.acpi_pcihp_pci_status, state, \
|
||||
ACPI_PCIHP_MAX_HOTPLUG_BUS, \
|
||||
test_pcihp, 1, \
|
||||
vmstate_acpi_pcihp_pci_status, \
|
||||
AcpiPciHpPciStatus)
|
||||
AcpiPciHpPciStatus), \
|
||||
VMSTATE_UINT32_TEST(pcihp.acpi_index, state, \
|
||||
test_acpi_index)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -4,6 +4,5 @@
|
|||
#include "hw/nvram/fw_cfg.h"
|
||||
|
||||
MemoryRegion *acpi_add_rom_blob(FWCfgCallback update, void *opaque,
|
||||
GArray *blob, const char *name,
|
||||
uint64_t max_size);
|
||||
GArray *blob, const char *name);
|
||||
#endif
|
||||
|
|
|
@ -76,8 +76,6 @@
|
|||
#define MICROVM_MACHINE_ISA_SERIAL "isa-serial"
|
||||
#define MICROVM_MACHINE_OPTION_ROMS "x-option-roms"
|
||||
#define MICROVM_MACHINE_AUTO_KERNEL_CMDLINE "auto-kernel-cmdline"
|
||||
#define MICROVM_MACHINE_OEM_ID "oem-id"
|
||||
#define MICROVM_MACHINE_OEM_TABLE_ID "oem-table-id"
|
||||
|
||||
struct MicrovmMachineClass {
|
||||
X86MachineClass parent;
|
||||
|
@ -106,8 +104,6 @@ struct MicrovmMachineState {
|
|||
Notifier machine_done;
|
||||
Notifier powerdown_req;
|
||||
struct GPEXConfig gpex;
|
||||
char *oem_id;
|
||||
char *oem_table_id;
|
||||
};
|
||||
|
||||
#define TYPE_MICROVM_MACHINE MACHINE_TYPE_NAME("microvm")
|
||||
|
|
|
@ -46,8 +46,6 @@ typedef struct PCMachineState {
|
|||
bool pit_enabled;
|
||||
bool hpet_enabled;
|
||||
uint64_t max_fw_size;
|
||||
char *oem_id;
|
||||
char *oem_table_id;
|
||||
|
||||
/* NUMA information: */
|
||||
uint64_t numa_nodes;
|
||||
|
@ -65,8 +63,6 @@ typedef struct PCMachineState {
|
|||
#define PC_MACHINE_SATA "sata"
|
||||
#define PC_MACHINE_PIT "pit"
|
||||
#define PC_MACHINE_MAX_FW_SIZE "max-fw-size"
|
||||
#define PC_MACHINE_OEM_ID "oem-id"
|
||||
#define PC_MACHINE_OEM_TABLE_ID "oem-table-id"
|
||||
/**
|
||||
* PCMachineClass:
|
||||
*
|
||||
|
|
|
@ -67,6 +67,8 @@ struct X86MachineState {
|
|||
OnOffAuto smm;
|
||||
OnOffAuto acpi;
|
||||
|
||||
char *oem_id;
|
||||
char *oem_table_id;
|
||||
/*
|
||||
* Address space used by IOAPIC device. All IOAPIC interrupts
|
||||
* will be translated to MSI messages in the address space.
|
||||
|
@ -76,6 +78,8 @@ struct X86MachineState {
|
|||
|
||||
#define X86_MACHINE_SMM "smm"
|
||||
#define X86_MACHINE_ACPI "acpi"
|
||||
#define X86_MACHINE_OEM_ID "oem-id"
|
||||
#define X86_MACHINE_OEM_TABLE_ID "oem-table-id"
|
||||
|
||||
#define TYPE_X86_MACHINE MACHINE_TYPE_NAME("x86")
|
||||
OBJECT_DECLARE_TYPE(X86MachineState, X86MachineClass, X86_MACHINE)
|
||||
|
|
|
@ -359,6 +359,7 @@ struct PCIDevice {
|
|||
|
||||
/* ID of standby device in net_failover pair */
|
||||
char *failover_pair_id;
|
||||
uint32_t acpi_index;
|
||||
};
|
||||
|
||||
void pci_register_bar(PCIDevice *pci_dev, int region_num,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue