Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
src/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig
index 25b2b1b..8120ff7 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -13,7 +13,7 @@ menu "General Features"
config XEN
depends on !COREBOOT
bool "Build for Xen HVM"
- default n
+ default y
help
Configure to be used by xen hvmloader, for a HVM guest.
--
1.7.2.5
Ian Campbell
2012-Jun-28 10:08 UTC
[PATCH 2/3] Xen: Autodetect debug I/O port at runtime instead of via Kconfig
This allows a common image which supports Xen to still print debug
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
src/Kconfig | 7 -------
src/output.c | 4 +++-
src/util.h | 1 +
src/xen.c | 6 ++++++
4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig
index 8120ff7..8932c9e 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -361,11 +361,4 @@ menu "Debugging"
information by outputing strings in a special port present in the
IO space.
- config DEBUG_IO_PORT
- depends on DEBUG_IO
- hex "Debug IO port address"
- default 0x0402
- help
- Bochs uses the 0x0402 address by default, whereas Xen
- makes the 0xe9 IO address available for guests use.
endmenu
diff --git a/src/output.c b/src/output.c
index 37c4942..83de7f4 100644
--- a/src/output.c
+++ b/src/output.c
@@ -23,6 +23,8 @@ struct putcinfo {
#define DEBUG_TIMEOUT 100000
+u16 DebugOutputPort VAR16VISIBLE = 0x402;
+
void
debug_serial_setup(void)
{
@@ -77,7 +79,7 @@ putc_debug(struct putcinfo *action, char c)
return;
if (CONFIG_DEBUG_IO)
// Send character to debug port.
- outb(c, CONFIG_DEBUG_IO_PORT);
+ outb(c, GET_GLOBAL(DebugOutputPort));
if (c == ''\n'')
debug_serial(''\r'');
debug_serial(c);
diff --git a/src/util.h b/src/util.h
index dbee0e5..ef8ec7c 100644
--- a/src/util.h
+++ b/src/util.h
@@ -231,6 +231,7 @@ int wait_preempt(void);
void check_preempt(void);
// output.c
+extern u16 DebugOutputPort;
void debug_serial_setup(void);
void panic(const char *fmt, ...)
__attribute__ ((format (printf, 1, 2))) __noreturn;
diff --git a/src/xen.c b/src/xen.c
index b18cca2..41aab98 100644
--- a/src/xen.c
+++ b/src/xen.c
@@ -65,6 +65,10 @@ void xen_probe(void)
dprintf(1, "Found hypervisor signature \"%s\" at
%x\n",
signature, base);
if (strcmp(signature, "XenVMMXenVMM") == 0) {
+ /* Set debug_io_port first, so the following messages work. */
+ DebugOutputPort = 0xe9;
+ dprintf(1, "SeaBIOS (version %s)\n\n", VERSION);
+ dprintf(1, "Found Xen hypervisor signature at %x\n",
base);
if ((eax - base) < 2)
panic("Insufficient Xen cpuid leaves. eax=%x at base
%x\n",
eax, base);
@@ -72,6 +76,8 @@ void xen_probe(void)
break;
}
}
+ if (!xen_cpuid_base)
+ dprintf(1, "No Xen hypervisor found.\n");
}
static int hypercall_xen_version( int cmd, void *arg)
--
1.7.2.5
Ian Campbell
2012-Jun-28 10:08 UTC
[PATCH 3/3] SMM: Disable use of SMM when running under Xen
Xen does not support SMM mode.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
src/smm.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/src/smm.c b/src/smm.c
index 72e5e88..d0d1476 100644
--- a/src/smm.c
+++ b/src/smm.c
@@ -10,6 +10,7 @@
#include "config.h" // CONFIG_*
#include "ioport.h" // outb
#include "pci_ids.h" // PCI_VENDOR_ID_INTEL
+#include "xen.h" // usingXen
ASM32FLAT(
".global smm_relocation_start\n"
@@ -151,6 +152,8 @@ smm_init(void)
return;
if (!CONFIG_USE_SMM)
return;
+ if (usingXen())
+ return;
dprintf(3, "init smm\n");
pci_find_init_device(smm_init_tbl, NULL);
--
1.7.2.5
The following are a few issues discovered in the course of investigating
Debian bug #678042 [0], including the fix for that actual bug (which is
cause by Xen not supporting SMM mode).
The following changes since commit 9166c4ae6d21d49bd97e0fb42eea2ffd6dd6f06d:
Xen: add definition of xen_hypercall_page (2012-06-27 21:07:24 -0400)
are available in the git repository at:
git://xenbits.xen.org/people/ianc/seabios.git bugfixes
Ian Campbell (3):
enable Xen support by default.
Xen: Autodetect debug I/O port at runtime instead of via Kconfig
SMM: Disable use of SMM when running under Xen
src/Kconfig | 9 +--------
src/output.c | 4 +++-
src/smm.c | 3 +++
src/util.h | 1 +
src/xen.c | 6 ++++++
5 files changed, 14 insertions(+), 9 deletions(-)
Thanks,
Ian.
[0] http://bugs.debian.org/678042
Sorry, forgot to CC xen-devel on the 0/3 mail, and obviously when I bounced it to xen-devel it didn''t make it into the CC line either. Please CC both lists if you happen to reply... On Thu, 2012-06-28 at 11:08 +0100, Ian Campbell wrote:> The following are a few issues discovered in the course of investigating > Debian bug #678042 [0], including the fix for that actual bug (which is > cause by Xen not supporting SMM mode). > > The following changes since commit 9166c4ae6d21d49bd97e0fb42eea2ffd6dd6f06d: > > Xen: add definition of xen_hypercall_page (2012-06-27 21:07:24 -0400) > > are available in the git repository at: > git://xenbits.xen.org/people/ianc/seabios.git bugfixes > > Ian Campbell (3): > enable Xen support by default. > Xen: Autodetect debug I/O port at runtime instead of via Kconfig > SMM: Disable use of SMM when running under Xen > > src/Kconfig | 9 +-------- > src/output.c | 4 +++- > src/smm.c | 3 +++ > src/util.h | 1 + > src/xen.c | 6 ++++++ > 5 files changed, 14 insertions(+), 9 deletions(-) > > Thanks, > Ian. > > [0] http://bugs.debian.org/678042 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Kevin O''Connor
2012-Jul-02 15:18 UTC
Re: [SeaBIOS] [PATCH 0/3] Fixes for running under Xen
On Thu, Jun 28, 2012 at 11:07:50AM +0100, Ian Campbell wrote:> The following are a few issues discovered in the course of investigating > Debian bug #678042 [0], including the fix for that actual bug (which is > cause by Xen not supporting SMM mode).Thanks. I applied your changes. -Kevin
On Mon, 2012-07-02 at 11:18 -0400, Kevin O''Connor wrote:> On Thu, Jun 28, 2012 at 11:07:50AM +0100, Ian Campbell wrote: > > The following are a few issues discovered in the course of investigating > > Debian bug #678042 [0], including the fix for that actual bug (which is > > cause by Xen not supporting SMM mode). > > Thanks. I applied your changes.Thank you!> > -Kevin > > _______________________________________________ > SeaBIOS mailing list > SeaBIOS@seabios.org > http://www.seabios.org/mailman/listinfo/seabios >