On 21/02/2022 22:39, Oleksii Moisieiev wrote: > Hi Krzysztof, > > On Mon, Feb 21, 2022 at 10:01:43PM +0100, Krzysztof Kozlowski wrote: >> On 21/02/2022 18:26, Oleksii Moisieiev wrote: >>> Introducing new parameter called scmi_devid to the device-tree bindings. >>> This parameter should be set for the device nodes, which has >>> clocks/power-domains/resets working through SCMI. >>> Given parameter should set the device_id, needed to set device >>> permissions in the Firmware. This feature will be extremely useful for >>> the virtualized systems, which has more that one Guests running on the >>> system at the same time or for the syestems, which require several >>> agents with different permissions. Trusted agent will use scmi_devid to >>> set the Device permissions for the Firmware (See Section 4.2.2.10 [0] >>> for details). >>> Agents concept is described in Section 4.2.1 [0]. >>> >>> scmi_devid in Device-tree node example: >>> usb@e6590000 >>> { >>> scmi_devid = <19>; >>> clocks = <&scmi_clock 3>, <&scmi_clock 2>; >>> resets = <&scmi_reset 10>, <&scmi_reset 9>; >>> power-domains = <&scmi_power 0>; >>> }; >> >> And how do you prevent DT overlay adding such devid to any other node >> thus allowing any other device to send requests with given devid? >> > Thank you for the quick response. > scmi_devid value will be used only by Trusted Agent when the device > permissions are set. Non-trusted agents, which in our case are > represented as Guest OS are using scmi drivers, already present in linux > kernel, ignores scmi_devid and uses scmi_clocks, scmi_power, scmi_reset > nodes to access to SCMI protocol. Ah, ok. > >> Plus few technicalities: >> 1. Hyphen, not underscore in property name, so scmi-devid. > > Thanks for the tip, I will change that in v2. Few more thoughts: 1. This looks specific to ARM SCMI, so you also need vendor prefix, so something like: arm,scmi-devid arm,scmi-device-id 2. Does your example work properly? Passes dt_binding_check? Reg looks different than unit-address. > >> 2. Your schema does is not selected by anything. How is it intended to >> be used? Nothing is including it, either... >> > > The idea is to use this parameter to set the device_id for the device in > the device-tree, which matches to the device mapping in the Firmware, so > Trusted Agent can use it to the device permissions. > Please see Sections 4.2.2.10 and 4.2.1 [0] (Link was provided in the > cover letter). > > I'm currently propose the new feature, called SCI mediator to Xen-devel > community. Please see link [1] from cover letter for the details. > In this feature - Xen is the Trusted Agent, which uses scmi_devid > parameter to set the device permissions. > We think that this parameter will be useful for other possible SCMI > implementations, such as other hypervisor or SCMI backend server etc. We talk about different things, I think. I was asking how is this schema selected? I gave it a fast try (dtbs_check) and it confirmed - schema does not have an effect. It's a noop. You need something like "select: true", see: Documentation/devicetree/bindings/nvmem/nvmem-consumer.yaml or this schema should be included by other schemas... but then I would be happy to see actual usage in this patchset (more commits...). Best regards, Krzysztof