summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorXiaojuan Yang2022-06-06 14:43:20 +0200
committerRichard Henderson2022-06-06 20:09:03 +0200
commita8a506c3907093a064dd2d475564e677fb1bf148 (patch)
tree8bfc9e744b51740649e21796049aae592268f216 /target
parenttarget/loongarch: Add timer related instructions support. (diff)
downloadqemu-a8a506c3907093a064dd2d475564e677fb1bf148.tar.gz
qemu-a8a506c3907093a064dd2d475564e677fb1bf148.tar.xz
qemu-a8a506c3907093a064dd2d475564e677fb1bf148.zip
hw/loongarch: Add support loongson3 virt machine type.
Emulate a 3A5000 board use the new loongarch instruction. 3A5000 belongs to the Loongson3 series processors. The board consists of a 3A5000 cpu model and the virt bridge. The host 3A5000 board is really complicated and contains many functions.Now for the tcg softmmu mode only part functions are emulated. More detailed info you can see https://github.com/loongson/LoongArch-Documentation Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn> Signed-off-by: Song Gao <gaosong@loongson.cn> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220606124333.2060567-31-yangxiaojuan@loongson.cn> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target')
-rw-r--r--target/Kconfig1
-rw-r--r--target/loongarch/Kconfig2
-rw-r--r--target/loongarch/cpu.c2
3 files changed, 5 insertions, 0 deletions
diff --git a/target/Kconfig b/target/Kconfig
index ae7f24fc66..83da0bd293 100644
--- a/target/Kconfig
+++ b/target/Kconfig
@@ -4,6 +4,7 @@ source avr/Kconfig
source cris/Kconfig
source hppa/Kconfig
source i386/Kconfig
+source loongarch/Kconfig
source m68k/Kconfig
source microblaze/Kconfig
source mips/Kconfig
diff --git a/target/loongarch/Kconfig b/target/loongarch/Kconfig
new file mode 100644
index 0000000000..46b26b1a85
--- /dev/null
+++ b/target/loongarch/Kconfig
@@ -0,0 +1,2 @@
+config LOONGARCH64
+ bool
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index b846bd1a8b..3b7d6289d2 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -82,6 +82,8 @@ static void loongarch_cpu_set_pc(CPUState *cs, vaddr value)
env->pc = value;
}
+#include "hw/loongarch/virt.h"
+
void loongarch_cpu_set_irq(void *opaque, int irq, int level)
{
LoongArchCPU *cpu = opaque;