[PATCH v3 0/7] support overlays to the barebox live tree

Sascha Hauer sha at pengutronix.de
Thu Mar 16 01:58:38 PDT 2023


On Wed, Mar 15, 2023 at 05:09:47PM +0100, Michael Riesch wrote:
> Hi Sascha,
> 
> On 3/10/23 10:42, Sascha Hauer wrote:
> > Support for applying a device tree overlay to the barebox live tree
> > is already present. This series adds a few missing pieces:
> > 
> > - add support for applying overlays to the live tree from the command
> >   line
> > - add support for adding new I2C/SPI devices via overlays
> > - add Makefile magic to build dtbo files and dtbo.o files to include
> >   into the barebox binary from dtso files
> > 
> > Changes since v2:
> > - Don't build compressed dtbo files
> > - Do not build overlays for PBL
> > - rename symbols to __dtbo_ to avoid possible name clashes
> > 
> > Changes since v1:
> > - add a device_rescan() static inline wrapper
> > - add missing call to of_i2c_register_devices() in i2c_add_numbered_adapter()
> > - replace device_detect with device_rescan in of_device_create_on_demand()
> > 
> > Sascha Hauer (7):
> >   kbuild: Add target to build dtb overlay files
> >   driver: Add rescan hook to struct device
> >   i2c: implement rescan
> >   spi: Directly register SPI device
> >   spi: reduce scope of 'chip'
> >   spi: implement rescan
> >   of_overlay: Add option to apply overlay to live tree
> > 
> >  commands/of_overlay.c  | 38 ++++++++++++++++++++++++++++++++++----
> >  drivers/i2c/i2c.c      | 24 +++++++++---------------
> >  drivers/of/platform.c  | 12 +++++-------
> >  drivers/spi/spi.c      | 29 ++++++++++++++++++++++++-----
> >  include/driver.h       |  6 ++++++
> >  scripts/Makefile.build |  2 ++
> >  scripts/Makefile.lib   | 10 +++++++++-
> >  scripts/gen-dtbo-s     | 14 ++++++++++++++
> >  8 files changed, 103 insertions(+), 32 deletions(-)
> >  create mode 100755 scripts/gen-dtbo-s
> > 
> 
> With this series I can apply a device tree overlay, but a node with a
> "fixed-clock" does not lead to a corresponding clock showing up in clk_dump.
> 
> Any idea what went wrong here?

The fixed-clock is initialized with CLK_OF_DECLARE which results in a
linker list which is iterated over in of_clk_init() which is called
in an initcall during barebox startup.

The clocks registered via CLK_OF_DECLARE do not have a device associated
with them. The clocks also do not have a link to the device node they
provide the clock for, also the device node doesn't have a link to the
clock. This means we currently have no idea whether there already is
a clock registered for a particular node or if the node has just been
added by an overlay. There seems to be some work necessary to get this
working.

Sascha

-- 
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