Re: [PATCH v2 1/2] dt-bindings: arm: qcom: document qcom,msm-id and qcom,board-id

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22/06/2022 12:49, Krzysztof Kozlowski wrote:
On 22/06/2022 11:44, Dmitry Baryshkov wrote:
On 21/06/2022 21:56, Krzysztof Kozlowski wrote:
The top level qcom,msm-id and qcom,board-id properties are utilized by
bootloaders on Qualcomm MSM platforms to determine which device tree
should be used and passed to the kernel.

The commit b32e592d3c28 ("devicetree: bindings: Document qcom board
compatible format") from 2015 was a consensus during discussion about
upstreaming qcom,msm-id and qcom,board-id fields.  There are however still
problems with that consensus:
1. It was reached 7 years ago but it turned out its implementation did
     not reach all possible products.

2. Initially additional tool (dtbTool) was needed for parsing these
     fields to create a QCDT image consisting of multiple DTBs, later the
     bootloaders were improved and they use these qcom,msm-id and
     qcom,board-id properties directly.

3. Extracting relevant information from the board compatible requires
     this additional tool (dtbTool), which makes the build process more
     complicated and not easily reproducible (DTBs are modified after the
     kernel build).

4. Some versions of Qualcomm bootloaders expect these properties even
     when booting with a single DTB.  The community is stuck with these
     bootloaders thus they require properties in the DTBs.

Since several upstreamed Qualcomm SoC-based boards require these
properties to properly boot and the properties are reportedly used by
bootloaders, document them.

Link: https://lore.kernel.org/r/a3c932d1-a102-ce18-deea-18cbbd05ecab@xxxxxxxxxx/
Co-developed-by: Kumar Gala <galak@xxxxxxxxxxxxxx>
Signed-off-by: Kumar Gala <galak@xxxxxxxxxxxxxx>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
---
   .../devicetree/bindings/arm/qcom.yaml         | 123 ++++++++++++++++++
   include/dt-bindings/arm/qcom,ids.h            |  30 +++++
   2 files changed, 153 insertions(+)
   create mode 100644 include/dt-bindings/arm/qcom,ids.h

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 6c38c1387afd..05b98cde4653 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -403,6 +403,129 @@ properties:
                 - qcom,sm8450-qrd
             - const: qcom,sm8450
+ # Board compatibles go above
+
+  qcom,msm-id:
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    minItems: 1
+    maxItems: 8
+    items:
+      items:
+        - description: |
+            MSM chipset ID - an exact match value consisting of three bitfields::
+             - bits 0-15  - The unique MSM chipset ID
+             - bits 16-31 - Reserved; should be 0
+        - description: |
+            Hardware revision ID - a chipset specific 32-bit ID representing
+            the version of the chipset.  It is best a match value - the
+            bootloader will look for the closest possible match.
+    deprecated: true
+    description:
+      The MSM chipset and hardware revision use by Qualcomm bootloaders.  It
+      can optionally be an array of these to indicate multiple hardware that
+      use the same device tree.  It is expected that the bootloader will use
+      this information at boot-up to decide which device tree to use when given
+      multiple device trees, some of which may not be compatible with the
+      actual hardware.  It is the bootloader's responsibility to pass the
+      correct device tree to the kernel.
+      The property is deprecated - it is not expected on newer boards
+      (starting with SM8350).

I have been thinking about this for quite a while. I think this patch is
good.

With this paragraph (and the corresponding paragraph from the next item)
rephrased to remove references to 'newer boards':

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>

Great, thanks! And thank you for responding in previous discussions.

I'll remove entire "newer boards ..." part, fix the "two bitfields" and
change the name of the define QCOM_ID_MSM8996. I won't add more board
IDs yet, this can be in following up patches (not only my me).

This sounds perfect to me. Thanks a lot for your work on sorting this out!

--
With best wishes
Dmitry



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux