> Eric, thanks for your help. You've set me on a path that's taught me
> quite a bit.
> 
> However it still doesn't work. I've tried reboot= with all four of those
> parameters and there is no difference.
> 
Then I would think about the brute-force method I recommended earlier.
Try to find out if there's a way to do a "master reset" on your board.  If
there is, try to find out if there's a way to pulse it on hardware.  What
chipset is on your board?  Did you look in the chipset docs?  The linux
kernel seems to assume that the reset can be pulsed by the keyboard
controller.  It wouldn't surprise me to learn that that assumption isn't
true for all machines.

> First of all, linux-2.2.11 and SysVinit-2.76.
> 
> I looked at the source for /sbin/halt included with SysVinit. I call
> this as /sbin/reboot -d -f -i. What it does is calls init_reboot.
> Forgive me, I'm new to all this but where is init_reboot?
> 
I recommend you forget about SysVinit, halt, reboot, etc.  The kernel is
responsible for performing the reboot.

> Anyway, from linux/sys.c, sys_reboot eventually gets called with
> LINUX_REBOOT_CMD_RESTART instead of LINUX_REBOOT_CMD_RESTART2. I
> verified this by changing the printk from "Restarting system" to
> "Restarting this here system" and recompiling. On shutdown, I get this
> cute new message and then I can hear the boards speaker beep and the
> hard drive seek but then it hangs, no POST messages and no reboot.
> 
> After that printk, machine_restart in linux/arch/i386/kernel/process.c
> gets called with (NULL) but the RESTART2 calls it with a command.
 
RESTART2 seems to be intended to reboot the system, passing some sort of
parameter to the kernel booted next time around.  However, on i386 this
feature is not implemented, so I'd forget about RESTART vs RESTART2.

> There is a function in process.c that is called reboot_setup. For the
> life of me I can't find where this is called from.
 
It's called from init/main.c .  As a general rule, functions called
*_setup are often called from main.c to initialize devices and other
things with options from the bootloader.

> Maybe this is an issue with halt.c in SysVinit-2.76?
> 

Since machine_restart is getting called, that would seem to rule out all
the userspace stuff.

Well, none of the reboot= options appear to work for your machine, so
it would seem to me that you need to find out (from Ampro or from chipset 
data sheets?) how to properly reset the system.  This shouldn't be an
unusual request if Ampro expects customers to be doing non-DOS stuff on
their boards.  Once you know how to reset the board, paste that code into
machine_restart() and reboots should start to work.

> I'm not sure if this is offtopic or not for this list. I only have this
> problem with the Ampro Littleboard though so maybe not.

I had problems with reboot on an embedded system; I'm guessing it's a
common problem.

Eric Seppanen
[EMAIL PROTECTED]

--
To unsubscribe from this list, send a message to [EMAIL PROTECTED]
with the command "unsubscribe linux-embedded" in the message body.
For more information, see <http://waste.org/mail/linux-embedded>.

Reply via email to