/** @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_ |