[PATCH v2 0/2] Add board-id support for multiple DT selection

Chen-Yu Tsai wenst at chromium.org
Tue Sep 30 20:48:30 PDT 2025


Hi Amrit,

On Thu, Mar 14, 2024 at 8:13 PM Amrit Anand <quic_amrianan at quicinc.com> wrote:
>
> The software packages are shipped with multiple device tree blobs supporting
> multiple boards. For instance, suppose we have 3 SoC, each with 4 boards supported,
> along with 2 PMIC support for each case which would lead to total of 24 DTB files.
> Along with these configurations, OEMs may also add certain additional board variants.
> Hence, a mechanism is required to pick the correct DTB for the board on which the
> software package is deployed. Introduce a unique property for adding board identifiers
> to device trees. Here, board-id property provides a mechanism for Qualcomm based
> bootloaders to select the appropriate DTB.
>
> Isn't that what the compatible property is for?
> -----------------------------------------------
> The compatible property can be used for board matching, but requires
> bootloaders and/or firmware to maintain a database of possible strings
> to match against or have complex compatible string parsing and matching.
> Compatible string matching becomes complicated when there are multiple
> versions of the same board. It becomes difficult for the device tree
> selection mechanism to recognize the right DTB to pick, with minor
> differences in compatible strings.

I plan to revisit this topic, and also include device tree overlay selection,
at Plumbers this year. I was wondering if there was any progress or changes
on your end?

Thanks
ChenYu

> The solution proposed here is simpler to implement and doesn't require the need
> to update bootloader for every new board.
>
> How is this better than Qualcomm's qcom,msm-id/qcom,board-id?
> -------------------------------------------------------------
> Qualcomm's qcom,msm-id/qcom,board-id are not scalable for other distinguishing
> features as we need to add a new property every time. Board-id property provide
> a solution that the bootloader can use to select appropriate device tree. Board-id
> encapsulates soc, board, pmic and oem identifiers. Qualcomm based bootloader can use
> these key-value pairs to uniquely identify the device tree. This solution scales well
> for cases where additional identifiers would be needed for device tree selection
> criteria. Adding a new tuple in "board-id" along with "board-id-type" will help support it.
>
> Changes in V2:
>  - Based on comment on V1 related to challenges on designing common bootloader for all
>    the vendors, where different vendors can have different representation of board-id
>    and the best and exact match logic can also be different for different vendors, moving
>    the board-id definition in qcom specific binding.
>  - Adding support for board IDs for all the boards that are in kernel.org.
>  - Adding Qualcomm bootloader best/exact match logic for multi DT selection.
>  - Keeping list of other vendors in CC for comment/awareness related to this requirement
>  - Link to V1: https://lore.kernel.org/all/1705749649-4708-1-git-send-email-quic_amrianan@quicinc.com/
>
> Amrit Anand (2):
>   dt-bindings: arm: qcom: Update Devicetree identifiers
>   dt-bindings: qcom: Update DT bindings for multiple DT
>
>  Documentation/devicetree/bindings/arm/qcom.yaml | 90 +++++++++++++++++++++++++
>  include/dt-bindings/arm/qcom,ids.h              | 86 ++++++++++++++++++++---
>  2 files changed, 167 insertions(+), 9 deletions(-)
>
> --
> 2.7.4
>
>



More information about the linux-riscv mailing list