Re: [PATCH 02/12] ARM: OMAP3: Store reboot mode in scratchpad on OMAP34xx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Tony Lindgren <tony@xxxxxxxxxxx> [090318 13:09]:
> * Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> [090318 12:26]:
> > On Wed, Mar 18, 2009 at 11:28:06AM -0700, Tony Lindgren wrote:
> > > * Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> [090316 15:22]:
> > > > On Mon, Mar 16, 2009 at 07:40:24PM +0200, Juha Yrjola wrote:
> > > > > Russell King - ARM Linux wrote:
> > > > >
> > > > >> Right.  You are aware that there is already a mechanism for doing this
> > > > >> in the generic kernel (obviously not)?
> > > > >
> > > > > I am. Unfortunately, glibc fails to support this mechanism, as you say.  
> > > > > I didn't want to start making such intrusive changes for our trivial 
> > > > > need.
> > > > 
> > > > Yes, glibc sucks with that - they hide the Linux reboot syscall.
> > > > Luckily, it is accessible via the syscall() interface:
> > > > 
> > > > #include <linux/reboot.h>
> > > > 
> > > > int sys_reboot(const char *cmd)
> > > > {
> > > > 	return syscall(SYS_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2C,
> > > > 			LINUX_REBOOT_CMD_RESTART2, cmd);
> > > > }
> > > > 
> > > > >> sys_reboot() with LINUX_REBOOT_CMD_RESTART2 takes a string in addition
> > > > >> to the standard parameters.  This string is passed into machine_restart()
> > > > >> which we currently ignore.  If LINUX_REBOOT_CMD_RESTART is used, this
> > > > >> string is NULL.
> > > > >>
> > > > >> We could change machine_restart() to pass this parameter through to
> > > > >> arm_pm_restart() and ultimately down to arch_reset().
> > > > >
> > > > > Sure. With RESTART2, I could've even used the reboot notifier chain with  
> > > > > an OMAP3-specific driver to store the string.
> > > > 
> > > > The notifier chain is called in any case.
> > > > 
> > > > > Are you suggesting to get rid of reboot_mode altogether? If not, could  
> > > > > we still have the sysfs mechanism? A one-character reboot_mode would be  
> > > > > plenty enough for us.
> > > > 
> > > > No, reboot mode tells _how_ to perform the reboot - whether that be
> > > > by hardware reset, gpio reset or a soft call via the reset address.
> > > > It's not supposed to tell the boot loader what to do.
> > > 
> > > So if the reboot mode can't be used for this.. Should we change Juha's
> > > sysfs interface patch to store something else like bootloader_mode?
> > > 
> > > I guess we cannot use kexec for this either?
> > 
> > Why not use the mechanism that's already there as I've already pointed
> > out?
> 
> Sorry I misunderstood, I thought you did not want to use reboot_mode
> for this at all..
> 
> To recap, so we change machine_restart() like you described above, and then
> this patch is still valid, except to update the description.

Hmm, after reading it one more time..

Russell you want to pass char *cmd in addition to reboot_mode, right?
And Juha's patch needs to be updated to use the cmd instead of reboot_mode?
 
> Juha, does that sound OK to you?
> 
> > Yes, glibc might be fscked in the head over the reboot() prototype but
> > that's easy to work-around as I've demonstrated.
> 
> Yeah sounds good to me.
> 
> Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux