[PATCH v2 2/4] arch: mach-k3: common: Add support to shutdown MCU R5 Core 1
Beleswar Prasad Padhi
b-padhi at ti.com
Fri Jun 6 07:14:50 CEST 2025
Hi Hari,
On 05/06/25 16:54, Hari Nagalla wrote:
> On 6/2/25 09:50, Beleswar Padhi wrote:
>> +int __maybe_unused shutdown_mcu_r5_core1(void)
>> +{
>> + struct ti_sci_handle *ti_sci = get_ti_sci_handle();
>> + struct ti_sci_dev_ops *dev_ops = &ti_sci->ops.dev_ops;
>> + struct ti_sci_proc_ops *proc_ops = &ti_sci->ops.proc_ops;
>> + u32 dev_id_mcu_r5_core1 = put_core_ids[0];
>> + u64 boot_vector;
>> + u32 cfg, ctrl, sts;
>> + int cluster_mode_lockstep, ret;
>> +
>> + ret = proc_ops->proc_request(ti_sci, PROC_ID_MCU_R5FSS0_CORE1);
>> + if (ret) {
>> + printf("Unable to request processor control for core %d\n",
>> + PROC_ID_MCU_R5FSS0_CORE1);
>> + return ret;
>> + }
>> +
>> + ret = proc_ops->get_proc_boot_status(ti_sci, PROC_ID_MCU_R5FSS0_CORE1,
>> + &boot_vector, &cfg, &ctrl, &sts);
>> + if (ret) {
>> + printf("Unable to get Processor boot status for core %d\n",
>> + PROC_ID_MCU_R5FSS0_CORE1);
>> + goto release_proc_ctrl;
>> + }
>> +
>> + /* Shutdown MCU R5F Core 1 only if the cluster is booted in SplitMode */
>> + cluster_mode_lockstep = !!(cfg & PROC_BOOT_CFG_FLAG_R5_LOCKSTEP);
>> + if (cluster_mode_lockstep) {
>> + ret = -EINVAL;
>> + goto release_proc_ctrl;
>> + }
>> +
> I suppose this code runs in A72-SPL environment right? I wonder, if you need to check the state of CORE1 (reset state and/or HALT) before proceeding to shutdown the core. Just to make any other earlier bootloader (SBL or other variants) did n't boot CORE1.
Thanks, I will include this check in the revision...
Thanks,
Beleswar
More information about the U-Boot
mailing list