Skip to content

Commit ad5e446

Browse files
yetistDaniel Kiper
authored and
Daniel Kiper
committed
loongarch: Add to build system
This patch adds LoongArch to the GRUB build system and various tools, so GRUB can be built on LoongArch as a UEFI application. Signed-off-by: Zhou Yang <[email protected]> Signed-off-by: Xiaotian Wu <[email protected]> Reviewed-by: Daniel Kiper <[email protected]>
1 parent d33cbf2 commit ad5e446

12 files changed

+113
-39
lines changed

Makefile.util.def

+1
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ library = {
163163
common = grub-core/kern/ia64/dl_helper.c;
164164
common = grub-core/kern/arm/dl_helper.c;
165165
common = grub-core/kern/arm64/dl_helper.c;
166+
common = grub-core/kern/loongarch64/dl_helper.c;
166167
common = grub-core/lib/minilzo/minilzo.c;
167168
common = grub-core/lib/xzembed/xz_dec_bcj.c;
168169
common = grub-core/lib/xzembed/xz_dec_lzma2.c;

configure.ac

+7-1
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ case "$target_cpu" in
119119
;;
120120
arm*) target_cpu=arm ;;
121121
aarch64*) target_cpu=arm64 ;;
122+
loongarch64) target_cpu=loongarch64 ;;
122123
riscv32*) target_cpu=riscv32 ;;
123124
riscv64*) target_cpu=riscv64 ;;
124125
esac
@@ -144,6 +145,7 @@ if test "x$with_platform" = x; then
144145
ia64-*) platform=efi ;;
145146
arm-*) platform=uboot ;;
146147
arm64-*) platform=efi ;;
148+
loongarch64-*) platform=efi;;
147149
riscv32-*) platform=efi ;;
148150
riscv64-*) platform=efi ;;
149151
*)
@@ -194,6 +196,7 @@ case "$target_cpu"-"$platform" in
194196
arm-coreboot) ;;
195197
arm-efi) ;;
196198
arm64-efi) ;;
199+
loongarch64-efi) ;;
197200
riscv32-efi) ;;
198201
riscv64-efi) ;;
199202
*-emu) ;;
@@ -1236,7 +1239,8 @@ AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
12361239

12371240
LDFLAGS="$TARGET_LDFLAGS"
12381241

1239-
if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 || test "$target_cpu" = riscv64 ; then
1242+
if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 || test "$target_cpu" = riscv64 \
1243+
|| test "$target_cpu" = loongarch64 ; then
12401244
# Use large model to support 4G memory
12411245
AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
12421246
CFLAGS="$TARGET_CFLAGS -mcmodel=large"
@@ -2021,6 +2025,8 @@ AM_CONDITIONAL([COND_i386_coreboot], [test x$target_cpu = xi386 -a x$platform =
20212025
AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
20222026
AM_CONDITIONAL([COND_i386_xen], [test x$target_cpu = xi386 -a x$platform = xxen])
20232027
AM_CONDITIONAL([COND_i386_xen_pvh], [test x$target_cpu = xi386 -a x$platform = xxen_pvh])
2028+
AM_CONDITIONAL([COND_loongarch64], [test x$target_cpu = xloongarch64])
2029+
AM_CONDITIONAL([COND_loongarch64_efi], [test x$target_cpu = xloongarch64 -a x$platform = xefi])
20242030
AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel])
20252031
AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xarc])
20262032
AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson])

gentpl.py

+14-13
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,28 @@
3232
"mips_loongson", "sparc64_ieee1275",
3333
"powerpc_ieee1275", "mips_arc", "ia64_efi",
3434
"mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi",
35-
"arm_coreboot", "riscv32_efi", "riscv64_efi" ]
35+
"arm_coreboot", "loongarch64_efi", "riscv32_efi", "riscv64_efi" ]
3636

3737
GROUPS = {}
3838

3939
GROUPS["common"] = GRUB_PLATFORMS[:]
4040

4141
# Groups based on CPU
42-
GROUPS["i386"] = [ "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", "i386_multiboot", "i386_ieee1275" ]
43-
GROUPS["x86_64"] = [ "x86_64_efi" ]
44-
GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"]
45-
GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ]
46-
GROUPS["sparc64"] = [ "sparc64_ieee1275" ]
47-
GROUPS["powerpc"] = [ "powerpc_ieee1275" ]
48-
GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ]
49-
GROUPS["arm64"] = [ "arm64_efi" ]
50-
GROUPS["riscv32"] = [ "riscv32_efi" ]
51-
GROUPS["riscv64"] = [ "riscv64_efi" ]
42+
GROUPS["i386"] = [ "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", "i386_multiboot", "i386_ieee1275" ]
43+
GROUPS["x86_64"] = [ "x86_64_efi" ]
44+
GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"]
45+
GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ]
46+
GROUPS["sparc64"] = [ "sparc64_ieee1275" ]
47+
GROUPS["powerpc"] = [ "powerpc_ieee1275" ]
48+
GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ]
49+
GROUPS["arm64"] = [ "arm64_efi" ]
50+
GROUPS["loongarch64"] = [ "loongarch64_efi" ]
51+
GROUPS["riscv32"] = [ "riscv32_efi" ]
52+
GROUPS["riscv64"] = [ "riscv64_efi" ]
5253

5354
# Groups based on firmware
5455
GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi",
55-
"riscv32_efi", "riscv64_efi" ]
56+
"loongarch64_efi", "riscv32_efi", "riscv64_efi" ]
5657
GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ]
5758
GROUPS["uboot"] = [ "arm_uboot" ]
5859
GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ]
@@ -79,7 +80,7 @@
7980
for i in GROUPS["terminfoinkernel"]: GROUPS["terminfomodule"].remove(i)
8081

8182
# Flattened Device Trees (FDT)
82-
GROUPS["fdt"] = [ "arm64_efi", "arm_uboot", "arm_efi", "riscv32_efi", "riscv64_efi" ]
83+
GROUPS["fdt"] = [ "arm64_efi", "arm_uboot", "arm_efi", "loongarch64_efi", "riscv32_efi", "riscv64_efi" ]
8384

8485
# Needs software helpers for division
8586
# Must match GRUB_DIVISION_IN_SOFTWARE in misc.h

grub-core/Makefile.am

+6
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,12 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
288288
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
289289
endif
290290

291+
if COND_loongarch64_efi
292+
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
293+
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
294+
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
295+
endif
296+
291297
if COND_riscv32_efi
292298
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
293299
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h

grub-core/Makefile.core.def

+17
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ kernel = {
6969
arm64_efi_ldflags = '-Wl,-r';
7070
arm64_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
7171

72+
loongarch64_efi_cflags = '-fshort-wchar';
73+
loongarch64_efi_ldflags = '-Wl,-r';
74+
loongarch64_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
75+
7276
riscv32_efi_cflags = '-fshort-wchar';
7377
riscv32_efi_ldflags = '-Wl,-r';
7478
riscv32_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
@@ -126,6 +130,7 @@ kernel = {
126130
arm_coreboot_startup = kern/arm/startup.S;
127131
arm_efi_startup = kern/arm/efi/startup.S;
128132
arm64_efi_startup = kern/arm64/efi/startup.S;
133+
loongarch64_efi_startup = kern/loongarch64/efi/startup.S;
129134
riscv32_efi_startup = kern/riscv/efi/startup.S;
130135
riscv64_efi_startup = kern/riscv/efi/startup.S;
131136

@@ -264,6 +269,9 @@ kernel = {
264269
arm64_efi = kern/arm64/efi/init.c;
265270
arm64_efi = kern/efi/fdt.c;
266271

272+
loongarch64_efi = kern/loongarch64/efi/init.c;
273+
loongarch64_efi = kern/efi/fdt.c;
274+
267275
riscv32_efi = kern/riscv/efi/init.c;
268276
riscv32_efi = kern/efi/fdt.c;
269277

@@ -342,6 +350,11 @@ kernel = {
342350
arm64 = kern/arm64/dl.c;
343351
arm64 = kern/arm64/dl_helper.c;
344352

353+
loongarch64 = kern/loongarch64/cache.c;
354+
loongarch64 = kern/loongarch64/cache_flush.S;
355+
loongarch64 = kern/loongarch64/dl.c;
356+
loongarch64 = kern/loongarch64/dl_helper.c;
357+
345358
riscv32 = kern/riscv/cache.c;
346359
riscv32 = kern/riscv/cache_flush.S;
347360
riscv32 = kern/riscv/dl.c;
@@ -842,6 +855,7 @@ module = {
842855
enable = arm64_efi;
843856
enable = arm_uboot;
844857
enable = arm_coreboot;
858+
enable = loongarch64_efi;
845859
enable = riscv32_efi;
846860
enable = riscv64_efi;
847861
};
@@ -1735,6 +1749,7 @@ module = {
17351749
extra_dist = lib/arm/setjmp.S;
17361750
extra_dist = lib/arm64/setjmp.S;
17371751
extra_dist = lib/riscv/setjmp.S;
1752+
extra_dist = lib/loongarch64/setjmp.S;
17381753
};
17391754

17401755
module = {
@@ -1836,6 +1851,7 @@ module = {
18361851
arm_efi = loader/efi/linux.c;
18371852
arm_uboot = loader/arm/linux.c;
18381853
arm64 = loader/efi/linux.c;
1854+
loongarch64 = loader/efi/linux.c;
18391855
riscv32 = loader/efi/linux.c;
18401856
riscv64 = loader/efi/linux.c;
18411857
emu = loader/emu/linux.c;
@@ -1932,6 +1948,7 @@ module = {
19321948
enable = ia64_efi;
19331949
enable = arm_efi;
19341950
enable = arm64_efi;
1951+
enable = loongarch64_efi;
19351952
enable = riscv32_efi;
19361953
enable = riscv64_efi;
19371954
enable = mips;

include/grub/efi/api.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1797,7 +1797,7 @@ typedef struct initrd_media_device_path initrd_media_device_path_t;
17971797

17981798
#if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \
17991799
|| defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \
1800-
|| defined(__riscv)
1800+
|| defined(__riscv) || defined (__loongarch__)
18011801

18021802
#define efi_call_0(func) (func)()
18031803
#define efi_call_1(func, a) (func)(a)

include/grub/util/install.h

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ enum grub_install_plat
107107
GRUB_INSTALL_PLATFORM_I386_XEN_PVH,
108108
GRUB_INSTALL_PLATFORM_ARM64_EFI,
109109
GRUB_INSTALL_PLATFORM_ARM_COREBOOT,
110+
GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI,
110111
GRUB_INSTALL_PLATFORM_RISCV32_EFI,
111112
GRUB_INSTALL_PLATFORM_RISCV64_EFI,
112113
GRUB_INSTALL_PLATFORM_MAX

util/grub-install-common.c

+25-24
Original file line numberDiff line numberDiff line change
@@ -886,30 +886,31 @@ static struct
886886
const char *platform;
887887
} platforms[GRUB_INSTALL_PLATFORM_MAX] =
888888
{
889-
[GRUB_INSTALL_PLATFORM_I386_PC] = { "i386", "pc" },
890-
[GRUB_INSTALL_PLATFORM_I386_EFI] = { "i386", "efi" },
891-
[GRUB_INSTALL_PLATFORM_I386_QEMU] = { "i386", "qemu" },
892-
[GRUB_INSTALL_PLATFORM_I386_COREBOOT] = { "i386", "coreboot" },
893-
[GRUB_INSTALL_PLATFORM_I386_MULTIBOOT] = { "i386", "multiboot" },
894-
[GRUB_INSTALL_PLATFORM_I386_IEEE1275] = { "i386", "ieee1275" },
895-
[GRUB_INSTALL_PLATFORM_X86_64_EFI] = { "x86_64", "efi" },
896-
[GRUB_INSTALL_PLATFORM_I386_XEN] = { "i386", "xen" },
897-
[GRUB_INSTALL_PLATFORM_X86_64_XEN] = { "x86_64", "xen" },
898-
[GRUB_INSTALL_PLATFORM_I386_XEN_PVH] = { "i386", "xen_pvh" },
899-
[GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON] = { "mipsel", "loongson" },
900-
[GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS] = { "mipsel", "qemu_mips" },
901-
[GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS] = { "mips", "qemu_mips" },
902-
[GRUB_INSTALL_PLATFORM_MIPSEL_ARC] = { "mipsel", "arc" },
903-
[GRUB_INSTALL_PLATFORM_MIPS_ARC] = { "mips", "arc" },
904-
[GRUB_INSTALL_PLATFORM_SPARC64_IEEE1275] = { "sparc64", "ieee1275" },
905-
[GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275] = { "powerpc", "ieee1275" },
906-
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64", "efi" },
907-
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm", "efi" },
908-
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64", "efi" },
909-
[GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" },
910-
[GRUB_INSTALL_PLATFORM_ARM_COREBOOT] = { "arm", "coreboot" },
911-
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32", "efi" },
912-
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64", "efi" },
889+
[GRUB_INSTALL_PLATFORM_I386_PC] = { "i386", "pc" },
890+
[GRUB_INSTALL_PLATFORM_I386_EFI] = { "i386", "efi" },
891+
[GRUB_INSTALL_PLATFORM_I386_QEMU] = { "i386", "qemu" },
892+
[GRUB_INSTALL_PLATFORM_I386_COREBOOT] = { "i386", "coreboot" },
893+
[GRUB_INSTALL_PLATFORM_I386_MULTIBOOT] = { "i386", "multiboot" },
894+
[GRUB_INSTALL_PLATFORM_I386_IEEE1275] = { "i386", "ieee1275" },
895+
[GRUB_INSTALL_PLATFORM_X86_64_EFI] = { "x86_64", "efi" },
896+
[GRUB_INSTALL_PLATFORM_I386_XEN] = { "i386", "xen" },
897+
[GRUB_INSTALL_PLATFORM_X86_64_XEN] = { "x86_64", "xen" },
898+
[GRUB_INSTALL_PLATFORM_I386_XEN_PVH] = { "i386", "xen_pvh" },
899+
[GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON] = { "mipsel", "loongson" },
900+
[GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS] = { "mipsel", "qemu_mips" },
901+
[GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS] = { "mips", "qemu_mips" },
902+
[GRUB_INSTALL_PLATFORM_MIPSEL_ARC] = { "mipsel", "arc" },
903+
[GRUB_INSTALL_PLATFORM_MIPS_ARC] = { "mips", "arc" },
904+
[GRUB_INSTALL_PLATFORM_SPARC64_IEEE1275] = { "sparc64", "ieee1275" },
905+
[GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275] = { "powerpc", "ieee1275" },
906+
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64", "efi" },
907+
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm", "efi" },
908+
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64", "efi" },
909+
[GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" },
910+
[GRUB_INSTALL_PLATFORM_ARM_COREBOOT] = { "arm", "coreboot" },
911+
[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI] = { "loongarch64", "efi" },
912+
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32", "efi" },
913+
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64", "efi" },
913914
};
914915

915916
char *

util/grub-install.c

+16
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,8 @@ get_default_platform (void)
324324
return "arm64-efi";
325325
#elif defined (__amd64__) || defined (__x86_64__) || defined (__i386__)
326326
return grub_install_get_default_x86_platform ();
327+
#elif defined (__loongarch_lp64)
328+
return "loongarch64-efi";
327329
#elif defined (__riscv)
328330
#if __riscv_xlen == 32
329331
return "riscv32-efi";
@@ -485,6 +487,7 @@ have_bootdev (enum grub_install_plat pl)
485487
case GRUB_INSTALL_PLATFORM_IA64_EFI:
486488
case GRUB_INSTALL_PLATFORM_ARM_EFI:
487489
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
490+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
488491
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
489492
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
490493
case GRUB_INSTALL_PLATFORM_I386_IEEE1275:
@@ -923,6 +926,7 @@ main (int argc, char *argv[])
923926
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
924927
case GRUB_INSTALL_PLATFORM_ARM_EFI:
925928
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
929+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
926930
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
927931
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
928932
case GRUB_INSTALL_PLATFORM_IA64_EFI:
@@ -970,6 +974,7 @@ main (int argc, char *argv[])
970974
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
971975
case GRUB_INSTALL_PLATFORM_ARM_EFI:
972976
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
977+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
973978
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
974979
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
975980
case GRUB_INSTALL_PLATFORM_IA64_EFI:
@@ -1025,6 +1030,7 @@ main (int argc, char *argv[])
10251030
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
10261031
case GRUB_INSTALL_PLATFORM_ARM_EFI:
10271032
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
1033+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
10281034
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
10291035
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
10301036
case GRUB_INSTALL_PLATFORM_IA64_EFI:
@@ -1159,6 +1165,9 @@ main (int argc, char *argv[])
11591165
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
11601166
efi_file = "BOOTAA64.EFI";
11611167
break;
1168+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
1169+
efi_file = "BOOTLOONGARCH64.EFI";
1170+
break;
11621171
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
11631172
efi_file = "BOOTRISCV32.EFI";
11641173
break;
@@ -1192,6 +1201,9 @@ main (int argc, char *argv[])
11921201
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
11931202
efi_file = "grubaa64.efi";
11941203
break;
1204+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
1205+
efi_file = "grubloongarch64.efi";
1206+
break;
11951207
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
11961208
efi_file = "grubriscv32.efi";
11971209
break;
@@ -1500,6 +1512,7 @@ main (int argc, char *argv[])
15001512
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
15011513
case GRUB_INSTALL_PLATFORM_ARM_EFI:
15021514
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
1515+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
15031516
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
15041517
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
15051518
case GRUB_INSTALL_PLATFORM_IA64_EFI:
@@ -1595,6 +1608,7 @@ main (int argc, char *argv[])
15951608
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
15961609
case GRUB_INSTALL_PLATFORM_ARM_EFI:
15971610
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
1611+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
15981612
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
15991613
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
16001614
case GRUB_INSTALL_PLATFORM_IA64_EFI:
@@ -1700,6 +1714,7 @@ main (int argc, char *argv[])
17001714
break;
17011715
case GRUB_INSTALL_PLATFORM_ARM_EFI:
17021716
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
1717+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
17031718
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
17041719
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
17051720
case GRUB_INSTALL_PLATFORM_IA64_EFI:
@@ -1955,6 +1970,7 @@ main (int argc, char *argv[])
19551970
/* FALLTHROUGH */
19561971
case GRUB_INSTALL_PLATFORM_ARM_EFI:
19571972
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
1973+
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
19581974
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
19591975
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
19601976
case GRUB_INSTALL_PLATFORM_IA64_EFI:

util/grub-mknetdir.c

+1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ static const struct
108108
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64-efi", "efinet", ".efi" },
109109
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm-efi", "efinet", ".efi" },
110110
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64-efi", "efinet", ".efi" },
111+
[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI] = { "loongarch64-efi", "efinet", ".efi" },
111112
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32-efi", "efinet", ".efi" },
112113
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64-efi", "efinet", ".efi" },
113114
};

util/grub-mkrescue.c

+8
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,7 @@ main (int argc, char *argv[])
561561
|| source_dirs[GRUB_INSTALL_PLATFORM_IA64_EFI]
562562
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
563563
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
564+
|| source_dirs[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI]
564565
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
565566
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI]
566567
|| source_dirs[GRUB_INSTALL_PLATFORM_X86_64_EFI])
@@ -761,6 +762,7 @@ main (int argc, char *argv[])
761762
|| source_dirs[GRUB_INSTALL_PLATFORM_IA64_EFI]
762763
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
763764
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
765+
|| source_dirs[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI]
764766
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
765767
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI])
766768
{
@@ -810,6 +812,12 @@ main (int argc, char *argv[])
810812
make_image_abs (GRUB_INSTALL_PLATFORM_ARM64_EFI, "arm64-efi", imgname);
811813
free (imgname);
812814

815+
imgname = grub_util_path_concat (2, efidir_efi_boot, "bootloongarch64.efi");
816+
make_image_fwdisk_abs (GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI,
817+
"loongarch64-efi",
818+
imgname);
819+
free (imgname);
820+
813821
imgname = grub_util_path_concat (2, efidir_efi_boot, "bootriscv32.efi");
814822
make_image_abs (GRUB_INSTALL_PLATFORM_RISCV32_EFI, "riscv32-efi", imgname);
815823
free (imgname);

0 commit comments

Comments
 (0)