[PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders

Kevin Hilman khilman at linaro.org
Thu Feb 7 20:29:33 EST 2013


Paul Walmsley <paul at pwsan.com> writes:

> On Mon, 4 Feb 2013, Rajendra Nayak wrote:
>
>> OMAP4 CHIP level PM works only with newer bootloaders. The
>> dependency on the bootloader comes from the fact that the
>> kernel is missing reset and initialization code for some
>> devices.
>> 
>> While the right thing to do is to add reset and init code in
>> the kernel, for some co-processor IP blocks like DSP and IVA
>> it means downloading firmware into each one of them to execute
>> idle instructions.
>> 
>> While a feasible solution is worked upon on how such IP blocks
>> can be better handled in the kernel, in the interim, to avoid
>> any further frustration to users testing PM on OMAP4 and finding
>> it broken, warn them about the bootloader being a possible
>> cause.
>> 
>> Signed-off-by: Rajendra Nayak <rnayak at ti.com>
>> Cc: Tero Kristo <t-kristo at ti.com>
>> Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
>> Cc: R Sricharan <r.sricharan at ti.com>
>
> Thanks Rajendra, I appreciate the patch.  I've tweaked it slightly and the 
> following is what's queued here; hopefully it can go in for v3.9.
>
>
> - Paul
>
> From: Rajendra Nayak <rnayak at ti.com>
> Date: Mon, 4 Feb 2013 17:54:43 +0530
> Subject: [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders
>
> OMAP4 CHIP level PM works only with newer bootloaders. The
> dependency on the bootloader comes from the fact that the
> kernel is missing reset and initialization code for some
> devices.
>
> While the right thing to do is to add reset and init code in
> the kernel, for some co-processor IP blocks like DSP and IVA
> it means downloading firmware into each one of them to execute
> idle instructions.
>
> While a feasible solution is worked upon on how such IP blocks
> can be better handled in the kernel, in the interim, to avoid
> any further frustration to users testing PM on OMAP4 and finding
> it broken, warn them about the bootloader being a possible
> cause.
>
> Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> Cc: Tero Kristo <t-kristo at ti.com>
> Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> Cc: R Sricharan <r.sricharan at ti.com>
> [paul at pwsan.com: tweaked warning messages and comments slightly]
> Signed-off-by: Paul Walmsley <paul at pwsan.com>

FWIW

Acked-by: Kevin Hilman <khilman at linaro.org>

> ---
>  arch/arm/mach-omap2/pm44xx.c |   19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
> index aa6fd98..502ed9b 100644
> --- a/arch/arm/mach-omap2/pm44xx.c
> +++ b/arch/arm/mach-omap2/pm44xx.c
> @@ -77,8 +77,18 @@ static int omap4_pm_suspend(void)
>  		omap_set_pwrdm_state(pwrst->pwrdm, pwrst->saved_state);
>  		pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->saved_logic_state);
>  	}
> -	if (ret)
> +	if (ret) {
>  		pr_crit("Could not enter target state in pm_suspend\n");
> +		/*
> +		 * OMAP4 chip PM currently works only with certain (newer)
> +		 * versions of bootloaders. This is due to missing code in the
> +		 * kernel to properly reset and initialize some devices.
> +		 * Warn the user about the bootloader version being one of the
> +		 * possible causes.
> +		 * http://www.spinics.net/lists/arm-kernel/msg218641.html
> +		 */
> +		pr_warn("A possible cause could be an old bootloader - try u-boot >= v2012.07\n");
> +	}
>  	else
>  		pr_info("Successfully put all powerdomains to target state\n");
>  
> @@ -146,6 +156,13 @@ int __init omap4_pm_init(void)
>  	}
>  
>  	pr_err("Power Management for TI OMAP4.\n");
> +	/*
> +	 * OMAP4 chip PM currently works only with certain (newer)
> +	 * versions of bootloaders. This is due to missing code in the
> +	 * kernel to properly reset and initialize some devices.
> +	 * http://www.spinics.net/lists/arm-kernel/msg218641.html
> +	 */
> +	pr_warn("u-boot >= v2012.07 is required for full PM support\n");
>  
>  	ret = pwrdm_for_each(pwrdms_setup, NULL);
>  	if (ret) {



More information about the linux-arm-kernel mailing list