From: Sascha Hauer <s.hauer@pengutronix.de> To: Barebox List <barebox@lists.infradead.org> Subject: [PATCH v2 00/17] Apply device tree overlays to kernel tree Date: Wed, 23 Jun 2021 07:16:15 +0200 [thread overview] Message-ID: <20210623051632.30253-1-s.hauer@pengutronix.de> (raw) With this series barebox gains the capability to apply device tree overlays to the kernel device tree before starting the kernel with it. Which overlays are applied can be controlled with a set of globavars, for details see the documentation patch in this series. The particular usecase we have in mind with this series is that the rootfs has a bunch of device tree overlays in it which shall be applied based on bootloader knowledge. For example information of the exact board type might be stored in an EEPROM. Based on that information barebox can now pick the right overlays for that board from the rootfs. Interpreting the EEPROM content is board specific and not part of this series, for now the the globalvars must be set manually. The previous series had the problem that each time a of_fix_tree() was executed all firmwares were reloaded. This is solved in this series. Instead of loading the firmware files directly when applying an overlay, they are collected to a list. Only when we are booting the Kernel we explicitly load the firmwares we have previously collected. Changes since v1: - Do not (re-)load firmware on each of_fix_tree() - handle empty strings returned from strsep gracefully - Drop -S option from of_overlay command instead of ignoring it Sascha Hauer (17): fdt: Check blob size during unflattening firmware: make device_node argument non const libbb: Add find_path function firmware: consolidate ifdefs firmware: Add search path firmware: Fix device_node matching firmware: recognize by reproducible name blspec: Set firmware searchpath overlay: only apply compatible trees overlay: Add of_overlay_apply_file() firmware: Load from global search path blspec: Rework firmware load of_overlay: apply overlays during booting blspec: Apply overlays from rootfs doc: devicetree: Refer to internal device tree also as live tree Documentation: Add documentation for device tree overlays of_firmware: Fix handling of firmware-name property Documentation/user/devicetree.rst | 39 +++++- arch/arm/boards/qemu-virt/board.c | 4 +- arch/arm/boards/raspberry-pi/rpi-common.c | 2 +- arch/arm/boards/webasto-ccbv2/board.c | 2 +- arch/arm/lib32/bootm.c | 6 +- arch/arm/lib32/bootu.c | 5 +- arch/arm/lib32/bootz.c | 3 + arch/arm/lib64/armlinux.c | 4 + arch/kvx/lib/bootm.c | 6 + arch/mips/lib/bootm.c | 4 + arch/powerpc/lib/ppclinux.c | 4 + arch/riscv/lib/bootm.c | 5 + commands/of_diff.c | 2 +- commands/of_display_timings.c | 2 +- commands/of_dump.c | 4 +- commands/of_overlay.c | 34 +---- commands/oftree.c | 2 +- common/blspec.c | 102 ++++++--------- common/bootm.c | 4 +- common/efi/efi.c | 2 +- common/firmware.c | 59 ++++++++- common/image-fit.c | 2 +- common/oftree.c | 2 + common/state/backend_format_dtb.c | 2 +- drivers/firmware/altera_serial.c | 1 + drivers/firmware/socfpga.c | 2 + drivers/firmware/zynqmp-fpga.c | 2 + drivers/of/base.c | 2 +- drivers/of/fdt.c | 17 ++- drivers/of/of_firmware.c | 137 ++++++++++++------- drivers/of/overlay.c | 152 ++++++++++++++++++++++ include/firmware.h | 26 ++-- include/libbb.h | 4 +- include/of.h | 45 ++++++- lib/libbb.c | 58 ++++++--- 35 files changed, 552 insertions(+), 195 deletions(-) -- 2.29.2 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
next reply other threads:[~2021-06-23 5:18 UTC|newest] Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-23 5:16 Sascha Hauer [this message] 2021-06-23 5:16 ` [PATCH 01/17] fdt: Check blob size during unflattening Sascha Hauer 2021-06-23 5:16 ` [PATCH 02/17] firmware: make device_node argument non const Sascha Hauer 2021-06-23 5:16 ` [PATCH 03/17] libbb: Add find_path function Sascha Hauer 2021-06-23 5:16 ` [PATCH 04/17] firmware: consolidate ifdefs Sascha Hauer 2021-06-23 5:16 ` [PATCH 05/17] firmware: Add search path Sascha Hauer 2021-06-23 5:16 ` [PATCH 06/17] firmware: Fix device_node matching Sascha Hauer 2021-06-23 5:16 ` [PATCH 07/17] firmware: recognize by reproducible name Sascha Hauer 2021-06-23 5:16 ` [PATCH 08/17] blspec: Set firmware searchpath Sascha Hauer 2021-06-23 5:16 ` [PATCH 09/17] overlay: only apply compatible trees Sascha Hauer 2021-06-23 5:16 ` [PATCH 10/17] overlay: Add of_overlay_apply_file() Sascha Hauer 2021-06-23 5:16 ` [PATCH 11/17] firmware: Load from global search path Sascha Hauer 2021-06-23 5:16 ` [PATCH 12/17] blspec: Rework firmware load Sascha Hauer 2021-06-23 5:16 ` [PATCH 13/17] of_overlay: apply overlays during booting Sascha Hauer 2021-06-23 5:16 ` [PATCH 14/17] blspec: Apply overlays from rootfs Sascha Hauer 2021-06-23 5:16 ` [PATCH 15/17] doc: devicetree: Refer to internal device tree also as live tree Sascha Hauer 2021-06-23 5:16 ` [PATCH 16/17] Documentation: Add documentation for device tree overlays Sascha Hauer 2021-06-23 6:13 ` Ahmad Fatoum 2021-06-23 19:37 ` Trent Piepho 2021-06-24 8:48 ` Sascha Hauer 2021-06-23 5:16 ` [PATCH 17/17] of_firmware: Fix handling of firmware-name property Sascha Hauer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210623051632.30253-1-s.hauer@pengutronix.de \ --to=s.hauer@pengutronix.de \ --cc=barebox@lists.infradead.org \ --subject='Re: [PATCH v2 00/17] Apply device tree overlays to kernel tree' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox