ARM926 Software reset problems

Ricardo Martínez rmartinez at teltronic.es
Fri Nov 13 11:31:44 EST 2009


 
Thanks very much

Russell: now it works, thank you very much. But ... it is still under test
because it sometimes hangs. For example, if I "flashcp" and overwrite
"uImage" and then reboot, it usually hangs. And upgrading kernel image is
something needed (not really often, of course) by my application.

Dieter: CPU is application specific, from a small vendor. Now, reset is
asserted by an external component, an FPGA. CPU writes a command throug SPI
in this FPGA and FPGA asserts RESET line. We want to get rid of any external
components for reset.

Thanks
Ricardo Martinez


-----Mensaje original-----
De: Dieter Kiermaier [mailto:dk-arm-linux at gmx.de] 
Enviado el: viernes, 13 de noviembre de 2009 16:00
Para: linux-arm-kernel at lists.infradead.org
CC: Ricardo Martínez
Asunto: Re: ARM926 Software reset problems

Am Freitag 13 November 2009 15:41:17 schrieb Ricardo Martínez:
> 
> Hi Russell,
> 
> Thanks for your help.
> 
> I'm one step further. kernel_restart() uses arch_reset() which is 
> hardware dependent.
> 
> Most ARM9 make arch_reset() through Watchdog peripheral. But the CPU 
> I'm using does not have Watchdog timer.
> 
> I was trying to find an alternative, based only on software, but It 
> may be not posible.
> 

Maybe there is another way. Please read the hardware manual careful.
I now it from my last CPU (netsilicon ARM 926) that you have to write e.g.
the CPU PLL register to fire a hardware reset.
What CPU are you using?

Dieter

> For example, in u-boot command line I can do reset just jumping back 
> to start of u-boot code. This is more or less what "cpu_arm926_reset" 
> does, but most times system hangs.
> 
> Thanks,
> Ricardo Martinez
> 
> 
> -----Mensaje original-----
> De: Russell King - ARM Linux [mailto:linux at arm.linux.org.uk] Enviado 
> el: viernes, 13 de noviembre de 2009 13:21
> Para: Ricardo Martínez
> CC: linux-arm-kernel at lists.infradead.org
> Asunto: Re: ARM926 Software reset problems
> 
> On Fri, Nov 13, 2009 at 12:32:16PM +0100, Ricardo Martínez wrote:
> > I'm using 
> >     cpu_arm926_reset(ulong address) function which:
> >            - flushes I/D caches
> >             - jumps to "address", whose value in my case is NOR 
> > flash base address where U-Boot stays (after remapping).
> 
> You should not be using this directly.  Software rebooting has a 
> specific sequence, and the above is the very last step.
> 
> >     But it sometimes work, but most times hangs. Can this be caused 
> > by MMU not being switched off?
> 
> cpu_arm926_reset() turns the MMU and caches off.
> 
> > Is there any other prefered method to soft reboot ARM926 from Linux? 
> > I've taken a look at some PXA, OMAP & AT91 code about soft rebooting. 
> > It seems they use Watchdog timer to reset, but my CPU does not have 
> > a
> watchdog.
> 
> Don't call cpu_arm926_reset() directly.  Use kernel_restart() instead, 
> or even better the reboot syscall from userspace.
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 





More information about the linux-arm-kernel mailing list