qemu-e2k/target/loongarch
Alex Bennée 4ea5fe997d gdbstub: move register helpers into standalone include
These inline helpers are all used by target specific code so move them
out of the general header so we don't needlessly pollute the rest of
the API with target specific stuff.

Note we have to include cpu.h in semihosting as it was relying on a
side effect before.

Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

Message-Id: <20230302190846.2593720-21-alex.bennee@linaro.org>
Message-Id: <20230303025805.625589-21-richard.henderson@linaro.org>
2023-03-07 20:44:08 +00:00
..
insn_trans target/loongarch: Drop tcg_temp_free 2023-03-05 13:44:07 -08:00
constant_timer.c
cpu-csr.h
cpu-param.h
cpu.c target/loongarch: Implement Chip Configuraiton Version Register(0x0000) 2023-03-03 09:37:30 +08:00
cpu.h target/loongarch: Implement Chip Configuraiton Version Register(0x0000) 2023-03-03 09:37:30 +08:00
csr_helper.c
disas.c target/loongarch: Disassemble pcadd* addresses 2023-01-23 15:36:36 -10:00
fpu_helper.c
gdbstub.c gdbstub: move register helpers into standalone include 2023-03-07 20:44:08 +00:00
helper.h
insns.decode target/loongarch: Disassemble jirl properly 2023-01-23 15:36:36 -10:00
internals.h
iocsr_helper.c hw/intc: Fix LoongArch extioi coreisr accessing 2022-11-04 17:07:40 +08:00
Kconfig
loongarch-qmp-cmds.c target/loongarch: Restrict 'qapi-commands-machine.h' to system emulation 2023-03-02 07:51:33 +01:00
machine.c
meson.build target/loongarch: Restrict 'qapi-commands-machine.h' to system emulation 2023-03-02 07:51:33 +01:00
op_helper.c
README
tlb_helper.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
translate.c target/loongarch: Drop temp_new 2023-03-05 13:44:07 -08:00
translate.h target/loongarch: Drop temp_new 2023-03-05 13:44:07 -08:00

- Introduction

  LoongArch is the general processor architecture of Loongson.

  The following versions of the LoongArch core are supported
    core: 3A5000
    https://github.com/loongson/LoongArch-Documentation/releases/download/2021.08.17/LoongArch-Vol1-v1.00-EN.pdf

  We can get the latest loongarch documents at https://github.com/loongson/LoongArch-Documentation/tags.


- System emulation

  You can reference docs/system/loongarch/loongson3.rst to get the information about system emulation of LoongArch.

- Linux-user emulation

  We already support Linux user emulation. We can use LoongArch cross-tools to build LoongArch executables on X86 machines,
  and We can also use qemu-loongarch64 to run LoongArch executables.

  1. Config cross-tools env.

     see System emulation.

  2. Test tests/tcg/multiarch.

     ./configure  --static  --prefix=/usr  --disable-werror --target-list="loongarch64-linux-user" --enable-debug

     cd build

     make && make check-tcg

  3. Run LoongArch system basic command with loongarch-clfs-system.

     - Config clfs env.

       wget https://github.com/loongson/build-tools/releases/download/2022.05.29/loongarch64-clfs-system-5.0.tar.bz2

       tar -vxf loongarch64-clfs-system-5.0.tar.bz2 -C /opt/clfs

       cp /opt/clfs/lib64/ld-linux-loongarch-lp64d.so.1  /lib64

       export LD_LIBRARY_PATH="/opt/clfs/lib64"

     - Run LoongArch system basic command.

       ./qemu-loongarch64  /opt/clfs/usr/bin/bash
       ./qemu-loongarch64  /opt/clfs/usr/bin/ls
       ./qemu-loongarch64  /opt/clfs/usr/bin/pwd

- Note.
  We can get the latest LoongArch documents or LoongArch tools at https://github.com/loongson/