qemu-e2k/include/sysemu
Sam Eiderman aea60a13b9 bootdevice: FW_CFG interface for LCHS values
Using fw_cfg, supply logical CHS values directly from QEMU to the BIOS.

Non-standard logical geometries break under QEMU.

A virtual disk which contains an operating system which depends on
logical geometries (consistent values being reported from BIOS INT13
AH=08) will most likely break under QEMU/SeaBIOS if it has non-standard
logical geometries - for example 56 SPT (sectors per track).
No matter what QEMU will report - SeaBIOS, for large enough disks - will
use LBA translation, which will report 63 SPT instead.

In addition we cannot force SeaBIOS to rely on physical geometries at
all. A virtio-blk-pci virtual disk with 255 phyiscal heads cannot
report more than 16 physical heads when moved to an IDE controller,
since the ATA spec allows a maximum of 16 heads - this is an artifact of
virtualization.

By supplying the logical geometries directly we are able to support such
"exotic" disks.

We serialize this information in a similar way to the "bootorder"
interface.
The new fw_cfg entry is "bios-geometry".

Reviewed-by: Karl Heubaum <karl.heubaum@oracle.com>
Reviewed-by: Arbel Moshe <arbel.moshe@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Sam Eiderman <shmuel.eiderman@oracle.com>
Signed-off-by: Sam Eiderman <sameid@google.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
2019-10-31 11:47:38 -04:00
..
accel.h Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arch_init.h Include generated QAPI headers less 2019-08-16 13:31:51 +02:00
balloon.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
block-backend.h block: Add @exact parameter to bdrv_co_truncate() 2019-10-28 12:00:07 +01:00
blockdev.h
bt.h
cpus.h
cryptodev-vhost-user.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
cryptodev-vhost.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cryptodev.h Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
device_tree.h
dma.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
dump-arch.h
dump.h qapi: Split dump.json off misc.json 2019-07-02 13:37:00 +02:00
hax.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
hostmem.h numa: Move remaining NUMA declarations from sysemu.h to numa.h 2019-08-16 13:31:53 +02:00
hvf.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
hw_accel.h hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
iothread.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
kvm_int.h kvm: split too big memory section on several memslots 2019-09-30 13:51:50 +02:00
kvm.h target/i386: expand feature words to 64 bits 2019-10-04 18:49:19 +02:00
memory_mapping.h Clean up inclusion of exec/cpu-common.h 2019-08-16 13:31:52 +02:00
numa.h numa: move numa global variable numa_info into MachineState 2019-09-03 11:26:55 -03:00
os-posix.h
os-win32.h
qtest.h qtest: Rename qtest.c:qtest_init() 2019-08-15 19:23:59 +02:00
replay.h replay: add BH oneshot event for block layer 2019-10-14 17:12:48 +02:00
reset.h
rng-random.h
rng.h virtio-rng: change default backend to rng-builtin 2019-09-04 06:32:51 -04:00
runstate.h sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
seccomp.h
sev.h
sysemu.h bootdevice: FW_CFG interface for LCHS values 2019-10-31 11:47:38 -04:00
tcg.h qemu-common: Move tcg_enabled() etc. to sysemu/tcg.h 2019-06-11 20:22:09 +02:00
tpm_backend.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
tpm.h
vhost-user-backend.h
watchdog.h
whpx.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
xen-mapcache.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00