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 >