Xianglai Li
9c70db9a43
target/loongarch: Fix tlb huge page loading issue
...
When we use qemu tcg simulation, the page size of bios is 4KB.
When using the level 2 super huge page (page size is 1G) to create the page table,
it is found that the content of the corresponding address space is abnormal,
resulting in the bios can not start the operating system and graphical interface normally.
The lddir and ldpte instruction emulation has
a problem with the use of super huge page processing above level 2.
The page size is not correctly calculated,
resulting in the wrong page size of the table entry found by tlb.
Signed-off-by: Xianglai Li <lixianglai@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Message-Id: <20240318070332.1273939-1-lixianglai@loongson.cn >
2024-03-20 10:20:03 +08:00
Song Gao
27edd5040c
target/loongarch: Fix qtest test-hmp error when KVM-only build
...
The cc->sysemu_ops->get_phys_page_debug() is NULL when
KVM-only build. this patch fixes it.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Tested-by: Bibo Mao <maobibo@loongson.cn >
Message-Id: <20240125061401.52526-1-gaosong@loongson.cn >
2024-02-01 15:29:40 +08:00
Tianrui Zhao
f8447436d3
target/loongarch: Implement kvm get/set registers
...
Implement kvm_arch_get/set_registers interfaces, many regs
can be get/set in the function, such as core regs, csr regs,
fpu regs, mp state, etc.
Signed-off-by: Tianrui Zhao <zhaotianrui@loongson.cn >
Signed-off-by: xianglai li <lixianglai@loongson.cn >
Reviewed-by: Song Gao <gaosong@loongson.cn >
Change-Id: Ia8fc48fe08b1768853f7729e77d37cdf270031e4
Message-Id: <20240105075804.1228596-5-zhaotianrui@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
2024-01-11 19:14:00 +08:00
Song Gao
008a3b1662
target/loongarch: Add LASX data support
...
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20230914022645.1151356-12-gaosong@loongson.cn >
2023-09-20 11:43:11 +08:00
Song Gao
aca67472d2
target/loongarch: Implement LSX fpu arith instructions
...
This patch includes:
- VF{ADD/SUB/MUL/DIV}.{S/D};
- VF{MADD/MSUB/NMADD/NMSUB}.{S/D};
- VF{MAX/MIN}.{S/D};
- VF{MAXA/MINA}.{S/D};
- VFLOGB.{S/D};
- VFCLASS.{S/D};
- VF{SQRT/RECIP/RSQRT}.{S/D}.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Message-Id: <20230504122810.4094787-34-gaosong@loongson.cn >
2023-05-06 11:19:48 +08:00
Song Gao
16f5396cec
target/loongarch: Add LSX data type VReg
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Message-Id: <20230504122810.4094787-2-gaosong@loongson.cn >
2023-05-06 11:19:42 +08:00
Song Gao
2f149c759f
target/loongarch: Update gdb_set_fpu() and gdb_get_fpu()
...
GDB LoongArch fpu use fcc register, update gdb_set_fpu()
and gdb_get_fpu() to match it.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Acked-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20220805033523.1416837-6-gaosong@loongson.cn >
2022-08-05 10:02:40 -07:00
Song Gao
0093b9a5ee
target/loongarch: Adjust functions and structure to support user-mode
...
Some functions and member of the structure are different with softmmu-mode
So we need adjust them to support user-mode.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220624031049.1716097-12-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Xiaojuan Yang
ca61e75071
target/loongarch: Add gdb support.
...
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-42-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:14:13 +00:00
Xiaojuan Yang
d2cba6f7ce
target/loongarch: Add other core instructions support
...
This includes:
-CACOP
-LDDIR
-LDPTE
-ERTN
-DBCL
-IDLE
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-29-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
dd615fa48d
target/loongarch: Add constant timer support
...
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-25-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
f757a2cd69
target/loongarch: Add LoongArch interrupt and exception handle
...
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-24-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
7e1c521e2a
target/loongarch: Add MMU support for LoongArch CPU.
...
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-23-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
67ebd42a48
target/loongarch: Add basic vmstate description of CPU.
...
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-21-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
9b7410763a
target/loongarch: Add floating point comparison instruction translation
...
This includes:
- FCMP.cond.{S/D}
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-12-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
d578ca6cbb
target/loongarch: Add floating point arithmetic instruction translation
...
This includes:
- F{ADD/SUB/MUL/DIV}.{S/D}
- F{MADD/MSUB/NMADD/NMSUB}.{S/D}
- F{MAX/MIN}.{S/D}
- F{MAXA/MINA}.{S/D}
- F{ABS/NEG}.{S/D}
- F{SQRT/RECIP/RSQRT}.{S/D}
- F{SCALEB/LOGB/COPYSIGN}.{S/D}
- FCLASS.{S/D}
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-11-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
228021f05e
target/loongarch: Add core definition
...
This patch adds target state header, target definitions
and initialization routines.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220606124333.2060567-3-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00