From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Gatien CHEVALLIER <gatien.chevallier@foss.st.com>
Cc: Rob Herring <robh@kernel.org>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"davem@davemloft.net" <davem@davemloft.net>,
"krzysztof.kozlowski+dt@linaro.org"
<krzysztof.kozlowski+dt@linaro.org>,
"conor+dt@kernel.org" <conor+dt@kernel.org>,
"alexandre.torgue@foss.st.com" <alexandre.torgue@foss.st.com>,
"vkoul@kernel.org" <vkoul@kernel.org>,
"jic23@kernel.org" <jic23@kernel.org>,
"olivier.moysan@foss.st.com" <olivier.moysan@foss.st.com>,
"arnaud.pouliquen@foss.st.com" <arnaud.pouliquen@foss.st.com>,
"mchehab@kernel.org" <mchehab@kernel.org>,
"fabrice.gasnier@foss.st.com" <fabrice.gasnier@foss.st.com>,
"andi.shyti@kernel.org" <andi.shyti@kernel.org>,
"ulf.hansson@linaro.org" <ulf.hansson@linaro.org>,
"edumazet@google.com" <edumazet@google.com>,
"kuba@kernel.org" <kuba@kernel.org>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"hugues.fruchet@foss.st.com" <hugues.fruchet@foss.st.com>,
"lee@kernel.org" <lee@kernel.org>,
"will@kernel.org" <will@kernel.org>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"arnd@kernel.org" <arnd@kernel.org>,
"richardcochran@gmail.com" <richardcochran@gmail.com>,
"linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-stm32@st-md-mailman.stormreply.com"
<linux-stm32@st-md-mailman.stormreply.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-phy@lists.infradead.org" <linux-phy@lists.infradead.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
Peng Fan <peng.fan@oss.nxp.com>
Subject: Re: [PATCH 05/10] firewall: introduce stm32_firewall framework
Date: Thu, 13 Jul 2023 14:13:26 +0000 [thread overview]
Message-ID: <87a5vzdhmv.fsf@epam.com> (raw)
In-Reply-To: <ba409196-06a1-bf2b-3536-1e1420550ff4@foss.st.com>
Hello Gatien,
Gatien CHEVALLIER <gatien.chevallier@foss.st.com> writes:
> Hello Rob,
>
> On 7/7/23 17:07, Rob Herring wrote:
>> On Fri, Jul 07, 2023 at 03:43:15PM +0200, Gatien CHEVALLIER wrote:
>>>
>>>
>>> On 7/6/23 17:09, Rob Herring wrote:
>>>> On Wed, Jul 05, 2023 at 07:27:54PM +0200, Gatien Chevallier wrote:
>>>>> Introduce a firewall framework that offers to firewall consumers different
>>>>> firewall services such as the ability to check their access rights against
>>>>> their firewall controller(s).
>>>>>
>>>>> The firewall framework offers a generic API that is defined in firewall
>>>>> controllers drivers to best fit the specificity of each firewall.
>>>>>
>>>>> There are various types of firewalls:
>>>>> -Peripheral firewalls that filter accesses to peripherals
>>>>> -Memory firewalls that filter accesses to memories or memory regions
>>>>> -Resource firewalls that filter accesses to internal resources such as
>>>>> reset and clock controllers
>>>>
>>>> How do resource firewalls work? Access to registers for some clocks in a
>>>> clock controller are disabled? Or something gates off clocks/resets to
>>>> a block?
>>>
>>> To take a practical example:
>>>
>>> A clock controller can be firewall-aware and have its own firewall registers
>>> to configure. To access a clock/reset that is handled this way, a device
>>> would need to check this "resource firewall". I thought that for these kinds
>>> of hardware blocks, having a common API would help.
>> We already have the concept of 'protected clocks' which are ones
>> controlled by secure mode which limits what Linux can do with them. I
>> think you should extend this mechanism if needed and use the existing
>> clock/reset APIs for managing resources.
>>
>
> Ok, thank you for the input. I'll remove this type of firewall for V2 as
> I no longer have a use case.
>
>>>>
>>>> It might make more sense for "resource" accesses to be managed within
>>>> those resource APIs (i.e. the clock and reset frameworks) and leave this
>>>> framework to bus accesses.
>>>>
>>>
>>> Okay, I'll drop this for V2 if you find that the above explaination do not
>>> justify this.
>>>
>>>>> A firewall controller must be probed at arch_initcall level and register
>>>>> to the framework so that consumers can use their services.
>>>>
>>>> initcall ordering hacks should not be needed. We have both deferred
>>>> probe and fw_devlinks to avoid that problem.
>>>>
>>>
>>> Greg also doubts this.
>>>
>>> Drivers like reset/clock controllers drivers (core_initcall level) will have
>>> a dependency on the firewall controllers in order to initialize their
>>> resources. I was not sure how to manage these dependencies.
>>>
>>> Now, looking at init/main.c, I've realized that core_initcall() level comes
>>> before arch_initcall() level...
>>>
>>> If managed by fw_devlink, the feature-domains property should be supported
>>> as well I suppose? I'm not sure how to handle this properly. I'd welcome
>>> your suggestion.
>> DT parent/child child dependencies are already handled which might
>> be
>> enough for you. Otherwise, adding a new provider/consumer binding is a
>> couple of lines to add the property names. See drivers/of/property.c.
>>
>
> Ok, I'll try with a modification of drivers/of/property.c as the
> parent/child dependency won't be enough. Thanks for pointing this out.
>
>>>>> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
>>>>> ---
>>>>> MAINTAINERS | 5 +
>>>>> arch/arm64/Kconfig.platforms | 1 +
>>>>> drivers/bus/Kconfig | 10 +
>>>>> drivers/bus/Makefile | 1 +
>>>>> drivers/bus/stm32_firewall.c | 252 ++++++++++++++++++++++
>>>>> drivers/bus/stm32_firewall.h | 83 +++++++
>>>>
>>>> Why something stm32 specific? We know there are multiple platforms
>>>> wanting something in this area. Wasn't the last attempt common?
>>>>
>>>> For a common binding, I'm not eager to accept anything new with only 1
>>>> user.
>>>>
>>>
>>> Last attempt was common for the feature-domain bindings. The system-bus
>>> driver was ST-specific. I don't know if other platforms needs this kind
>>> of framework. Are you suggesting that this framework should be generic? Or
>>> that this framework should have a st-specific property?
>> Ah right, the posting for SCMI device permissions was the binding
>> only.
>> The binding should be generic and support more than 1 user. That somewhat
>> implies a generic framework, but not necessarily.
>>
>>> I've oriented this firewall framework to serve ST purpose. There may be a
>>> need for other platforms but I'm not sure that this framework serves them
>>> well. One can argue that it is quite minimalist and covers basic purposes of
>>> a hardware firewall but I would need more feedback from other vendors to
>>> submit it as a generic one.
>> We already know there are at least 2 users. Why would we make the
>> 2nd
>> user refactor your driver into a common framework?
>> [...]
>>
>
> If one thinks this framework is generic enough so it can be of use for
> them, so yes, I can submit it as a common framework. I'm not that sure
> Oleksii finds a use case with it. He seemed interested by the bindings.
> Maybe I'm wrong Oleksii?
>
Correct. I'm interested only in bindings which should be processed by
the hypervisor and removed from the OS DT the Kernel running in VM wouldn't
know it exists.
> For V2, I'd rather submit it again as an ST-specific framework again to
> address the generic comments. This way, other people have time to
> manifest themselves.
>
>>>>> +int stm32_firewall_get_firewall(struct device_node *np,
[snip]
>
> Best regards,
> Gatien
--
Thanks,
Oleksii
WARNING: multiple messages have this Message-ID (diff)
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Gatien CHEVALLIER <gatien.chevallier@foss.st.com>
Cc: Rob Herring <robh@kernel.org>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"davem@davemloft.net" <davem@davemloft.net>,
"krzysztof.kozlowski+dt@linaro.org"
<krzysztof.kozlowski+dt@linaro.org>,
"conor+dt@kernel.org" <conor+dt@kernel.org>,
"alexandre.torgue@foss.st.com" <alexandre.torgue@foss.st.com>,
"vkoul@kernel.org" <vkoul@kernel.org>,
"jic23@kernel.org" <jic23@kernel.org>,
"olivier.moysan@foss.st.com" <olivier.moysan@foss.st.com>,
"arnaud.pouliquen@foss.st.com" <arnaud.pouliquen@foss.st.com>,
"mchehab@kernel.org" <mchehab@kernel.org>,
"fabrice.gasnier@foss.st.com" <fabrice.gasnier@foss.st.com>,
"andi.shyti@kernel.org" <andi.shyti@kernel.org>,
"ulf.hansson@linaro.org" <ulf.hansson@linaro.org>,
"edumazet@google.com" <edumazet@google.com>,
"kuba@kernel.org" <kuba@kernel.org>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"hugues.fruchet@foss.st.com" <hugues.fruchet@foss.st.com>,
"lee@kernel.org" <lee@kernel.org>,
"will@kernel.org" <will@kernel.org>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"arnd@kernel.org" <arnd@kernel.org>,
"richardcochran@gmail.com" <richardcochran@gmail.com>,
"linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-stm32@st-md-mailman.stormreply.com"
<linux-stm32@st-md-mailman.stormreply.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-phy@lists.infradead.org" <linux-phy@lists.infradead.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
Peng Fan <peng.fan@oss.nxp.com>
Subject: Re: [PATCH 05/10] firewall: introduce stm32_firewall framework
Date: Thu, 13 Jul 2023 14:13:26 +0000 [thread overview]
Message-ID: <87a5vzdhmv.fsf@epam.com> (raw)
In-Reply-To: <ba409196-06a1-bf2b-3536-1e1420550ff4@foss.st.com>
Hello Gatien,
Gatien CHEVALLIER <gatien.chevallier@foss.st.com> writes:
> Hello Rob,
>
> On 7/7/23 17:07, Rob Herring wrote:
>> On Fri, Jul 07, 2023 at 03:43:15PM +0200, Gatien CHEVALLIER wrote:
>>>
>>>
>>> On 7/6/23 17:09, Rob Herring wrote:
>>>> On Wed, Jul 05, 2023 at 07:27:54PM +0200, Gatien Chevallier wrote:
>>>>> Introduce a firewall framework that offers to firewall consumers different
>>>>> firewall services such as the ability to check their access rights against
>>>>> their firewall controller(s).
>>>>>
>>>>> The firewall framework offers a generic API that is defined in firewall
>>>>> controllers drivers to best fit the specificity of each firewall.
>>>>>
>>>>> There are various types of firewalls:
>>>>> -Peripheral firewalls that filter accesses to peripherals
>>>>> -Memory firewalls that filter accesses to memories or memory regions
>>>>> -Resource firewalls that filter accesses to internal resources such as
>>>>> reset and clock controllers
>>>>
>>>> How do resource firewalls work? Access to registers for some clocks in a
>>>> clock controller are disabled? Or something gates off clocks/resets to
>>>> a block?
>>>
>>> To take a practical example:
>>>
>>> A clock controller can be firewall-aware and have its own firewall registers
>>> to configure. To access a clock/reset that is handled this way, a device
>>> would need to check this "resource firewall". I thought that for these kinds
>>> of hardware blocks, having a common API would help.
>> We already have the concept of 'protected clocks' which are ones
>> controlled by secure mode which limits what Linux can do with them. I
>> think you should extend this mechanism if needed and use the existing
>> clock/reset APIs for managing resources.
>>
>
> Ok, thank you for the input. I'll remove this type of firewall for V2 as
> I no longer have a use case.
>
>>>>
>>>> It might make more sense for "resource" accesses to be managed within
>>>> those resource APIs (i.e. the clock and reset frameworks) and leave this
>>>> framework to bus accesses.
>>>>
>>>
>>> Okay, I'll drop this for V2 if you find that the above explaination do not
>>> justify this.
>>>
>>>>> A firewall controller must be probed at arch_initcall level and register
>>>>> to the framework so that consumers can use their services.
>>>>
>>>> initcall ordering hacks should not be needed. We have both deferred
>>>> probe and fw_devlinks to avoid that problem.
>>>>
>>>
>>> Greg also doubts this.
>>>
>>> Drivers like reset/clock controllers drivers (core_initcall level) will have
>>> a dependency on the firewall controllers in order to initialize their
>>> resources. I was not sure how to manage these dependencies.
>>>
>>> Now, looking at init/main.c, I've realized that core_initcall() level comes
>>> before arch_initcall() level...
>>>
>>> If managed by fw_devlink, the feature-domains property should be supported
>>> as well I suppose? I'm not sure how to handle this properly. I'd welcome
>>> your suggestion.
>> DT parent/child child dependencies are already handled which might
>> be
>> enough for you. Otherwise, adding a new provider/consumer binding is a
>> couple of lines to add the property names. See drivers/of/property.c.
>>
>
> Ok, I'll try with a modification of drivers/of/property.c as the
> parent/child dependency won't be enough. Thanks for pointing this out.
>
>>>>> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
>>>>> ---
>>>>> MAINTAINERS | 5 +
>>>>> arch/arm64/Kconfig.platforms | 1 +
>>>>> drivers/bus/Kconfig | 10 +
>>>>> drivers/bus/Makefile | 1 +
>>>>> drivers/bus/stm32_firewall.c | 252 ++++++++++++++++++++++
>>>>> drivers/bus/stm32_firewall.h | 83 +++++++
>>>>
>>>> Why something stm32 specific? We know there are multiple platforms
>>>> wanting something in this area. Wasn't the last attempt common?
>>>>
>>>> For a common binding, I'm not eager to accept anything new with only 1
>>>> user.
>>>>
>>>
>>> Last attempt was common for the feature-domain bindings. The system-bus
>>> driver was ST-specific. I don't know if other platforms needs this kind
>>> of framework. Are you suggesting that this framework should be generic? Or
>>> that this framework should have a st-specific property?
>> Ah right, the posting for SCMI device permissions was the binding
>> only.
>> The binding should be generic and support more than 1 user. That somewhat
>> implies a generic framework, but not necessarily.
>>
>>> I've oriented this firewall framework to serve ST purpose. There may be a
>>> need for other platforms but I'm not sure that this framework serves them
>>> well. One can argue that it is quite minimalist and covers basic purposes of
>>> a hardware firewall but I would need more feedback from other vendors to
>>> submit it as a generic one.
>> We already know there are at least 2 users. Why would we make the
>> 2nd
>> user refactor your driver into a common framework?
>> [...]
>>
>
> If one thinks this framework is generic enough so it can be of use for
> them, so yes, I can submit it as a common framework. I'm not that sure
> Oleksii finds a use case with it. He seemed interested by the bindings.
> Maybe I'm wrong Oleksii?
>
Correct. I'm interested only in bindings which should be processed by
the hypervisor and removed from the OS DT the Kernel running in VM wouldn't
know it exists.
> For V2, I'd rather submit it again as an ST-specific framework again to
> address the generic comments. This way, other people have time to
> manifest themselves.
>
>>>>> +int stm32_firewall_get_firewall(struct device_node *np,
[snip]
>
> Best regards,
> Gatien
--
Thanks,
Oleksii
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
WARNING: multiple messages have this Message-ID (diff)
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Gatien CHEVALLIER <gatien.chevallier@foss.st.com>
Cc: Rob Herring <robh@kernel.org>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"davem@davemloft.net" <davem@davemloft.net>,
"krzysztof.kozlowski+dt@linaro.org"
<krzysztof.kozlowski+dt@linaro.org>,
"conor+dt@kernel.org" <conor+dt@kernel.org>,
"alexandre.torgue@foss.st.com" <alexandre.torgue@foss.st.com>,
"vkoul@kernel.org" <vkoul@kernel.org>,
"jic23@kernel.org" <jic23@kernel.org>,
"olivier.moysan@foss.st.com" <olivier.moysan@foss.st.com>,
"arnaud.pouliquen@foss.st.com" <arnaud.pouliquen@foss.st.com>,
"mchehab@kernel.org" <mchehab@kernel.org>,
"fabrice.gasnier@foss.st.com" <fabrice.gasnier@foss.st.com>,
"andi.shyti@kernel.org" <andi.shyti@kernel.org>,
"ulf.hansson@linaro.org" <ulf.hansson@linaro.org>,
"edumazet@google.com" <edumazet@google.com>,
"kuba@kernel.org" <kuba@kernel.org>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"hugues.fruchet@foss.st.com" <hugues.fruchet@foss.st.com>,
"lee@kernel.org" <lee@kernel.org>,
"will@kernel.org" <will@kernel.org>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"arnd@kernel.org" <arnd@kernel.org>,
"richardcochran@gmail.com" <richardcochran@gmail.com>,
"linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-stm32@st-md-mailman.stormreply.com"
<linux-stm32@st-md-mailman.stormreply.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-phy@lists.infradead.org" <linux-phy@lists.infradead.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
Peng Fan <peng.fan@oss.nxp.com>
Subject: Re: [PATCH 05/10] firewall: introduce stm32_firewall framework
Date: Thu, 13 Jul 2023 14:13:26 +0000 [thread overview]
Message-ID: <87a5vzdhmv.fsf@epam.com> (raw)
In-Reply-To: <ba409196-06a1-bf2b-3536-1e1420550ff4@foss.st.com>
Hello Gatien,
Gatien CHEVALLIER <gatien.chevallier@foss.st.com> writes:
> Hello Rob,
>
> On 7/7/23 17:07, Rob Herring wrote:
>> On Fri, Jul 07, 2023 at 03:43:15PM +0200, Gatien CHEVALLIER wrote:
>>>
>>>
>>> On 7/6/23 17:09, Rob Herring wrote:
>>>> On Wed, Jul 05, 2023 at 07:27:54PM +0200, Gatien Chevallier wrote:
>>>>> Introduce a firewall framework that offers to firewall consumers different
>>>>> firewall services such as the ability to check their access rights against
>>>>> their firewall controller(s).
>>>>>
>>>>> The firewall framework offers a generic API that is defined in firewall
>>>>> controllers drivers to best fit the specificity of each firewall.
>>>>>
>>>>> There are various types of firewalls:
>>>>> -Peripheral firewalls that filter accesses to peripherals
>>>>> -Memory firewalls that filter accesses to memories or memory regions
>>>>> -Resource firewalls that filter accesses to internal resources such as
>>>>> reset and clock controllers
>>>>
>>>> How do resource firewalls work? Access to registers for some clocks in a
>>>> clock controller are disabled? Or something gates off clocks/resets to
>>>> a block?
>>>
>>> To take a practical example:
>>>
>>> A clock controller can be firewall-aware and have its own firewall registers
>>> to configure. To access a clock/reset that is handled this way, a device
>>> would need to check this "resource firewall". I thought that for these kinds
>>> of hardware blocks, having a common API would help.
>> We already have the concept of 'protected clocks' which are ones
>> controlled by secure mode which limits what Linux can do with them. I
>> think you should extend this mechanism if needed and use the existing
>> clock/reset APIs for managing resources.
>>
>
> Ok, thank you for the input. I'll remove this type of firewall for V2 as
> I no longer have a use case.
>
>>>>
>>>> It might make more sense for "resource" accesses to be managed within
>>>> those resource APIs (i.e. the clock and reset frameworks) and leave this
>>>> framework to bus accesses.
>>>>
>>>
>>> Okay, I'll drop this for V2 if you find that the above explaination do not
>>> justify this.
>>>
>>>>> A firewall controller must be probed at arch_initcall level and register
>>>>> to the framework so that consumers can use their services.
>>>>
>>>> initcall ordering hacks should not be needed. We have both deferred
>>>> probe and fw_devlinks to avoid that problem.
>>>>
>>>
>>> Greg also doubts this.
>>>
>>> Drivers like reset/clock controllers drivers (core_initcall level) will have
>>> a dependency on the firewall controllers in order to initialize their
>>> resources. I was not sure how to manage these dependencies.
>>>
>>> Now, looking at init/main.c, I've realized that core_initcall() level comes
>>> before arch_initcall() level...
>>>
>>> If managed by fw_devlink, the feature-domains property should be supported
>>> as well I suppose? I'm not sure how to handle this properly. I'd welcome
>>> your suggestion.
>> DT parent/child child dependencies are already handled which might
>> be
>> enough for you. Otherwise, adding a new provider/consumer binding is a
>> couple of lines to add the property names. See drivers/of/property.c.
>>
>
> Ok, I'll try with a modification of drivers/of/property.c as the
> parent/child dependency won't be enough. Thanks for pointing this out.
>
>>>>> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
>>>>> ---
>>>>> MAINTAINERS | 5 +
>>>>> arch/arm64/Kconfig.platforms | 1 +
>>>>> drivers/bus/Kconfig | 10 +
>>>>> drivers/bus/Makefile | 1 +
>>>>> drivers/bus/stm32_firewall.c | 252 ++++++++++++++++++++++
>>>>> drivers/bus/stm32_firewall.h | 83 +++++++
>>>>
>>>> Why something stm32 specific? We know there are multiple platforms
>>>> wanting something in this area. Wasn't the last attempt common?
>>>>
>>>> For a common binding, I'm not eager to accept anything new with only 1
>>>> user.
>>>>
>>>
>>> Last attempt was common for the feature-domain bindings. The system-bus
>>> driver was ST-specific. I don't know if other platforms needs this kind
>>> of framework. Are you suggesting that this framework should be generic? Or
>>> that this framework should have a st-specific property?
>> Ah right, the posting for SCMI device permissions was the binding
>> only.
>> The binding should be generic and support more than 1 user. That somewhat
>> implies a generic framework, but not necessarily.
>>
>>> I've oriented this firewall framework to serve ST purpose. There may be a
>>> need for other platforms but I'm not sure that this framework serves them
>>> well. One can argue that it is quite minimalist and covers basic purposes of
>>> a hardware firewall but I would need more feedback from other vendors to
>>> submit it as a generic one.
>> We already know there are at least 2 users. Why would we make the
>> 2nd
>> user refactor your driver into a common framework?
>> [...]
>>
>
> If one thinks this framework is generic enough so it can be of use for
> them, so yes, I can submit it as a common framework. I'm not that sure
> Oleksii finds a use case with it. He seemed interested by the bindings.
> Maybe I'm wrong Oleksii?
>
Correct. I'm interested only in bindings which should be processed by
the hypervisor and removed from the OS DT the Kernel running in VM wouldn't
know it exists.
> For V2, I'd rather submit it again as an ST-specific framework again to
> address the generic comments. This way, other people have time to
> manifest themselves.
>
>>>>> +int stm32_firewall_get_firewall(struct device_node *np,
[snip]
>
> Best regards,
> Gatien
--
Thanks,
Oleksii
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-07-13 15:16 UTC|newest]
Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-05 17:27 [PATCH 00/10] Introduce STM32 Firewall framework Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` [IGNORE][PATCH 01/10] dt-bindings: Document common device controller bindings Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 19:39 ` Rob Herring
2023-07-05 19:39 ` Rob Herring
2023-07-05 19:39 ` Rob Herring
2023-07-05 17:27 ` [PATCH 02/10] dt-bindings: bus: add device tree bindings for RIFSC Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 19:39 ` Rob Herring
2023-07-05 19:39 ` Rob Herring
2023-07-05 19:39 ` Rob Herring
2023-07-06 6:28 ` Krzysztof Kozlowski
2023-07-06 6:28 ` Krzysztof Kozlowski
2023-07-06 6:28 ` Krzysztof Kozlowski
2023-07-06 9:29 ` Gatien CHEVALLIER
2023-07-06 9:29 ` Gatien CHEVALLIER
2023-07-06 9:29 ` Gatien CHEVALLIER
2023-07-20 14:58 ` Gatien CHEVALLIER
2023-07-20 14:58 ` Gatien CHEVALLIER
2023-07-20 14:58 ` Gatien CHEVALLIER
2023-07-05 17:27 ` [PATCH 03/10] dt-bindings: bus: add device tree bindings for ETZPC Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 19:39 ` Rob Herring
2023-07-05 19:39 ` Rob Herring
2023-07-05 19:39 ` Rob Herring
2023-07-05 17:27 ` [PATCH 04/10] dt-bindings: treewide: add feature-domains description in binding files Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-06 14:51 ` Rob Herring
2023-07-06 14:51 ` Rob Herring
2023-07-06 14:51 ` Rob Herring
2023-07-07 12:28 ` Gatien CHEVALLIER
2023-07-07 12:28 ` Gatien CHEVALLIER
2023-07-07 12:28 ` Gatien CHEVALLIER
2023-07-07 15:20 ` Rob Herring
2023-07-07 15:20 ` Rob Herring
2023-07-07 15:20 ` Rob Herring
2023-07-10 8:22 ` Gatien CHEVALLIER
2023-07-10 8:22 ` Gatien CHEVALLIER
2023-07-10 8:22 ` Gatien CHEVALLIER
2023-07-10 14:42 ` Rob Herring
2023-07-10 14:42 ` Rob Herring
2023-07-10 14:42 ` Rob Herring
2023-07-07 14:07 ` Oleksii Moisieiev
2023-07-07 14:07 ` Oleksii Moisieiev
2023-07-07 14:07 ` Oleksii Moisieiev
2023-07-07 15:26 ` Gatien CHEVALLIER
2023-07-07 15:26 ` Gatien CHEVALLIER
2023-07-07 15:26 ` Gatien CHEVALLIER
2023-07-07 15:27 ` Rob Herring
2023-07-07 15:27 ` Rob Herring
2023-07-07 15:27 ` Rob Herring
2023-07-07 16:10 ` Oleksii Moisieiev
2023-07-07 16:10 ` Oleksii Moisieiev
2023-07-07 16:10 ` Oleksii Moisieiev
2023-07-07 20:33 ` Rob Herring
2023-07-07 20:33 ` Rob Herring
2023-07-07 20:33 ` Rob Herring
2023-07-10 6:27 ` Oleksii Moisieiev
2023-07-10 6:27 ` Oleksii Moisieiev
2023-07-10 6:27 ` Oleksii Moisieiev
2023-07-05 17:27 ` [PATCH 05/10] firewall: introduce stm32_firewall framework Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-06 15:09 ` Rob Herring
2023-07-06 15:09 ` Rob Herring
2023-07-06 15:09 ` Rob Herring
2023-07-07 13:43 ` Gatien CHEVALLIER
2023-07-07 13:43 ` Gatien CHEVALLIER
2023-07-07 13:43 ` Gatien CHEVALLIER
2023-07-07 15:07 ` Rob Herring
2023-07-07 15:07 ` Rob Herring
2023-07-07 15:07 ` Rob Herring
2023-07-13 13:58 ` Gatien CHEVALLIER
2023-07-13 13:58 ` Gatien CHEVALLIER
2023-07-13 13:58 ` Gatien CHEVALLIER
2023-07-13 14:13 ` Oleksii Moisieiev [this message]
2023-07-13 14:13 ` Oleksii Moisieiev
2023-07-13 14:13 ` Oleksii Moisieiev
2023-07-07 10:37 ` Greg KH
2023-07-07 10:37 ` Greg KH
2023-07-07 10:37 ` Greg KH
2023-07-07 14:00 ` Gatien CHEVALLIER
2023-07-07 14:00 ` Gatien CHEVALLIER
2023-07-07 14:00 ` Gatien CHEVALLIER
2023-07-07 15:10 ` Greg KH
2023-07-07 15:10 ` Greg KH
2023-07-07 15:10 ` Greg KH
2023-07-07 15:44 ` Gatien CHEVALLIER
2023-07-07 15:44 ` Gatien CHEVALLIER
2023-07-07 15:44 ` Gatien CHEVALLIER
2023-07-07 13:50 ` Oleksii Moisieiev
2023-07-07 13:50 ` Oleksii Moisieiev
2023-07-07 13:50 ` Oleksii Moisieiev
2023-07-07 15:01 ` Gatien CHEVALLIER
2023-07-07 15:01 ` Gatien CHEVALLIER
2023-07-07 15:01 ` Gatien CHEVALLIER
2023-07-07 16:01 ` Oleksii Moisieiev
2023-07-07 16:01 ` Oleksii Moisieiev
2023-07-07 16:01 ` Oleksii Moisieiev
2023-07-05 17:27 ` [PATCH 06/10] bus: rifsc: introduce RIFSC firewall controller driver Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` [PATCH 07/10] arm64: dts: st: add RIFSC as a domain controller for STM32MP25x boards Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-06 9:25 ` Alexandre TORGUE
2023-07-06 9:25 ` Alexandre TORGUE
2023-07-06 9:25 ` Alexandre TORGUE
2023-07-06 9:30 ` Gatien CHEVALLIER
2023-07-06 9:30 ` Gatien CHEVALLIER
2023-07-06 9:30 ` Gatien CHEVALLIER
2023-07-25 14:07 ` Gatien CHEVALLIER
2023-07-25 14:07 ` Gatien CHEVALLIER
2023-07-05 17:27 ` [PATCH 08/10] bus: etzpc: introduce ETZPC firewall controller driver Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` [PATCH 09/10] ARM: dts: stm32: add ETZPC as a system bus for STM32MP15x boards Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` [PATCH 10/10] ARM: dts: stm32: add ETZPC as a system bus for STM32MP13x boards Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
2023-07-05 17:27 ` Gatien Chevallier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a5vzdhmv.fsf@epam.com \
--to=oleksii_moisieiev@epam.com \
--cc=alexandre.torgue@foss.st.com \
--cc=alsa-devel@alsa-project.org \
--cc=andi.shyti@kernel.org \
--cc=arnaud.pouliquen@foss.st.com \
--cc=arnd@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=edumazet@google.com \
--cc=fabrice.gasnier@foss.st.com \
--cc=gatien.chevallier@foss.st.com \
--cc=gregkh@linuxfoundation.org \
--cc=herbert@gondor.apana.org.au \
--cc=hugues.fruchet@foss.st.com \
--cc=jic23@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=lee@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux-usb@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=olivier.moysan@foss.st.com \
--cc=pabeni@redhat.com \
--cc=peng.fan@oss.nxp.com \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=ulf.hansson@linaro.org \
--cc=vkoul@kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.