From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Nelson Date: Thu, 05 Feb 2015 10:16:29 -0700 Subject: [U-Boot] [PATCH] imx: don't clobber reset cause In-Reply-To: <874mr0pbl2.fsf@nbsps.com> References: <1423086661-5860-1-git-send-email-eric.nelson@boundarydevices.com> <874mr0pbl2.fsf@nbsps.com> Message-ID: <54D3A56D.1070001@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Bill, On 02/05/2015 09:28 AM, Bill Pringlemeir wrote: > On 4 Feb 2015, eric.nelson at boundarydevices.com wrote: > >> The cause of a reset is generally useful, and shouldn't be >> blindly cleared in the process of displaying it as a part >> of the boot announcement. >> >> If a particular system wants to clear it out, this should >> be done later after there's an opportunity for code or >> boot commands to read the value. >> >> Signed-off-by: Eric Nelson >> --- >> arch/arm/imx-common/cpu.c | 1 - >> 1 file changed, 1 deletion(-) >> >> diff --git a/arch/arm/imx-common/cpu.c b/arch/arm/imx-common/cpu.c >> index 28ccd29..3e0a582 100644 >> --- a/arch/arm/imx-common/cpu.c >> +++ b/arch/arm/imx-common/cpu.c >> @@ -30,7 +30,6 @@ char *get_reset_cause(void) >> struct src *src_regs = (struct src *)SRC_BASE_ADDR; >> >> cause = readl(&src_regs->srsr); >> - writel(cause, &src_regs->srsr); >> >> switch (cause) { >> case 0x00001: > > There is very similar code in 'arch/arm/cpu/armv7/vf610/generic.c'. The > write is for a hard power on case where these reason registers are full > of weird bogus values (at least on Vybrid; I suspect on iMx). In the > case of a non-POR, the register bits are good. However, if you don't > clear the status, on the next reset it may have multiple registers bits > even though you really want to know the last reason (bit). > Understood. > Another option would be to clear the value and store the 'cause' > somewhere for other U-Boot users. Unless you wanted to read this from > an OS? I think both files should behave the same, all else equal. > This patch seems a pre-cursor to anything else, since blindly clearing the bits doesn't allow them to be used by code or script in U-Boot or an OS. Regards, Eric