On 05.09.24 08:53, Krzysztof Kozlowski wrote: > On 05/09/2024 08:40, Jan Kiszka wrote: >> On 05.09.24 08:32, Krzysztof Kozlowski wrote: >>> On Wed, Sep 04, 2024 at 12:00:11PM +0200, Jan Kiszka wrote: >>>> From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> >>>> >>>> The PVU on the AM65 SoC is capable of restricting DMA from PCIe devices >>>> to specific regions of host memory. Add the optional property >>>> "memory-regions" to point to such regions of memory when PVU is used. >>>> >>>> Since the PVU deals with system physical addresses, utilizing the PVU >>>> with PCIe devices also requires setting up the VMAP registers to map the >>>> Requester ID of the PCIe device to the CBA Virtual ID, which in turn is >>>> mapped to the system physical address. Hence, describe the VMAP >>>> registers which are optionally unless the PVU shall used for PCIe. >>>> >>>> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> >>>> --- >>>> CC: Lorenzo Pieralisi <lpieralisi@xxxxxxxxxx> >>>> CC: "Krzysztof Wilczyński" <kw@xxxxxxxxx> >>>> CC: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> >>>> CC: linux-pci@xxxxxxxxxxxxxxx >>>> --- >>>> .../bindings/pci/ti,am65-pci-host.yaml | 52 ++++++++++++++----- >>>> 1 file changed, 40 insertions(+), 12 deletions(-) >>>> >>>> diff --git a/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml b/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml >>>> index 0a9d10532cc8..d8182bad92de 100644 >>>> --- a/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml >>>> +++ b/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml >>>> @@ -19,16 +19,6 @@ properties: >>>> - ti,am654-pcie-rc >>>> - ti,keystone-pcie >>>> >>>> - reg: >>>> - maxItems: 4 >>>> - >>>> - reg-names: >>>> - items: >>>> - - const: app >>>> - - const: dbics >>>> - - const: config >>>> - - const: atu >>> >>> >>> Nothing improved here. >> >> Yes, explained the background to you. Sorry, if you do not address my >> replies, I'm lost with your feedback. > > My magic ball could not figure out the problem, so did not provide the > answer. > > I gave you the exact code which illustrates how to do it. If you do it > that way: it works. If you do it other way: it might not work. However The link you provided was unfortunately not self-explanatory because if I - apparently - do it like that example, I'm getting the errors below. > without seeing anything, magic ball was silent, so I am not > participating in game: would you be so kind to give more information so > I won't waste my day in asking what is wrong. With my patch: # make ... dtbs_check DTC [C] arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtb DTC [C] arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-pg2.dtb DTC [C] arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dtb DTC [C] arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-m2.dtb OVL [C] arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie.dtb OVL [C] arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-m2-bkey-usb3.dtb DTC [C] arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-pg2.dtb DTC [C] arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-sm.dtb DTC [C] arch/arm64/boot/dts/ti/k3-am654-base-board.dtb With this revert on top: diff --git a/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml b/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml index d8182bad92de..dd753dae24c6 100644 --- a/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml +++ b/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml @@ -19,6 +19,16 @@ properties: - ti,am654-pcie-rc - ti,keystone-pcie + reg: + maxItems: 4 + + reg-names: + items: + - const: app + - const: dbics + - const: config + - const: atu + interrupts: maxItems: 1 @@ -104,18 +114,6 @@ then: - msi-map - num-viewport -else: - properties: - reg: - maxItems: 4 - - reg-names: - items: - - const: app - - const: dbics - - const: config - - const: atu - unevaluatedProperties: false examples: # make ... dtbs_check DTC [C] arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtb .../arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtb: pcie@5500000: reg: [[0, 89128960, 0, 4096], [0, 89133056, 0, 4096], [0, 268435456, 0, 8192], [0, 89153536, 0, 4096], [0, 42991616, 0, 4096], [0, 43024384, 0, 4096]] is too long from schema $id: http://devicetree.org/schemas/pci/ti,am65-pci-host.yaml# .../arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtb: pcie@5500000: reg-names: ['app', 'dbics', 'config', 'atu', 'vmap_lp', 'vmap_hp'] is too long from schema $id: http://devicetree.org/schemas/pci/ti,am65-pci-host.yaml# .../arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtb: pcie@5600000: reg: [[0, 90177536, 0, 4096], [0, 90181632, 0, 4096], [0, 402653184, 0, 8192], [0, 90202112, 0, 4096], [0, 43057152, 0, 4096], [0, 43089920, 0, 4096]] is too long from schema $id: http://devicetree.org/schemas/pci/ti,am65-pci-host.yaml# .../arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtb: pcie@5600000: reg-names: ['app', 'dbics', 'config', 'atu', 'vmap_lp', 'vmap_hp'] is too long from schema $id: http://devicetree.org/schemas/pci/ti,am65-pci-host.yaml# DTC [C] arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-pg2.dtb ... Which magic dtschema spell am I missing to make this work like you suggest? Jan -- Siemens AG, Technology Linux Expert Center