[PATCH 02/10] ARM: i.MX: Add infrastructure to record SoC reset reason
Philipp Zabel
p.zabel at pengutronix.de
Wed Apr 18 08:23:30 PDT 2018
On Sat, 2018-04-14 at 10:50 -0700, Andrey Smirnov wrote:
> Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
> ---
> arch/arm/mach-imx/imx.c | 49 +++++++++++++++++++++++++++
> arch/arm/mach-imx/include/mach/reset-reason.h | 17 ++++++++++
> 2 files changed, 66 insertions(+)
> create mode 100644 arch/arm/mach-imx/include/mach/reset-reason.h
>
> diff --git a/arch/arm/mach-imx/imx.c b/arch/arm/mach-imx/imx.c
> index 9400105c6..e860e298a 100644
> --- a/arch/arm/mach-imx/imx.c
> +++ b/arch/arm/mach-imx/imx.c
> @@ -14,8 +14,11 @@
> #include <common.h>
> #include <of.h>
> #include <init.h>
> +#include <io.h>
> #include <mach/revision.h>
> +#include <mach/reset-reason.h>
> #include <mach/generic.h>
> +#include <reset_source.h>
>
> static int __imx_silicon_revision = IMX_CHIP_REV_UNKNOWN;
>
> @@ -147,3 +150,49 @@ static int imx_init(void)
> return ret;
> }
> postcore_initcall(imx_init);
> +
> +void imx_set_reset_reason(void __iomem *srsr)
> +{
> + enum reset_src_type type = RESET_UKWN;
> + const u32 reg = readl(srsr);
> +
> + /*
> + * SRSR register captures ALL reset event that occured since
> + * POR, so we need to clear it to make sure we only caputre
> + * the latest one.
> + */
> + writel(reg, srsr);
What if, say, both a watchdog and the tempsense reset have triggered
since last POR (or since last clearing of SRSR)?
In that case we'll report RESET_UKWN *and* throw away the SRSR
information here.
regards
Philipp
More information about the barebox
mailing list