From: Moore, R. <rob...@in...> - 2004-04-08 21:03:34
|
There is currently a problem with the execution of the _PRW methods during GPE initialization. Namely, any _PRW method that accesses an operation region will currently fail because there are no region handlers installed at GPE init time. Therefore, the ACPI CA initialization sequence will require some modification. The current sequence is as follows: EvInitialize FixedEvents GPEs Run _PRW methods EvHandlerInit (SCI, Global Lock) EvInitAddressSpaces (Install default OpRegion handlers, run _REG methods) NsInitObjects (OpRegions, Buffers, Packages) NsInitDevices (Run _STA, _INI methods) The proposed new sequence is below. It takes into consideration the following (from the ACPI spec): =20 OSPM must guarantee that the following operation regions must always be accessible:=20 * PCI_Config operation regions on a PCI root bus containing a _BBN object. * I/O operation regions. * Memory operation regions when accessing memory returned by the System Address Map reporting interfaces.=20 Also, we now install the SCI handler *before* enabling any GPEs so that no GPEs are dropped. EvInitAddressSpaces=20 Install default region handlers - I/O, memory, PCI_Config (and perhaps EC) EvHandlerInit=20 Install SCI and Global Lock handlers request_irq() EvInitializeEvents FixedEvents GPEs=20 Init GPEs and run _PRW methods Disable all "wake" GPEs found under device object _PRW methods Enable all "runtime" GPEs NsInitOperationRegions=20 Run all _REG methods for OpRegions NsInitObjects=20 Init Buffers and Packages NsInitDevices=20 Run all Device _STA, _INI methods Comments welcome. Bob |