On Mon, Apr 29, 2013 at 01:41:01PM +0200, Laszlo Ersek wrote:
Not sure how much it counts, but I personally can agree with you on this
direction :)
One note below:
@@ -603,8 +604,72 @@ acpi_setup(void)
if (! CONFIG_ACPI)
return;
+int acpi_generate = 1;
+
dprintf(3, init ACPI tables\n);
+struct romfile_s *file = NULL;
+for (;;) {
+file = romfile_findprefix(/etc/acpi/, file);
+if (!file)
+break;
+
+/*
+ * Disable ACPI table generation. All ACPI tables must come from
+ * etc/acpi/ romfile entries.
+ */
+acpi_generate = 0;
+
[...]
+}
+
+linker_link(/etc/linker-script);
+
+if (!acpi_generate) {
+return;
+}
+
+dprintf(3, generate ACPI tables\n);
+
// This code is hardcoded for PIIX4 Power Management device.
struct pci_device *pci = pci_find_init_device(acpi_find_tbl, NULL);
if (!pci)
Are you deliberately calling linker_link() independently from
acpi_generate? My hunch is that linker_link() only makes sense if
acpi_generate == 0 (ie. qemu has passed down at least one table to
repoint some pointer to), but I may be missing a use case.
Thanks
Laszlo
In theory linker code is unrelated to acpi, and host
can the linker to patch any romfile.
I could add if (!acpi_generate) but it just seems
like adding code to remove something potentially useful.
--
MST
___
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios