From nobody Wed Feb 11 00:56:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1654557855; cv=none; d=zohomail.com; s=zohoarc; b=C09yGlN3Q5yYt5wqwiMQDlp3VpMW0qPkX02mXHp1A+Ejly9+bpBj4Lh/+t/Jjvms2mmqcx1ozWIAIOvu48Rl4iIZcn08JKJ9l1Yl99ytxrw1f3PdvkUxaXgNM0bxFSz9tdgDeNfSd95J/WGTJqet8NRWc1qF2+57ryyJwhL73+w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1654557855; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cDpcSfPbAq8nwtiRx5EO7FVR2edeY3xIlH+Px2B17Z4=; b=bE4RGW9og2EF1K0pv8mSjHX+Zg9SZkOLCROrkWl7BPtPnGdeg6eKIrKQVTUoSUd/Gztbp9qjXRasYvAKHY1R5nGc2G6IGRqzKWqc9VI1EnyigqN4xvriFOZGrIbzywpjE+u7EbiwDgn5uNLYihZwSuNPngCEo11UJaa437tpYgg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1654557855149280.0740175964577; Mon, 6 Jun 2022 16:24:15 -0700 (PDT) Received: from localhost ([::1]:37888 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nyM50-0001Fh-4F for importer@patchew.org; Mon, 06 Jun 2022 19:24:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35006) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nyLwK-0001gb-FS for qemu-devel@nongnu.org; Mon, 06 Jun 2022 19:15:16 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:38784) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nyLwE-0003xp-FZ for qemu-devel@nongnu.org; Mon, 06 Jun 2022 19:15:13 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 123so3823775pgb.5 for ; Mon, 06 Jun 2022 16:15:09 -0700 (PDT) Received: from stoup.. ([2602:ae:1547:e101:dd1c:9738:3e40:ffe0]) by smtp.gmail.com with ESMTPSA id 2-20020a170902c24200b00162523fdb8fsm10954623plg.252.2022.06.06.16.15.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jun 2022 16:15:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cDpcSfPbAq8nwtiRx5EO7FVR2edeY3xIlH+Px2B17Z4=; b=ZjX+5/ACbJ+Q35KFUpRuq5ddD2aK82Y9Kqg3x73ahqUZ+YYrf9rIgGCuSdnLcjdSBS 4KkbY47P9A+OVHdqvoNkBrZlQGPKXgwqPOiiKXAC+V1ebHdGBMTkLqwVQAmpAekO/EkF efvpXgaiwPhZmSOIGWjf/LN78/qQ6IYBOGhupedJnigsluAekCEtAYTsNgP+xc8C74H0 CS9v4HIk590EYtGEQMhzCwyf1jJ5M+M2TaGIaellZGRag0QrAK7xKbh6dRL4xyt1yBQe MeyVeQjRq0FgSUHupLobl0PClvZPeItjeiKO5ihnoKZiP5gik4OkuUqYsZsjJGdiEtlm apSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cDpcSfPbAq8nwtiRx5EO7FVR2edeY3xIlH+Px2B17Z4=; b=HEY1GhmRM3MPRqZivTIXiMTjxq4zE5UJ5qbP1hQfEChlsZFlUfV5v11ZoYNzvo4U+r 1DpHKK1XEz6ja0NouspzQfjV56c29Xyy1t3YTk8FzvApCLw6aTF7tXb1EQZTAUX77j/6 p6tRX1aj1MIIbOXBDUOrfBz2MFhrQC2SbP4mkhzZHsecpugg8a+e61oPskKZiBhWMk2A 4u7BucPOftPOigoNX/pqTO61VQ0NR20S4Zt7ReLcC2wiU7LtalK1dEGawIWLl35gPifC aigzTMev81OoXXsZvJczuikurKa8QucevNcfBqruaBkcuyCJZv0rrxHYYRMjxNOkxRcJ 9TrA== X-Gm-Message-State: AOAM5329UdZ7GfmkIo3v59RmulGpGD5SfjaJm0Pj1PjWIZhX2b8VUYXa DxrWevA9RCQtxcSx+RcOwf8UQJO/XSTuew== X-Google-Smtp-Source: ABdhPJyVJd6gusuNcgz0ruLqS+7T4BemfHceFQeCyhQq2YXJYfQ9DRLv0gCQCaPxe6d/duw/eVOnDw== X-Received: by 2002:a65:62d0:0:b0:3fa:c6aa:6901 with SMTP id m16-20020a6562d0000000b003fac6aa6901mr22573282pgv.314.1654557308887; Mon, 06 Jun 2022 16:15:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =gaosong@loongson.cn, yangxiaojuan@loongson.cn, Song Gao Subject: [PULL 18/43] target/loongarch: Add system emulation introduction Date: Mon, 6 Jun 2022 16:14:25 -0700 Message-Id: <20220606231450.448443-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220606231450.448443-1-richard.henderson@linaro.org> References: <20220606231450.448443-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::52d; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1654557857238100001 Content-Type: text/plain; charset="utf-8" From: Xiaojuan Yang Signed-off-by: Xiaojuan Yang Signed-off-by: Song Gao Reviewed-by: Richard Henderson Message-Id: <20220606124333.2060567-19-yangxiaojuan@loongson.cn> Signed-off-by: Richard Henderson --- docs/system/loongarch/loongson3.rst | 41 ++++++++++++++++++++++ MAINTAINERS | 8 +++++ target/loongarch/README | 54 +++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 docs/system/loongarch/loongson3.rst diff --git a/docs/system/loongarch/loongson3.rst b/docs/system/loongarch/lo= ongson3.rst new file mode 100644 index 0000000000..fa3acd01c0 --- /dev/null +++ b/docs/system/loongarch/loongson3.rst @@ -0,0 +1,41 @@ +:orphan: + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +loongson3 virt generic platform (``virt``) +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +The ``virt`` machine use gpex host bridge, and there are some +emulated devices on virt board, such as loongson7a RTC device, +IOAPIC device, ACPI device and so on. + +Supported devices +----------------- + +The ``virt`` machine supports: +- Gpex host bridge +- Ls7a RTC device +- Ls7a IOAPIC device +- Ls7a ACPI device +- Fw_cfg device +- PCI/PCIe devices +- Memory device +- CPU device. Type: Loongson-3A5000. + +CPU and machine Type +-------------------- + +The ``qemu-system-loongarch64`` provides emulation for virt +machine. You can specify the machine type ``virt`` and +cpu type ``Loongson-3A5000``. + +Boot options +------------ + +Now the ``virt`` machine can run test program in ELF format and the +method of compiling is in target/loongarch/README. + +.. code-block:: bash + + $ qemu-system-loongarch64 -machine virt -m 4G -cpu Loongson-3A5000 \ + -smp 1 -kernel hello -monitor none -display none \ + -chardev file,path=3Dhello.out,id=3Doutput -serial chardev:output diff --git a/MAINTAINERS b/MAINTAINERS index 319a5d805a..e3f875071a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1122,6 +1122,14 @@ F: include/hw/net/lasi_82596.h F: include/hw/pci-host/dino.h F: pc-bios/hppa-firmware.img =20 +LoongArch Machines +------------------ +Virt +M: Xiaojuan Yang +M: Song Gao +S: Maintained +F: docs/system/loongarch/loongson3.rst + M68K Machines ------------- an5206 diff --git a/target/loongarch/README b/target/loongarch/README index de141c1a58..4dcd0f1682 100644 --- a/target/loongarch/README +++ b/target/loongarch/README @@ -8,3 +8,57 @@ =20 We can get the latest loongarch documents at https://github.com/loongson= /LoongArch-Documentation/tags. =20 + +- System emulation + + Mainly emulate a virt 3A5000 board and ls7a bridge that is not exactly t= he same as the host. + 3A5000 support multiple interrupt cascading while here we just emulate t= he 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 devic= es. It does not affect + the general use. We also introduced the emulation of devices at docs/sys= tem/loongarch/loongson3.rst. + + This version only supports running binary files in ELF format, and does = not depend on BIOS and kernel file. + You can compile the test program with 'make & make check-tcg' and run th= e test case with the following command: + + 1. Install LoongArch cross-tools on X86 machines. + + Download cross-tools. + + wget https://github.com/loongson/build-tools/releases/latest/downloa= d/loongarch64-clfs-20211202-cross-tools.tar.xz + + tar -vxf loongarch64-clfs-20211202-cross-tools.tar.xz -C /opt + + Config cross-tools env. + + . setenv.sh + + setenv.sh: + + #!/bin/sh + set -x + CC_PREFIX=3D/opt/cross-tools + + export PATH=3D$CC_PREFIX/bin:$PATH + export LD_LIBRARY_PATH=3D$CC_PREFIX/lib:$LD_LIBRARY_PATH + export LD_LIBRARY_PATH=3D$CC_PREFIX/loongarch64-unknown-linux-gn= u/lib/:$LD_LIBRARY_PATH + set +x + + 2. Test tests/tcg/multiarch. + + ./configure --disable-rdma --disable-pvrdma --prefix=3D/usr \ + --target-list=3D"loongarch64-softmmu" \ + --disable-libiscsi --disable-libnfs --disable-libpmem \ + --disable-glusterfs --enable-libusb --enable-usb-redir \ + --disable-opengl --disable-xen --enable-spice --disable-werror= \ + --enable-debug --disable-capstone --disable-kvm --enable-profi= ler + + cd build/ + + make && make check-tcg + + or + + ./build/qemu-system-loongarch64 -machine virt -m 4G -cpu Loongson-3A50= 00 -smp 1 -kernel build/tests/tcg/loongarch64-softmmu/hello -monitor none -= display none -chardev file,path=3Dhello.out,id=3Doutput -serial chardev:out= put + +- Note. + We can get the latest LoongArch documents or LoongArch tools at https://= github.com/loongson/ --=20 2.34.1