diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2013-02-09 20:09:22 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2013-02-12 21:21:28 -0500 |
commit | b840ba996d9f90a213335ea18c9d620391b745d6 (patch) | |
tree | cc961fed406cee815f29240acf6e9ce12ddc7001 | |
parent | fe09030b2800d4894660488b104eb9677eded55c (diff) | |
download | seabios-b840ba996d9f90a213335ea18c9d620391b745d6.tar.gz |
Integrate qemu_cfg_preinit() into qemu_romfile_init().
Now that only qemu_romfile_init() uses the fw_cfg interface, it only
needs to be detected in that function.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r-- | src/paravirt.c | 38 | ||||
-rw-r--r-- | src/paravirt.h | 3 | ||||
-rw-r--r-- | src/post.c | 3 |
3 files changed, 16 insertions, 28 deletions
diff --git a/src/paravirt.c b/src/paravirt.c index 9b288ac..aa4a421 100644 --- a/src/paravirt.c +++ b/src/paravirt.c @@ -1,5 +1,6 @@ // Paravirtualization support. // +// Copyright (C) 2013 Kevin O'Connor <kevin@koconnor.net> // Copyright (C) 2009 Red Hat Inc. // // Authors: @@ -89,8 +90,8 @@ qemu_biostable_setup(void) * QEMU firmware config (fw_cfg) interface ****************************************************************/ -int qemu_cfg_present; - +// List of QEMU fw_cfg entries. DO NOT ADD MORE. (All new content +// should be passed via the fw_cfg "file" interface.) #define QEMU_CFG_SIGNATURE 0x00 #define QEMU_CFG_ID 0x01 #define QEMU_CFG_UUID 0x02 @@ -130,26 +131,6 @@ qemu_cfg_read_entry(void *buf, int e, int len) qemu_cfg_read(buf, len); } -void qemu_cfg_preinit(void) -{ - char *sig = "QEMU"; - int i; - - if (!CONFIG_QEMU) - return; - - qemu_cfg_present = 1; - - qemu_cfg_select(QEMU_CFG_SIGNATURE); - - for (i = 0; i < 4; i++) - if (inb(PORT_QEMU_CFG_DATA) != sig[i]) { - qemu_cfg_present = 0; - break; - } - dprintf(4, "qemu_cfg_present=%d\n", qemu_cfg_present); -} - static int qemu_cfg_read_file(struct romfile_s *file, void *dst, u32 maxlen) { @@ -273,11 +254,20 @@ struct QemuCfgFile { char name[56]; }; -void qemu_romfile_init(void) +void qemu_cfg_init(void) { - if (!CONFIG_QEMU || !qemu_cfg_present) + if (!CONFIG_QEMU) return; + // Detect fw_cfg interface. + qemu_cfg_select(QEMU_CFG_SIGNATURE); + char *sig = "QEMU"; + int i; + for (i = 0; i < 4; i++) + if (inb(PORT_QEMU_CFG_DATA) != sig[i]) + return; + dprintf(1, "Found QEMU fw_cfg\n"); + // Populate romfiles for legacy fw_cfg entries qemu_cfg_legacy(); diff --git a/src/paravirt.h b/src/paravirt.h index 1d06e58..4438273 100644 --- a/src/paravirt.h +++ b/src/paravirt.h @@ -25,7 +25,6 @@ static inline int runningOnKVM(void) { void qemu_ramsize_preinit(void); void qemu_biostable_setup(void); -void qemu_cfg_preinit(void); -void qemu_romfile_init(void); +void qemu_cfg_init(void); #endif @@ -108,7 +108,7 @@ interface_init(void) malloc_fixupreloc_init(); // Setup romfile items. - qemu_romfile_init(); + qemu_cfg_init(); coreboot_cbfs_init(); // Setup ivt/bda/ebda @@ -314,7 +314,6 @@ void VISIBLE32INIT dopost(void) { // Detect ram and setup internal malloc. - qemu_cfg_preinit(); if (CONFIG_COREBOOT) coreboot_preinit(); else if (runningOnXen()) |