We changed the device initialization sequence to improve boot performance by not executing _STA unless an _INI is actually present. The change to selectively run _STA was made in 20051216, from the release notes: "Implemented an optimization to the initialization sequence that can improve boot time. During ACPI device initialization, the _STA method is now run if and only if the _INI method exists. The _STA method is used to determine if the device is present; An _INI can only be run if _STA returns present, but it is a waste of time to run the _STA method if the _INI does not exist." It is my understanding of the ACPI spec that there is no requirement that _STA be run, ever. There is only a requirement that _INI be run if the device is present and _INI exists. Therefore, the optimization above was implemented because we were only running _STA to determine whether or not to run _INI. If there is no _INI present, it is pointless to run the _STA. > >Having a look to ACPI specification, I could find nowhere the > >restriction that _STA method is called only when an _INI method is > >provided for the device: > > Yes, there is no restriction on when or if _STA can be run. However, I do not think that there a *requirement* to run _STA, only _INI. I don't understand why running _STA fixes the problem. Exactly what or who is depending on _STA to be run? Bob > -----Original Message----- > From: Luck, Tony > Sent: Monday, April 03, 2006 7:01 AM > To: Moore, Robert; Brown, Len > Subject: FW: 2.6.16 not booting due to ACPI revision 20060127 > > Bob, Len: Can you comment on this please? > > -Tony > > >-----Original Message----- > >From: linux-ia64-owner@xxxxxxxxxxxxxxx > >[mailto:linux-ia64-owner@xxxxxxxxxxxxxxx] On Behalf Of xb > >Sent: Monday, April 03, 2006 4:40 AM > >To: linux-ia64@xxxxxxxxxxxxxxx > >Subject: 2.6.16 not booting due to ACPI revision 20060127 > > > >Hi all, > > > >We have platforms that do not boot in 2.6.16, but boot OK with 2.6.15 > >(loop in ACPI code). > >After some investigations, I found this is due to pci buses that are > >described in the configuration, but not available in limited > >configurations. > >These buses have a _STA method, but no _INI method. > >With 2.6.15, the _STA method is run, and as the bus is not > >present, the > >bus and all devices behind it are ignored. > >With 2.6.16, as no _INI method is provided for the bus, _STA method is > >not run, and then we loop when executing methods for devices > >behind the > >not present bus. > > > >Having a look to ACPI specification, I could find nowhere the > >restriction that _STA method is called only when an _INI method is > >provided for the device: > > > >"6.5.1 _INI (Init) > >... > >If the _STA method indicates that the device is present, OSPM will > >evaluate the _INI for the device (if the _INI method exists) and will > >examine each of the children of the device for _INI methods. > >If the _STA > >method indicates that the device is not present, OSPM will not run the > >_INI and will not examine the children of the device for _INI > >methods. " > > > > > >traces ----------------------------------------------- > > > > > > Device PC11 > >000060e4: 02 . . Name _HID > >000060e9: 03 . . . PNP0A03 PCI Bus 0x030ad041 > >000060ee: 02 . . Name _UID > >000060f3: 03 . . . 0x0b > >000060f5: 02 . . Name _ADR > >000060fa: 03 . . . 0x00 > >000060fc: 02 ---- 'PCI bus number setup by the BIOS' Method _BBN > >00006102: 03 . . . 0x00 > >00006103: 03 . . . Return > >00006104: 04 . . . . path: \_SB_.CSFF.IO15.B1__ > >00006117: 02 ---- 'Dynamic_Statu' Method _STA > >0000611d: 03 . . . 0x00 > >0000611e: 03 . . . If > >00006120: 04 . . . . LEqual > >00006121: 05 . . . . . path: \_SB_.CSFF.IO11.HUBD > >00006134: 05 . . . . . 0x00 > >00006136: 04 . . . . Return > >00006137: 05 . . . . . 0x0f > >00006139: 03 . . . Return > >0000613a: 04 . . . . 0x00 > >0000613c: 02 ---- 'Current Resource Setting' Method _CRS > >00006142: 03 . . . 0x00 > >00006143: 03 . . . Return > >00006144: 04 . . . . path: \_SB_.HLRS > >0000614e: 03 . . . 0x01 > >00006150: 03 . . . 0x01 > >00006152: 02 > > > > - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html