On Mon, Apr 04, 2011 at 02:41:45PM +0100, limp wrote: > Thanks for the reply Matthew, > > > It's a turing-complete language with full access to the hardware, so > > there's no reason why you can't entirely eliminate SMIs. The usual > > reason not to would be to retain commonality of code for non-ACPI > > environments like the setup screen. > > So, there is no case that SMIs can be irreplaceable? For example, when you > go to S5 I know from coreboot developers that you need to disable bus > mastering on all devices or the machine will not power off. Since the OS > does not know this, and neither does acpi, the S5 sleep command will cause > an SMI that disables BM and then goes to S5. I don't think there's any reason you couldn't do that in the _GTS method. > Furthermore, is ACPI AML BIOS code interruptible or not? > That is, what happens if an interrupt occurs during ACPI code execution? > Will it be pended and get served after the completion of ACPI code > execution? Depends on whether we're interruptible or not at that point. Interrupts will be disabled at certain points. > Furthermore, can a SMI interrupt ACPI code or not? It can. > One last question is regarding the location in memory of ACPI tables. Are > they written to standard RAM or to a specially protected RAM similar to > SMRAM? How ACPI tables can prevent the OS from corrupting them? RAM, but in an e820 region that indicates to the OS that it's not available for normal use. There's no protection from the OS. -- Matthew Garrett | mjg59@xxxxxxxxxxxxx -- 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