[PATCH 08/10] ARM: VFxxx: Add code to detect reset reason

Andrey Smirnov andrew.smirnov at gmail.com
Mon Apr 16 06:12:32 PDT 2018


On Mon, Apr 16, 2018 at 12:19 AM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Sat, Apr 14, 2018 at 10:50:22AM -0700, Andrey Smirnov wrote:
>> Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
>> ---
>>  arch/arm/mach-imx/imx.c                       | 78 +++++++++++++++++----------
>>  arch/arm/mach-imx/include/mach/reset-reason.h | 11 ++++
>>  2 files changed, 62 insertions(+), 27 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/imx.c b/arch/arm/mach-imx/imx.c
>> index fb1160de9..e84713766 100644
>> --- a/arch/arm/mach-imx/imx.c
>> +++ b/arch/arm/mach-imx/imx.c
>> @@ -158,6 +158,7 @@ void imx_set_reset_reason(void __iomem *srsr)
>>  {
>>       enum reset_src_type type = RESET_UKWN;
>>       const u32 reg = readl(srsr);
>> +     const bool is_vf610 = cpu_is_vf610();
>>
>>       /*
>>        * SRSR register captures ALL reset event that occured since
>> @@ -166,37 +167,60 @@ void imx_set_reset_reason(void __iomem *srsr)
>>        */
>>       writel(reg, srsr);
>>
>> -     switch (reg) {
>> -     case IMX_SRC_SRSR_IPP_RESET: /* FALLTHROUGH */
>> -     case IMX_SRC_SRSR_IPP_RESET | IMX_SRC_SRSR_WDOG1_RESET:
>> -             type = RESET_POR;
>> -             break;
>> -     case IMX_SRC_SRSR_WDOG3_RESET: /* FALLTHROUGH */
>> -     case IMX_SRC_SRSR_WDOG4_RESET: /* FALLTHROUGH */
>> -     case IMX_SRC_SRSR_WDOG1_RESET:
>> -             type = RESET_WDG;
>> -             break;
>> -     case IMX_SRC_SRSR_JTAG_RESET: /* FALLTHROUGH */
>> -     case IMX_SRC_SRSR_JTAG_SW_RESET:
>> -             type = RESET_JTAG;
>> -             break;
>> -     case IMX_SRC_SRSR_TEMPSENSE_RESET:
>> -             type = RESET_THERM;
>> -             break;
>> -     case IMX_SRC_SRSR_WARM_BOOT:
>> -             type = RESET_RST;
>> -             break;
>> +     if (is_vf610) {
>
> The caller already knows this is a vf610 and the code path for vf610 is
> completely different. Please add a vf610_set_reset_reason() instead of
> clobbering the i.MX function with this.
>

They do share code fore clearing RSRS register, but sure, will do in v2.

Thanks,
Andrey Smirnov



More information about the barebox mailing list