On 20/01/2024 12:20, Amrit Anand wrote: > From: Elliot Berman <quic_eberman@xxxxxxxxxxx> > > > How is this better than Qualcomm's qcom,msm-id/qcom,board-id? > ------------------------------------------------------------- > The selection process for devicetrees was Qualcomm-specific and not > useful for other devices and bootloaders that were not developed by > Qualcomm because a complex algorithm was used to implement. Board-ids > provide a matching solution that can be implemented by bootloaders > without introducing vendor-specific code. Qualcomm uses three > devicetree properties: msm-id (interchangeably: soc-id), board-id, and > pmic-id. This does not scale well for use casese which use identifiers, > for example, to distinguish between a display panel. For a display > panel, an approach could be to add a new property: display-id, > but now bootloaders need to be updated to also read this property. We > want to avoid requiring to update bootloaders with new hardware Some mis-indentation in two lines above. > identifiers: a bootloader need only recognize the identifiers it can > handle. > > Signed-off-by: Elliot Berman <quic_eberman@xxxxxxxxxxx> > Signed-off-by: Amrit Anand <quic_amrianan@xxxxxxxxxxx> > --- > .../devicetree/bindings/hwinfo/board-id.yaml | 53 ++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwinfo/board-id.yaml > > diff --git a/Documentation/devicetree/bindings/hwinfo/board-id.yaml b/Documentation/devicetree/bindings/hwinfo/board-id.yaml I think we should add it to dtschema, because bootloaders are using these. > new file mode 100644 > index 0000000..82d5ff7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwinfo/board-id.yaml > @@ -0,0 +1,53 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/hwinfo/board-id.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Board Identifier for Devicetree Selection > + > +maintainers: > + - Amrit Anand <quic_amrianan@xxxxxxxxxxx> > + - Elliot Berman <quic_eberman@xxxxxxxxxxx> > + > +description: | Do not need '|' unless you need to preserve formatting. > + Device manufacturers frequently ship multiple boards under a single > + software package. These software packages will ship multiple devicetree > + blobs and require some mechanism to pick the correct DTB for the board > + the software package was deployed. board-id provides a mechanism for > + bootloaders to select the appropriate DTB which is vendor/OEM-agnostic. > + > +select: > + anyOf: > + - required: > + - 'board-id' > + - required: > + - 'board-id-types' > + - required: > + - '#board-id-cells' I don't fully get why do you need this select. Isn't the schema selected by nodename? Or maybe it is for the final required: but then this could be just set of dependencies. > + > +properties: > + $nodename: > + const: "/" Blank line. > + board-id: > + $ref: /schemas/types.yaml#/definitions/uint32-matrix > + description: | Do not need '|' unless you need to preserve formatting. > + A list of identifiers that can be used to match with this devicetree. s/devicetree/Devicetree/ ? > + The interpretatation of each cell can be matched with the Typo: interpretation > + board-id-type at the same index. > + > + board-id-types: > + $ref: /schemas/types.yaml#/definitions/non-unique-string-array > + description: > + Defines the type of each cell, indicating to the DeviceTree selection s/DeviceTree/Devicetree/ ? > + mechanism how to parse the board-id. > + > + '#board-id-cells': What are the cells for? > + minimum: 1 > + > +required: > + - board-id > + - board-id-types > + - '#board-id-cells' > + > +additionalProperties: true Best regards, Krzysztof