Re: [PATCH v2 03/10] ARM: i.MX6: Record reset reason as a part of startup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 2, 2018 at 7:42 AM, Jan Lübbe <jlu@xxxxxxxxxxxxxx> wrote:
> There is already code in drivers/watchdog/imxwd.c to handle this. Is
> that obsolete now?
>

AFAIK, watchdog IP block doesn't have as precise information about
reset source as SRSR register on i.MX SoCs that have the latter.
There, this code supersedes imxwd.c. OTHO  SoCs that don't have SRSR
(i.MX21, i.MX31, etc) still rely on code imxwd.c  for reset source
detection.

Hope this answers your question.

Thanks,
Andrey Smirnov

> On Fri, 2018-04-20 at 18:05 -0700, Andrey Smirnov wrote:
>> Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx>
>> ---
>>  arch/arm/mach-imx/imx6.c                      | 13 ++++++++++++-
>>  arch/arm/mach-imx/include/mach/reset-reason.h |  2 ++
>>  2 files changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-imx/imx6.c b/arch/arm/mach-imx/imx6.c
>> index 88165adee..49610bf08 100644
>> --- a/arch/arm/mach-imx/imx6.c
>> +++ b/arch/arm/mach-imx/imx6.c
>> @@ -19,6 +19,7 @@
>>  #include <mach/imx6.h>
>>  #include <mach/generic.h>
>>  #include <mach/revision.h>
>> +#include <mach/reset-reason.h>
>>  #include <mach/imx6-anadig.h>
>>  #include <mach/imx6-regs.h>
>>  #include <mach/generic.h>
>> @@ -173,10 +174,20 @@ int imx6_cpu_revision(void)
>>       return soc_revision;
>>  }
>>
>> +static const struct imx_reset_reason imx6_reset_reasons[] = {
>> +     { IMX_SRC_SRSR_IPP_RESET,     RESET_POR,  0 },
>> +     { IMX_SRC_SRSR_WDOG1_RESET,   RESET_WDG,  0 },
>> +     { IMX_SRC_SRSR_JTAG_RESET,    RESET_JTAG, 0 },
>> +     { IMX_SRC_SRSR_JTAG_SW_RESET, RESET_JTAG, 0 },
>> +     { IMX_SRC_SRSR_WARM_BOOT,     RESET_RST,  0 },
>> +     { /* sentinel */ }
>> +};
>> +
>>  int imx6_init(void)
>>  {
>>       const char *cputypestr;
>>       u32 mx6_silicon_revision;
>> +     void __iomem *src = IOMEM(MX6_SRC_BASE_ADDR);
>>
>>       imx6_init_lowlevel();
>>
>> @@ -221,7 +232,7 @@ int imx6_init(void)
>>       }
>>
>>       imx_set_silicon_revision(cputypestr, mx6_silicon_revision);
>> -
>> +     imx_set_reset_reason(src + IMX6_SRC_SRSR,
>> imx6_reset_reasons);
>>       imx6_setup_ipu_qos();
>>       imx6ul_enet_clk_init();
>>
>> diff --git a/arch/arm/mach-imx/include/mach/reset-reason.h
>> b/arch/arm/mach-imx/include/mach/reset-reason.h
>> index 39afc4b28..f2544a303 100644
>> --- a/arch/arm/mach-imx/include/mach/reset-reason.h
>> +++ b/arch/arm/mach-imx/include/mach/reset-reason.h
>> @@ -14,6 +14,8 @@
>>  #define IMX_SRC_SRSR_TEMPSENSE_RESET BIT(9)
>>  #define IMX_SRC_SRSR_WARM_BOOT               BIT(16)
>>
>> +#define IMX6_SRC_SRSR        0x008
>> +
>>  struct imx_reset_reason {
>>       uint32_t mask;
>>       enum reset_src_type type;
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux