[PATCH v2 2/4] arch: mach-k3: common: Add support to shutdown MCU R5 Core 1
Hari Nagalla
hnagalla at ti.com
Thu Jun 5 13:24:55 CEST 2025
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.
More information about the U-Boot
mailing list