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

edk2 looks for the etc/hardware-info fw_cfg file to discover hardware which can not easily be found in other ways. Entries consist of a header with hardware type and entry size (HARDWARE_INFO_HEADER), followed by the actual hardware description (which is type specific). The file can have multiple entries. This patch adds the infrastructure to add entries to the file and an entry struct for simple devices (HARDWARE_INFO_SIMPLE_DEVICE) which have an mmio address only. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-ID: <20250225163031.1409078-2-kraxel@redhat.com>
35 lines
758 B
C
35 lines
758 B
C
/*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*
|
|
* pass hardware information to uefi
|
|
*
|
|
* see OvmfPkg/Library/HardwareInfoLib/ in edk2
|
|
*/
|
|
#ifndef QEMU_UEFI_HARDWARE_INFO_H
|
|
#define QEMU_UEFI_HARDWARE_INFO_H
|
|
|
|
/* data structures */
|
|
|
|
typedef enum {
|
|
HardwareInfoTypeUndefined = 0,
|
|
HardwareInfoTypeHostBridge = 1,
|
|
HardwareInfoQemuUefiVars = 2,
|
|
} HARDWARE_INFO_TYPE;
|
|
|
|
typedef struct {
|
|
union {
|
|
uint64_t uint64;
|
|
HARDWARE_INFO_TYPE value;
|
|
} type;
|
|
uint64_t size;
|
|
} HARDWARE_INFO_HEADER;
|
|
|
|
typedef struct {
|
|
uint64_t mmio_address;
|
|
} HARDWARE_INFO_SIMPLE_DEVICE;
|
|
|
|
/* qemu functions */
|
|
|
|
void hardware_info_register(HARDWARE_INFO_TYPE type, void *info, uint64_t size);
|
|
|
|
#endif /* QEMU_UEFI_HARDWARE_INFO_H */
|