xref: /qemu/include/hw/loongarch/virt.h (revision a8a506c3907093a064dd2d475564e677fb1bf148)
1*a8a506c3SXiaojuan Yang /* SPDX-License-Identifier: GPL-2.0-or-later */
2*a8a506c3SXiaojuan Yang /*
3*a8a506c3SXiaojuan Yang  * Definitions for loongarch board emulation.
4*a8a506c3SXiaojuan Yang  *
5*a8a506c3SXiaojuan Yang  * Copyright (C) 2021 Loongson Technology Corporation Limited
6*a8a506c3SXiaojuan Yang  */
7*a8a506c3SXiaojuan Yang 
8*a8a506c3SXiaojuan Yang #ifndef HW_LOONGARCH_H
9*a8a506c3SXiaojuan Yang #define HW_LOONGARCH_H
10*a8a506c3SXiaojuan Yang 
11*a8a506c3SXiaojuan Yang #include "target/loongarch/cpu.h"
12*a8a506c3SXiaojuan Yang #include "hw/boards.h"
13*a8a506c3SXiaojuan Yang #include "qemu/queue.h"
14*a8a506c3SXiaojuan Yang 
15*a8a506c3SXiaojuan Yang #define LOONGARCH_MAX_VCPUS     4
16*a8a506c3SXiaojuan Yang 
17*a8a506c3SXiaojuan Yang #define LOONGARCH_ISA_IO_BASE   0x18000000UL
18*a8a506c3SXiaojuan Yang #define LOONGARCH_ISA_IO_SIZE   0x0004000
19*a8a506c3SXiaojuan Yang 
20*a8a506c3SXiaojuan Yang struct LoongArchMachineState {
21*a8a506c3SXiaojuan Yang     /*< private >*/
22*a8a506c3SXiaojuan Yang     MachineState parent_obj;
23*a8a506c3SXiaojuan Yang 
24*a8a506c3SXiaojuan Yang     MemoryRegion lowmem;
25*a8a506c3SXiaojuan Yang     MemoryRegion highmem;
26*a8a506c3SXiaojuan Yang     MemoryRegion isa_io;
27*a8a506c3SXiaojuan Yang };
28*a8a506c3SXiaojuan Yang 
29*a8a506c3SXiaojuan Yang #define TYPE_LOONGARCH_MACHINE  MACHINE_TYPE_NAME("virt")
30*a8a506c3SXiaojuan Yang OBJECT_DECLARE_SIMPLE_TYPE(LoongArchMachineState, LOONGARCH_MACHINE)
31*a8a506c3SXiaojuan Yang #endif
32