[RFC PATCH 0/5] Allow for removal of DT nodes and properties

Sughosh Ganu sughosh.ganu at linaro.org
Mon Aug 28 10:31:53 CEST 2023


On Sat, 26 Aug 2023 at 15:36, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 8/26/23 11:06, Sughosh Ganu wrote:
> >
> > Provide a way for removing certain devicetree nodes and/or properties
> > from the devicetree. This is needed to purge certain nodes and
> > properties which may be relevant only in U-Boot. Such nodes and
> > properties are then removed from the devicetree before it is passed to
> > the kernel. This ensures that the devicetree passed to the OS does not
> > contain any non-compliant nodes and properties.
> >
> > The removal of the nodes and properties is being done through an
> > EVT_FT_FIXUP handler. I am not sure if the removal code needs to be
> > behind any Kconfig symbol.
> >
> > I have only build tested this on sandbox, and tested on qemu arm64
> > virt platform. This being a RFC, I have not put this through a CI run.
>
> We should have a test for the new functionality. E.g. add some
> superfluous properties and nodes to arch/sandbox/dts/test.dts, delete
> them via the DT_PURGE macro, and check that the device-tree passed to an
> EFI binary does not contain these properties and nodes.

Yes, I plan to have a test in the non-RFC version. I was thinking of
adding a command and then using that to test the functionality.

-sughosh

>
> Best regards
>
> Heinrich
>
> >
> > Sughosh Ganu (5):
> >    dt: Provide a way to remove non-compliant nodes and properties
> >    fwu: Add the fwu-mdata node for removal from devicetree
> >    capsule: Add the capsule-key property for removal from devicetree
> >    bootefi: Call the EVT_FT_FIXUP event handler
> >    doc: Add a document for non-compliant DT node/property removal
> >
> >   cmd/bootefi.c                                 | 18 +++++
> >   .../devicetree/dt_non_compliant_purge.rst     | 64 ++++++++++++++++
> >   drivers/fwu-mdata/fwu-mdata-uclass.c          |  5 ++
> >   include/dt-structs.h                          | 11 +++
> >   lib/Makefile                                  |  1 +
> >   lib/dt_purge.c                                | 73 +++++++++++++++++++
> >   lib/efi_loader/efi_capsule.c                  |  7 ++
> >   7 files changed, 179 insertions(+)
> >   create mode 100644 doc/develop/devicetree/dt_non_compliant_purge.rst
> >   create mode 100644 lib/dt_purge.c
> >


More information about the U-Boot mailing list