[SeaBIOS] [PATCH 4/8] Convert basic integer fw_cfg entries into romfile entries.
Kevin O'Connor
kevin at koconnor.net
Sun Feb 10 05:48:07 CET 2013
Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
---
src/acpi.c | 2 +-
src/boot.c | 2 +-
src/mptable.c | 3 +--
src/paravirt.c | 48 +++++-------------------------------------------
src/paravirt.h | 4 ----
src/smp.c | 3 +--
6 files changed, 9 insertions(+), 53 deletions(-)
diff --git a/src/acpi.c b/src/acpi.c
index 5396ae2..aebf26e 100644
--- a/src/acpi.c
+++ b/src/acpi.c
@@ -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);
diff --git a/src/boot.c b/src/boot.c
index f70e402..ec411b7 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -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)
diff --git a/src/mptable.c b/src/mptable.c
index 2d4e441..fc16096 100644
--- a/src/mptable.c
+++ b/src/mptable.c
@@ -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)
diff --git a/src/paravirt.c b/src/paravirt.c
index e782227..79b1c56 100644
--- a/src/paravirt.c
+++ b/src/paravirt.c
@@ -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;
diff --git a/src/paravirt.h b/src/paravirt.h
index 6b99ca9..e92e236 100644
--- a/src/paravirt.h
+++ b/src/paravirt.h
@@ -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);
diff --git a/src/smp.c b/src/smp.c
index 394dc4b..1590d65 100644
--- 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)
@@ -139,7 +138,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;
--
1.7.11.7
More information about the SeaBIOS
mailing list