[PATCH v2] ARM: zynq: use restart_handler mechanism for slcr reset

Josh Cartwright joshc at ni.com
Thu Mar 19 05:44:14 PDT 2015


On Thu, Mar 19, 2015 at 11:44:23AM +0100, Michal Simek wrote:
> On 02/27/2015 04:09 PM, Josh Cartwright wrote:
[..]
> > +++ b/arch/arm/mach-zynq/slcr.c
> > @@ -15,6 +15,7 @@
> >   */
> >  
> >  #include <linux/io.h>
> > +#include <linux/reboot.h>
> >  #include <linux/mfd/syscon.h>
> >  #include <linux/of_address.h>
> >  #include <linux/regmap.h>
> > @@ -91,10 +92,9 @@ u32 zynq_slcr_get_device_id(void)
> >  	return val;
> >  }
> >  
> > -/**
> > - * zynq_slcr_system_reset - Reset the entire system.
> > - */
> > -void zynq_slcr_system_reset(void)
> > +static
> > +int zynq_slcr_system_restart(struct notifier_block *nb,
> > +			     unsigned long action, void *data)
> >  {
> 
> First of all sorry for delay.

No problem.  I suspect ZynqMP is keeping you busy.

> Any reason to remove kernel-doc format?

It didn't seem to provide anything meaningful, as it was just a
restatement of the function name, and since this function has become
static, it makes even less sense.

> The rest looks good and I have also tested it.

Great!

> BTW: was also thinking about syscon-reboot option but it doesn't fit to
> our reset sequence. :-(

Because of the code that handles this?

	/*
	 * Clear 0x0F000000 bits of reboot status register to workaround
	 * the FSBL not loading the bitstream after soft-reboot
	 * This is a temporary solution until we know more.
	 */

Has this FSBL bug been addressed?

I suspect we could also drop the zynq_slcr_unlock() as well...we unlock
the SLCR early at boot and don't lock it, AFAICT.

With those two pieces dropped, I think we'd fit the syscon-reboot model.

  Josh



More information about the linux-arm-kernel mailing list