[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