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. 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? Furthermore, can a SMI interrupt ACPI code or not? 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? Sorry for the large amount of questions raised ;) Kind regards, John K. -----Original Message----- From: Matthew Garrett [mailto:mjg59@xxxxxxxxxxxxx] Sent: Sunday, April 03, 2011 4:35 PM To: limp Cc: linux-acpi@xxxxxxxxxxxxxxx Subject: Re: Necessity of SMM/SMI use on ACPI x86 systems On Sun, Apr 03, 2011 at 12:40:47PM +0100, limp wrote: > Can anyone advise me if it's possible to write ACPI AML BIOS code that does > whatever it was intended to be executed in SMM? In general, is there any > *strong* argument saying that (at least) current systems cannot completely > eliminate the use of SMIs? 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. -- 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