* [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset @ 2011-03-10 10:53 Anatolij Gustschin 2011-03-10 13:47 ` Fabio Estevam 2011-03-10 15:07 ` Stefano Babic 0 siblings, 2 replies; 6+ messages in thread From: Anatolij Gustschin @ 2011-03-10 10:53 UTC (permalink / raw) To: u-boot Add output of the WRSR register content while booting so that we can see the source of the last reset. Signed-off-by: Anatolij Gustschin <agust@denx.de> --- arch/arm/cpu/arm1136/mx31/generic.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/generic.c index 1415d6c..788faed 100644 --- a/arch/arm/cpu/arm1136/mx31/generic.c +++ b/arch/arm/cpu/arm1136/mx31/generic.c @@ -93,8 +93,10 @@ void mx31_gpio_mux(unsigned long mode) #if defined(CONFIG_DISPLAY_CPUINFO) int print_cpuinfo (void) { - printf("CPU: Freescale i.MX31 at %d MHz\n", - mx31_get_mcu_main_clk() / 1000000); + struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE; + + printf("CPU: Freescale i.MX31 at %d MHz (WRSR=0x%04x)\n", + mx31_get_mcu_main_clk() / 1000000, wdog->wrsr); return 0; } #endif -- 1.7.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset 2011-03-10 10:53 [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset Anatolij Gustschin @ 2011-03-10 13:47 ` Fabio Estevam 2011-03-12 13:22 ` Anatolij Gustschin 2011-03-10 15:07 ` Stefano Babic 1 sibling, 1 reply; 6+ messages in thread From: Fabio Estevam @ 2011-03-10 13:47 UTC (permalink / raw) To: u-boot Hi Anatolij, --- On Thu, 3/10/11, Anatolij Gustschin <agust@denx.de> wrote: ....?? ??? > mx31_get_mcu_main_clk() / 1000000); > +??? struct wdog_regs *wdog = (struct> wdog_regs *)WDOG_BASE; > + > +??? printf("CPU:???Freescale i.MX31 at %d MHz (WRSR=0x%04x)\n", > +?? > mx31_get_mcu_main_clk() / 1000000, wdog->wrsr); > ??? return 0; Wouldn?t it be better to show a string for the reset source, rather than a pure register value? I sent a similar patch yesterday for MX31PDK: http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/95615 ,but I agree that moving it to the generic code is a better idea. Regards, Fabio Estevam ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset 2011-03-10 13:47 ` Fabio Estevam @ 2011-03-12 13:22 ` Anatolij Gustschin 0 siblings, 0 replies; 6+ messages in thread From: Anatolij Gustschin @ 2011-03-12 13:22 UTC (permalink / raw) To: u-boot Hi Fabio, On Thu, 10 Mar 2011 05:47:15 -0800 (PST) Fabio Estevam <fabioestevam@yahoo.com> wrote: > Hi Anatolij, > > --- On Thu, 3/10/11, Anatolij Gustschin <agust@denx.de> wrote: > ....?? ??? > > mx31_get_mcu_main_clk() / 1000000); > > +??? struct wdog_regs *wdog = (struct> wdog_regs *)WDOG_BASE; > > + > > +??? printf("CPU:???Freescale i.MX31 at %d MHz (WRSR=0x%04x)\n", > > +?? > > mx31_get_mcu_main_clk() / 1000000, wdog->wrsr); > > ??? return 0; > > Wouldn?t it be better to show a string for the reset source, rather than a pure register value? I'm fine with using a string. Viele Gr??e, Anatolij ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset 2011-03-10 10:53 [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset Anatolij Gustschin 2011-03-10 13:47 ` Fabio Estevam @ 2011-03-10 15:07 ` Stefano Babic 2011-03-12 13:15 ` Anatolij Gustschin 1 sibling, 1 reply; 6+ messages in thread From: Stefano Babic @ 2011-03-10 15:07 UTC (permalink / raw) To: u-boot On 03/10/2011 11:53 AM, Anatolij Gustschin wrote: > Add output of the WRSR register content while booting so that > we can see the source of the last reset. > > Signed-off-by: Anatolij Gustschin <agust@denx.de> Hi Antolij, > --- > arch/arm/cpu/arm1136/mx31/generic.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/generic.c > index 1415d6c..788faed 100644 > --- a/arch/arm/cpu/arm1136/mx31/generic.c > +++ b/arch/arm/cpu/arm1136/mx31/generic.c > @@ -93,8 +93,10 @@ void mx31_gpio_mux(unsigned long mode) > #if defined(CONFIG_DISPLAY_CPUINFO) > int print_cpuinfo (void) > { > - printf("CPU: Freescale i.MX31 at %d MHz\n", > - mx31_get_mcu_main_clk() / 1000000); > + struct wdog_regs *wdog = (struct wdog_regs *)WDOG_BASE; > + > + printf("CPU: Freescale i.MX31 at %d MHz (WRSR=0x%04x)\n", > + mx31_get_mcu_main_clk() / 1000000, wdog->wrsr); Why is it better to use the wrsr register instead of the rcsr register ? We are actually using the rcsr register for other i.MX processors (MX51/MX53/MX35). And if we want to print the reset cause, I think it should be better to write directly the cause as string instead of the register value. I do not think printing the reset cause should be implemented in print_cpuinfo(), because it manages a different issue (reset cause against CPU information). The print_cpuinfo() should have only CPU related values, as clock values, and so on, as it is implemented now for this and other processors. Better to add a different function for the reset cause. Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset 2011-03-10 15:07 ` Stefano Babic @ 2011-03-12 13:15 ` Anatolij Gustschin 2011-03-14 11:55 ` Stefano Babic 0 siblings, 1 reply; 6+ messages in thread From: Anatolij Gustschin @ 2011-03-12 13:15 UTC (permalink / raw) To: u-boot On Thu, 10 Mar 2011 16:07:49 +0100 Stefano Babic <sbabic@denx.de> wrote: > On 03/10/2011 11:53 AM, Anatolij Gustschin wrote: > > Add output of the WRSR register content while booting so that > > we can see the source of the last reset. > > > > Signed-off-by: Anatolij Gustschin <agust@denx.de> > > Hi Antolij, Hi Stefano, ... > > + printf("CPU: Freescale i.MX31 at %d MHz (WRSR=0x%04x)\n", > > + mx31_get_mcu_main_clk() / 1000000, wdog->wrsr); > > Why is it better to use the wrsr register instead of the rcsr register ? > We are actually using the rcsr register for other i.MX processors > (MX51/MX53/MX35). And if we want to print the reset cause, I think it > should be better to write directly the cause as string instead of the > register value. The reason for using wrsr register is that when reading this register, we can also recognize the software reset cause (SWFT, bit 0 is set). In our use case we have this requirement. U-Boot and Linux for iMX31 assert system reset by clearing SRS bit in wcr. This software reset is reported by SWFT in the wrsr register. When I read rcsr after a software reset, I always get watchdog timeout reset cause (probably because the reset was performed by writing to the watchdog module register wcr). But actually this reset was a software reset. I'm fine with using strings for reset cause if there is no objection. > I do not think printing the reset cause should be implemented in > print_cpuinfo(), because it manages a different issue (reset cause > against CPU information). The print_cpuinfo() should have only CPU > related values, as clock values, and so on, as it is implemented now for > this and other processors. Better to add a different function for the > reset cause. Were should we call this different function? Should be put it into init_sequence[]? Best regards, Anatolij ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset 2011-03-12 13:15 ` Anatolij Gustschin @ 2011-03-14 11:55 ` Stefano Babic 0 siblings, 0 replies; 6+ messages in thread From: Stefano Babic @ 2011-03-14 11:55 UTC (permalink / raw) To: u-boot On 03/12/2011 02:15 PM, Anatolij Gustschin wrote: > The reason for using wrsr register is that when reading this register, > we can also recognize the software reset cause (SWFT, bit 0 is set). > In our use case we have this requirement. Ok, understood. >> I do not think printing the reset cause should be implemented in >> print_cpuinfo(), because it manages a different issue (reset cause >> against CPU information). The print_cpuinfo() should have only CPU >> related values, as clock values, and so on, as it is implemented now for >> this and other processors. Better to add a different function for the >> reset cause. > > Were should we call this different function? Should be put it > into init_sequence[]? Well, I have not thought as a general function to be inserted in the init_sequence, I do not know if other ARM processor can export this function. On other i.MX processors, the reset cause is printed inside the checkboard function, if CONFIG_DISPLAY_BOARDINFO is set, and not inside print_cpuinfo(). I understand that the cpuinfo reports only how to identify the CPU, and the reset cause should be handled separately. IMHO should be enough to have a mxc_get_reset_cause() (or something like this) that the board maintainer can call if for some reason he must perform different actions according to the last reset cause. As name, I would prefer to identify not static functions starting with mxc_, as I am trying to uniform all i.MX exponing the same set of functions. Best regards, Stefano -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-03-14 11:55 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-03-10 10:53 [U-Boot] [PATCH 1/2] ARM: MX31: print WRSR to indicate the source of the last reset Anatolij Gustschin 2011-03-10 13:47 ` Fabio Estevam 2011-03-12 13:22 ` Anatolij Gustschin 2011-03-10 15:07 ` Stefano Babic 2011-03-12 13:15 ` Anatolij Gustschin 2011-03-14 11:55 ` Stefano Babic
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox