Hi Xiaojuan,
On 10/19/21 15:34, Xiaojuan Yang wrote:
> This series patch add softmmu support for LoongArch.
> Base on the linux-user emulation support V7 patch.
>
> The latest kernel:
> * https://github.com/loongson/linux/tree/loongarch-next
> The manual:
> * https://github.com/loongson/LoongArch-Documentation/releases/tag/2021.10.11
>
> Patch 1 Add a readme for code download and supply binary for test.
> Patch 2-3 define CSR registers and set the init/reset value.
> Patch 4-5 Add cpu related functions.
> Patch 6-12 Add Privileged instruction simulation used by LoongArch.
> Patch 13 Emulate a virt pci host based on the LoongArch 7A1000.
> Patch 14 Emulate a virt 3a5000 board different from host.
> Patch 15-20 Emulate the interrupt controller used by the virt board.
> Patch 21-22 Add devices used by the board.
> Patch 23-25 Add bios and smbios support needed for the start.
> Patch 26 Add a simple acpi model.
> Patch 27 Enable mttcg mode.
> Patch 28-29 Support for numa more than 4 cpus.
> Patch 30-31 Add some functions for debug.
>
> Xiaojuan Yang (31):
> target/loongarch: Upate the README for the softmmu.
Nit: "Update", also remove the trailing period -- QEMU style doesn't
mandate full sentences for title line of commit messages AFAIK. Other
places should be fixed as well.
> target/loongarch: Add CSR registers definition
> target/loongarch: Set default csr values.
> target/loongarch: Add basic vmstate description of CPU.
> target/loongarch: Implement qmp_query_cpu_definitions()
> target/loongarch: Add mmu support for Loongarch CPU.
> target/loongarch: Add loongarch csr/iocsr instruction support
And please use consistent casing for "LoongArch", "CSR", "IOCSR", "MMU",
"TLB" etc etc -- again fix everywhere you can.
> target/loongarch: Add tlb instruction support
> target/loongarch: Add other core instructions support
> target/loongarch: Add loongarch interrupt and exception handle
> target/loongarch: Add stabletimer support
> target/loongarch: Add timer related instructions support.
> hw/pci-host: Add ls7a1000 PCIe Host bridge support for Loongson
> Platform
> hw/loongarch: Add a virt loongarch 3A5000 board support
> hw/loongarch: Add loongarch cpu interrupt support(CPUINTC)
> hw/loongarch: Add loongarch ipi interrupt support(IPI)
> hw/intc: Add loongarch ls7a interrupt controller support(PCH-PIC)
> hw/intc: Add loongarch ls7a msi interrupt controller support(PCH-MSI)
> hw/intc: Add loongarch extioi interrupt controller(EIOINTC)
> hw/loongarch: Add irq hierarchy for the system
> hw/loongarch: Add some devices support for 3A5000.
> hw/loongarch: Add loongarch ls7a rtc device support
> hw/loongarch: Add default bios startup support.
> hw/loongarch: Add -kernel and -initrd options support
> hw/loongarch: Add loongarch smbios support
> hw/loongarch: Add loongarch acpi support
> hw/loongarch: Add mttcg mode support
> hw/loongarch: use machine->possible_cpus for storing possible topology
> info
> hw/loongarch: Add numa support.
> target/loongarch: Add gdb support.
> target/loongarch: Add privilege instructions diassembly
>
> .../devices/loongarch64-softmmu/default.mak | 3 +
> configs/targets/loongarch64-softmmu.mak | 4 +
> disas/loongarch.c | 173 ++++
> gdb-xml/loongarch-base64.xml | 43 +
> gdb-xml/loongarch-fpu64.xml | 57 ++
> hw/Kconfig | 1 +
> hw/acpi/Kconfig | 4 +
> hw/acpi/ls7a.c | 351 +++++++
> hw/acpi/meson.build | 1 +
> hw/intc/Kconfig | 12 +
> hw/intc/loongarch_extioi.c | 589 +++++++++++
> hw/intc/loongarch_pch_msi.c | 74 ++
> hw/intc/loongarch_pch_pic.c | 284 ++++++
> hw/intc/meson.build | 3 +
> hw/loongarch/Kconfig | 22 +
> hw/loongarch/acpi-build.c | 661 +++++++++++++
> hw/loongarch/fw_cfg.c | 34 +
> hw/loongarch/fw_cfg.h | 16 +
> hw/loongarch/ipi.c | 147 +++
> hw/loongarch/loongarch_int.c | 62 ++
> hw/loongarch/ls3a5000_virt.c | 638 ++++++++++++
> hw/loongarch/meson.build | 7 +
> hw/meson.build | 1 +
> hw/pci-host/Kconfig | 4 +
> hw/pci-host/ls7a.c | 224 +++++
> hw/pci-host/meson.build | 1 +
> hw/rtc/Kconfig | 3 +
> hw/rtc/ls7a_rtc.c | 327 +++++++
> hw/rtc/meson.build | 1 +
> include/exec/poison.h | 2 +
> include/hw/acpi/ls7a.h | 54 ++
> include/hw/intc/loongarch_extioi.h | 102 ++
> include/hw/intc/loongarch_pch_msi.h | 17 +
> include/hw/intc/loongarch_pch_pic.h | 50 +
> include/hw/loongarch/gipi.h | 38 +
> include/hw/loongarch/loongarch.h | 79 ++
> include/hw/pci-host/ls7a.h | 67 ++
> include/sysemu/arch_init.h | 1 +
> linux-user/loongarch64/cpu_loop.c | 3 +-
> pc-bios/loongarch_bios.bin | Bin 0 -> 4128768 bytes
> qapi/machine-target.json | 6 +-
> qapi/machine.json | 2 +-
> softmmu/qdev-monitor.c | 3 +-
> target/Kconfig | 1 +
> target/loongarch/Kconfig | 2 +
> target/loongarch/README | 134 +++
> target/loongarch/cpu-csr.h | 493 ++++++++++
> target/loongarch/cpu.c | 448 ++++++++-
> target/loongarch/cpu.h | 56 +-
> target/loongarch/csr_helper.c | 765 +++++++++++++++
> target/loongarch/gdbstub.c | 95 ++
> target/loongarch/helper.h | 24 +
> target/loongarch/insn_trans/trans_core.c | 302 ++++++
> target/loongarch/insn_trans/trans_extra.c | 2 +
> target/loongarch/insns.decode | 45 +
> target/loongarch/internals.h | 93 ++
> target/loongarch/machine.c | 253 +++++
> target/loongarch/meson.build | 10 +
> target/loongarch/op_helper.c | 77 +-
> target/loongarch/ramdisk | Bin 0 -> 3077952 bytes
> target/loongarch/stabletimer.c | 71 ++
> target/loongarch/tlb_helper.c | 918 ++++++++++++++++++
> target/loongarch/translate.c | 8 +-
> target/loongarch/vmlinux | Bin 0 -> 24565536 bytes
Well, it might not be exactly nice to add ~30MiB of blob right here, via
mailing list? IIUC everyone here can only see 17 of your 31 patches,
maybe the blob-containing mail and subsequent ones all got blocked?
And perhaps it's not okay to put blobs inside target/ in the first
place, a quick `tree` look at main branch reveals no such file. You may
host these blobs (better yet, properly open-sourced repos) elsewhere and
link to them in README instead.
> 64 files changed, 7955 insertions(+), 13 deletions(-)
> create mode 100644 configs/devices/loongarch64-softmmu/default.mak
> create mode 100644 configs/targets/loongarch64-softmmu.mak
> create mode 100644 gdb-xml/loongarch-base64.xml
> create mode 100644 gdb-xml/loongarch-fpu64.xml
> create mode 100644 hw/acpi/ls7a.c
> create mode 100644 hw/intc/loongarch_extioi.c
> create mode 100644 hw/intc/loongarch_pch_msi.c
> create mode 100644 hw/intc/loongarch_pch_pic.c
> create mode 100644 hw/loongarch/Kconfig
> create mode 100644 hw/loongarch/acpi-build.c
> create mode 100644 hw/loongarch/fw_cfg.c
> create mode 100644 hw/loongarch/fw_cfg.h
> create mode 100644 hw/loongarch/ipi.c
> create mode 100644 hw/loongarch/loongarch_int.c
> create mode 100644 hw/loongarch/ls3a5000_virt.c
> create mode 100644 hw/loongarch/meson.build
> create mode 100644 hw/pci-host/ls7a.c
> create mode 100644 hw/rtc/ls7a_rtc.c
While I haven't seen the entirety of the series, these files got created
but MAINTAINERS is not updated. Please update the corresponding entries.
> create mode 100644 include/hw/acpi/ls7a.h
> create mode 100644 include/hw/intc/loongarch_extioi.h
> create mode 100644 include/hw/intc/loongarch_pch_msi.h
> create mode 100644 include/hw/intc/loongarch_pch_pic.h
> create mode 100644 include/hw/loongarch/gipi.h
> create mode 100644 include/hw/loongarch/loongarch.h
> create mode 100644 include/hw/pci-host/ls7a.h
> create mode 100644 pc-bios/loongarch_bios.bin
> create mode 100644 target/loongarch/Kconfig
> create mode 100644 target/loongarch/cpu-csr.h
> create mode 100644 target/loongarch/csr_helper.c
> create mode 100644 target/loongarch/gdbstub.c
> create mode 100644 target/loongarch/insn_trans/trans_core.c
> create mode 100644 target/loongarch/machine.c
> create mode 100644 target/loongarch/ramdisk
> create mode 100644 target/loongarch/stabletimer.c
> create mode 100644 target/loongarch/tlb_helper.c
> create mode 100755 target/loongarch/vmlinux
>