shuffler: work around KVM problem with the new shuffler
authorH. Peter Anvin <hpa@zytor.com>
Tue, 14 Apr 2009 02:11:30 +0000 (19:11 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 14 Apr 2009 02:11:30 +0000 (19:11 -0700)
commitf2ebe30cefa59def4bc590f3ced08465b839430e
tree383fb040cd3624aa2d531c8dcd7dfd51579fe16d
parent3a1bc74b6c26b55a52459d9748375bf3aa15db37
shuffler: work around KVM problem with the new shuffler

KVM uses V86 mode to simulate real mode.  This causes problems with
the new shuffler.  This changes the shuffler handover to be in
16-bit protected mode instead, and requires the stub to do the actual
entry to real mode.  For the KVM hack to work, all segments must have:

(seg.base & 0xfff0000f) == 0 && seg.limit == 0xffff

As a result, we have to make sure the real-mode entry stub is
paragraph-aligned, lest we violate the first criterion.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
com32/include/syslinux/movebits.h
com32/lib/syslinux/shuffle_pm.c
com32/lib/syslinux/shuffle_rm.c
com32/lib/syslinux/zonelist.c
core/bcopyxx.inc
core/bootsect.inc
core/layout.inc
core/syslinux.ld
doc/comboot.txt