[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 00/10] Add support for LoongArch
From: |
Xiaotian Wu |
Subject: |
[PATCH v6 00/10] Add support for LoongArch |
Date: |
Tue, 2 Aug 2022 15:13:27 +0800 |
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-grub@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
- [PATCH v6 00/10] Add support for LoongArch,
Xiaotian Wu <=
- [PATCH v6 06/10] LoongArch: Add awareness for LoongArch relocations, Xiaotian Wu, 2022/08/02
- [PATCH v6 04/10] LoongArch: Add early startup code, Xiaotian Wu, 2022/08/02
- [PATCH v6 09/10] LoongArch: Support new relocation types, Xiaotian Wu, 2022/08/02
- [PATCH v6 05/10] LoongArch: Add stubs for Linux loading commands, Xiaotian Wu, 2022/08/02
- [PATCH v6 07/10] LoongArch: Add auxiliary files, Xiaotian Wu, 2022/08/02
- [PATCH v6 03/10] LoongArch: Add setjmp implementation, Xiaotian Wu, 2022/08/02
- [PATCH v6 01/10] PE: Add LoongArch definitions, Xiaotian Wu, 2022/08/02
- [PATCH v6 08/10] LoongArch: Add to build system, Xiaotian Wu, 2022/08/02
- [PATCH v6 02/10] Add LoongArch definitions, Xiaotian Wu, 2022/08/02
- [PATCH v6 10/10] tests: add support for LoongArch, Xiaotian Wu, 2022/08/02