mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
hw/loongarch: Add acpi ged support
Loongarch virt machine uses general hardware reduces acpi method, rather than LS7A acpi device. Now only power management function is used in acpi ged device, memory hotplug will be added later. Also acpi tables such as RSDP/RSDT/FADT etc. The acpi table has submited to acpi spec, and will release soon. Acked-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn> Message-Id: <20220712083206.4187715-6-yangxiaojuan@loongson.cn> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
3efa6fa1e6
commit
735143f10d
6 changed files with 704 additions and 3 deletions
|
@ -21,6 +21,13 @@
|
|||
#define VIRT_BIOS_BASE 0x1c000000UL
|
||||
#define VIRT_BIOS_SIZE (4 * MiB)
|
||||
|
||||
#define VIRT_LOWMEM_BASE 0
|
||||
#define VIRT_LOWMEM_SIZE 0x10000000
|
||||
#define VIRT_HIGHMEM_BASE 0x90000000
|
||||
#define VIRT_GED_EVT_ADDR 0x100e0000
|
||||
#define VIRT_GED_MEM_ADDR (VIRT_GED_EVT_ADDR + ACPI_GED_EVT_SEL_LEN)
|
||||
#define VIRT_GED_REG_ADDR (VIRT_GED_MEM_ADDR + MEMORY_HOTPLUG_IO_LEN)
|
||||
|
||||
struct LoongArchMachineState {
|
||||
/*< private >*/
|
||||
MachineState parent_obj;
|
||||
|
@ -34,8 +41,14 @@ struct LoongArchMachineState {
|
|||
/* State for other subsystems/APIs: */
|
||||
FWCfgState *fw_cfg;
|
||||
Notifier machine_done;
|
||||
OnOffAuto acpi;
|
||||
char *oem_id;
|
||||
char *oem_table_id;
|
||||
DeviceState *acpi_ged;
|
||||
};
|
||||
|
||||
#define TYPE_LOONGARCH_MACHINE MACHINE_TYPE_NAME("virt")
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(LoongArchMachineState, LOONGARCH_MACHINE)
|
||||
bool loongarch_is_acpi_enabled(LoongArchMachineState *lams);
|
||||
void loongarch_acpi_setup(LoongArchMachineState *lams);
|
||||
#endif
|
||||
|
|
|
@ -23,6 +23,9 @@
|
|||
#define LS7A_PCI_IO_BASE 0x18004000UL
|
||||
#define LS7A_PCI_IO_SIZE 0xC000
|
||||
|
||||
#define LS7A_PCI_MEM_BASE 0x40000000UL
|
||||
#define LS7A_PCI_MEM_SIZE 0x40000000UL
|
||||
|
||||
#define LS7A_PCH_REG_BASE 0x10000000UL
|
||||
#define LS7A_IOAPIC_REG_BASE (LS7A_PCH_REG_BASE)
|
||||
#define LS7A_PCH_MSI_ADDR_LOW 0x2FF00000UL
|
||||
|
@ -41,4 +44,5 @@
|
|||
#define LS7A_MISC_REG_BASE (LS7A_PCH_REG_BASE + 0x00080000)
|
||||
#define LS7A_RTC_REG_BASE (LS7A_MISC_REG_BASE + 0x00050100)
|
||||
#define LS7A_RTC_LEN 0x100
|
||||
#define LS7A_SCI_IRQ (PCH_PIC_IRQ_OFFSET + 4)
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue