]> xenbits.xensource.com Git - seabios.git/commitdiff
Convert basic integer fw_cfg entries into romfile entries.
authorKevin O'Connor <kevin@koconnor.net>
Sun, 10 Feb 2013 00:25:51 +0000 (19:25 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Wed, 13 Feb 2013 02:21:28 +0000 (21:21 -0500)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/acpi.c
src/boot.c
src/mptable.c
src/paravirt.c
src/paravirt.h
src/smp.c

index 5396ae2275e6b747b6e7fed187e2ca0c4ae99015..aebf26e395bd6b798030e090d5bd6b13a341fd96 100644 (file)
@@ -372,7 +372,7 @@ build_madt(void)
     io_apic->interrupt = cpu_to_le32(0);
 
     struct madt_intsrcovr *intsrcovr = (void*)&io_apic[1];
-    if (qemu_cfg_irq0_override()) {
+    if (romfile_loadint("etc/irq0-override", 0)) {
         memset(intsrcovr, 0, sizeof(*intsrcovr));
         intsrcovr->type   = APIC_XRUPT_OVERRIDE;
         intsrcovr->length = sizeof(*intsrcovr);
index f70e4024acd38d28b773cc91e1db1e42f1034bc2..ec411b70403577df95508fdac2d647c0a214158a 100644 (file)
@@ -404,7 +404,7 @@ interactive_bootmenu(void)
 {
     // XXX - show available drives?
 
-    if (! CONFIG_BOOTMENU || ! qemu_cfg_show_boot_menu())
+    if (! CONFIG_BOOTMENU || !romfile_loadint("etc/show-boot-menu", 1))
         return;
 
     while (get_keystroke(0) >= 0)
index 2d4e441125e9771908beba729629695f580d0ce8..fc160960f26ad72a95dc94b8dc9dd2ce14bc779b 100644 (file)
@@ -8,7 +8,6 @@
 #include "util.h" // dprintf
 #include "config.h" // CONFIG_*
 #include "mptable.h" // MPTABLE_SIGNATURE
-#include "paravirt.h" // qemu_cfg_irq0_override
 #include "pci.h"
 #include "pci_regs.h"
 
@@ -143,7 +142,7 @@ mptable_setup(void)
         intsrc->srcbusirq = i;
         intsrc->dstapic = ioapic_id;
         intsrc->dstirq = i;
-        if (qemu_cfg_irq0_override()) {
+        if (romfile_loadint("etc/irq0-override", 0)) {
             /* Destination 2 is covered by irq0->inti2 override (i ==
                0). Source IRQ 2 is unused */
             if (i == 0)
index e782227dcca572d850c9afb5884482bee3dcc06a..79b1c56a667e162db8cf66163e0d9ede9ee0bd2a 100644 (file)
@@ -172,37 +172,6 @@ void qemu_cfg_preinit(void)
     dprintf(4, "qemu_cfg_present=%d\n", qemu_cfg_present);
 }
 
-void qemu_cfg_get_uuid(u8 *uuid)
-{
-    if (!qemu_cfg_present)
-        return;
-
-    qemu_cfg_read_entry(uuid, QEMU_CFG_UUID, 16);
-}
-
-int qemu_cfg_show_boot_menu(void)
-{
-    u16 v;
-    if (!qemu_cfg_present)
-        return 1;
-
-    qemu_cfg_read_entry(&v, QEMU_CFG_BOOT_MENU, sizeof(v));
-
-    return v;
-}
-
-int qemu_cfg_irq0_override(void)
-{
-    u8 v;
-
-    if (!qemu_cfg_present)
-        return 0;
-
-    qemu_cfg_read_entry(&v, QEMU_CFG_IRQ0_OVERRIDE, sizeof(v));
-
-    return v;
-}
-
 u32 qemu_cfg_e820_entries(void)
 {
     u32 cnt;
@@ -237,18 +206,6 @@ void qemu_cfg_get_numa_data(u64 *data, int n)
         qemu_cfg_read((u8*)(data + i), sizeof(u64));
 }
 
-u16 qemu_cfg_get_max_cpus(void)
-{
-    u16 cnt;
-
-    if (!qemu_cfg_present)
-        return 0;
-
-    qemu_cfg_read_entry(&cnt, QEMU_CFG_MAX_CPUS, sizeof(cnt));
-
-    return cnt;
-}
-
 static int
 qemu_cfg_read_file(struct romfile_s *file, void *dst, u32 maxlen)
 {
@@ -292,6 +249,11 @@ struct qemu_smbios_header {
 static void
 qemu_cfg_legacy(void)
 {
+    // Misc config items.
+    qemu_romfile_add("etc/show-boot-menu", QEMU_CFG_BOOT_MENU, 0, 2);
+    qemu_romfile_add("etc/irq0-override", QEMU_CFG_IRQ0_OVERRIDE, 0, 1);
+    qemu_romfile_add("etc/max-cpus", QEMU_CFG_MAX_CPUS, 0, 2);
+
     // ACPI tables
     char name[128];
     u16 cnt;
index 6b99ca9d1d70bc7532e2d393824f61343bbd5bcf..e92e23610d3f79a646de7e58a2fda347da82bc27 100644 (file)
@@ -26,12 +26,8 @@ static inline int runningOnKVM(void) {
 void qemu_ramsize_preinit(void);
 void qemu_biostable_setup(void);
 void qemu_cfg_preinit(void);
-int qemu_cfg_show_boot_menu(void);
-void qemu_cfg_get_uuid(u8 *uuid);
-int qemu_cfg_irq0_override(void);
 int qemu_cfg_get_numa_nodes(void);
 void qemu_cfg_get_numa_data(u64 *data, int n);
-u16 qemu_cfg_get_max_cpus(void);
 u32 qemu_cfg_e820_entries(void);
 void* qemu_cfg_e820_load_next(void *addr);
 void qemu_romfile_init(void);
index 617e7fbbcd8feba072a74d99bf328c28bb65869e..f971647a991d414532fdb5797b0b35bfbae5f671 100644 (file)
--- a/src/smp.c
+++ b/src/smp.c
@@ -8,7 +8,6 @@
 #include "util.h" // dprintf
 #include "config.h" // CONFIG_*
 #include "cmos.h" // CMOS_BIOS_SMP_COUNT
-#include "paravirt.h"
 
 #define APIC_ICR_LOW ((u8*)BUILD_APIC_ADDR + 0x300)
 #define APIC_SVR     ((u8*)BUILD_APIC_ADDR + 0x0F0)
@@ -136,7 +135,7 @@ smp_setup(void)
     // Restore memory.
     *(u64*)BUILD_AP_BOOT_ADDR = old;
 
-    MaxCountCPUs = qemu_cfg_get_max_cpus();
+    MaxCountCPUs = romfile_loadint("etc/max-cpus", 0);
     if (!MaxCountCPUs || MaxCountCPUs < CountCPUs)
         MaxCountCPUs = CountCPUs;