]> xenbits.xensource.com Git - seabios.git/commitdiff
Integrate qemu_cfg_preinit() into qemu_romfile_init().
authorKevin O'Connor <kevin@koconnor.net>
Sun, 10 Feb 2013 01:09:22 +0000 (20:09 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Wed, 13 Feb 2013 02:21:28 +0000 (21:21 -0500)
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>
src/paravirt.c
src/paravirt.h
src/post.c

index 9b288ac3a4c6045d25fd1a710c1900b12f252cac..aa4a42166993af0298ecc083bba68ebc1cfcddb1 100644 (file)
@@ -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();
 
index 1d06e58685d794f65d62a7b5b8f165b9b09c7f05..44382733f698e1afbb95d6a48c3592b349a065f1 100644 (file)
@@ -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
index c77d2dd2156947e3c490778bba8834b6d7e03012..3af36382875419b0f94f3bb53a9b94e850acacd9 100644 (file)
@@ -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())