Message ID | 20190626123816.8907-1-shmuel.eiderman@oracle.com |
---|---|
Headers | show |
Series | Add Qemu to SeaBIOS LCHS interface | expand |
On Wed, Jun 26, 2019 at 03:38:11PM +0300, Sam Eiderman wrote: > 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: > > Rename bootdevices fw_cfg key to bios-geoemtry > > v3: > > Change fw_cfg interface from mixed binary/textual to textual only > Squash commit "config: Add toggle for bootdevice information" > > v4: > > * Rename TRANSLATION_MACHINE to TRANSLATION_HOST > * Rename "overriden" translation name to "host-supplied" > * Rename overriden_lchs_supplied() to host_lchs_supplied() > * Move sectors and heads check to host_lchs_supplied() > * Reuse duplicate code in boot.c Looks all sane to me. Usual workflow is to have to qemu bits merged first, so we'll go wait for that. cheers, Gerd