* [PATCH v2 0/3] Add TI K3 HSM M4F nodes in device-tree
@ 2026-01-06 10:47 Beleswar Padhi
2026-01-06 10:47 ` [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs Beleswar Padhi
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Beleswar Padhi @ 2026-01-06 10:47 UTC (permalink / raw)
To: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, nm, vigneshr,
kristo
Cc: afd, u-kumar1, hnagalla, b-padhi, linux-remoteproc, devicetree,
linux-kernel, linux-arm-kernel
Some of the TI K3 family of SoCs (like J721S2, J784S4, J722S) have a
HSM (High Security Module) M4F core in the Wakeup Voltage Domain which
could be used to run secure services like Authentication. Add the device
tree bindings and device-tree node definitions for this HSM M4F core.
The HSM M4 core is typically booted early from the bootloader and the
driver for the same is posted in U-Boot mailing list[0].
v2: Changelog:
[Krzysztof Kozlowski]:
In [PATCH v2 1/3]
1. Update commit msg to remove redundant "bindings".
2. Update filename to match compatible.
3. Remove "address-cells" & "size-cells" property. These belong to the
device's parent node.
4. Drop description from firmware-name property.
5. Fix indentation for DT example.
Link to v1:
https://lore.kernel.org/all/20251231165102.950644-1-b-padhi@ti.com/
[0]: https://lore.kernel.org/all/20251231173621.1069988-1-b-padhi@ti.com/
Beleswar Padhi (3):
dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs
arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node
arm64: dts: ti: k3-am62p-j722s-common-main: Add HSM M4F node
.../bindings/remoteproc/ti,hsm-m4fss.yaml | 72 +++++++++++++++++++
.../dts/ti/k3-am62p-j722s-common-main.dtsi | 15 ++++
arch/arm64/boot/dts/ti/k3-am62p.dtsi | 1 +
.../boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 15 ++++
arch/arm64/boot/dts/ti/k3-j722s.dtsi | 1 +
.../k3-j784s4-j742s2-mcu-wakeup-common.dtsi | 15 ++++
6 files changed, 119 insertions(+)
create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs 2026-01-06 10:47 [PATCH v2 0/3] Add TI K3 HSM M4F nodes in device-tree Beleswar Padhi @ 2026-01-06 10:47 ` Beleswar Padhi 2026-01-07 8:02 ` Krzysztof Kozlowski 2026-01-07 15:35 ` Mathieu Poirier 2026-01-06 10:47 ` [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node Beleswar Padhi 2026-01-06 10:47 ` [PATCH v2 3/3] arm64: dts: ti: k3-am62p-j722s-common-main: " Beleswar Padhi 2 siblings, 2 replies; 9+ messages in thread From: Beleswar Padhi @ 2026-01-06 10:47 UTC (permalink / raw) To: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, nm, vigneshr, kristo Cc: afd, u-kumar1, hnagalla, b-padhi, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel Some of the TI K3 family of SoCs have a HSM (High Security Module) M4F core in the Wakeup Voltage Domain which could be used to run secure services like Authentication. Add the device tree bindings document for this HSM M4F core. The added example illustrates the DT node for the HSM core present on K3 J722S SoC. Signed-off-by: Beleswar Padhi <b-padhi@ti.com> --- v2: Changelog: [Krzysztof Kozlowski]: 1. Update commit msg to remove redundant "bindings". 2. Update filename to match compatible. 3. Remove "address-cells" & "size-cells" property. These belong to the device's parent node. 4. Drop description from firmware-name property. 5. Fix indentation for DT example. Link to v1: https://lore.kernel.org/all/20251231165102.950644-2-b-padhi@ti.com/ .../bindings/remoteproc/ti,hsm-m4fss.yaml | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml diff --git a/Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml b/Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml new file mode 100644 index 0000000000000..9244e60acee37 --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/ti,hsm-m4fss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TI K3 HSM M4F processor subsystems + +maintainers: + - Beleswar Padhi <b-padhi@ti.com> + +description: | + Some K3 family SoCs have a HSM (High Security Module) M4F core in the + Wakeup Voltage Domain which could be used to run secure services like + Authentication. Some of those are J721S2, J784S4, J722S, AM62X. + +$ref: /schemas/arm/keystone/ti,k3-sci-common.yaml# + +properties: + compatible: + enum: + - ti,hsm-m4fss + + reg: + items: + - description: SRAM0_0 internal memory region + - description: SRAM0_1 internal memory region + - description: SRAM1 internal memory region + + reg-names: + items: + - const: sram0_0 + - const: sram0_1 + - const: sram1 + + resets: + maxItems: 1 + + firmware-name: + maxItems: 1 + +required: + - compatible + - reg + - reg-names + - resets + - firmware-name + - ti,sci + - ti,sci-dev-id + - ti,sci-proc-ids + +unevaluatedProperties: false + +examples: + - | + soc { + #address-cells = <2>; + #size-cells = <2>; + + remoteproc@43c00000 { + compatible = "ti,hsm-m4fss"; + reg = <0x00 0x43c00000 0x00 0x20000>, + <0x00 0x43c20000 0x00 0x10000>, + <0x00 0x43c30000 0x00 0x10000>; + reg-names = "sram0_0", "sram0_1", "sram1"; + resets = <&k3_reset 225 1>; + firmware-name = "hsm.bin"; + ti,sci = <&sms>; + ti,sci-dev-id = <225>; + ti,sci-proc-ids = <0x80 0xff>; + }; + }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs 2026-01-06 10:47 ` [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs Beleswar Padhi @ 2026-01-07 8:02 ` Krzysztof Kozlowski 2026-01-07 15:35 ` Mathieu Poirier 1 sibling, 0 replies; 9+ messages in thread From: Krzysztof Kozlowski @ 2026-01-07 8:02 UTC (permalink / raw) To: Beleswar Padhi Cc: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, nm, vigneshr, kristo, afd, u-kumar1, hnagalla, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel On Tue, Jan 06, 2026 at 04:17:53PM +0530, Beleswar Padhi wrote: > Some of the TI K3 family of SoCs have a HSM (High Security Module) M4F > core in the Wakeup Voltage Domain which could be used to run secure > services like Authentication. Add the device tree bindings document for > this HSM M4F core. > > The added example illustrates the DT node for the HSM core present on K3 > J722S SoC. > > Signed-off-by: Beleswar Padhi <b-padhi@ti.com> > --- > v2: Changelog: Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs 2026-01-06 10:47 ` [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs Beleswar Padhi 2026-01-07 8:02 ` Krzysztof Kozlowski @ 2026-01-07 15:35 ` Mathieu Poirier 1 sibling, 0 replies; 9+ messages in thread From: Mathieu Poirier @ 2026-01-07 15:35 UTC (permalink / raw) To: Beleswar Padhi Cc: andersson, robh, krzk+dt, conor+dt, nm, vigneshr, kristo, afd, u-kumar1, hnagalla, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel On Tue, Jan 06, 2026 at 04:17:53PM +0530, Beleswar Padhi wrote: > Some of the TI K3 family of SoCs have a HSM (High Security Module) M4F > core in the Wakeup Voltage Domain which could be used to run secure > services like Authentication. Add the device tree bindings document for > this HSM M4F core. > > The added example illustrates the DT node for the HSM core present on K3 > J722S SoC. > > Signed-off-by: Beleswar Padhi <b-padhi@ti.com> > --- > v2: Changelog: > [Krzysztof Kozlowski]: > 1. Update commit msg to remove redundant "bindings". > 2. Update filename to match compatible. > 3. Remove "address-cells" & "size-cells" property. These belong to the > device's parent node. > 4. Drop description from firmware-name property. > 5. Fix indentation for DT example. > > Link to v1: > https://lore.kernel.org/all/20251231165102.950644-2-b-padhi@ti.com/ > > .../bindings/remoteproc/ti,hsm-m4fss.yaml | 72 +++++++++++++++++++ > 1 file changed, 72 insertions(+) > create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml > I have applied this patch- Nishanth and Vignesh should handle the .dsti files. Thanks, Mathieu > diff --git a/Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml b/Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml > new file mode 100644 > index 0000000000000..9244e60acee37 > --- /dev/null > +++ b/Documentation/devicetree/bindings/remoteproc/ti,hsm-m4fss.yaml > @@ -0,0 +1,72 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/remoteproc/ti,hsm-m4fss.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: TI K3 HSM M4F processor subsystems > + > +maintainers: > + - Beleswar Padhi <b-padhi@ti.com> > + > +description: | > + Some K3 family SoCs have a HSM (High Security Module) M4F core in the > + Wakeup Voltage Domain which could be used to run secure services like > + Authentication. Some of those are J721S2, J784S4, J722S, AM62X. > + > +$ref: /schemas/arm/keystone/ti,k3-sci-common.yaml# > + > +properties: > + compatible: > + enum: > + - ti,hsm-m4fss > + > + reg: > + items: > + - description: SRAM0_0 internal memory region > + - description: SRAM0_1 internal memory region > + - description: SRAM1 internal memory region > + > + reg-names: > + items: > + - const: sram0_0 > + - const: sram0_1 > + - const: sram1 > + > + resets: > + maxItems: 1 > + > + firmware-name: > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - reg-names > + - resets > + - firmware-name > + - ti,sci > + - ti,sci-dev-id > + - ti,sci-proc-ids > + > +unevaluatedProperties: false > + > +examples: > + - | > + soc { > + #address-cells = <2>; > + #size-cells = <2>; > + > + remoteproc@43c00000 { > + compatible = "ti,hsm-m4fss"; > + reg = <0x00 0x43c00000 0x00 0x20000>, > + <0x00 0x43c20000 0x00 0x10000>, > + <0x00 0x43c30000 0x00 0x10000>; > + reg-names = "sram0_0", "sram0_1", "sram1"; > + resets = <&k3_reset 225 1>; > + firmware-name = "hsm.bin"; > + ti,sci = <&sms>; > + ti,sci-dev-id = <225>; > + ti,sci-proc-ids = <0x80 0xff>; > + }; > + }; > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node 2026-01-06 10:47 [PATCH v2 0/3] Add TI K3 HSM M4F nodes in device-tree Beleswar Padhi 2026-01-06 10:47 ` [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs Beleswar Padhi @ 2026-01-06 10:47 ` Beleswar Padhi 2026-01-09 19:27 ` Nishanth Menon 2026-01-06 10:47 ` [PATCH v2 3/3] arm64: dts: ti: k3-am62p-j722s-common-main: " Beleswar Padhi 2 siblings, 1 reply; 9+ messages in thread From: Beleswar Padhi @ 2026-01-06 10:47 UTC (permalink / raw) To: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, nm, vigneshr, kristo Cc: afd, u-kumar1, hnagalla, b-padhi, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel The TI K3 J721S2, J784S4 and J742S2 SoCs have a HSM (High Security Module) M4F core in the Wakeup Voltage Domain which could be used to run secure services like Authentication. Add Device Tree Node definitions for the HSM core in the respective SoC wakeup dtsi files. Signed-off-by: Beleswar Padhi <b-padhi@ti.com> --- v2: Changelog: 1. None Link to v1: https://lore.kernel.org/all/20251231165102.950644-3-b-padhi@ti.com/ arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 15 +++++++++++++++ .../ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi index fd01437726ab4..c3d78d4a838a1 100644 --- a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi @@ -766,4 +766,19 @@ mcu_watchdog1: watchdog@40610000 { /* reserved for MCU_R5F0_1 */ status = "reserved"; }; + + hsm_m4fss: m4fss@43c00000 { + compatible = "ti,hsm-m4fss"; + reg = <0x00 0x43c00000 0x00 0x20000>, + <0x00 0x43c20000 0x00 0x10000>, + <0x00 0x43c30000 0x00 0x10000>; + reg-names = "sram0_0", "sram0_1", "sram1"; + resets = <&k3_reset 304 1>; + firmware-name = "hsm.bin"; + ti,sci = <&sms>; + ti,sci-dev-id = <304>; + ti,sci-proc-ids = <0x80 0xff>; + status = "disabled"; + bootph-pre-ram; + }; }; diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi index cc22bfb5f5996..42565f41b7bac 100644 --- a/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi @@ -762,4 +762,19 @@ mcu_watchdog1: watchdog@40610000 { /* reserved for MCU_R5F0_1 */ status = "reserved"; }; + + hsm_m4fss: m4fss@43c00000 { + compatible = "ti,hsm-m4fss"; + reg = <0x00 0x43c00000 0x00 0x20000>, + <0x00 0x43c20000 0x00 0x10000>, + <0x00 0x43c30000 0x00 0x10000>; + reg-names = "sram0_0", "sram0_1", "sram1"; + resets = <&k3_reset 371 1>; + firmware-name = "hsm.bin"; + ti,sci = <&sms>; + ti,sci-dev-id = <371>; + ti,sci-proc-ids = <0x80 0xff>; + status = "disabled"; + bootph-pre-ram; + }; }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node 2026-01-06 10:47 ` [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node Beleswar Padhi @ 2026-01-09 19:27 ` Nishanth Menon 2026-01-13 16:04 ` Padhi, Beleswar 0 siblings, 1 reply; 9+ messages in thread From: Nishanth Menon @ 2026-01-09 19:27 UTC (permalink / raw) To: Beleswar Padhi Cc: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, vigneshr, kristo, afd, u-kumar1, hnagalla, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel On 16:17-20260106, Beleswar Padhi wrote: > The TI K3 J721S2, J784S4 and J742S2 SoCs have a HSM (High Security > Module) M4F core in the Wakeup Voltage Domain which could be used to run > secure services like Authentication. Add Device Tree Node definitions > for the HSM core in the respective SoC wakeup dtsi files. > > Signed-off-by: Beleswar Padhi <b-padhi@ti.com> > --- > v2: Changelog: > 1. None > > Link to v1: > https://lore.kernel.org/all/20251231165102.950644-3-b-padhi@ti.com/ > > arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 15 +++++++++++++++ > .../ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi | 15 +++++++++++++++ > 2 files changed, 30 insertions(+) > > diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi > index fd01437726ab4..c3d78d4a838a1 100644 > --- a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi > @@ -766,4 +766,19 @@ mcu_watchdog1: watchdog@40610000 { > /* reserved for MCU_R5F0_1 */ > status = "reserved"; > }; > + > + hsm_m4fss: m4fss@43c00000 { You did fix this in the binding example.. but missed in dts. The node name should use the generic type, not the instance name. It should be "remoteproc@43c00000", not "m4fss@43c00000". Additionally for the label, why not just use hsm: like we have for sms? > + compatible = "ti,hsm-m4fss"; > + reg = <0x00 0x43c00000 0x00 0x20000>, > + <0x00 0x43c20000 0x00 0x10000>, > + <0x00 0x43c30000 0x00 0x10000>; The total address range covered here is 0x43c00000-0x43c40000, which is 0x40000 bytes, matching the ranges entry. However, you're defining three separate regions: 0x43c00000-0x43c20000 (0x20000), 0x43c20000-0x43c30000 (0x10000), and 0x43c30000-0x43c40000 (0x10000). I assume you are doing this since the h/w integration could be instantiated differently? > + reg-names = "sram0_0", "sram0_1", "sram1"; > + resets = <&k3_reset 304 1>; > + firmware-name = "hsm.bin"; I am not a fan of putting firmware-name in SoC.dtsi - esp when it is reserved, further, so far we have been using j722s-wkup-r5f0_0-fw and so on.. which allows for firmware specific to SoC.. which kind of makes sense here as well. > + ti,sci = <&sms>; > + ti,sci-dev-id = <304>; > + ti,sci-proc-ids = <0x80 0xff>; > + status = "disabled"; As usual, document why? Additionally, should this be reserved? > + bootph-pre-ram; "standard property" Documentation/devicetree/bindings/dts-coding-style.rst - note the order: 1. "compatible" 2. "reg" 3. "ranges" 4. Standard/common properties (defined by common bindings, e.g. without vendor-prefixes) 5. Vendor-specific properties 6. "status" (if applicable), preceded by a blank line if there is content before the property 7. Child nodes, where each node is preceded with a blank line > + }; > }; Same for the rest of the patches and nodes > diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi > index cc22bfb5f5996..42565f41b7bac 100644 > --- a/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi > @@ -762,4 +762,19 @@ mcu_watchdog1: watchdog@40610000 { > /* reserved for MCU_R5F0_1 */ > status = "reserved"; > }; > + > + hsm_m4fss: m4fss@43c00000 { > + compatible = "ti,hsm-m4fss"; > + reg = <0x00 0x43c00000 0x00 0x20000>, > + <0x00 0x43c20000 0x00 0x10000>, > + <0x00 0x43c30000 0x00 0x10000>; > + reg-names = "sram0_0", "sram0_1", "sram1"; > + resets = <&k3_reset 371 1>; > + firmware-name = "hsm.bin"; > + ti,sci = <&sms>; > + ti,sci-dev-id = <371>; > + ti,sci-proc-ids = <0x80 0xff>; > + status = "disabled"; > + bootph-pre-ram; > + }; > }; > -- > 2.34.1 > -- Regards, Nishanth Menon Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D https://ti.com/opensource ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node 2026-01-09 19:27 ` Nishanth Menon @ 2026-01-13 16:04 ` Padhi, Beleswar 2026-01-13 16:29 ` Nishanth Menon 0 siblings, 1 reply; 9+ messages in thread From: Padhi, Beleswar @ 2026-01-13 16:04 UTC (permalink / raw) To: Nishanth Menon Cc: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, vigneshr, kristo, afd, u-kumar1, hnagalla, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel Hi Nishanth, On 1/10/2026 12:57 AM, Nishanth Menon wrote: > On 16:17-20260106, Beleswar Padhi wrote: >> The TI K3 J721S2, J784S4 and J742S2 SoCs have a HSM (High Security >> Module) M4F core in the Wakeup Voltage Domain which could be used to run >> secure services like Authentication. Add Device Tree Node definitions >> for the HSM core in the respective SoC wakeup dtsi files. >> >> [...] >> >> diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi >> index fd01437726ab4..c3d78d4a838a1 100644 >> --- a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi >> @@ -766,4 +766,19 @@ mcu_watchdog1: watchdog@40610000 { >> /* reserved for MCU_R5F0_1 */ >> status = "reserved"; >> }; >> + >> + hsm_m4fss: m4fss@43c00000 { > You did fix this in the binding example.. but missed in dts. > > The node name should use the generic type, not the instance name. It should > be "remoteproc@43c00000", not "m4fss@43c00000". > > Additionally for the label, why not just use hsm: like we have for sms? Thanks for catching this... Will fix in v2... > >> + compatible = "ti,hsm-m4fss"; >> + reg = <0x00 0x43c00000 0x00 0x20000>, >> + <0x00 0x43c20000 0x00 0x10000>, >> + <0x00 0x43c30000 0x00 0x10000>; > The total address range covered here is 0x43c00000-0x43c40000, which is > 0x40000 bytes, matching the ranges entry. However, you're defining three > separate regions: 0x43c00000-0x43c20000 (0x20000), 0x43c20000-0x43c30000 > (0x10000), and 0x43c30000-0x43c40000 (0x10000). > > I assume you are doing this since the h/w integration could be > instantiated differently? Yes... Will add a comment in v2... > > >> + reg-names = "sram0_0", "sram0_1", "sram1"; >> + resets = <&k3_reset 304 1>; >> + firmware-name = "hsm.bin"; > I am not a fan of putting firmware-name in SoC.dtsi - esp when it is > reserved, I thought the opposite way. Since it is reserved (and not a general purpose remote core), it is unlikely boards out there are going to use a separate firmware. Does it make sense to override this 'required' property with the same value in every other board level file?... Here is a diff for just 2 of the SoCs (J722S, AM62P). Let me know if you prefer this way and I will fix in v2. diff --git a/arch/arm64/boot/dts/ti/k3-am62p-verdin.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-verdin.dtsi index 34954df692a39..a4026424b64dd 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p-verdin.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p-verdin.dtsi @@ -1415,4 +1415,8 @@ &wkup_uart0 { status = "disabled"; }; +&hsm { + firmware-name = "am62p-main-m4f-fw"; +}; + #include "k3-am62p-ti-ipc-firmware.dtsi" diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts index 4f7f6f95b02ef..7b370a65238db 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts @@ -832,4 +832,8 @@ &mcu_uart0 { <&system_standby>; }; +&hsm { + firmware-name = "am62p-main-m4f-fw"; +}; + #include "k3-am62p-ti-ipc-firmware.dtsi" diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-var-som.dtsi b/arch/arm64/boot/dts/ti/k3-am62p5-var-som.dtsi index fc5a3942cde00..79d371c54c52b 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p5-var-som.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p5-var-som.dtsi @@ -432,4 +432,8 @@ &main_uart1 { status = "reserved"; }; +&hsm { + firmware-name = "am62p-main-m4f-fw"; +}; + #include "k3-am62p-ti-ipc-firmware.dtsi" diff --git a/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts b/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts index 5255e04b9ac76..bb0c9857f907c 100644 --- a/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts +++ b/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts @@ -399,4 +399,8 @@ &sdhci1 { status = "okay"; }; +&hsm { + firmware-name = "j722s-main-m4f-fw"; +}; + #include "k3-j722s-ti-ipc-firmware.dtsi" diff --git a/arch/arm64/boot/dts/ti/k3-am67a-kontron-sa67-base.dts b/arch/arm64/boot/dts/ti/k3-am67a-kontron-sa67-base.dts index 7169d934adac5..37f31c206f0b7 100644 --- a/arch/arm64/boot/dts/ti/k3-am67a-kontron-sa67-base.dts +++ b/arch/arm64/boot/dts/ti/k3-am67a-kontron-sa67-base.dts @@ -1089,3 +1089,7 @@ &wkup_uart0 { bootph-all; status = "reserved"; }; + +&hsm { + firmware-name = "j722s-main-m4f-fw"; +}; diff --git a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts index e66330c71593a..6b38488815c34 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts @@ -854,4 +854,8 @@ &mcu_i2c0 { status = "okay"; }; +&hsm { + firmware-name = "j722s-main-m4f-fw"; +}; + #include "k3-j722s-ti-ipc-firmware.dtsi" > further, so far we have been using j722s-wkup-r5f0_0-fw and > so on.. which allows for firmware specific to SoC.. which kind of makes > sense here as well. Right, will fix this in v2... > >> + ti,sci = <&sms>; >> + ti,sci-dev-id = <304>; >> + ti,sci-proc-ids = <0x80 0xff>; >> + status = "disabled"; > As usual, document why? Additionally, should this be reserved? Will fix in v2... > >> + bootph-pre-ram; > "standard property" Sorry my bad.. Will fix in v2... Thanks, Beleswar > [...] ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node 2026-01-13 16:04 ` Padhi, Beleswar @ 2026-01-13 16:29 ` Nishanth Menon 0 siblings, 0 replies; 9+ messages in thread From: Nishanth Menon @ 2026-01-13 16:29 UTC (permalink / raw) To: Padhi, Beleswar Cc: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, vigneshr, kristo, afd, u-kumar1, hnagalla, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel On 21:34-20260113, Padhi, Beleswar wrote: [...] > > > + reg-names = "sram0_0", "sram0_1", "sram1"; > > > + resets = <&k3_reset 304 1>; > > > + firmware-name = "hsm.bin"; > > I am not a fan of putting firmware-name in SoC.dtsi - esp when it is > > reserved, > > > I thought the opposite way. Since it is reserved (and not a general purpose > remote core), it is unlikely boards out there are going to use a separate Fair enough.. I see that the base firmware name is in SoC.dtsi on a per SoC basis. Agreed that exception can be an override if required (unlikely in this case). Please document that rationale in the commit message. Since we just have a single HSM in each of the SoCs, am62p-hsm-m4f-fw j722s-hsm-m4f-fw etc in SoC.dtsi would make sense.. just dont do a generic hsm.bin kind of deal. -- Regards, Nishanth Menon Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D https://ti.com/opensource ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 3/3] arm64: dts: ti: k3-am62p-j722s-common-main: Add HSM M4F node 2026-01-06 10:47 [PATCH v2 0/3] Add TI K3 HSM M4F nodes in device-tree Beleswar Padhi 2026-01-06 10:47 ` [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs Beleswar Padhi 2026-01-06 10:47 ` [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node Beleswar Padhi @ 2026-01-06 10:47 ` Beleswar Padhi 2 siblings, 0 replies; 9+ messages in thread From: Beleswar Padhi @ 2026-01-06 10:47 UTC (permalink / raw) To: andersson, mathieu.poirier, robh, krzk+dt, conor+dt, nm, vigneshr, kristo Cc: afd, u-kumar1, hnagalla, b-padhi, linux-remoteproc, devicetree, linux-kernel, linux-arm-kernel The TI K3 AM62P and J722S SoCs have a HSM (High Security Module) M4F core in the MAIN Voltage Domain which could be used to run secure services like Authentication. Add Device Tree Node definitions for the HSM core in the respective SoC common main dtsi file. The corresponding reg ranges of HSM node has also been added to its parent node's (cbass_main bus) ranges property. Signed-off-by: Beleswar Padhi <b-padhi@ti.com> --- v2: Changelog: 1. None Link to v1: https://lore.kernel.org/all/20251231165102.950644-4-b-padhi@ti.com/ .../boot/dts/ti/k3-am62p-j722s-common-main.dtsi | 15 +++++++++++++++ arch/arm64/boot/dts/ti/k3-am62p.dtsi | 1 + arch/arm64/boot/dts/ti/k3-j722s.dtsi | 1 + 3 files changed, 17 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi index 3cf7c2b3ce2dd..28586cbc57613 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi @@ -1117,4 +1117,19 @@ vpu: video-codec@30210000 { clocks = <&k3_clks 204 2>; power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>; }; + + hsm_m4fss: m4fss@43c00000 { + compatible = "ti,hsm-m4fss"; + reg = <0x00 0x43c00000 0x00 0x20000>, + <0x00 0x43c20000 0x00 0x10000>, + <0x00 0x43c30000 0x00 0x10000>; + reg-names = "sram0_0", "sram0_1", "sram1"; + resets = <&k3_reset 225 1>; + firmware-name = "hsm.bin"; + ti,sci = <&dmsc>; + ti,sci-dev-id = <225>; + ti,sci-proc-ids = <0x80 0xff>; + status = "disabled"; + bootph-pre-ram; + }; }; diff --git a/arch/arm64/boot/dts/ti/k3-am62p.dtsi b/arch/arm64/boot/dts/ti/k3-am62p.dtsi index e2c01328eb298..9d6266d6ddb82 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p.dtsi @@ -96,6 +96,7 @@ cbass_main: bus@f0000 { <0x00 0x31100000 0x00 0x31100000 0x00 0x00050000>, /* USB1 DWC3 Core window */ <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>, /* SA3UL */ <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data */ + <0x00 0x43c00000 0x00 0x43c00000 0x00 0x00040000>, /* HSM SRAM ranges */ <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */ <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy config */ <0x00 0x48000000 0x00 0x48000000 0x00 0x06408000>, /* DMSS */ diff --git a/arch/arm64/boot/dts/ti/k3-j722s.dtsi b/arch/arm64/boot/dts/ti/k3-j722s.dtsi index c8b634c346779..059c65ece183f 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j722s.dtsi @@ -173,6 +173,7 @@ cbass_main: bus@f0000 { <0x00 0x31200000 0x00 0x31200000 0x00 0x00040000>, /* USB1 DWC3 Core window */ <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>, /* SA3UL */ <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data */ + <0x00 0x43c00000 0x00 0x43c00000 0x00 0x00040000>, /* HSM SRAM ranges */ <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */ <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy config */ <0x00 0x48000000 0x00 0x48000000 0x00 0x06408000>, /* DMSS */ -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-01-13 16:29 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-06 10:47 [PATCH v2 0/3] Add TI K3 HSM M4F nodes in device-tree Beleswar Padhi
2026-01-06 10:47 ` [PATCH v2 1/3] dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs Beleswar Padhi
2026-01-07 8:02 ` Krzysztof Kozlowski
2026-01-07 15:35 ` Mathieu Poirier
2026-01-06 10:47 ` [PATCH v2 2/3] arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node Beleswar Padhi
2026-01-09 19:27 ` Nishanth Menon
2026-01-13 16:04 ` Padhi, Beleswar
2026-01-13 16:29 ` Nishanth Menon
2026-01-06 10:47 ` [PATCH v2 3/3] arm64: dts: ti: k3-am62p-j722s-common-main: " Beleswar Padhi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox