mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH v2 00/17] Apply device tree overlays to kernel tree
@ 2021-06-23  5:16 Sascha Hauer
  2021-06-23  5:16 ` [PATCH 01/17] fdt: Check blob size during unflattening Sascha Hauer
                   ` (16 more replies)
  0 siblings, 17 replies; 22+ messages in thread
From: Sascha Hauer @ 2021-06-23  5:16 UTC (permalink / raw)
  To: Barebox List

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


^ permalink raw reply	[flat|nested] 22+ messages in thread
* [PATCH 00/17] Apply device tree overlays to kernel tree
@ 2021-03-10 13:28 Sascha Hauer
  2021-03-10 13:28 ` [PATCH 02/17] firmware: make device_node argument non const Sascha Hauer
  0 siblings, 1 reply; 22+ messages in thread
From: Sascha Hauer @ 2021-03-10 13:28 UTC (permalink / raw)
  To: Barebox List

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.

Sascha

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/highbank/init.c           |   2 +-
 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                    |   2 +-
 commands/of_diff.c                        |   2 +-
 commands/of_display_timings.c             |   2 +-
 commands/of_dump.c                        |   4 +-
 commands/of_overlay.c                     |  16 +--
 commands/oftree.c                         |   2 +-
 common/blspec.c                           |  99 ++++++---------
 common/bootm.c                            |   4 +-
 common/efi/efi.c                          |   2 +-
 common/firmware.c                         |  59 ++++++++-
 common/image-fit.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                  |  56 ++-------
 drivers/of/overlay.c                      | 146 ++++++++++++++++++++++
 include/firmware.h                        |  26 ++--
 include/libbb.h                           |   4 +-
 include/of.h                              |  33 ++++-
 lib/libbb.c                               |  58 ++++++---
 28 files changed, 413 insertions(+), 179 deletions(-)

-- 
2.29.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2021-06-24  8:49 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-23  5:16 [PATCH v2 00/17] Apply device tree overlays to kernel tree Sascha Hauer
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
  -- strict thread matches above, loose matches on Subject: below --
2021-03-10 13:28 [PATCH 00/17] Apply device tree overlays to kernel tree Sascha Hauer
2021-03-10 13:28 ` [PATCH 02/17] firmware: make device_node argument non const Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox