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 <zhouyang@loongson.cn> Signed-off-by: Xiaotian Wu <wuxiaotian@loongson.cn> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
d33cbf2d8f
commit
ad5e446af1
@ -163,6 +163,7 @@ library = {
|
|||||||
common = grub-core/kern/ia64/dl_helper.c;
|
common = grub-core/kern/ia64/dl_helper.c;
|
||||||
common = grub-core/kern/arm/dl_helper.c;
|
common = grub-core/kern/arm/dl_helper.c;
|
||||||
common = grub-core/kern/arm64/dl_helper.c;
|
common = grub-core/kern/arm64/dl_helper.c;
|
||||||
|
common = grub-core/kern/loongarch64/dl_helper.c;
|
||||||
common = grub-core/lib/minilzo/minilzo.c;
|
common = grub-core/lib/minilzo/minilzo.c;
|
||||||
common = grub-core/lib/xzembed/xz_dec_bcj.c;
|
common = grub-core/lib/xzembed/xz_dec_bcj.c;
|
||||||
common = grub-core/lib/xzembed/xz_dec_lzma2.c;
|
common = grub-core/lib/xzembed/xz_dec_lzma2.c;
|
||||||
|
|||||||
@ -119,6 +119,7 @@ case "$target_cpu" in
|
|||||||
;;
|
;;
|
||||||
arm*) target_cpu=arm ;;
|
arm*) target_cpu=arm ;;
|
||||||
aarch64*) target_cpu=arm64 ;;
|
aarch64*) target_cpu=arm64 ;;
|
||||||
|
loongarch64) target_cpu=loongarch64 ;;
|
||||||
riscv32*) target_cpu=riscv32 ;;
|
riscv32*) target_cpu=riscv32 ;;
|
||||||
riscv64*) target_cpu=riscv64 ;;
|
riscv64*) target_cpu=riscv64 ;;
|
||||||
esac
|
esac
|
||||||
@ -144,6 +145,7 @@ if test "x$with_platform" = x; then
|
|||||||
ia64-*) platform=efi ;;
|
ia64-*) platform=efi ;;
|
||||||
arm-*) platform=uboot ;;
|
arm-*) platform=uboot ;;
|
||||||
arm64-*) platform=efi ;;
|
arm64-*) platform=efi ;;
|
||||||
|
loongarch64-*) platform=efi;;
|
||||||
riscv32-*) platform=efi ;;
|
riscv32-*) platform=efi ;;
|
||||||
riscv64-*) platform=efi ;;
|
riscv64-*) platform=efi ;;
|
||||||
*)
|
*)
|
||||||
@ -194,6 +196,7 @@ case "$target_cpu"-"$platform" in
|
|||||||
arm-coreboot) ;;
|
arm-coreboot) ;;
|
||||||
arm-efi) ;;
|
arm-efi) ;;
|
||||||
arm64-efi) ;;
|
arm64-efi) ;;
|
||||||
|
loongarch64-efi) ;;
|
||||||
riscv32-efi) ;;
|
riscv32-efi) ;;
|
||||||
riscv64-efi) ;;
|
riscv64-efi) ;;
|
||||||
*-emu) ;;
|
*-emu) ;;
|
||||||
@ -1236,7 +1239,8 @@ AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
|
|||||||
|
|
||||||
LDFLAGS="$TARGET_LDFLAGS"
|
LDFLAGS="$TARGET_LDFLAGS"
|
||||||
|
|
||||||
if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 || test "$target_cpu" = riscv64 ; then
|
if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 || test "$target_cpu" = riscv64 \
|
||||||
|
|| test "$target_cpu" = loongarch64 ; then
|
||||||
# Use large model to support 4G memory
|
# Use large model to support 4G memory
|
||||||
AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
|
AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
|
||||||
CFLAGS="$TARGET_CFLAGS -mcmodel=large"
|
CFLAGS="$TARGET_CFLAGS -mcmodel=large"
|
||||||
@ -2021,6 +2025,8 @@ AM_CONDITIONAL([COND_i386_coreboot], [test x$target_cpu = xi386 -a x$platform =
|
|||||||
AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
|
AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
|
||||||
AM_CONDITIONAL([COND_i386_xen], [test x$target_cpu = xi386 -a x$platform = xxen])
|
AM_CONDITIONAL([COND_i386_xen], [test x$target_cpu = xi386 -a x$platform = xxen])
|
||||||
AM_CONDITIONAL([COND_i386_xen_pvh], [test x$target_cpu = xi386 -a x$platform = xxen_pvh])
|
AM_CONDITIONAL([COND_i386_xen_pvh], [test x$target_cpu = xi386 -a x$platform = xxen_pvh])
|
||||||
|
AM_CONDITIONAL([COND_loongarch64], [test x$target_cpu = xloongarch64])
|
||||||
|
AM_CONDITIONAL([COND_loongarch64_efi], [test x$target_cpu = xloongarch64 -a x$platform = xefi])
|
||||||
AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel])
|
AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel])
|
||||||
AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xarc])
|
AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xarc])
|
||||||
AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson])
|
AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson])
|
||||||
|
|||||||
27
gentpl.py
27
gentpl.py
@ -32,27 +32,28 @@ GRUB_PLATFORMS = [ "emu", "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot",
|
|||||||
"mips_loongson", "sparc64_ieee1275",
|
"mips_loongson", "sparc64_ieee1275",
|
||||||
"powerpc_ieee1275", "mips_arc", "ia64_efi",
|
"powerpc_ieee1275", "mips_arc", "ia64_efi",
|
||||||
"mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi",
|
"mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi",
|
||||||
"arm_coreboot", "riscv32_efi", "riscv64_efi" ]
|
"arm_coreboot", "loongarch64_efi", "riscv32_efi", "riscv64_efi" ]
|
||||||
|
|
||||||
GROUPS = {}
|
GROUPS = {}
|
||||||
|
|
||||||
GROUPS["common"] = GRUB_PLATFORMS[:]
|
GROUPS["common"] = GRUB_PLATFORMS[:]
|
||||||
|
|
||||||
# Groups based on CPU
|
# Groups based on CPU
|
||||||
GROUPS["i386"] = [ "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", "i386_multiboot", "i386_ieee1275" ]
|
GROUPS["i386"] = [ "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", "i386_multiboot", "i386_ieee1275" ]
|
||||||
GROUPS["x86_64"] = [ "x86_64_efi" ]
|
GROUPS["x86_64"] = [ "x86_64_efi" ]
|
||||||
GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"]
|
GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"]
|
||||||
GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ]
|
GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ]
|
||||||
GROUPS["sparc64"] = [ "sparc64_ieee1275" ]
|
GROUPS["sparc64"] = [ "sparc64_ieee1275" ]
|
||||||
GROUPS["powerpc"] = [ "powerpc_ieee1275" ]
|
GROUPS["powerpc"] = [ "powerpc_ieee1275" ]
|
||||||
GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ]
|
GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ]
|
||||||
GROUPS["arm64"] = [ "arm64_efi" ]
|
GROUPS["arm64"] = [ "arm64_efi" ]
|
||||||
GROUPS["riscv32"] = [ "riscv32_efi" ]
|
GROUPS["loongarch64"] = [ "loongarch64_efi" ]
|
||||||
GROUPS["riscv64"] = [ "riscv64_efi" ]
|
GROUPS["riscv32"] = [ "riscv32_efi" ]
|
||||||
|
GROUPS["riscv64"] = [ "riscv64_efi" ]
|
||||||
|
|
||||||
# Groups based on firmware
|
# Groups based on firmware
|
||||||
GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi",
|
GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi",
|
||||||
"riscv32_efi", "riscv64_efi" ]
|
"loongarch64_efi", "riscv32_efi", "riscv64_efi" ]
|
||||||
GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ]
|
GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ]
|
||||||
GROUPS["uboot"] = [ "arm_uboot" ]
|
GROUPS["uboot"] = [ "arm_uboot" ]
|
||||||
GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ]
|
GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ]
|
||||||
@ -79,7 +80,7 @@ GROUPS["terminfomodule"] = GRUB_PLATFORMS[:];
|
|||||||
for i in GROUPS["terminfoinkernel"]: GROUPS["terminfomodule"].remove(i)
|
for i in GROUPS["terminfoinkernel"]: GROUPS["terminfomodule"].remove(i)
|
||||||
|
|
||||||
# Flattened Device Trees (FDT)
|
# Flattened Device Trees (FDT)
|
||||||
GROUPS["fdt"] = [ "arm64_efi", "arm_uboot", "arm_efi", "riscv32_efi", "riscv64_efi" ]
|
GROUPS["fdt"] = [ "arm64_efi", "arm_uboot", "arm_efi", "loongarch64_efi", "riscv32_efi", "riscv64_efi" ]
|
||||||
|
|
||||||
# Needs software helpers for division
|
# Needs software helpers for division
|
||||||
# Must match GRUB_DIVISION_IN_SOFTWARE in misc.h
|
# Must match GRUB_DIVISION_IN_SOFTWARE in misc.h
|
||||||
|
|||||||
@ -288,6 +288,12 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
|
|||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if COND_loongarch64_efi
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
|
||||||
|
endif
|
||||||
|
|
||||||
if COND_riscv32_efi
|
if COND_riscv32_efi
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
|
||||||
|
|||||||
@ -69,6 +69,10 @@ kernel = {
|
|||||||
arm64_efi_ldflags = '-Wl,-r';
|
arm64_efi_ldflags = '-Wl,-r';
|
||||||
arm64_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
|
arm64_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
|
||||||
|
|
||||||
|
loongarch64_efi_cflags = '-fshort-wchar';
|
||||||
|
loongarch64_efi_ldflags = '-Wl,-r';
|
||||||
|
loongarch64_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
|
||||||
|
|
||||||
riscv32_efi_cflags = '-fshort-wchar';
|
riscv32_efi_cflags = '-fshort-wchar';
|
||||||
riscv32_efi_ldflags = '-Wl,-r';
|
riscv32_efi_ldflags = '-Wl,-r';
|
||||||
riscv32_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
|
riscv32_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame';
|
||||||
@ -126,6 +130,7 @@ kernel = {
|
|||||||
arm_coreboot_startup = kern/arm/startup.S;
|
arm_coreboot_startup = kern/arm/startup.S;
|
||||||
arm_efi_startup = kern/arm/efi/startup.S;
|
arm_efi_startup = kern/arm/efi/startup.S;
|
||||||
arm64_efi_startup = kern/arm64/efi/startup.S;
|
arm64_efi_startup = kern/arm64/efi/startup.S;
|
||||||
|
loongarch64_efi_startup = kern/loongarch64/efi/startup.S;
|
||||||
riscv32_efi_startup = kern/riscv/efi/startup.S;
|
riscv32_efi_startup = kern/riscv/efi/startup.S;
|
||||||
riscv64_efi_startup = kern/riscv/efi/startup.S;
|
riscv64_efi_startup = kern/riscv/efi/startup.S;
|
||||||
|
|
||||||
@ -264,6 +269,9 @@ kernel = {
|
|||||||
arm64_efi = kern/arm64/efi/init.c;
|
arm64_efi = kern/arm64/efi/init.c;
|
||||||
arm64_efi = kern/efi/fdt.c;
|
arm64_efi = kern/efi/fdt.c;
|
||||||
|
|
||||||
|
loongarch64_efi = kern/loongarch64/efi/init.c;
|
||||||
|
loongarch64_efi = kern/efi/fdt.c;
|
||||||
|
|
||||||
riscv32_efi = kern/riscv/efi/init.c;
|
riscv32_efi = kern/riscv/efi/init.c;
|
||||||
riscv32_efi = kern/efi/fdt.c;
|
riscv32_efi = kern/efi/fdt.c;
|
||||||
|
|
||||||
@ -342,6 +350,11 @@ kernel = {
|
|||||||
arm64 = kern/arm64/dl.c;
|
arm64 = kern/arm64/dl.c;
|
||||||
arm64 = kern/arm64/dl_helper.c;
|
arm64 = kern/arm64/dl_helper.c;
|
||||||
|
|
||||||
|
loongarch64 = kern/loongarch64/cache.c;
|
||||||
|
loongarch64 = kern/loongarch64/cache_flush.S;
|
||||||
|
loongarch64 = kern/loongarch64/dl.c;
|
||||||
|
loongarch64 = kern/loongarch64/dl_helper.c;
|
||||||
|
|
||||||
riscv32 = kern/riscv/cache.c;
|
riscv32 = kern/riscv/cache.c;
|
||||||
riscv32 = kern/riscv/cache_flush.S;
|
riscv32 = kern/riscv/cache_flush.S;
|
||||||
riscv32 = kern/riscv/dl.c;
|
riscv32 = kern/riscv/dl.c;
|
||||||
@ -842,6 +855,7 @@ module = {
|
|||||||
enable = arm64_efi;
|
enable = arm64_efi;
|
||||||
enable = arm_uboot;
|
enable = arm_uboot;
|
||||||
enable = arm_coreboot;
|
enable = arm_coreboot;
|
||||||
|
enable = loongarch64_efi;
|
||||||
enable = riscv32_efi;
|
enable = riscv32_efi;
|
||||||
enable = riscv64_efi;
|
enable = riscv64_efi;
|
||||||
};
|
};
|
||||||
@ -1735,6 +1749,7 @@ module = {
|
|||||||
extra_dist = lib/arm/setjmp.S;
|
extra_dist = lib/arm/setjmp.S;
|
||||||
extra_dist = lib/arm64/setjmp.S;
|
extra_dist = lib/arm64/setjmp.S;
|
||||||
extra_dist = lib/riscv/setjmp.S;
|
extra_dist = lib/riscv/setjmp.S;
|
||||||
|
extra_dist = lib/loongarch64/setjmp.S;
|
||||||
};
|
};
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
@ -1836,6 +1851,7 @@ module = {
|
|||||||
arm_efi = loader/efi/linux.c;
|
arm_efi = loader/efi/linux.c;
|
||||||
arm_uboot = loader/arm/linux.c;
|
arm_uboot = loader/arm/linux.c;
|
||||||
arm64 = loader/efi/linux.c;
|
arm64 = loader/efi/linux.c;
|
||||||
|
loongarch64 = loader/efi/linux.c;
|
||||||
riscv32 = loader/efi/linux.c;
|
riscv32 = loader/efi/linux.c;
|
||||||
riscv64 = loader/efi/linux.c;
|
riscv64 = loader/efi/linux.c;
|
||||||
emu = loader/emu/linux.c;
|
emu = loader/emu/linux.c;
|
||||||
@ -1932,6 +1948,7 @@ module = {
|
|||||||
enable = ia64_efi;
|
enable = ia64_efi;
|
||||||
enable = arm_efi;
|
enable = arm_efi;
|
||||||
enable = arm64_efi;
|
enable = arm64_efi;
|
||||||
|
enable = loongarch64_efi;
|
||||||
enable = riscv32_efi;
|
enable = riscv32_efi;
|
||||||
enable = riscv64_efi;
|
enable = riscv64_efi;
|
||||||
enable = mips;
|
enable = mips;
|
||||||
|
|||||||
@ -1797,7 +1797,7 @@ typedef struct initrd_media_device_path initrd_media_device_path_t;
|
|||||||
|
|
||||||
#if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \
|
#if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \
|
||||||
|| defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \
|
|| defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \
|
||||||
|| defined(__riscv)
|
|| defined(__riscv) || defined (__loongarch__)
|
||||||
|
|
||||||
#define efi_call_0(func) (func)()
|
#define efi_call_0(func) (func)()
|
||||||
#define efi_call_1(func, a) (func)(a)
|
#define efi_call_1(func, a) (func)(a)
|
||||||
|
|||||||
@ -107,6 +107,7 @@ enum grub_install_plat
|
|||||||
GRUB_INSTALL_PLATFORM_I386_XEN_PVH,
|
GRUB_INSTALL_PLATFORM_I386_XEN_PVH,
|
||||||
GRUB_INSTALL_PLATFORM_ARM64_EFI,
|
GRUB_INSTALL_PLATFORM_ARM64_EFI,
|
||||||
GRUB_INSTALL_PLATFORM_ARM_COREBOOT,
|
GRUB_INSTALL_PLATFORM_ARM_COREBOOT,
|
||||||
|
GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI,
|
||||||
GRUB_INSTALL_PLATFORM_RISCV32_EFI,
|
GRUB_INSTALL_PLATFORM_RISCV32_EFI,
|
||||||
GRUB_INSTALL_PLATFORM_RISCV64_EFI,
|
GRUB_INSTALL_PLATFORM_RISCV64_EFI,
|
||||||
GRUB_INSTALL_PLATFORM_MAX
|
GRUB_INSTALL_PLATFORM_MAX
|
||||||
|
|||||||
@ -886,30 +886,31 @@ static struct
|
|||||||
const char *platform;
|
const char *platform;
|
||||||
} platforms[GRUB_INSTALL_PLATFORM_MAX] =
|
} platforms[GRUB_INSTALL_PLATFORM_MAX] =
|
||||||
{
|
{
|
||||||
[GRUB_INSTALL_PLATFORM_I386_PC] = { "i386", "pc" },
|
[GRUB_INSTALL_PLATFORM_I386_PC] = { "i386", "pc" },
|
||||||
[GRUB_INSTALL_PLATFORM_I386_EFI] = { "i386", "efi" },
|
[GRUB_INSTALL_PLATFORM_I386_EFI] = { "i386", "efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_I386_QEMU] = { "i386", "qemu" },
|
[GRUB_INSTALL_PLATFORM_I386_QEMU] = { "i386", "qemu" },
|
||||||
[GRUB_INSTALL_PLATFORM_I386_COREBOOT] = { "i386", "coreboot" },
|
[GRUB_INSTALL_PLATFORM_I386_COREBOOT] = { "i386", "coreboot" },
|
||||||
[GRUB_INSTALL_PLATFORM_I386_MULTIBOOT] = { "i386", "multiboot" },
|
[GRUB_INSTALL_PLATFORM_I386_MULTIBOOT] = { "i386", "multiboot" },
|
||||||
[GRUB_INSTALL_PLATFORM_I386_IEEE1275] = { "i386", "ieee1275" },
|
[GRUB_INSTALL_PLATFORM_I386_IEEE1275] = { "i386", "ieee1275" },
|
||||||
[GRUB_INSTALL_PLATFORM_X86_64_EFI] = { "x86_64", "efi" },
|
[GRUB_INSTALL_PLATFORM_X86_64_EFI] = { "x86_64", "efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_I386_XEN] = { "i386", "xen" },
|
[GRUB_INSTALL_PLATFORM_I386_XEN] = { "i386", "xen" },
|
||||||
[GRUB_INSTALL_PLATFORM_X86_64_XEN] = { "x86_64", "xen" },
|
[GRUB_INSTALL_PLATFORM_X86_64_XEN] = { "x86_64", "xen" },
|
||||||
[GRUB_INSTALL_PLATFORM_I386_XEN_PVH] = { "i386", "xen_pvh" },
|
[GRUB_INSTALL_PLATFORM_I386_XEN_PVH] = { "i386", "xen_pvh" },
|
||||||
[GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON] = { "mipsel", "loongson" },
|
[GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON] = { "mipsel", "loongson" },
|
||||||
[GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS] = { "mipsel", "qemu_mips" },
|
[GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS] = { "mipsel", "qemu_mips" },
|
||||||
[GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS] = { "mips", "qemu_mips" },
|
[GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS] = { "mips", "qemu_mips" },
|
||||||
[GRUB_INSTALL_PLATFORM_MIPSEL_ARC] = { "mipsel", "arc" },
|
[GRUB_INSTALL_PLATFORM_MIPSEL_ARC] = { "mipsel", "arc" },
|
||||||
[GRUB_INSTALL_PLATFORM_MIPS_ARC] = { "mips", "arc" },
|
[GRUB_INSTALL_PLATFORM_MIPS_ARC] = { "mips", "arc" },
|
||||||
[GRUB_INSTALL_PLATFORM_SPARC64_IEEE1275] = { "sparc64", "ieee1275" },
|
[GRUB_INSTALL_PLATFORM_SPARC64_IEEE1275] = { "sparc64", "ieee1275" },
|
||||||
[GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275] = { "powerpc", "ieee1275" },
|
[GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275] = { "powerpc", "ieee1275" },
|
||||||
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64", "efi" },
|
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64", "efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm", "efi" },
|
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm", "efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64", "efi" },
|
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64", "efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" },
|
[GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" },
|
||||||
[GRUB_INSTALL_PLATFORM_ARM_COREBOOT] = { "arm", "coreboot" },
|
[GRUB_INSTALL_PLATFORM_ARM_COREBOOT] = { "arm", "coreboot" },
|
||||||
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32", "efi" },
|
[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI] = { "loongarch64", "efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64", "efi" },
|
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32", "efi" },
|
||||||
|
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64", "efi" },
|
||||||
};
|
};
|
||||||
|
|
||||||
char *
|
char *
|
||||||
|
|||||||
@ -324,6 +324,8 @@ get_default_platform (void)
|
|||||||
return "arm64-efi";
|
return "arm64-efi";
|
||||||
#elif defined (__amd64__) || defined (__x86_64__) || defined (__i386__)
|
#elif defined (__amd64__) || defined (__x86_64__) || defined (__i386__)
|
||||||
return grub_install_get_default_x86_platform ();
|
return grub_install_get_default_x86_platform ();
|
||||||
|
#elif defined (__loongarch_lp64)
|
||||||
|
return "loongarch64-efi";
|
||||||
#elif defined (__riscv)
|
#elif defined (__riscv)
|
||||||
#if __riscv_xlen == 32
|
#if __riscv_xlen == 32
|
||||||
return "riscv32-efi";
|
return "riscv32-efi";
|
||||||
@ -485,6 +487,7 @@ have_bootdev (enum grub_install_plat pl)
|
|||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_I386_IEEE1275:
|
case GRUB_INSTALL_PLATFORM_I386_IEEE1275:
|
||||||
@ -923,6 +926,7 @@ main (int argc, char *argv[])
|
|||||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
@ -970,6 +974,7 @@ main (int argc, char *argv[])
|
|||||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
@ -1025,6 +1030,7 @@ main (int argc, char *argv[])
|
|||||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
@ -1159,6 +1165,9 @@ main (int argc, char *argv[])
|
|||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
efi_file = "BOOTAA64.EFI";
|
efi_file = "BOOTAA64.EFI";
|
||||||
break;
|
break;
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
|
efi_file = "BOOTLOONGARCH64.EFI";
|
||||||
|
break;
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
efi_file = "BOOTRISCV32.EFI";
|
efi_file = "BOOTRISCV32.EFI";
|
||||||
break;
|
break;
|
||||||
@ -1192,6 +1201,9 @@ main (int argc, char *argv[])
|
|||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
efi_file = "grubaa64.efi";
|
efi_file = "grubaa64.efi";
|
||||||
break;
|
break;
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
|
efi_file = "grubloongarch64.efi";
|
||||||
|
break;
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
efi_file = "grubriscv32.efi";
|
efi_file = "grubriscv32.efi";
|
||||||
break;
|
break;
|
||||||
@ -1500,6 +1512,7 @@ main (int argc, char *argv[])
|
|||||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
@ -1595,6 +1608,7 @@ main (int argc, char *argv[])
|
|||||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
@ -1700,6 +1714,7 @@ main (int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
@ -1955,6 +1970,7 @@ main (int argc, char *argv[])
|
|||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||||
|
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||||
|
|||||||
@ -108,6 +108,7 @@ static const struct
|
|||||||
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64-efi", "efinet", ".efi" },
|
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64-efi", "efinet", ".efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm-efi", "efinet", ".efi" },
|
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm-efi", "efinet", ".efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64-efi", "efinet", ".efi" },
|
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64-efi", "efinet", ".efi" },
|
||||||
|
[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI] = { "loongarch64-efi", "efinet", ".efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32-efi", "efinet", ".efi" },
|
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32-efi", "efinet", ".efi" },
|
||||||
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64-efi", "efinet", ".efi" },
|
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64-efi", "efinet", ".efi" },
|
||||||
};
|
};
|
||||||
|
|||||||
@ -561,6 +561,7 @@ main (int argc, char *argv[])
|
|||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_IA64_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_IA64_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
|
||||||
|
|| source_dirs[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_X86_64_EFI])
|
|| source_dirs[GRUB_INSTALL_PLATFORM_X86_64_EFI])
|
||||||
@ -761,6 +762,7 @@ main (int argc, char *argv[])
|
|||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_IA64_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_IA64_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
|
||||||
|
|| source_dirs[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
|
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
|
||||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI])
|
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI])
|
||||||
{
|
{
|
||||||
@ -810,6 +812,12 @@ main (int argc, char *argv[])
|
|||||||
make_image_abs (GRUB_INSTALL_PLATFORM_ARM64_EFI, "arm64-efi", imgname);
|
make_image_abs (GRUB_INSTALL_PLATFORM_ARM64_EFI, "arm64-efi", imgname);
|
||||||
free (imgname);
|
free (imgname);
|
||||||
|
|
||||||
|
imgname = grub_util_path_concat (2, efidir_efi_boot, "bootloongarch64.efi");
|
||||||
|
make_image_fwdisk_abs (GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI,
|
||||||
|
"loongarch64-efi",
|
||||||
|
imgname);
|
||||||
|
free (imgname);
|
||||||
|
|
||||||
imgname = grub_util_path_concat (2, efidir_efi_boot, "bootriscv32.efi");
|
imgname = grub_util_path_concat (2, efidir_efi_boot, "bootriscv32.efi");
|
||||||
make_image_abs (GRUB_INSTALL_PLATFORM_RISCV32_EFI, "riscv32-efi", imgname);
|
make_image_abs (GRUB_INSTALL_PLATFORM_RISCV32_EFI, "riscv32-efi", imgname);
|
||||||
free (imgname);
|
free (imgname);
|
||||||
|
|||||||
@ -622,6 +622,22 @@ static const struct grub_install_image_target_desc image_targets[] =
|
|||||||
.pe_target = GRUB_PE32_MACHINE_ARM64,
|
.pe_target = GRUB_PE32_MACHINE_ARM64,
|
||||||
.elf_target = EM_AARCH64,
|
.elf_target = EM_AARCH64,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.dirname = "loongarch64-efi",
|
||||||
|
.names = { "loongarch64-efi", NULL },
|
||||||
|
.voidp_sizeof = 8,
|
||||||
|
.bigendian = 0,
|
||||||
|
.id = IMAGE_EFI,
|
||||||
|
.flags = PLATFORM_FLAGS_NONE,
|
||||||
|
.total_module_size = TARGET_NO_FIELD,
|
||||||
|
.decompressor_compressed_size = TARGET_NO_FIELD,
|
||||||
|
.decompressor_uncompressed_size = TARGET_NO_FIELD,
|
||||||
|
.decompressor_uncompressed_addr = TARGET_NO_FIELD,
|
||||||
|
.section_align = GRUB_PE32_SECTION_ALIGNMENT,
|
||||||
|
.vaddr_offset = EFI64_HEADER_SIZE,
|
||||||
|
.pe_target = GRUB_PE32_MACHINE_LOONGARCH64,
|
||||||
|
.elf_target = EM_LOONGARCH,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.dirname = "riscv32-efi",
|
.dirname = "riscv32-efi",
|
||||||
.names = { "riscv32-efi", NULL },
|
.names = { "riscv32-efi", NULL },
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user