grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH RFC/RFT 3/3] RISC-V: Use common linux loader


From: Heinrich Schuchardt
Subject: Re: [PATCH RFC/RFT 3/3] RISC-V: Use common linux loader
Date: Mon, 27 Apr 2020 01:02:44 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

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 <address@hidden>

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 <address@hidden>

> ---
>  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 */
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]