[PATCH v3 2/2] arm: s5p4418: fix relocation of vectors

Minkyu Kang promsoft at gmail.com
Mon Feb 5 10:36:42 CET 2024


Hi,


2024년 1월 26일 (금) 21:53, Stefan Bosch <stefan_b at posteo.net>님이 작성:

> The header (NSIH) used for the s5p4418-SoC is not loaded into RAM by the
> 2nd-bootloader, see boot0.h. Therefore, use an adapted version of
> relocate_vectors which relocates the vectors after the header (at _start)
> instead of the 'dummy'-vectors at the start of the header (at
> __image_copy_start).
>
> Signed-off-by: Stefan Bosch <stefan_b at posteo.net>
> ---
>
> (no changes since v1)
>
>  arch/arm/cpu/armv7/s5p4418/Makefile   |  3 +++
>  arch/arm/cpu/armv7/s5p4418/relocate.S | 24 ++++++++++++++++++++++++
>  2 files changed, 27 insertions(+)
>  create mode 100644 arch/arm/cpu/armv7/s5p4418/relocate.S
>
> diff --git a/arch/arm/cpu/armv7/s5p4418/Makefile
> b/arch/arm/cpu/armv7/s5p4418/Makefile
> index 321b257b6d..58042581c4 100644
> --- a/arch/arm/cpu/armv7/s5p4418/Makefile
> +++ b/arch/arm/cpu/armv7/s5p4418/Makefile
> @@ -2,5 +2,8 @@
>  #
>  # (C) Copyright 2016 Nexell
>  # Hyunseok, Jung <hsjung at nexell.co.kr>
> +#
> +# Copyright (C) 2023  Stefan Bosch <stefan_b at posteo.net>
>
>  obj-y += cpu.o
> +obj-y += relocate.o
> diff --git a/arch/arm/cpu/armv7/s5p4418/relocate.S
> b/arch/arm/cpu/armv7/s5p4418/relocate.S
> new file mode 100644
> index 0000000000..d6e76adceb
> --- /dev/null
> +++ b/arch/arm/cpu/armv7/s5p4418/relocate.S
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + *  relocate - S5P4418 specific relocation for ARM U-Boot
> + *
> + *  Copyright (c) 2013  Albert ARIBAUD <albert.u.boot at aribaud.net>
> + *  Copyright (C) 2023  Stefan Bosch <stefan_b at posteo.net>
> + */
> +
> +#include <asm-offsets.h>
> +#include <asm/assembler.h>
> +#include <linux/linkage.h>
> +
> +ENTRY(relocate_vectors)
> +
> +       /*
> +        * The s5p4418 SoC has the security extensions, so use VBAR to
> relocate
> +        * the exception vectors.
> +        */
> +       ldr     r0, [r9, #GD_RELOCADDR] /* r0 = gd->relocaddr */
> +       add     r0, #0x400                      /* vectors are after NSIH
> + 0x200 */
> +       mcr     p15, 0, r0, c12, c0, 0  /* Set VBAR */
> +       ret     lr
> +
> +ENDPROC(relocate_vectors)
> --
> 2.17.1
>

Reviewed-by: Minkyu Kang <mk7.kang at samsung.com>

Thanks.
Minkyu Kang.


More information about the U-Boot mailing list