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