[PATCH v2 17/18] qemu-arm: Get bloblist from boot arguments

Raymond Mao raymond.mao at linaro.org
Mon Dec 4 20:34:57 CET 2023


Hi Michal,

I will remove "#if IS_ENABLED(CONFIG_OF_BOARD)" from below:

>+#if IS_ENABLED(CONFIG_OF_BOARD)
>+/* Boot parameters saved from lowlevel_init.S */
>+struct {
>+ unsigned long arg0;
>+ unsigned long arg1;
>+ unsigned long arg2;
>+ unsigned long arg3;
>+} qemu_saved_args __section(".data");
>+#endif

Saving the args does not really dependent on OF_BOARD or BLOBLIST

Thanks and regards,
Raymond

On Mon, 4 Dec 2023 at 02:54, Michal Simek <michal.simek at amd.com> wrote:

>
>
> On 11/27/23 20:50, Raymond Mao wrote:
> > Add platform custom function to get bloblist from boot arguments.
> > Check whether boot arguments aligns with the register conventions
> > defined in FW Handoff spec v0.9.
> > Add bloblist related options into qemu default config.
> >
> > Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
> > ---
> > Changes in v2
> > - New patch file created for v2.
> >
> >   board/emulation/qemu-arm/Makefile        |  1 +
> >   board/emulation/qemu-arm/lowlevel_init.S | 19 +++++++++
> >   board/emulation/qemu-arm/qemu-arm.c      | 54 ++++++++++++++++++++++++
> >   configs/qemu_arm64_defconfig             |  3 ++
> >   configs/qemu_arm_defconfig               |  3 ++
> >   5 files changed, 80 insertions(+)
> >   create mode 100644 board/emulation/qemu-arm/lowlevel_init.S
> >
> > diff --git a/board/emulation/qemu-arm/Makefile
> b/board/emulation/qemu-arm/Makefile
> > index a22d1237ff..12821e7083 100644
> > --- a/board/emulation/qemu-arm/Makefile
> > +++ b/board/emulation/qemu-arm/Makefile
> > @@ -1,3 +1,4 @@
> >   # SPDX-License-Identifier: GPL-2.0+
> >
> >   obj-y       += qemu-arm.o
> > +obj-$(CONFIG_OF_BOARD)       += lowlevel_init.o
> > diff --git a/board/emulation/qemu-arm/lowlevel_init.S
> b/board/emulation/qemu-arm/lowlevel_init.S
> > new file mode 100644
> > index 0000000000..d72d7c938a
> > --- /dev/null
> > +++ b/board/emulation/qemu-arm/lowlevel_init.S
> > @@ -0,0 +1,19 @@
> > +/* SPDX-License-Identifier: BSD-2-Clause */
> > +/*
> > + * Copyright (c) 2023, Linaro Limited
> > + */
> > +
> > +#include <config.h>
> > +
> > +.global save_boot_params
> > +save_boot_params:
> > +#ifdef CONFIG_ARM64
> > +     adr x9, qemu_saved_args
>
> Based on logic below this is available only when CONFIG_OF_BOARD is
> enabled.
> Please look below.
>
> > +     stp x0, x1, [x9]
> > +     /* Increment the address by 16 bytes for the next pair of values */
> > +     stp x2, x3, [x9, #16]
> > +#else
> > +     ldr r12, =qemu_saved_args
> > +     stm r12, {r0, r1, r2, r3}
> > +#endif
> > +     b       save_boot_params_ret
> > diff --git a/board/emulation/qemu-arm/qemu-arm.c
> b/board/emulation/qemu-arm/qemu-arm.c
> > index 942f1fff57..a3892630d8 100644
> > --- a/board/emulation/qemu-arm/qemu-arm.c
> > +++ b/board/emulation/qemu-arm/qemu-arm.c
> > @@ -4,6 +4,9 @@
> >    */
> >
> >   #include <common.h>
> > +#if IS_ENABLED(CONFIG_OF_BOARD) && IS_ENABLED(CONFIG_BLOBLIST)
> > +#include <bloblist.h>
> > +#endif
>
> you have dependency on OF_BOARD and BLOBLIST.
>
> >   #include <cpu_func.h>
> >   #include <dm.h>
> >   #include <efi.h>
> > @@ -102,6 +105,16 @@ static struct mm_region qemu_arm64_mem_map[] = {
> >   struct mm_region *mem_map = qemu_arm64_mem_map;
> >   #endif
> >
> > +#if IS_ENABLED(CONFIG_OF_BOARD)
>
> And here OF_BOARD.
>
> Not all should be aligned but I don't think current #if
>
>
> Thanks,
> Michal
>


More information about the U-Boot mailing list