[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f66cda39-acf7-4a88-8528-a4dd41750259@ti.com>
Date: Thu, 15 Jan 2026 13:56:23 +0530
From: "Kumar, Udit" <u-kumar1@...com>
To: "Padhi, Beleswar" <b-padhi@...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>,
<u-kumar1@...com>
Subject: Re: [PATCH v3 2/2] arm64: dts: ti: k3-am62p-j722s-common-main: Add
HSM M4F node
On 1/15/2026 11:23 AM, Padhi, Beleswar wrote:
>
> 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.
Ok
>
>> , 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
>
R5 cores are inside cluster , it is be better to handle core and cluster
in same way.
But this patch is not related to R5.
So
Reviewed-by: Udit Kumar <u-kumar1@...com>
>
> 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