[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 5/9] RISC-V: Add early startup code
From: |
Alistair Francis |
Subject: |
Re: [PATCH 5/9] RISC-V: Add early startup code |
Date: |
Thu, 8 Nov 2018 23:20:38 +0000 |
On Tue, 2018-11-06 at 18:58 +0100, Alexander Graf wrote:
> On entry, we need to save the system table pointer as well as our
> image
> handle. Add an early startup file that saves them and then brings us
> into our main function.
>
> Signed-off-by: Alexander Graf <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Alistair
> ---
> grub-core/kern/riscv/efi/startup.S | 49
> ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 49 insertions(+)
> create mode 100644 grub-core/kern/riscv/efi/startup.S
>
> diff --git a/grub-core/kern/riscv/efi/startup.S b/grub-
> core/kern/riscv/efi/startup.S
> new file mode 100644
> index 000000000..026f99bab
> --- /dev/null
> +++ b/grub-core/kern/riscv/efi/startup.S
> @@ -0,0 +1,49 @@
> +/*
> + * GRUB -- GRand Unified Bootloader
> + * Copyright (C) 2013 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/symbol.h>
> +
> +#if __riscv_xlen == 64
> +#define sl sd
> +#define ll ld
> +#else
> +#define sl sw
> +#define ll lw
> +#endif
> +
> +
> + .file "startup.S"
> + .text
> +FUNCTION(_start)
> + /*
> + * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in a1/a0.
> + */
> +
> + ll a2, efi_image_handle_val
> + sl a0, 0(a2)
> + ll a2, efi_system_table_val
> + sl a1, 0(a2)
> + ll a2, grub_main_val
> + jr a2
> +grub_main_val:
> + .quad EXT_C(grub_main)
> +efi_system_table_val:
> + .quad EXT_C(grub_efi_system_table)
> +efi_image_handle_val:
> + .quad EXT_C(grub_efi_image_handle)
> +
- [PATCH 8/9] RISC-V: Add auxiliary files, (continued)
- [PATCH 8/9] RISC-V: Add auxiliary files, Alexander Graf, 2018/11/06
- [PATCH 1/9] efi: Rename armxx to arch, Alexander Graf, 2018/11/06
- [PATCH 9/9] RISC-V: Add to build system, Alexander Graf, 2018/11/06
- [PATCH 6/9] RISC-V: Add Linux load logic, Alexander Graf, 2018/11/06
- [PATCH 3/9] elf.h: Add RISC-V definitions, Alexander Graf, 2018/11/06
- [PATCH 5/9] RISC-V: Add early startup code, Alexander Graf, 2018/11/06
- Re: [PATCH 5/9] RISC-V: Add early startup code,
Alistair Francis <=