On 4/26/20 9:40 PM, Atish Patra wrote: > RISC-V doesn't have to do anything very different from other architectures > to loader EFI stub linux kernel. As a result, just use the common linux > loader instead of defining a RISC-V specific linux loader. > > Signed-off-by: Atish Patra <atish.pa...@wdc.com>
Tested on Odroid-C2 (ARMv8) using GRUB master c543d678105037a plus this patch series booting from U-Boot via GRUB to Debian Bullseye successfully. Tested-by: Heinrich Schuchardt <xypron.g...@gmx.de> > --- > grub-core/Makefile.core.def | 4 +-- > grub-core/loader/riscv/linux.c | 59 ---------------------------------- > include/grub/riscv32/linux.h | 1 + > include/grub/riscv64/linux.h | 1 + > 4 files changed, 4 insertions(+), 61 deletions(-) > delete mode 100644 grub-core/loader/riscv/linux.c > > diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def > index 57bb70d73764..8db90762af04 100644 > --- a/grub-core/Makefile.core.def > +++ b/grub-core/Makefile.core.def > @@ -1816,8 +1816,8 @@ module = { > arm_efi = loader/efi/linux.c; > arm_uboot = loader/arm/linux.c; > arm64 = loader/efi/linux.c; > - riscv32 = loader/riscv/linux.c; > - riscv64 = loader/riscv/linux.c; > + riscv32 = loader/efi/linux.c; > + riscv64 = loader/efi/linux.c; > common = loader/linux.c; > common = lib/cmdline.c; > enable = noemu; > diff --git a/grub-core/loader/riscv/linux.c b/grub-core/loader/riscv/linux.c > deleted file mode 100644 > index d17c488e118d..000000000000 > --- a/grub-core/loader/riscv/linux.c > +++ /dev/null > @@ -1,59 +0,0 @@ > -/* > - * GRUB -- GRand Unified Bootloader > - * Copyright (C) 2018 Free Software Foundation, Inc. > - * > - * GRUB is free software: you can redistribute it and/or modify > - * it under the terms of the GNU General Public License as published by > - * the Free Software Foundation, either version 3 of the License, or > - * (at your option) any later version. > - * > - * GRUB is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - * You should have received a copy of the GNU General Public License > - * along with GRUB. If not, see <http://www.gnu.org/licenses/>. > - */ > - > -#include <grub/command.h> > -#include <grub/dl.h> > -#include <grub/lib/cmdline.h> > - > -GRUB_MOD_LICENSE ("GPLv3+"); > - > -static grub_err_t > -grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), > - int argc __attribute__ ((unused)), > - char *argv[] __attribute__ ((unused))) > -{ > - grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, N_("Linux not supported yet")); > - > - return grub_errno; > -} > - > -static grub_err_t > -grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), > - int argc __attribute__ ((unused)), > - char *argv[] __attribute__ ((unused))) > -{ > - grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, N_("Linux not supported yet")); > - > - return grub_errno; > -} > - > -static grub_command_t cmd_linux, cmd_initrd; > - > -GRUB_MOD_INIT (linux) > -{ > - cmd_linux = grub_register_command ("linux", grub_cmd_linux, 0, > - N_("Load Linux.")); > - cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, 0, > - N_("Load initrd.")); > -} > - > -GRUB_MOD_FINI (linux) > -{ > - grub_unregister_command (cmd_linux); > - grub_unregister_command (cmd_initrd); > -} > diff --git a/include/grub/riscv32/linux.h b/include/grub/riscv32/linux.h > index de0dbdcd1be5..706c69087546 100644 > --- a/include/grub/riscv32/linux.h > +++ b/include/grub/riscv32/linux.h > @@ -38,5 +38,6 @@ struct linux_riscv_kernel_header > }; > > #define linux_arch_kernel_header linux_riscv_kernel_header > +# define GRUB_LINUX_ARCH_MAGIC_SIGNATURE GRUB_LINUX_RISCV_MAGIC_SIGNATURE > > #endif /* ! GRUB_RISCV32_LINUX_HEADER */ > diff --git a/include/grub/riscv64/linux.h b/include/grub/riscv64/linux.h > index 7c28bc92278e..88d5df781899 100644 > --- a/include/grub/riscv64/linux.h > +++ b/include/grub/riscv64/linux.h > @@ -40,5 +40,6 @@ struct linux_riscv_kernel_header > }; > > #define linux_arch_kernel_header linux_riscv_kernel_header > +# define GRUB_LINUX_ARCH_MAGIC_SIGNATURE GRUB_LINUX_RISCV_MAGIC_SIGNATURE > > #endif /* ! GRUB_RISCV64_LINUX_HEADER */ > _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel