qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH v5 01/30] target/loongarch: Add system emulation introduc


From: Mark Cave-Ayland
Subject: Re: [RFC PATCH v5 01/30] target/loongarch: Add system emulation introduction
Date: Sat, 5 Feb 2022 13:24:42 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0

On 28/01/2022 03:43, Xiaojuan Yang wrote:

Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
---
  docs/system/loongarch/loongson3.rst | 78 +++++++++++++++++++++++++++++
  target/loongarch/README             | 28 +++++++++++
  2 files changed, 106 insertions(+)
  create mode 100644 docs/system/loongarch/loongson3.rst

diff --git a/docs/system/loongarch/loongson3.rst 
b/docs/system/loongarch/loongson3.rst
new file mode 100644
index 0000000000..1840ec5e75
--- /dev/null
+++ b/docs/system/loongarch/loongson3.rst
@@ -0,0 +1,78 @@
+loongson3-ls7a generic platform (``loongson3-ls7a``)
+====================================================
+
+Use ``loongson3-ls7a`` machine type to emulate the loongson7a board.
+There are some devices on loongson7a board, such as RTC device,
+IOAPIC device, ACPI device and so on.
+
+Supported devices
+-----------------
+
+The ``loongson3-ls7a`` machine supports:
+- PCI/PCIe devices
+- Memory device
+- CPU device
+- Ls7a host bridge
+- Ls7a RTC device
+- Ls7a IOAPIC device
+- Ls7a ACPI device
+- Fw_cfg device
+- CPU device. Type: Loongson-3A5000.
+
+CPU and machine Type
+--------------------
+
+The ``qemu-system-loongarch64`` provides emulation for loongson7a
+machine. You can specify the machine type ``loongson3-ls7a`` and
+cpu type ``Loongson-3A5000``.
+
+Boot options
+------------
+
+Now the ``loongson3-ls7a`` machine can start using -bios parameter:
+
+.. code-block:: bash
+
+  $ qemu-system-loongarch64 -M loongson3-ls7a -cpu Loongson-3A5000 -smp 2 -m 
1G \
+      -display none -serial stdio \
+      -bios loongarch_bios.bini
+
+Info mtree
+----------
+address-space: memory
+  0000000000000000-ffffffffffffffff (prio 0, i/o): system
+    0000000000000000-ffffffffffffffff (prio 0, i/o): ls7a_mmio
+      00000000000a0000-00000000000bffff (prio 1, i/o): cirrus-lowmem-container
+        00000000000a0000-00000000000bffff (prio 0, i/o): cirrus-low-memory
+    0000000000000000-000000000fffffff (prio 0, ram): alias loongarch.lowram 
@loongarch.ram 0000000000000000-000000000fffffff
+    0000000010000000-00000000100000ff (prio 0, i/o): 
loongarch_pch_pic.reg32_part1
+    0000000010000100-000000001000039f (prio 0, i/o): loongarch_pch_pic.reg8
+    00000000100003a0-0000000010000fff (prio 0, i/o): 
loongarch_pch_pic.reg32_part2
+    000000001001041c-000000001001041f (prio -1000, i/o): pci-dma-cfg
+    0000000010013ffc-0000000010013fff (prio -1000, i/o): mmio fallback 1
+    00000000100d0000-00000000100d00ff (prio 0, i/o): ls7a_pm
+      00000000100d000c-00000000100d0013 (prio 0, i/o): acpi-evt
+      00000000100d0014-00000000100d0017 (prio 0, i/o): acpi-cnt
+      00000000100d0018-00000000100d001b (prio 0, i/o): acpi-tmr
+      00000000100d0028-00000000100d002f (prio 0, i/o): acpi-gpe0
+      00000000100d0030-00000000100d0033 (prio 0, i/o): acpi-reset
+    00000000100d0100-00000000100d01ff (prio 0, i/o): ls7a_rtc
+    0000000018000000-0000000018003fff (prio 0, i/o): alias isa-io @io 
0000000000000000-0000000000003fff
+    0000000018004000-000000001800ffff (prio 0, i/o): alias ls7a-pci-io @io 
0000000000004000-000000000000ffff
+    000000001a000000-000000001bffffff (prio 0, i/o): ls7a_pci_conf
+    000000001c000000-000000001c3fffff (prio 0, rom): loongarch.bios
+    000000001e020000-000000001e020001 (prio 0, i/o): fwcfg.ctl
+    000000001e020008-000000001e02000f (prio 0, i/o): fwcfg.data
+    000000001fe001e0-000000001fe001e7 (prio 0, i/o): serial
+    0000000020000000-0000000027ffffff (prio 0, i/o): pcie-mmcfg-mmio
+    000000002ff00000-000000002ff00007 (prio 0, i/o): loongarch_pch_msi
+    0000000090000000-000000017fffffff (prio 0, ram): alias loongarch.highmem 
@loongarch.ram 0000000010000000-00000000ffffffff
+
+address-space: IOCSR
+  0000000000000000-ffffffffffffffff (prio 0, i/o): iocsr
+    0000000000000008-0000000000000427 (prio 0, i/o): iocsr_misc
+    0000000000001000-00000000000010ff (prio 0, i/o): loongarch_ipi
+    0000000000001400-00000000000014bf (prio 0, i/o): loongarch_extioi.nodetype
+    00000000000014c0-000000000000167f (prio 0, i/o): 
loongarch_extioi.ipmap_enable
+    0000000000001680-0000000000001bff (prio 0, i/o): 
loongarch_extioi.bounce_coreisr
+    0000000000001c00-0000000000001cff (prio 0, i/o): loongarch_extioi.coremap
diff --git a/target/loongarch/README b/target/loongarch/README
index 383db6cc15..de44d39561 100644
--- a/target/loongarch/README
+++ b/target/loongarch/README
@@ -71,6 +71,34 @@
        ./qemu-loongarch64  /opt/clfs/usr/bin/pwd
        ...
+- System emulation
+
+  Mainly emulate a virt 3A5000 board and ls7a bridge that is not exactly the 
same as the host.
+  3A5000 support multiple interrupt cascading while here we just emulate the 
extioi interrupt
+  cascading. LS7A1000 host bridge support multiple devices, such as sata, 
gmac, uart, rtc
+  and so on. But we just realize the rtc. Others use the qemu common devices. 
It does not affect
+  the general use. We also introduced the emulation of devices at 
docs/system/loongarch/loongson3.rst.
+
+  You can compile the binaries by youself or just get all required binaries 
from the github for testing.
+
+  1.Download kernel and the cross-tools.(vmlinux)
+
+      https://github.com/loongson/linux/tree/loongarch-next
+      
https://github.com/loongson/build-tools/releases/latest/download/loongarch64-clfs-20211202-cross-tools.tar.xz
+
+  2.Download uefi code.(loongarch_bios.bin)
+
+      https://github.com/loongson/edk2/tree/LoongArch
+      https://github.com/loongson/edk2-platforms
+
+  3.Download the clfs-system and make a ramdisk with busybox.(ramdisk)
+
+  4.Run with command,eg:
+
+   ./build/qemu-system-loongarch64 -m 4G -smp 4 --cpu Loongson-3A5000 --machine 
loongson3-ls7a -kernel ./vmlinux -initrd ./ramdisk  -append "root=/dev/ram 
console=ttyS0,115200 rdinit=/sbin/init loglevel=8" -monitor tcp::4000,server,nowait 
-nographic
+
+All binaries can get from here directly:
+    git clone https://github.com/yangxiaojuan-loongson/qemu-binary
- Note.
    We can get the latest LoongArch documents or LoongArch tools at 
https://github.com/loongson/

I should add that my request for the "info mtree" output was to help review the patches without having to download them, so thank you. It is up to you if you wish to include the "info mtree" output in this documentation as often things like this can get out of date quickly.

For me the most important part of this documentation is knowing which devices are present on the "virt" board.


ATB,

Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]