diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-09-20 10:11:49 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-09-20 10:11:49 +0000 |
commit | ab6d8744afb8c7dcb310afe3649d9867dbc78b94 (patch) | |
tree | 00e698dc7a220301196a7aff10e30f49d7b1f03d | |
parent | f810087ecb952053cf3a03b75455da26e379b947 (diff) | |
download | xen-ab6d8744afb8c7dcb310afe3649d9867dbc78b94.tar.gz xen-ab6d8744afb8c7dcb310afe3649d9867dbc78b94.tar.bz2 xen-ab6d8744afb8c7dcb310afe3649d9867dbc78b94.zip |
bitkeeper revision 1.450 (3f6c27e5nnHxybq2MyMyEWEiDcAG8A)
kernel.c, setup.c, README, README.CD:
Add a Xen option to ignore all bios-supplied tables.
-rw-r--r-- | README | 3 | ||||
-rw-r--r-- | README.CD | 31 | ||||
-rw-r--r-- | xen/arch/i386/setup.c | 19 | ||||
-rw-r--r-- | xen/common/kernel.c | 22 |
4 files changed, 51 insertions, 24 deletions
@@ -105,7 +105,8 @@ Hardware support Xen is intended to be run on server-class machines, and the current list of supported hardware very much reflects this, avoiding the need for us to write drivers for "legacy" hardware. Certain desktop chipsets -such as nvidia nforce2 are currently unsupported. +such as nvidia nforce2 are not fully supported. Some can be made +to work by specifying 'noacpi' or 'ignorebiostables' when booting Xen. Xen requires a "P6" or newer processor (e.g. Pentium Pro, Celeron, Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron). @@ -256,15 +256,28 @@ Troubleshooting Problems If you have problems booting Xen, there are a number of boot parameters that may be able to help diagnose problems: - noacpi turn acpi probing off, which may confuse Xen on some chipsets - watchdog enable NMI watchdog which can report certain failures - nosmp disable SMP support - noht disable Hyperthreading - ifname=ethXX select which Ethernet interface to use if you have multiple - ifname=dummy don't use any network interface - ser_baud=xxx set serial line baud rate for console - dom0_mem=xxx set the initial amount of memory for domain0. Xen will also - reserve some memory fr itself too. + ignorebiostables Disable parsing of BIOS-supplied tables. This is needed + for some very unsupported chipsets (eg. nforce2). If you + specify this option then ACPI tables are also ignored, and + SMP suppirt is disabled. + + nosmp Disable SMP support. + This option is implied by 'ignorebiostables'. + + noacpi Disable ACPI tables, which confuse Xen on some chipsets. + This option is implied by 'ignorebiostables'. + + watchdog Enable NMI watchdog which can report certain failures. + + noht Disable Hyperthreading. + + ifname=ethXX Select which Ethernet interface to use. + + ifname=dummy Don't use any network interface. + + ser_baud=xxx Set serial line baud rate for console. + + dom0_mem=xxx Set the initial amount of memory for domain0. It's probably a good idea to join the Xen developer's mailing list on diff --git a/xen/arch/i386/setup.c b/xen/arch/i386/setup.c index eb1e671fea..8a5c05838f 100644 --- a/xen/arch/i386/setup.c +++ b/xen/arch/i386/setup.c @@ -331,7 +331,7 @@ void __init start_of_day(void) extern void initialize_keytable(); extern void initialize_serial(void); extern void initialize_keyboard(void); - extern int opt_nosmp, opt_watchdog; + extern int opt_nosmp, opt_watchdog, opt_noacpi, opt_ignorebiostables; extern int do_timer_lists_from_pit; unsigned long low_mem_size; @@ -352,12 +352,21 @@ void __init start_of_day(void) if ( cpu_has_fxsr ) set_in_cr4(X86_CR4_OSFXSR); if ( cpu_has_xmm ) set_in_cr4(X86_CR4_OSXMMEXCPT); #ifdef CONFIG_SMP - find_smp_config(); /* find ACPI tables */ - smp_alloc_memory(); /* trampoline which other CPUs jump at */ + if ( opt_ignorebiostables ) + { + opt_nosmp = 1; /* No SMP without configuration */ + opt_noacpi = 1; /* ACPI will just confuse matters also */ + } + else + { + find_smp_config(); + smp_alloc_memory(); /* trampoline which other CPUs jump at */ + } #endif paging_init(); /* not much here now, but sets up fixmap */ #ifdef CONFIG_SMP - if ( smp_found_config ) get_smp_config(); + if ( smp_found_config ) + get_smp_config(); #endif domain_init(); scheduler_init(); @@ -374,7 +383,7 @@ void __init start_of_day(void) #ifndef CONFIG_SMP APIC_init_uniprocessor(); #else - if( opt_nosmp ) + if ( opt_nosmp ) APIC_init_uniprocessor(); else smp_boot_cpus(); diff --git a/xen/common/kernel.c b/xen/common/kernel.c index ac80a5ff3f..d1cbe51863 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -59,6 +59,9 @@ int opt_noht=0; int opt_noacpi=0; /* opt_nosmp: If true, secondary processors are ignored. */ int opt_nosmp=0; +/* opt_ignorebiostables: If true, ACPI and MP tables are ignored. */ +/* NB. This flag implies 'nosmp' and 'noacpi'. */ +int opt_ignorebiostables=0; /* opt_watchdog: If true, run a watchdog NMI on each processor. */ int opt_watchdog=0; @@ -67,15 +70,16 @@ static struct { enum { OPT_IP, OPT_STR, OPT_UINT, OPT_BOOL } type; void *var; } opts[] = { - { "console", OPT_UINT, &opt_console }, - { "ser_baud", OPT_UINT, &opt_ser_baud }, - { "dom0_mem", OPT_UINT, &opt_dom0_mem }, - { "ifname", OPT_STR, &opt_ifname }, - { "noht", OPT_BOOL, &opt_noht }, - { "noacpi", OPT_BOOL, &opt_noacpi }, - { "nosmp", OPT_BOOL, &opt_nosmp }, - { "watchdog", OPT_BOOL, &opt_watchdog }, - { NULL, 0, NULL } + { "console", OPT_UINT, &opt_console }, + { "ser_baud", OPT_UINT, &opt_ser_baud }, + { "dom0_mem", OPT_UINT, &opt_dom0_mem }, + { "ifname", OPT_STR, &opt_ifname }, + { "noht", OPT_BOOL, &opt_noht }, + { "noacpi", OPT_BOOL, &opt_noacpi }, + { "nosmp", OPT_BOOL, &opt_nosmp }, + { "ignorebiostables", OPT_BOOL, &opt_ignorebiostables }, + { "watchdog", OPT_BOOL, &opt_watchdog }, + { NULL, 0, NULL } }; |