Message ID | 20191016164145.115898-4-sameid@google.com |
---|---|
State | New |
Headers | show |
Series | Add Qemu to SeaBIOS LCHS interface | expand |
On 10/16/19 6:41 PM, Sam Eiderman wrote: > From: Sam Eiderman <shmuel.eiderman@oracle.com> > > Add logical geometry variables to BlockConf. > > A user can now supply "lcyls", "lheads" & "lsecs" for any HD device > that supports CHS ("cyls", "heads", "secs"). > > These devices include: > * ide-hd > * scsi-hd > * virtio-blk-pci > > In future commits we will use the provided LCHS and pass it to the BIOS > through fw_cfg to be supplied using INT13 routines. > > Reviewed-by: Karl Heubaum <karl.heubaum@oracle.com> > Reviewed-by: Arbel Moshe <arbel.moshe@oracle.com> > Signed-off-by: Sam Eiderman <shmuel.eiderman@oracle.com> > Signed-off-by: Sam Eiderman <sameid@google.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > include/hw/block/block.h | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/include/hw/block/block.h b/include/hw/block/block.h > index fd55a30bca..d7246f3862 100644 > --- a/include/hw/block/block.h > +++ b/include/hw/block/block.h > @@ -26,6 +26,7 @@ typedef struct BlockConf { > uint32_t discard_granularity; > /* geometry, not all devices use this */ > uint32_t cyls, heads, secs; > + uint32_t lcyls, lheads, lsecs; > OnOffAuto wce; > bool share_rw; > BlockdevOnError rerror; > @@ -65,7 +66,10 @@ static inline unsigned int get_physical_block_exp(BlockConf *conf) > #define DEFINE_BLOCK_CHS_PROPERTIES(_state, _conf) \ > DEFINE_PROP_UINT32("cyls", _state, _conf.cyls, 0), \ > DEFINE_PROP_UINT32("heads", _state, _conf.heads, 0), \ > - DEFINE_PROP_UINT32("secs", _state, _conf.secs, 0) > + DEFINE_PROP_UINT32("secs", _state, _conf.secs, 0), \ > + DEFINE_PROP_UINT32("lcyls", _state, _conf.lcyls, 0), \ > + DEFINE_PROP_UINT32("lheads", _state, _conf.lheads, 0), \ > + DEFINE_PROP_UINT32("lsecs", _state, _conf.lsecs, 0) > > #define DEFINE_BLOCK_ERROR_PROPERTIES(_state, _conf) \ > DEFINE_PROP_BLOCKDEV_ON_ERROR("rerror", _state, _conf.rerror, \ >
diff --git a/include/hw/block/block.h b/include/hw/block/block.h index fd55a30bca..d7246f3862 100644 --- a/include/hw/block/block.h +++ b/include/hw/block/block.h @@ -26,6 +26,7 @@ typedef struct BlockConf { uint32_t discard_granularity; /* geometry, not all devices use this */ uint32_t cyls, heads, secs; + uint32_t lcyls, lheads, lsecs; OnOffAuto wce; bool share_rw; BlockdevOnError rerror; @@ -65,7 +66,10 @@ static inline unsigned int get_physical_block_exp(BlockConf *conf) #define DEFINE_BLOCK_CHS_PROPERTIES(_state, _conf) \ DEFINE_PROP_UINT32("cyls", _state, _conf.cyls, 0), \ DEFINE_PROP_UINT32("heads", _state, _conf.heads, 0), \ - DEFINE_PROP_UINT32("secs", _state, _conf.secs, 0) + DEFINE_PROP_UINT32("secs", _state, _conf.secs, 0), \ + DEFINE_PROP_UINT32("lcyls", _state, _conf.lcyls, 0), \ + DEFINE_PROP_UINT32("lheads", _state, _conf.lheads, 0), \ + DEFINE_PROP_UINT32("lsecs", _state, _conf.lsecs, 0) #define DEFINE_BLOCK_ERROR_PROPERTIES(_state, _conf) \ DEFINE_PROP_BLOCKDEV_ON_ERROR("rerror", _state, _conf.rerror, \