| /** @file | |
| Macros for accessing QEMU's CPU hotplug register block. | |
| Copyright (C) 2019, Red Hat, Inc. | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| @par Specification Reference: | |
| - "docs/specs/acpi_cpu_hotplug.txt" in the QEMU source tree. | |
| The original (now "legacy") CPU hotplug interface appeared in QEMU v1.5.0. | |
| The new ("modern") hotplug interface appeared in QEMU v2.7.0. | |
| The macros in this header file map to the minimal subset of the modern | |
| interface that OVMF needs. | |
| **/ | |
| #ifndef QEMU_CPU_HOTPLUG_H_ | |
| #define QEMU_CPU_HOTPLUG_H_ | |
| #include <Base.h> | |
| // | |
| // Each register offset is: | |
| // - relative to the board-dependent IO base address of the register block, | |
| // - named QEMU_CPUHP_(R|W|RW)_*, according to the possible access modes of the | |
| // register, | |
| // - followed by distinguished bitmasks or values in the register. | |
| // | |
| #define QEMU_CPUHP_R_CMD_DATA2 0x0 | |
| #define QEMU_CPUHP_R_CPU_STAT 0x4 | |
| #define QEMU_CPUHP_STAT_ENABLED BIT0 | |
| #define QEMU_CPUHP_STAT_INSERT BIT1 | |
| #define QEMU_CPUHP_STAT_REMOVE BIT2 | |
| #define QEMU_CPUHP_STAT_EJECT BIT3 | |
| #define QEMU_CPUHP_STAT_FW_REMOVE BIT4 | |
| #define QEMU_CPUHP_RW_CMD_DATA 0x8 | |
| #define QEMU_CPUHP_W_CPU_SEL 0x0 | |
| #define QEMU_CPUHP_W_CMD 0x5 | |
| #define QEMU_CPUHP_CMD_GET_PENDING 0x0 | |
| #define QEMU_CPUHP_CMD_GET_ARCH_ID 0x3 | |
| #endif // QEMU_CPU_HOTPLUG_H_ |