On Tue, Apr 23, 2013 at 11:49:57AM +0300, Michael S. Tsirkin wrote: > > I know of the following quirks that would have to be handled: > > > > 1 - the RSDP must be in the f-segment (where as all other tables can > > go into "high" memory). > > > > 2 - the RSDP has a checksum in a different location from the other > > tables and (with an XSDT) it can have two checksums. > > > > 3 - the RSDP has a pointer to the RSDT (and to the XSDT if present). > > > > 4 - the RSDT (and XSDT if present) has pointers to all the other > > tables (except RSDP, RSDT, DSDT, and FACS). The FADT pointer must be > > first in the list. > > > > 5 - the FADT table has pointers to DSDT and FACS. > > > > 6 - the FACS table must be 64 byte aligned. > > And of course newer ACPI has lots of other pointer quirks, > I assume you are aware of this.
I haven't had a chance to look through the newer acpi specs, but it's a shame more of the pointer quirks have been added. > > So, will a generic scheme really be able to handle all of the above > > quirks, or will we just be mixing some hardcoded quirks with some > > generic quirks? And, will the code to handle the above quirks in a > > generic fashion be of a higher complexity than simply hard-coding it? > > I wanted to handle checksums and pointers in a generic fashion, > and allocation rules in a table specific version > (since I only found two such examples in all of the spec: > FACS and RSDP). It's not hard to add generic handlers for these two, > and it's not much more code. You think it's preferable then? I don't know if it's perferable or not. I guess one advantage of it is that the same mechanism could then also be used for smbios, mptable, and pir. I think the seabios part of this will be straight forward no matter which direction is taken. The real work will be on getting the tables created in qemu. -Kevin _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org http://www.seabios.org/mailman/listinfo/seabios