* [PATCH v4 0/1] dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for MT8188
@ 2026-05-20 11:26 Arnab Layek
2026-05-20 11:26 ` [PATCH v4 1/1] " Arnab Layek
0 siblings, 1 reply; 3+ messages in thread
From: Arnab Layek @ 2026-05-20 11:26 UTC (permalink / raw)
To: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek
Cc: robh, krzk+dt, conor+dt, matthias.bgg, angelogioacchino.delregno,
andersson, mathieu.poirier, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, Arnab Layek
This patch updates the mtk,scp dt-binding schema to support MT8188's
requirement for 1-2 memory regions while maintaining strict backward
compatibility for other MediaTek SoCs.
The MT8188 SCP requires a main SRAM region and optionally supports an
L1TCM (Level 1 Tightly Coupled Memory) region for performance
optimization. L1TCM is optional because basic SCP functionality works
with only SRAM, but L1TCM provides faster memory access when the board
hardware configuration includes it.
The base schema uses minItems: 1, maxItems: 2 (permissive range),
following the pattern established in other MediaTek dt-bindings like
mediatek,vcodec-encoder.yaml where the base accommodates all variants.
Conditionals then narrow the constraints per device.
Changes in v4:
- Improved commit message clarity per kernel submission guidelines:
* Added bullet-point explanation of the two memory regions
* Explained WHY L1TCM is optional (performance optimization, not
required for basic functionality)
* Explicitly listed which SoCs remain single-region
* Clarified the two-conditional approach
* Explained how minItems: 1 allows board-specific configuration
- Cover letter updated to explain L1TCM optional reasoning
Changes in v3:
- Removed "Tested on..." line (bindings cannot be tested)
- Added minItems: 1 to MT8188 conditional to make L1TCM truly optional
- Referenced mediatek,vcodec-encoder.yaml iommus pattern explicitly
- Base schema: minItems: 1, maxItems: 2 (permissive range)
- Non-MT8188: explicitly restricted to maxItems: 1
- MT8188: documented with item descriptions for both regions
Changes in v2:
- Added conditional schema for MT8188 to allow 1-2 memory regions
- Added descriptions for each memory region
- Did not work: base maxItems: 1 conflicted with conditional
Arnab Layek (1):
dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for
MT8188
.../bindings/remoteproc/mtk,scp.yaml | 45 ++++++++++++++++++-
1 file changed, 43 insertions(+), 2 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH v4 1/1] dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for MT8188 2026-05-20 11:26 [PATCH v4 0/1] dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for MT8188 Arnab Layek @ 2026-05-20 11:26 ` Arnab Layek 2026-05-21 20:26 ` Conor Dooley 0 siblings, 1 reply; 3+ messages in thread From: Arnab Layek @ 2026-05-20 11:26 UTC (permalink / raw) To: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek Cc: robh, krzk+dt, conor+dt, matthias.bgg, angelogioacchino.delregno, andersson, mathieu.poirier, linux-remoteproc, Project_Global_Chrome_Upstream_Group, Arnab Layek The MT8188 SCP can use either one or two reserved memory regions: - Required: Main SCP SRAM memory region (mandatory for SCP operation) - Optional: SCP L1TCM memory region (Level 1 Tightly Coupled Memory, used for performance optimization when available, but not required for basic SCP functionality) Other MediaTek SoCs (MT8183, MT8186, MT8192, MT8195) use only a single memory region and must remain restricted to one region for backward compatibility. Update the base schema to allow 1-2 memory regions (minItems: 1, maxItems: 2), following the pattern used by other MediaTek dt-bindings like mediatek,vcodec-encoder.yaml where the base property defines a permissive range accommodating all device variants. Add two conditionals: 1. Explicitly restrict non-MT8188 devices to maxItems: 1 2. Document MT8188's two regions with descriptions (minItems: 1 makes the L1TCM region optional, allowing boards to specify 1-2 regions based on hardware configuration) This approach maintains backward compatibility while enabling MT8188 to specify 1-2 memory regions depending on board design and performance requirements. Signed-off-by: Arnab Layek <arnab.layek@mediatek.com> --- .../bindings/remoteproc/mtk,scp.yaml | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml index bdbb12118da4..fca9b0675eae 100644 --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml @@ -55,7 +55,8 @@ properties: initializing SCP. memory-region: - maxItems: 1 + minItems: 1 + maxItems: 2 cros-ec-rpmsg: $ref: /schemas/embedded-controller/google,cros-ec.yaml @@ -123,7 +124,8 @@ patternProperties: initializing sub cores of multi-core SCP. memory-region: - maxItems: 1 + minItems: 1 + maxItems: 2 cros-ec-rpmsg: $ref: /schemas/embedded-controller/google,cros-ec.yaml @@ -205,6 +207,45 @@ allOf: items: - const: cfg - const: l1tcm + - if: + properties: + compatible: + enum: + - mediatek,mt8183-scp + - mediatek,mt8186-scp + - mediatek,mt8192-scp + - mediatek,mt8195-scp + - mediatek,mt8195-scp-dual + then: + properties: + memory-region: + maxItems: 1 + patternProperties: + "^scp@[a-f0-9]+$": + properties: + memory-region: + maxItems: 1 + - if: + properties: + compatible: + enum: + - mediatek,mt8188-scp + - mediatek,mt8188-scp-dual + then: + properties: + memory-region: + minItems: 1 + items: + - description: Main SCP SRAM memory region + - description: Optional SCP L1TCM memory region + patternProperties: + "^scp@[a-f0-9]+$": + properties: + memory-region: + minItems: 1 + items: + - description: Main SCP SRAM memory region + - description: Optional SCP L1TCM memory region additionalProperties: false -- 2.45.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v4 1/1] dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for MT8188 2026-05-20 11:26 ` [PATCH v4 1/1] " Arnab Layek @ 2026-05-21 20:26 ` Conor Dooley 0 siblings, 0 replies; 3+ messages in thread From: Conor Dooley @ 2026-05-21 20:26 UTC (permalink / raw) To: Arnab Layek Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, robh, krzk+dt, conor+dt, matthias.bgg, angelogioacchino.delregno, andersson, mathieu.poirier, linux-remoteproc, Project_Global_Chrome_Upstream_Group [-- Attachment #1: Type: text/plain, Size: 3781 bytes --] On Wed, May 20, 2026 at 07:26:29PM +0800, Arnab Layek wrote: > The MT8188 SCP can use either one or two reserved memory regions: > - Required: Main SCP SRAM memory region (mandatory for SCP operation) > - Optional: SCP L1TCM memory region (Level 1 Tightly Coupled Memory, > used for performance optimization when available, but not required > for basic SCP functionality) > > Other MediaTek SoCs (MT8183, MT8186, MT8192, MT8195) use only a single > memory region and must remain restricted to one region for backward > compatibility. > > Update the base schema to allow 1-2 memory regions (minItems: 1, > maxItems: 2), following the pattern used by other MediaTek dt-bindings > like mediatek,vcodec-encoder.yaml where the base property defines a > permissive range accommodating all device variants. > > Add two conditionals: > 1. Explicitly restrict non-MT8188 devices to maxItems: 1 > 2. Document MT8188's two regions with descriptions (minItems: 1 makes > the L1TCM region optional, allowing boards to specify 1-2 regions > based on hardware configuration) > > This approach maintains backward compatibility while enabling MT8188 to > specify 1-2 memory regions depending on board design and performance > requirements. > > Signed-off-by: Arnab Layek <arnab.layek@mediatek.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> pw-bot: not-applicable Cheers, Conor. > --- > .../bindings/remoteproc/mtk,scp.yaml | 45 ++++++++++++++++++- > 1 file changed, 43 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > index bdbb12118da4..fca9b0675eae 100644 > --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > @@ -55,7 +55,8 @@ properties: > initializing SCP. > > memory-region: > - maxItems: 1 > + minItems: 1 > + maxItems: 2 > > cros-ec-rpmsg: > $ref: /schemas/embedded-controller/google,cros-ec.yaml > @@ -123,7 +124,8 @@ patternProperties: > initializing sub cores of multi-core SCP. > > memory-region: > - maxItems: 1 > + minItems: 1 > + maxItems: 2 > > cros-ec-rpmsg: > $ref: /schemas/embedded-controller/google,cros-ec.yaml > @@ -205,6 +207,45 @@ allOf: > items: > - const: cfg > - const: l1tcm > + - if: > + properties: > + compatible: > + enum: > + - mediatek,mt8183-scp > + - mediatek,mt8186-scp > + - mediatek,mt8192-scp > + - mediatek,mt8195-scp > + - mediatek,mt8195-scp-dual > + then: > + properties: > + memory-region: > + maxItems: 1 > + patternProperties: > + "^scp@[a-f0-9]+$": > + properties: > + memory-region: > + maxItems: 1 > + - if: > + properties: > + compatible: > + enum: > + - mediatek,mt8188-scp > + - mediatek,mt8188-scp-dual > + then: > + properties: > + memory-region: > + minItems: 1 > + items: > + - description: Main SCP SRAM memory region > + - description: Optional SCP L1TCM memory region > + patternProperties: > + "^scp@[a-f0-9]+$": > + properties: > + memory-region: > + minItems: 1 > + items: > + - description: Main SCP SRAM memory region > + - description: Optional SCP L1TCM memory region > > additionalProperties: false > > -- > 2.45.2 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-21 20:26 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-20 11:26 [PATCH v4 0/1] dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for MT8188 Arnab Layek 2026-05-20 11:26 ` [PATCH v4 1/1] " Arnab Layek 2026-05-21 20:26 ` Conor Dooley
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox