[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/5] Set emu_ver based on information provided by qe
From: |
Jes Sorensen |
Subject: |
[Qemu-devel] [PATCH 3/5] Set emu_ver based on information provided by qemu_cfg. |
Date: |
Mon, 03 Aug 2009 15:32:39 +0200 |
User-agent: |
quilt/0.47-1 |
This patch retrieves the value of QEMU_CFG_EMULATOR and sets emu_ver,
allowing the BIOS to runtime verify which emulator it is running on.
Signed-off-by: Jes Sorensen <address@hidden>
---
src/post.c | 4 ++++
src/qemu-cfg.c | 8 ++++++++
src/qemu-cfg.h | 2 ++
src/util.h | 7 +++++++
4 files changed, 21 insertions(+)
Index: seabios/src/post.c
===================================================================
--- seabios.orig/src/post.c
+++ seabios/src/post.c
@@ -20,6 +20,8 @@
#include "boot.h" // IPL
#include "qemu-cfg.h"
+u16 emu_ver;
+
void
__set_irq(int vector, void *loc)
{
@@ -167,6 +169,8 @@ post()
* if someone knows how to do so reliably.
*/
qemu_cfg_port_probe();
+ if (qemu_cfg_port)
+ emu_ver = qemu_cfg_get_emulator_rev();
pic_setup();
timer_setup();
Index: seabios/src/qemu-cfg.c
===================================================================
--- seabios.orig/src/qemu-cfg.c
+++ seabios/src/qemu-cfg.c
@@ -31,3 +31,11 @@ qemu_cfg_port_probe()
return qemu_cfg_port;
}
+u16 qemu_cfg_get_emulator_rev(void)
+{
+ u16 rev;
+
+ qemu_cfg_read((u8*)&rev, QEMU_CFG_EMULATOR, sizeof(rev));
+
+ return rev;
+}
Index: seabios/src/qemu-cfg.h
===================================================================
--- seabios.orig/src/qemu-cfg.h
+++ seabios/src/qemu-cfg.h
@@ -12,8 +12,10 @@
#define QEMU_CFG_SIGNATURE 0x00
#define QEMU_CFG_ID 0x01
#define QEMU_CFG_UUID 0x02
+#define QEMU_CFG_EMULATOR 0x10
void qemu_cfg_read(u8 *buf, u16 f, int len);
int qemu_cfg_port_probe();
+u16 qemu_cfg_get_emulator_rev(void);
#endif
Index: seabios/src/util.h
===================================================================
--- seabios.orig/src/util.h
+++ seabios/src/util.h
@@ -267,4 +267,11 @@ extern const char VERSION[];
// qemu-cfg.c
extern int qemu_cfg_port;
+// port.c
+extern u16 emu_ver;
+#define EMU_NONE 0x0000
+#define EMU_QEMU 0x0100
+#define EMU_QEMU_KVM 0x0101
+#define EMU_QEMU_KQEMU 0x0102
+
#endif // util.h
- [Qemu-devel] [PATCH 0/5] Seabios qemu detect, Jes Sorensen, 2009/08/04
- [Qemu-devel] [PATCH 1/5] Move QEMU_CFG related code out of smbios.c, Jes Sorensen, 2009/08/04
- [Qemu-devel] [PATCH 4/5] Set irq0override based on emu_ver., Jes Sorensen, 2009/08/04
- [Qemu-devel] [PATCH 2/5] Reorder call for qemu-cfg probing., Jes Sorensen, 2009/08/04
- [Qemu-devel] [PATCH 5/5] Remove CONFIG_KVM and use emu_ver to runtime detect QEMU & KVM., Jes Sorensen, 2009/08/04
- [Qemu-devel] [PATCH 3/5] Set emu_ver based on information provided by qemu_cfg.,
Jes Sorensen <=
- [Qemu-devel] Re: [PATCH 0/5] Seabios qemu detect, Kevin O'Connor, 2009/08/04