[PATCH v2 0/7] Add support to boot TI K3 HSM M4 core

Kumar, Udit u-kumar1 at ti.com
Tue May 6 19:17:57 CEST 2025


On 5/6/2025 8:38 PM, Andrew Davis wrote:
> On 5/6/25 9:51 AM, Beleswar Prasad Padhi wrote:
>> Hi Andrew,
>>
>> On 5/6/2025 4:38 PM, Andrew Davis wrote:
>>> On 5/6/25 5:41 AM, Beleswar Padhi wrote:
>>>> Some TI K3 SoCs like J721S2, and J784S4 have a HSM (High Security
>>>> Module) M4F core in the Wakeup Voltage Domain which could be used to
>>>> run secure services like Authentication. Boot flow for HSM M4 core is
>>>> different than the general purpose M4F cores, and is as below:
>>>>
>>>
>>> The below flow looks exactly like the general purpose M4F cores..
>>> Why is the HSM core treated differently and this loader not made into
>>> a normal remote proc driver?
>>
>>
>> Not exactly, HSM core is treated differently because of following 
>> exceptions:
>> 1. Device operations for HSM core (like reset/reset release) are not 
>> handled by DM. TIFS handles that with proc_boot_ctrl TI-SCI calls.
>
> This could be added to the commit message then.
>
>> 2. The HSM firmware is not an ELF image. So we can't use rproc elf 
>> loader with it. Manual memcpy has to be done.
>>
>
> Why is the HSM firmware not an ELF image?


HSM firmwares are loaded by TIFS (in non-GP) flow, and TIFS does not 
have elf parser.



>
>> All of that can still be accounted in the existing M4 rproc driver, 
>> but it will be a lot of if-else checks, which I don't prefer. Let me 
>> know if you prefer that way.
>>
>
> I'm not a fan of if-else checks either, just trying to get an idea
> of how many would really be needed. Judging from the below commit
> I'd agree keeping it here would be the cleaner option for now.
>
> Andrew
>
>> Patch having HSM support in M4 remoteproc driver:
>> https://gist.github.com/3V3RYONE/a15a5c6933bbc83278da9860c25ec21c
>>
>>>
>>> Andrew
>>>
>>>> 1. Request control of HSM M4F remote processor.
>>>> 2. Assert Reset on the HSM M4F remote processor.
>>>> 3. Request Secure Entity to Authenticate and Load HSM firmware into
>>>>     core's internal SRAM memory region. For GP device, load the 
>>>> firmware
>>>>     manually into core's SRAM region.
>>>> 4. Deassert Reset on the HSM M4F remote processor.
>>>> 5. Release control of HSM M4F remote processor.
>>>>
>>>> This series adds support to boot HSM M4 core from R5 SPL stage. The 
>>>> HSM
>>>> firmware is packed inside the tispl.bin fit image. The firmware is
>>>> unpacked into a temporary DDR address which is then used to load HSM
>>>> core. The configs to boot HSM M4 core are disabled by default.
>>>>
>>>> v2: Changelog:
>>>> [Andrew]:
>>>>   1. Added support in SPL to load FIT images with no 'load' property.
>>>>   2. Removed 'default = n' in CONFIG option.
>>>>   3. Used __maybe_unused to decrease preprocessing.
>>>>   4. Better error messages with error code.
>>>> [Udit]:
>>>>   1. Added 'HSM' entries in enum at the last.
>>>>   2. Added error condition in if-elseif-else ladder.
>>>>   3. Hang System boot when HSM failed to boot properly.
>>>>
>>>> Link to v1:
>>>> https://lore.kernel.org/all/20250422095430.363792-1-b-padhi@ti.com/
>>>>
>>>> Test logs after enabling HSM boot configs:
>>>> https://gist.github.com/3V3RYONE/ad33683652c8c49e4fedab49f0493e79
>>>>
>>>> Beleswar Padhi (7):
>>>>    arm: mach-k3: Add config option for booting HSM core
>>>>    spl: Use FIT data address as fallback when 'load' property is 
>>>> absent
>>>>    arm: dts: k3-binman: Add template for packing HSM firmware
>>>>    arm: dts: k3-{j721s2/j784s4}-binman: Pack HSM firmware inside
>>>>      tispl.bin
>>>>    arm: mach-k3: Use FIT image data addr as fallback if 'load' prop is
>>>>      missing
>>>>    arm: mach-k3: Explicitly identify TIFSSTUB images when discarding
>>>>      buffers
>>>>    arm: mach-k3: r5: common: Add support to boot HSM M4 core
>>>>
>>>>   arch/arm/dts/k3-binman.dtsi        |   9 +++
>>>>   arch/arm/dts/k3-j721s2-binman.dtsi |  12 ++++
>>>>   arch/arm/dts/k3-j784s4-binman.dtsi |  14 ++++
>>>>   arch/arm/mach-k3/Kconfig           |   7 ++
>>>>   arch/arm/mach-k3/r5/common.c       | 111 
>>>> +++++++++++++++++++++++++++--
>>>>   common/spl/spl_fit.c               |  16 ++++-
>>>>   6 files changed, 164 insertions(+), 5 deletions(-)
>>>>


More information about the U-Boot mailing list