On 12.12.2012, at 01:51, Kevin O'Connor wrote:
On Wed, Dec 12, 2012 at 01:40:52AM +0100, Alexander Graf wrote:
On 12.12.2012, at 01:30, Kevin O'Connor wrote:
On Tue, Dec 11, 2012 at 09:53:47AM -0500, Gabriel L. Somlo wrote:
What do you guys think ?
How about generating an SSDT with just the AppleSMC info in it, and then have qemu pass the SSDT into SeaBIOS using the existing ACPI table passing mechanism when the device is present.
That would mean we move the present detection to SeaBIOS which also simply talks to fw_cfg. So it doesn't really buy us anything over an _STA function, does it?
QEMU can already pass an SSDT table to SeaBIOS - I was suggesting that QEMU could make the decision whether or not to send the table based on it's direct knowledge of whether or not the device is present.
Another problem with the SSDT is that today it's mostly used for CPU nodes. So whether it works correctly with device nodes in a particular OS implementation is an open question.
There is, of course, complexities with this type of implementation too. However, I felt compelled to reiterate my desire for ACPI to be moved from SeaBIOS to QEMU as that's really the place that has all the knowledge to do it correctly.
I agree, the ideal case would be that QEMU assembles the DSDT on the fly, similar to how we do it for the fdt on e500 or the fdt on spapr. For the time being, I think doing an fw_cfg variable for whether we have an applesmc or not is a valid and safe solution though.
Alex