[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4eea8956-fcd9-4be4-acc3-b983f1cbe55b@ti.com>
Date: Thu, 15 Jan 2026 11:23:27 +0530
From: "Padhi, Beleswar" <b-padhi@...com>
To: "Kumar, Udit" <u-kumar1@...com>, <nm@...com>, <vigneshr@...com>,
<kristo@...nel.org>, <robh@...nel.org>, <krzk+dt@...nel.org>,
<conor+dt@...nel.org>
CC: <afd@...com>, <hnagalla@...com>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH v3 2/2] arm64: dts: ti: k3-am62p-j722s-common-main: Add
HSM M4F node
On 1/15/2026 11:16 AM, Kumar, Udit wrote:
>
> On 1/15/2026 11:11 AM, Padhi, Beleswar wrote:
>> Hi Udit,
>>
>> On 1/15/2026 10:06 AM, Kumar, Udit wrote:
>>> Hi Beleswar,
>>>
>>> On 1/14/2026 11:05 PM, Beleswar Padhi wrote:
>>>> 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 HSM node is reserved to be loaded and booted by the early-stage
>>>> bootloader. The firmware-name property is defined at the SoC level
>>>> since the HSM is not a general-purpose remote core and boards are
>>>> unlikely to use separate firmware. If needed in exceptional cases,
>>>> board-specific device trees can override this property.
>>>>
>>>> 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@...com>
>>>> ---
>>>> v3: Changelog:
>>>> [Nishanth]:
>>>> 1. Use generic node name 'remoteproc'
>>>> 2. Use label 'hsm' instead of 'hsm_m4fss'
>>>> 3. Add a comment for separate SRAMs
>>>> 4. Update firmware-name property to match existing naming
>>>> conventions
>>>> 5. Change status to 'reserved' and add a commment
>>>> 6. Re-order bootph-pre-ram property before vendor properties
>>>> 7. Update commit msg adding rationale for firmware-name in SoC.dtsi
>>>>
>>>> Link to v2:
>>>> https://lore.kernel.org/all/20260106104755.948086-4-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 | 17
>>>> +++++++++++++++++
>>>> arch/arm64/boot/dts/ti/k3-am62p.dtsi | 1 +
>>>> arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 5 +++++
>>>> arch/arm64/boot/dts/ti/k3-j722s.dtsi | 1 +
>>>> 4 files changed, 24 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..0e1af2a69ca2e 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,21 @@ vpu: video-codec@...10000 {
>>>> clocks = <&k3_clks 204 2>;
>>>> power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>;
>>>> };
>>>> +
>>>> + hsm: remoteproc@...00000 {
>>>> + compatible = "ti,hsm-m4fss";
>>>> + /* contiguous regions but instantiated separately in HW */
>>>> + 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 = "am62p-hsm-m4f-fw";
>>>
>>> you don't need clock and power-domain for this ?
>>
>>
>> That info is abstracted out via ti-sci calls. ti_sci_cmd_get_device()
>> takes care of setting clocks and power domains for us.
>>
>> Same for other rprocs:
>> https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi#L178
>>
>
>
> Is this specific handling for m4 core ?
For all single cores like M4, DSP, R5F0_0/R5F0_1 etc.
> , I see other rproc got power at cluster level
We don't make any ti-sci calls for the cluster level, which is why we
need that info here in DT. Otherwise, ti-sci calls take care of the
individual cores for us. That's why R5F child cores don't have
power domain info in the DT:
https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi#L1521-L1535
Thanks,
Beleswar
>
> https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi#L1518
>
>
>
>>
>> Thanks,
>> Beleswar
>>
>>>
>>>
>>>> + bootph-pre-ram;
>>>> + ti,sci = <&dmsc>;
>>>> + ti,sci-dev-id = <225>;
>>>> + ti,sci-proc-ids = <0x80 0xff>;
>>>> + /* reserved for early-stage bootloader */
>>>> + status = "reserved";
>>>> + };
>>>> };
>>>> 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@...00 {
>>>> <0x00 0x31100000 0x00 0x31100000 0x00 0x00050000>,
>>>> /* USB1 DWC3 Core window */
>>>> <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>,
>>>> /* SA3UL */
>>>> [..]
Powered by blists - more mailing lists