kern/94939: [acpi] [patch] reboot(8) fails on IBM / Intel blades

John Baldwin jhb at freebsd.org
Tue Mar 28 20:00:46 UTC 2006


The following reply was made to PR kern/94939; it has been noted by GNATS.

From: John Baldwin <jhb at freebsd.org>
To: Nate Lawson <nate at root.org>
Cc: bug-followup at freebsd.org, dodell at ixsystems.com
Subject: Re: kern/94939: [acpi] [patch] reboot(8) fails on IBM / Intel blades
Date: Tue, 28 Mar 2006 14:22:56 -0500

 On Tuesday 28 March 2006 14:08, Nate Lawson wrote:
 > John Baldwin wrote:
 > > Nate,
 > > 
 > > I'm curious where you think this code should go if not here?  I'd imagine
 > > we don't want to do this after AcpiTerminate() since perhaps the specified
 > > register may no longer be available (I might be wrong though, I haven't
 > > checked the spec).
 > > 
 > 
 > I don't have a specific idea since I didn't look at it closely.  I think 
 > there might be some requirements of writes to the reset register 
 > (delays, expectation of chipset configuration, order with other shutdown 
 > tasks).  Here are the requirements from the spec:
 > 
 >  >>>
 > 4.7.3.6 Reset Register
 > The optional ACPI reset mechanism specifies a standard mechanism that 
 > provides a complete system reset.  When implemented, this mechanism must 
 > reset the entire system. This includes processors, core logic, all
 > buses, and all peripherals. From an OSPM perspective, asserting the 
 > reset mechanism is the logical equivalent to power cycling the machine. 
 > Upon gaining control after a reset, OSPM will perform actions in
 > like manner to a cold boot.
 > ...
 > The system must reset immediately following the write to this register. 
 > OSPM assumes that the processor will not execute beyond the write 
 > instruction. OSPM should execute spin loops on the CPUs in the system 
 > following a write to this register.
 >  >>>
 > 
 > So I'm ok with the patch being committed if no other tasks need to 
 > happen after this shutdown handler is called.  Also, all APs should be 
 > stopped before this happens and it should only occur once on the BSP.
 
 Does the reset mechanism require that ACPI be "functioning"?  That is,
 does it have to happen before the call to AcpiTerminate() or can it
 happen afterwards?  If it can happen afterwards, it should probably be
 moved to be part of cpu_reset_real().
 
 -- 
 John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
 "Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-bugs mailing list