On 14/11/2022 18:48, Alex Elder wrote: > On 11/14/22 03:56, Krzysztof Kozlowski wrote: >> On 12/11/2022 21:07, Alex Elder wrote: >>> GSI firmware for IPA must be loaded during initialization, either by >>> the AP or by the modem. The loader is currently specified based on >>> whether the Boolean modem-init property is present. >>> >>> Instead, use a new property with an enumerated value to indicate >>> explicitly how GSI firmware gets loaded. With this in place, a >>> third approach can be added in an upcoming patch. >>> >>> The new qcom,gsi-loader property has two defined values: >>> - self: The AP loads GSI firmware >>> - modem: The modem loads GSI firmware >>> The modem-init property must still be supported, but is now marked >>> deprecated. >>> >>> Signed-off-by: Alex Elder <elder@xxxxxxxxxx> >>> --- >>> .../devicetree/bindings/net/qcom,ipa.yaml | 59 +++++++++++++++---- >>> 1 file changed, 46 insertions(+), 13 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/net/qcom,ipa.yaml b/Documentation/devicetree/bindings/net/qcom,ipa.yaml >>> index e752b76192df0..0dfd6c721e045 100644 >>> --- a/Documentation/devicetree/bindings/net/qcom,ipa.yaml >>> +++ b/Documentation/devicetree/bindings/net/qcom,ipa.yaml >>> @@ -124,12 +124,22 @@ properties: >>> - const: ipa-clock-enabled-valid >>> - const: ipa-clock-enabled >>> >>> + qcom,gsi-loader: >>> + enum: >>> + - self >>> + - modem >>> + description: >>> + This indicates how GSI firmware should be loaded. If the AP loads >> >> s/This indicates/Indicate/ >> (or any other grammar without describing DT syntax but hardware/system) > > OK. > >>> + and validates GSI firmware, this property has value "self". If the >>> + modem does this, this property has value "modem". >>> + >>> modem-init: >>> + deprecated: true >>> type: boolean >>> description: >>> - If present, it indicates that the modem is responsible for >>> - performing early IPA initialization, including loading and >>> - validating firwmare used by the GSI. >>> + This is the older (deprecated) way of indicating how GSI firmware >>> + should be loaded. If present, the modem loads GSI firmware; if >>> + absent, the AP loads GSI firmware. >>> >>> memory-region: >>> maxItems: 1 >>> @@ -155,15 +165,36 @@ required: >>> - interconnects >>> - qcom,smem-states >>> >>> -# If modem-init is not present, the AP loads GSI firmware, and >>> -# memory-region must be specified >>> -if: >>> - not: >>> - required: >>> - - modem-init >>> -then: >>> - required: >>> - - memory-region >>> +allOf: >>> + # If qcom,gsi-loader is present, modem-init must not be present >>> + - if: >>> + required: >>> + - qcom,gsi-loader >>> + then: >>> + properties: >>> + modem-init: false >> >> This is ok, but will not allow you to keep deprecated property in DTS >> for the transition period. We talked about this that you need to keep >> both or wait few cycles before applying DTS cleanups. > > My intention is expressed in the comment. Is it because of the > "if .... required ... qcom,gsi-loader"? > > Should it be "if ... properties ... qcom,gsi-loader"? You disallow modem-init here, so it cannot be present in DTS if gsi-loader is present. Therefore the deprecated case like this: qcom,gsi-loader = "modem" modem-init; is not allowed by the schema. As I said, it is fine, but your DTS should wait a cycle. Best regards, Krzysztof