[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [QEMU] [PATCH v3 0/8] Add Qemu to SeaBIOS LCHS interface
From: |
Sam Eiderman |
Subject: |
[Qemu-block] [QEMU] [PATCH v3 0/8] Add Qemu to SeaBIOS LCHS interface |
Date: |
Mon, 17 Jun 2019 18:09:42 +0300 |
v1:
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 guess - SeaBIOS, for large enough disks - will
use LBA translation, which will report 63 SPT instead.
In addition we can not enforce SeaBIOS to rely on phyiscal geometries at
all. A virtio-blk-pci virtual disk with 255 phyiscal heads can not
report more than 16 physical heads when moved to an IDE controller, the
ATA spec allows a maximum of 16 heads - this is an artifact of
virtualization.
By supplying the logical geometies directly we are able to support such
"exotic" disks.
We will use fw_cfg to do just that.
v2:
Fix missing parenthesis check in
"hd-geo-test: Add tests for lchs override"
v3:
* Rename fw_cfg key to "bios-geometry".
* Remove "extendible" interface.
* Add cpu_to_le32 fix as Laszlo suggested or big endian hosts
* Fix last qtest commit - automatic docker tester for some reason does not have
qemu-img set
Sam Eiderman (8):
block: Refactor macros - fix tabbing
block: Support providing LCHS from user
bootdevice: Add interface to gather LCHS
scsi: Propagate unrealize() callback to scsi-hd
bootdevice: Gather LCHS from all relevant devices
bootdevice: Refactor get_boot_devices_list
bootdevice: FW_CFG interface for LCHS values
hd-geo-test: Add tests for lchs override
bootdevice.c | 154 ++++++++++---
hw/block/virtio-blk.c | 6 +
hw/ide/qdev.c | 7 +-
hw/nvram/fw_cfg.c | 14 +-
hw/scsi/scsi-bus.c | 15 ++
hw/scsi/scsi-disk.c | 14 ++
include/hw/block/block.h | 22 +-
include/hw/scsi/scsi.h | 1 +
include/sysemu/sysemu.h | 4 +
tests/Makefile.include | 2 +-
tests/hd-geo-test.c | 566 +++++++++++++++++++++++++++++++++++++++++++++++
11 files changed, 764 insertions(+), 41 deletions(-)
--
2.13.3
- [Qemu-block] [QEMU] [PATCH v3 0/8] Add Qemu to SeaBIOS LCHS interface,
Sam Eiderman <=
- [Qemu-block] [QEMU] [PATCH v3 2/8] block: Support providing LCHS from user, Sam Eiderman, 2019/06/17
- [Qemu-block] [QEMU] [PATCH v3 3/8] bootdevice: Add interface to gather LCHS, Sam Eiderman, 2019/06/17
- [Qemu-block] [QEMU] [PATCH v3 4/8] scsi: Propagate unrealize() callback to scsi-hd, Sam Eiderman, 2019/06/17
- [Qemu-block] [QEMU] [PATCH v3 5/8] bootdevice: Gather LCHS from all relevant devices, Sam Eiderman, 2019/06/17
- [Qemu-block] [QEMU] [PATCH v3 7/8] bootdevice: FW_CFG interface for LCHS values, Sam Eiderman, 2019/06/17
- [Qemu-block] [QEMU] [PATCH v3 6/8] bootdevice: Refactor get_boot_devices_list, Sam Eiderman, 2019/06/17
- [Qemu-block] [QEMU] [PATCH v3 8/8] hd-geo-test: Add tests for lchs override, Sam Eiderman, 2019/06/17
- [Qemu-block] [QEMU] [PATCH v3 1/8] block: Refactor macros - fix tabbing, Sam Eiderman, 2019/06/17
- Re: [Qemu-block] [SeaBIOS] [QEMU] [PATCH v3 0/8] Add Qemu to SeaBIOS LCHS interface, no-reply, 2019/06/17
- Re: [Qemu-block] [SeaBIOS] [QEMU] [PATCH v3 0/8] Add Qemu to SeaBIOS LCHS interface, no-reply, 2019/06/17