On 05/09/2024 09:15, Jan Kiszka wrote: > 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 There is nothing like that in that example. https://elixir.bootlin.com/linux/v6.8/source/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml#L44 > + > 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 Neither this. Each case MUST be covered, look: https://elixir.bootlin.com/linux/v6.8/source/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml#L191 > - > 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? follow the example. You do it entirely different so you have different result. Code works deterministically. Best regards, Krzysztof