[PATCH v2 4/4] boards: qemu-virt: support passing in FIT public key
Jan Lübbe
jlu at pengutronix.de
Fri Feb 10 09:32:02 PST 2023
On Fri, 2023-02-10 at 17:53 +0100, Ahmad Fatoum wrote:
> FIT public key is usually passed in via board DT. Usual way to use
> barebox with QEMU Virt however is to use DT supplied by Qemu and apply
> overlay to it. mkimage doesn't generate overlay DTB though. To make
> barbebox Qemu Virt behave like other boards, let's define a dummy DT
> that includes CONFIG_BOOTM_FITIMAGE_PUBKEY, which is merged with the
> barebox live device tree.
>
> Suggested-by: Jan Lübbe <jlu at pengutronix.de>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
For the whole series:
Tested-by: Jan Lübbe <jlu at pengutronix.de>
> ---
> v1 -> v2:
> - no changes
> ---
> common/boards/qemu-virt/Makefile | 2 +-
> common/boards/qemu-virt/board.c | 7 ++++++-
> common/boards/qemu-virt/fitimage-pubkey.dts | 7 +++++++
> 3 files changed, 14 insertions(+), 2 deletions(-)
> create mode 100644 common/boards/qemu-virt/fitimage-pubkey.dts
>
> diff --git a/common/boards/qemu-virt/Makefile b/common/boards/qemu-virt/Makefile
> index 88184e9a7969..00bfdfbda696 100644
> --- a/common/boards/qemu-virt/Makefile
> +++ b/common/boards/qemu-virt/Makefile
> @@ -1,7 +1,7 @@
> # SPDX-License-Identifier: GPL-2.0-only
>
> obj-y += board.o
> -obj-y += overlay-of-flash.dtb.o
> +obj-y += overlay-of-flash.dtb.o fitimage-pubkey.dtb.o
> ifeq ($(CONFIG_RISCV),y)
> DTC_CPP_FLAGS_overlay-of-flash.dtb := -DRISCV_VIRT=1
> endif
> diff --git a/common/boards/qemu-virt/board.c b/common/boards/qemu-virt/board.c
> index ec92ae94aec9..2669e9de5a2a 100644
> --- a/common/boards/qemu-virt/board.c
> +++ b/common/boards/qemu-virt/board.c
> @@ -35,10 +35,11 @@ static inline void arm_virt_init(void) {}
> #endif
>
> extern char __dtb_overlay_of_flash_start[];
> +extern char __dtb_fitimage_pubkey_start[];
>
> static int virt_probe(struct device *dev)
> {
> - struct device_node *overlay;
> + struct device_node *overlay, *pubkey;
> void (*init)(void);
>
> init = device_get_match_data(dev);
> @@ -47,6 +48,10 @@ static int virt_probe(struct device *dev)
>
> overlay = of_unflatten_dtb(__dtb_overlay_of_flash_start, INT_MAX);
> of_overlay_apply_tree(dev->of_node, overlay);
> +
> + pubkey = of_unflatten_dtb(__dtb_fitimage_pubkey_start, INT_MAX);
> + of_merge_nodes(dev->of_node, pubkey);
> +
> /* of_probe() will happen later at of_populate_initcall */
>
> return 0;
> diff --git a/common/boards/qemu-virt/fitimage-pubkey.dts b/common/boards/qemu-virt/fitimage-pubkey.dts
> new file mode 100644
> index 000000000000..497799fa4b60
> --- /dev/null
> +++ b/common/boards/qemu-virt/fitimage-pubkey.dts
> @@ -0,0 +1,7 @@
> +/dts-v1/;
> +
> +#ifdef CONFIG_BOOTM_FITIMAGE_PUBKEY
> +#include CONFIG_BOOTM_FITIMAGE_PUBKEY
> +#endif
> +
> +/{ };
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list