[PATCHv3 19/26] arm: mach-k3: do board config for PM and RM only if supported
Tero Kristo
kristo at kernel.org
Mon May 10 10:18:21 CEST 2021
On 09/05/2021 08:54, Vignesh Raghavendra wrote:
>
>
> On 5/5/21 11:25 PM, Tero Kristo wrote:
>> From: Tero Kristo <t-kristo at ti.com>
>>
>> If the raw PM support is built in, we are operating in the split
>> firmware approach mode where RM and PM support is not available. In this
>> case, skip the board config for these two.
>>
>> Signed-off-by: Tero Kristo <t-kristo at ti.com>
>> Signed-off-by: Tero Kristo <kristo at kernel.org>
>> ---
>> arch/arm/mach-k3/sysfw-loader.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/arch/arm/mach-k3/sysfw-loader.c b/arch/arm/mach-k3/sysfw-loader.c
>> index 0bacfc4d07..64472353c4 100644
>> --- a/arch/arm/mach-k3/sysfw-loader.c
>> +++ b/arch/arm/mach-k3/sysfw-loader.c
>> @@ -159,11 +159,13 @@ static void k3_sysfw_configure_using_fit(void *fit,
>> ret);
>>
>> /* Apply power/clock (PM) specific configuration to SYSFW */
>> +#ifndef CONFIG_K3_DM_FW
>> ret = board_ops->board_config_pm(ti_sci,
>> (u64)(u32)cfg_fragment_addr,
>> (u32)cfg_fragment_size);
>> if (ret)
>> panic("Failed to set board PM configuration (%d)\n", ret);
>> +#endif
>>
>> /* Extract resource management (RM) specific configuration from FIT */
>> ret = fit_get_data_by_name(fit, images, SYSFW_CFG_RM,
>> @@ -172,12 +174,14 @@ static void k3_sysfw_configure_using_fit(void *fit,
>> panic("Error accessing %s node in FIT (%d)\n", SYSFW_CFG_RM,
>> ret);
>>
>> +#ifndef CONFIG_K3_DM_FW
>> /* Apply resource management (RM) configuration to SYSFW */
>> ret = board_ops->board_config_rm(ti_sci,
>> (u64)(u32)cfg_fragment_addr,
>> (u32)cfg_fragment_size);
>> if (ret)
>> panic("Failed to set board RM configuration (%d)\n", ret);
>> +#endif
>>
>> /* Extract security specific configuration from FIT */
>> ret = fit_get_data_by_name(fit, images, SYSFW_CFG_SEC,
>>
>
>
> We still need to send RM CFG to TIFS in case of J721e in order for DMA
> to work at R5 SPL. TIFS needs RM CFG to disable firewalls when R5 SPL
> sends DMA channel cfg requests.
>
> Could you squash the following diff for next version:
Yes, I can squash that in. I believe you have tested this change and it
works? (I will obviously double check at my end though.)
-Tero
>
> diff --git a/arch/arm/mach-k3/sysfw-loader.c b/arch/arm/mach-k3/sysfw-loader.c
> index b95137fbdd..ac719cd46f 100644
> --- a/arch/arm/mach-k3/sysfw-loader.c
> +++ b/arch/arm/mach-k3/sysfw-loader.c
> @@ -263,14 +263,7 @@ static void k3_sysfw_configure_using_fit(void *fit,
> panic("Error accessing %s node in FIT (%d)\n", SYSFW_CFG_RM,
> ret);
>
> -#ifndef CONFIG_K3_DM_FW
> - /* Apply resource management (RM) configuration to SYSFW */
> - ret = board_ops->board_config_rm(ti_sci,
> - (u64)(u32)cfg_fragment_addr,
> - (u32)cfg_fragment_size);
> - if (ret)
> - panic("Failed to set board RM configuration (%d)\n", ret);
> -#else
> +#ifdef CONFIG_K3_DM_FW
> if (copy_bcfg) {
> desc = &bcfg_header->descs[1];
>
> @@ -284,6 +277,13 @@ static void k3_sysfw_configure_using_fit(void *fit,
> }
> #endif
>
> + /* Apply resource management (RM) configuration to SYSFW */
> + ret = board_ops->board_config_rm(ti_sci,
> + (u64)(u32)cfg_fragment_addr,
> + (u32)cfg_fragment_size);
> + if (ret)
> + panic("Failed to set board RM configuration (%d)\n", ret);
> +
> /* Extract security specific configuration from FIT */
> ret = fit_get_data_by_name(fit, images, SYSFW_CFG_SEC,
> &cfg_fragment_addr, &cfg_fragment_size);
>
>
> Regards
> Vignesh
>
More information about the U-Boot
mailing list