qemu-e2k/hw
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
..
9pfs
acpi
adc
alpha hw: Move MC146818 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:13:10 +02:00
arm Fix typos and docs, trivial changes and RTC devices split 2019-10-25 14:17:08 +01:00
audio
block bootdevice: Gather LCHS from all relevant devices 2019-10-31 11:47:29 -04:00
bt
char virtio: basic packed virtqueue support 2019-10-25 07:46:22 -04:00
core TCG Plugins initial implementation 2019-10-30 14:10:32 +00:00
cpu
cris
display hw/m68k: add Nubus macfb video card 2019-10-28 19:06:49 +01:00
dma hw/dma/xilinx_axidma.c: Switch to transaction-based ptimer API 2019-10-24 17:16:29 +01:00
gpio hw/gpio: Fix property accessors of the AST2600 GPIO 1.8V model 2019-10-24 17:16:27 +01:00
hppa hw: Move MC146818 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:13:10 +02:00
hyperv
i2c
i386 i386: implement IGNNE 2019-10-26 15:38:07 +02:00
ide bootdevice: Gather LCHS from all relevant devices 2019-10-31 11:47:29 -04:00
input
intc core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
ipack
ipmi
isa
lm32
m68k hw/m68k: define Macintosh Quadra 800 2019-10-28 19:06:53 +01:00
mem
microblaze
mips hw: Move MC146818 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:13:10 +02:00
misc Add Macintosh Quadra 800 machine in hw/m68k 2019-10-29 16:27:48 +00:00
moxie
net virtio_net: use RCU_READ_LOCK_GUARD 2019-10-29 18:56:45 -04:00
nios2
nubus hw/m68k: add Nubus support 2019-10-28 19:06:47 +01:00
nvram bootdevice: FW_CFG interface for LCHS values 2019-10-31 11:47:38 -04:00
openrisc
pci migration: allow unplug during migration for failover devices 2019-10-29 18:55:26 -04:00
pci-bridge
pci-host
pcmcia
ppc core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
rdma core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
riscv riscv/boot: Fix possible memory leak 2019-10-28 08:46:06 -07:00
rtc Merge commit 'df84f17' into HEAD 2019-10-26 15:38:02 +02:00
s390x
scsi bootdevice: Gather LCHS from all relevant devices 2019-10-31 11:47:29 -04:00
sd
semihosting
sh4
smbios
sparc hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:20:45 +02:00
sparc64 hw: Move sun4v hypervisor RTC from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:23:15 +02:00
ssi
timer Fix typos and docs, trivial changes and RTC devices split 2019-10-25 14:17:08 +01:00
tpm
tricore
unicore32
usb
vfio vfio: unplug failover primary device before migration 2019-10-29 18:55:26 -04:00
virtio virtio: Use auto rcu_read macros 2019-10-29 18:56:45 -04:00
watchdog
xen
xenpv
xtensa
Kconfig Add Macintosh Quadra 800 machine in hw/m68k 2019-10-29 16:27:48 +00:00
Makefile.objs Add Macintosh Quadra 800 machine in hw/m68k 2019-10-29 16:27:48 +00:00