aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Move extboot to other optionromsJan Kiszka2009-07-081-695/+0
| | | | | | | | This unbreaks out-of-tree builds and reduces the differences to upstream's top-level Makefile. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
* kvm: extboot: Update number of HDs reported by BIOSGleb Natapov2009-03-241-0/+3
| | | | | | | | | The Vista boot loaded expects the bios to report a correct count of the bootable disks; and extboot disks are bootable. This fixes Vista boot from virtio-blk issue. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
* kvm: extboot: properly set int 0x13 return valueGlauber Costa2008-12-021-26/+26
| | | | | | | | | | | | | | | | Callers of int 0x13 usually rely on the carry flag being clear/set to indicate the status of the interrupt execution. However, our current code clear or set the flags register, which is totally useless. Whichever value it has, will be overwritten by the flags value _before_ the interrupt, due to the iret instruction. This fixes a bug that prevents slackware (and possibly win2k, untested) to boot. Signed-off-by: Glauber Costa <glommer@redhat.com> Acked-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com>
* kvm: extboot: don't use interrupt vectors $0x2b and $0x2cH. Peter Anvin2008-07-221-41/+28
| | | | | | | | | | | | | | | | extboot's use of interrupt vectors $0x2b and $0x2c is unsafe, as these interrupt vectors fall in the OS-use range (0x20-0x3f). Furthermore, it's unnecessary: we can keep a local pointer instead of hooking another interrupt as long as we can write to our own segment. Make the extboot segment writable, and use local variables to hold the old link pointers. If this turns out to cause problems, we should probably switch to using vectors in the 0xc0-0xef range, and/or other BIOS-reserved memory. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
* kvm: extboot: Fix read drive parameters to solve Grub Error 18Anthony Liguori2008-03-051-50/+13
| | | | | | | | | | | | | In certain circumstances, the calculated CHS can result in a total number of sectors that is less than the actual number of sectors. I'm not entirely sure why this upsets grub, but it seems to be the source of the Grub Error 18 that sometimes occurs when using extboot. The solution is to implement the read drive parameters function and return the actual numbers of sectors. This requires changing the QEMU <=> extboot interface as this was not previously passed to extboot. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
* kvm: extboot: fix -fno-stack-protector usageChristian Ehrhardt2008-01-081-2/+22
| | | | | | | | | | | | Option -fno-stack-protector breaks kvm-userspace in environments without stack-protector functionality. They fail with "unrecognized command line option" when compiling extboot. This patch removes the fix -fno-stack-protector option and replaces it with a detection that only adds -fno-stack-protector if the option is supported by the used gcc. The detection code is copied from kernel sources scripts/Kbuild.include. Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
* kvm: extboot: add extboot to kvm-userspaceAnthony Liguori2008-01-034-0/+848
extboot is an x86 Option ROM that passes through int13 functions to a VMM which allows a VMM to expose an arbitrary block device as the primary BIOS disk. It can be used to boot SCSI or paravirtual devices. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@qumranet.com>