@ Sha0 and MedEvil
Get Syslinux 3.84 or later and use
/com32/modules/ifcpu.c32.
* ifcpu.c
*
* Run one command (boot_entry_1) if the booted system match some CPU features
* and another (boot_entry_2) if it doesn't.
* Eventually this and other features should get folded into some kind
* of scripting engine.
*
* Usage:
*
* label test
* com32 ifcpu.c32
* append <option> <cpu_features> -- boot_entry_1 -- boot_entry_2
* label boot_entry_1
* kernel vmlinuz
* append ...
* label boot_entry_2
* kernel vmlinuz_64
* append ...
*
* options could be :
* debug : display some debugging messages
* dry-run : just do the detection, don't boot
*
* cpu_features could be:
* 64 : CPU have to be x86_64 compatible
* hvm : Processor must have hardware virtualization (hvm or svm)
* multicore : Processor must be multi-core
* smp : System have to be SMP
*
* if you want to match many cpu features, just separate them with a single space
syslinux.cfg:
LABEL win_single_multi_core
COM32 ifcpu.c32
APPEND multicore -- multi_core -- single_core
# Here goes your command line for launching the multi core windows environment (Image with correct contents for boot.ini)
LABEL multi_core
LINUX memdisk
INITRD multi_core.img
APPEND raw
# Here goes your command line for launching the multi core windows environment (Image with correct contents for boot.ini)
LABEL single_core
LINUX memdisk
INITRD single_core.img
APPEND raw