ia64/xen-unstable
changeset 750:8b83e1b92625
bitkeeper revision 1.450 (3f6c27e5nnHxybq2MyMyEWEiDcAG8A)
kernel.c, setup.c, README, README.CD:
Add a Xen option to ignore all bios-supplied tables.
kernel.c, setup.c, README, README.CD:
Add a Xen option to ignore all bios-supplied tables.
author | kaf24@scramble.cl.cam.ac.uk |
---|---|
date | Sat Sep 20 10:11:49 2003 +0000 (2003-09-20) |
parents | e0274a094846 |
children | 57c34fef26af 9f659d018e60 |
files | README README.CD xen/arch/i386/setup.c xen/common/kernel.c |
line diff
1.1 --- a/README Sat Sep 20 08:27:19 2003 +0000 1.2 +++ b/README Sat Sep 20 10:11:49 2003 +0000 1.3 @@ -105,7 +105,8 @@ Hardware support 1.4 Xen is intended to be run on server-class machines, and the current 1.5 list of supported hardware very much reflects this, avoiding the need 1.6 for us to write drivers for "legacy" hardware. Certain desktop chipsets 1.7 -such as nvidia nforce2 are currently unsupported. 1.8 +such as nvidia nforce2 are not fully supported. Some can be made 1.9 +to work by specifying 'noacpi' or 'ignorebiostables' when booting Xen. 1.10 1.11 Xen requires a "P6" or newer processor (e.g. Pentium Pro, Celeron, 1.12 Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron).
2.1 --- a/README.CD Sat Sep 20 08:27:19 2003 +0000 2.2 +++ b/README.CD Sat Sep 20 10:11:49 2003 +0000 2.3 @@ -256,15 +256,28 @@ Troubleshooting Problems 2.4 If you have problems booting Xen, there are a number of boot parameters 2.5 that may be able to help diagnose problems: 2.6 2.7 - noacpi turn acpi probing off, which may confuse Xen on some chipsets 2.8 - watchdog enable NMI watchdog which can report certain failures 2.9 - nosmp disable SMP support 2.10 - noht disable Hyperthreading 2.11 - ifname=ethXX select which Ethernet interface to use if you have multiple 2.12 - ifname=dummy don't use any network interface 2.13 - ser_baud=xxx set serial line baud rate for console 2.14 - dom0_mem=xxx set the initial amount of memory for domain0. Xen will also 2.15 - reserve some memory fr itself too. 2.16 + ignorebiostables Disable parsing of BIOS-supplied tables. This is needed 2.17 + for some very unsupported chipsets (eg. nforce2). If you 2.18 + specify this option then ACPI tables are also ignored, and 2.19 + SMP suppirt is disabled. 2.20 + 2.21 + nosmp Disable SMP support. 2.22 + This option is implied by 'ignorebiostables'. 2.23 + 2.24 + noacpi Disable ACPI tables, which confuse Xen on some chipsets. 2.25 + This option is implied by 'ignorebiostables'. 2.26 + 2.27 + watchdog Enable NMI watchdog which can report certain failures. 2.28 + 2.29 + noht Disable Hyperthreading. 2.30 + 2.31 + ifname=ethXX Select which Ethernet interface to use. 2.32 + 2.33 + ifname=dummy Don't use any network interface. 2.34 + 2.35 + ser_baud=xxx Set serial line baud rate for console. 2.36 + 2.37 + dom0_mem=xxx Set the initial amount of memory for domain0. 2.38 2.39 2.40 It's probably a good idea to join the Xen developer's mailing list on
3.1 --- a/xen/arch/i386/setup.c Sat Sep 20 08:27:19 2003 +0000 3.2 +++ b/xen/arch/i386/setup.c Sat Sep 20 10:11:49 2003 +0000 3.3 @@ -331,7 +331,7 @@ void __init start_of_day(void) 3.4 extern void initialize_keytable(); 3.5 extern void initialize_serial(void); 3.6 extern void initialize_keyboard(void); 3.7 - extern int opt_nosmp, opt_watchdog; 3.8 + extern int opt_nosmp, opt_watchdog, opt_noacpi, opt_ignorebiostables; 3.9 extern int do_timer_lists_from_pit; 3.10 unsigned long low_mem_size; 3.11 3.12 @@ -352,12 +352,21 @@ void __init start_of_day(void) 3.13 if ( cpu_has_fxsr ) set_in_cr4(X86_CR4_OSFXSR); 3.14 if ( cpu_has_xmm ) set_in_cr4(X86_CR4_OSXMMEXCPT); 3.15 #ifdef CONFIG_SMP 3.16 - find_smp_config(); /* find ACPI tables */ 3.17 - smp_alloc_memory(); /* trampoline which other CPUs jump at */ 3.18 + if ( opt_ignorebiostables ) 3.19 + { 3.20 + opt_nosmp = 1; /* No SMP without configuration */ 3.21 + opt_noacpi = 1; /* ACPI will just confuse matters also */ 3.22 + } 3.23 + else 3.24 + { 3.25 + find_smp_config(); 3.26 + smp_alloc_memory(); /* trampoline which other CPUs jump at */ 3.27 + } 3.28 #endif 3.29 paging_init(); /* not much here now, but sets up fixmap */ 3.30 #ifdef CONFIG_SMP 3.31 - if ( smp_found_config ) get_smp_config(); 3.32 + if ( smp_found_config ) 3.33 + get_smp_config(); 3.34 #endif 3.35 domain_init(); 3.36 scheduler_init(); 3.37 @@ -374,7 +383,7 @@ void __init start_of_day(void) 3.38 #ifndef CONFIG_SMP 3.39 APIC_init_uniprocessor(); 3.40 #else 3.41 - if( opt_nosmp ) 3.42 + if ( opt_nosmp ) 3.43 APIC_init_uniprocessor(); 3.44 else 3.45 smp_boot_cpus();
4.1 --- a/xen/common/kernel.c Sat Sep 20 08:27:19 2003 +0000 4.2 +++ b/xen/common/kernel.c Sat Sep 20 10:11:49 2003 +0000 4.3 @@ -59,6 +59,9 @@ int opt_noht=0; 4.4 int opt_noacpi=0; 4.5 /* opt_nosmp: If true, secondary processors are ignored. */ 4.6 int opt_nosmp=0; 4.7 +/* opt_ignorebiostables: If true, ACPI and MP tables are ignored. */ 4.8 +/* NB. This flag implies 'nosmp' and 'noacpi'. */ 4.9 +int opt_ignorebiostables=0; 4.10 /* opt_watchdog: If true, run a watchdog NMI on each processor. */ 4.11 int opt_watchdog=0; 4.12 4.13 @@ -67,15 +70,16 @@ static struct { 4.14 enum { OPT_IP, OPT_STR, OPT_UINT, OPT_BOOL } type; 4.15 void *var; 4.16 } opts[] = { 4.17 - { "console", OPT_UINT, &opt_console }, 4.18 - { "ser_baud", OPT_UINT, &opt_ser_baud }, 4.19 - { "dom0_mem", OPT_UINT, &opt_dom0_mem }, 4.20 - { "ifname", OPT_STR, &opt_ifname }, 4.21 - { "noht", OPT_BOOL, &opt_noht }, 4.22 - { "noacpi", OPT_BOOL, &opt_noacpi }, 4.23 - { "nosmp", OPT_BOOL, &opt_nosmp }, 4.24 - { "watchdog", OPT_BOOL, &opt_watchdog }, 4.25 - { NULL, 0, NULL } 4.26 + { "console", OPT_UINT, &opt_console }, 4.27 + { "ser_baud", OPT_UINT, &opt_ser_baud }, 4.28 + { "dom0_mem", OPT_UINT, &opt_dom0_mem }, 4.29 + { "ifname", OPT_STR, &opt_ifname }, 4.30 + { "noht", OPT_BOOL, &opt_noht }, 4.31 + { "noacpi", OPT_BOOL, &opt_noacpi }, 4.32 + { "nosmp", OPT_BOOL, &opt_nosmp }, 4.33 + { "ignorebiostables", OPT_BOOL, &opt_ignorebiostables }, 4.34 + { "watchdog", OPT_BOOL, &opt_watchdog }, 4.35 + { NULL, 0, NULL } 4.36 }; 4.37 4.38