mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-12-17 09:06:21 +00:00
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> Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
This commit is contained in:
@@ -736,6 +736,7 @@ static struct
|
||||
[GRUB_INSTALL_PLATFORM_MIPS64EL_EFI] = { "mips64el","efi" },
|
||||
[GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" },
|
||||
[GRUB_INSTALL_PLATFORM_ARM_COREBOOT] = { "arm", "coreboot" },
|
||||
[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI] = { "loongarch64", "efi" },
|
||||
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32", "efi" },
|
||||
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64", "efi" },
|
||||
};
|
||||
|
||||
@@ -328,6 +328,8 @@ get_default_platform (void)
|
||||
return "arm64-efi";
|
||||
#elif defined (__amd64__) || defined (__x86_64__) || defined (__i386__)
|
||||
return grub_install_get_default_x86_platform ();
|
||||
#elif defined (__loongarch_lp64)
|
||||
return "loongarch64-efi";
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
@@ -481,7 +483,8 @@ have_bootdev (enum grub_install_plat pl)
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_I386_IEEE1275:
|
||||
@@ -907,7 +910,8 @@ main (int argc, char *argv[])
|
||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
@@ -955,7 +959,8 @@ main (int argc, char *argv[])
|
||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
@@ -1011,7 +1016,8 @@ main (int argc, char *argv[])
|
||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
@@ -1130,6 +1136,9 @@ main (int argc, char *argv[])
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
efi_file = "BOOTMIPS64EL.EFI";
|
||||
break;
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
efi_file = "BOOTLOONGARCH64.EFI";
|
||||
break;
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
efi_file = "BOOTRISCV32.EFI";
|
||||
break;
|
||||
@@ -1165,7 +1174,10 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
efi_file = "grubmips64el.efi";
|
||||
break;
|
||||
break;
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
efi_file = "grubloongarch64.efi";
|
||||
break;
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
efi_file = "grubriscv32.efi";
|
||||
break;
|
||||
@@ -1475,6 +1487,7 @@ main (int argc, char *argv[])
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
@@ -1570,7 +1583,8 @@ main (int argc, char *argv[])
|
||||
case GRUB_INSTALL_PLATFORM_X86_64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
@@ -1676,7 +1690,8 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
@@ -1914,7 +1929,8 @@ main (int argc, char *argv[])
|
||||
/* FALLTHROUGH */
|
||||
case GRUB_INSTALL_PLATFORM_ARM_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_ARM64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_MIPS64EL_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV32_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_RISCV64_EFI:
|
||||
case GRUB_INSTALL_PLATFORM_IA64_EFI:
|
||||
|
||||
@@ -108,7 +108,8 @@ static const struct
|
||||
[GRUB_INSTALL_PLATFORM_IA64_EFI] = { "ia64-efi", "efinet", ".efi" },
|
||||
[GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm-efi", "efinet", ".efi" },
|
||||
[GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64-efi", "efinet", ".efi" },
|
||||
[GRUB_INSTALL_PLATFORM_MIPS64EL_EFI] = { "mips64el-efi", "efinet", ".efi" },
|
||||
[GRUB_INSTALL_PLATFORM_MIPS64EL_EFI] = { "mips64el-efi", "efinet", ".efi" },
|
||||
[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI] = { "loongarch64-efi", "efinet", ".efi" },
|
||||
[GRUB_INSTALL_PLATFORM_RISCV32_EFI] = { "riscv32-efi", "efinet", ".efi" },
|
||||
[GRUB_INSTALL_PLATFORM_RISCV64_EFI] = { "riscv64-efi", "efinet", ".efi" },
|
||||
};
|
||||
|
||||
@@ -539,6 +539,7 @@ main (int argc, char *argv[])
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_MIPS64EL_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_X86_64_EFI])
|
||||
@@ -739,7 +740,8 @@ main (int argc, char *argv[])
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_IA64_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_ARM64_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_MIPS64EL_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_MIPS64EL_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_LOONGARCH64_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV32_EFI]
|
||||
|| source_dirs[GRUB_INSTALL_PLATFORM_RISCV64_EFI])
|
||||
{
|
||||
@@ -776,6 +778,12 @@ main (int argc, char *argv[])
|
||||
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, "bootmips64el.efi");
|
||||
make_image_fwdisk_abs (GRUB_INSTALL_PLATFORM_MIPS64EL_EFI, "mips64el-efi",
|
||||
imgname);
|
||||
|
||||
@@ -638,6 +638,22 @@ static const struct grub_install_image_target_desc image_targets[] =
|
||||
.pe_target = GRUB_PE32_MACHINE_MIPS,
|
||||
.elf_target = EM_MIPS,
|
||||
},
|
||||
{
|
||||
.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",
|
||||
.names = { "riscv32-efi", NULL },
|
||||
|
||||
Reference in New Issue
Block a user