LoongArch is a new Loongson 3A5000 CPU instruction set, you can read documents[1] or visit the development community[2] to get more information.
[1]: https://loongson.github.io/LoongArch-Documentation/README-EN.html [2]: https://github.com/loongson This patch series will add the basic support for LoongArch architecture, it can compile on LoongArch and display the GRUB UI. The full LoongArch patch has two parts, this is the first part. The second part needs to wait for the LoadFile2 patch to be merged upstream first. See: https://github.com/loongarch64/grub/tree/dev/patchwork/efi Please review the patches, thank you. v1->v2: - rebase on the last commit. - fix some errors. - change the year to 2022 for the new files. v2->v3: - based on the last commit. - add a comment to setjmp.S - complete LoongArch support for grub-mkrescue v3->v4: - based on the last commit. v4->v5: - Fix make distcheck failed. - Add tests support. - based on the last commit. v5->v6: - Support new relocation types. - Fix some test cases. Here is the test results: ============================================================================ Testsuite summary for GRUB 2.11 ============================================================================ # TOTAL: 82 # PASS: 56 # SKIP: 8 # XFAIL: 0 # FAIL: 2 # XPASS: 0 # ERROR: 16 ============================================================================ See ./test-suite.log Please report to bug-g...@gnu.org ============================================================================ The full test log is here: https://github.com/loongarch64/grub/files/9239702/test-suite.log There are two test cases failed: FAIL: squashfs_test FAIL: grub_func_test The squashfs_test failed because FSTIME does not match: Device proc: Filesystem type procfs - Sector size 512B - Total size 0KiB Device loop0: Filesystem type squash4 - Last modification time 2022-08-02 06:21:25 Tuesday - Sector size 512B - Total size 10680KiB Device host: Filesystem type hostfs - Sector size 512B - Total size 0KiB FSTIME FAIL 2022-08-02 14:21:25 Device loop0: Filesystem type squash4 - Last modification time 2022-08-02 06:21:25 Tuesday - Sector size 512B - Total size 10680KiB FAIL squashfs_test (exit status: 1) This failure can be ignored because my timezone is UTC+8: $ timedatectl Local time: 二 2022-08-02 14:47:45 CST Universal time: 二 2022-08-02 06:47:45 UTC RTC time: 二 2022-08-02 06:47:46 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no Xiaotian Wu (10): PE: Add LoongArch definitions Add LoongArch definitions LoongArch: Add setjmp implementation LoongArch: Add early startup code LoongArch: Add stubs for Linux loading commands LoongArch: Add awareness for LoongArch relocations LoongArch: Add auxiliary files LoongArch: Add to build system LoongArch: Support new relocation types tests: add support for LoongArch Makefile.util.def | 1 + conf/Makefile.common | 3 + configure.ac | 24 +- gentpl.py | 25 ++- grub-core/Makefile.am | 6 + grub-core/Makefile.core.def | 16 ++ grub-core/kern/efi/mm.c | 3 +- grub-core/kern/loongarch64/cache.c | 39 ++++ grub-core/kern/loongarch64/cache_flush.S | 33 +++ grub-core/kern/loongarch64/dl.c | 167 ++++++++++++++ grub-core/kern/loongarch64/dl_helper.c | 270 +++++++++++++++++++++++ grub-core/kern/loongarch64/efi/init.c | 77 +++++++ grub-core/kern/loongarch64/efi/startup.S | 34 +++ grub-core/lib/efi/halt.c | 2 +- grub-core/lib/loongarch64/setjmp.S | 69 ++++++ grub-core/lib/setjmp.S | 2 + grub-core/loader/loongarch64/linux.c | 59 +++++ include/grub/dl.h | 1 + include/grub/efi/api.h | 2 +- include/grub/efi/efi.h | 2 +- include/grub/efi/pe32.h | 36 +-- include/grub/elf.h | 29 +++ include/grub/loongarch64/efi/memory.h | 24 ++ include/grub/loongarch64/linux.h | 31 +++ include/grub/loongarch64/reloc.h | 111 ++++++++++ include/grub/loongarch64/setjmp.h | 27 +++ include/grub/loongarch64/time.h | 28 +++ include/grub/loongarch64/types.h | 34 +++ include/grub/util/install.h | 1 + tests/ahci_test.in | 2 +- tests/ehci_test.in | 2 +- tests/ohci_test.in | 2 +- tests/pata_test.in | 2 +- tests/uhci_test.in | 2 +- tests/util/grub-shell.in | 14 ++ util/grub-install-common.c | 49 ++-- util/grub-install.c | 16 ++ util/grub-mkimagexx.c | 164 +++++++++++++- util/grub-mknetdir.c | 1 + util/grub-mkrescue.c | 8 + util/grub-module-verifier.c | 31 +++ util/mkimage.c | 16 ++ 42 files changed, 1402 insertions(+), 63 deletions(-) create mode 100644 grub-core/kern/loongarch64/cache.c create mode 100644 grub-core/kern/loongarch64/cache_flush.S create mode 100644 grub-core/kern/loongarch64/dl.c create mode 100644 grub-core/kern/loongarch64/dl_helper.c create mode 100644 grub-core/kern/loongarch64/efi/init.c create mode 100644 grub-core/kern/loongarch64/efi/startup.S create mode 100644 grub-core/lib/loongarch64/setjmp.S create mode 100644 grub-core/loader/loongarch64/linux.c create mode 100644 include/grub/loongarch64/efi/memory.h create mode 100644 include/grub/loongarch64/linux.h create mode 100644 include/grub/loongarch64/reloc.h create mode 100644 include/grub/loongarch64/setjmp.h create mode 100644 include/grub/loongarch64/time.h create mode 100644 include/grub/loongarch64/types.h -- 2.35.1 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel