[syslinux] [RESEND][RFC GIT PATCHES] acpioff: COM32 module to shut off machine using ACPI
Andy Walls
awalls at md.metrocast.net
Sun Mar 18 11:28:38 PDT 2012
On Sun, 2012-03-18 at 08:41 -0400, Gene Cumm wrote:
> On Sat, Mar 17, 2012 at 23:56, H. Peter Anvin <hpa at zytor.com> wrote:
> > On 03/17/2012 06:51 PM, Andy Walls wrote:
Hi hpa,
> >> would need to ensure the hardware is not
> >> in ACPI mode, by calling acpi_terminate().
> >
> > I wouldn't trust that to work right, given that it is an uncommon
> > operation and BIOSes are notoriously buggy.
> >
> > -hpa
Ah, yes you are correct. Thanks for the insight.
Hi Gene,
> Instead of attempting acpi_terminate(), the only reliable operations
> are to power off or reboot. Enabling ACPI system mode needs to be
> viewed as a one-way trip after which no other ACPI-enabled system can
> reliably take control.
After reading HPA's comment, this was essentially what I concluded as
well.
> At least after acpi_enable_subsystem() (and possibly earlier),
> acpioff.c32 should ensure control can not be returned by performing
> another power off, reboot, or a nearly unbreakable loop.
Done:
https://github.com/awalls-cx18/syslinux/commit/ab88b7f28c54fd5233cd10b04184bd1ddf71e81d#com32/acpioff/acpioff.c
Although, reboot was not desirable, IMO. If I tell a PXE client machine
to turn off, I don't want to hear from it again on the network.
> The Syslinux
> core attempts multiple callback/reboot methods and then traps the
> system in a nearly unbreakable loop where Ctrl-Alt-Del is normally the
> only thing that can still take any action.
Instead of returning, I now use this in acpioff:
while (1)
hlt();
Regards,
Andy
More information about the Syslinux
mailing list