]> Git Repo - qemu.git/commitdiff
fw_cfg: expose control register size in fw_cfg.h
authorGabriel L. Somlo <[email protected]>
Fri, 19 Feb 2016 18:20:25 +0000 (13:20 -0500)
committerGerd Hoffmann <[email protected]>
Tue, 8 Mar 2016 09:46:30 +0000 (10:46 +0100)
Expose the size of the control register (FW_CFG_CTL_SIZE) in fw_cfg.h.
Add comment to fw_cfg_io_realize() pointing out that since the
8-bit data register is always subsumed by the 16-bit control
register in the port I/O case, we use the control register width
as the *total* width of the (classic, non-DMA) port I/O region reserved
for the device.

Cc: Marc MarĂ­ <[email protected]>
Signed-off-by: Gabriel Somlo <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Marc MarĂ­ <[email protected]>
Message-id: 1455906029[email protected]
Signed-off-by: Gerd Hoffmann <[email protected]>
hw/nvram/fw_cfg.c
include/hw/nvram/fw_cfg.h

index f3acb47bd4dc22f745a0bc066115e50a4ca578aa..7866248b936879b3b662e56d618194d3dd661ee4 100644 (file)
@@ -32,7 +32,6 @@
 #include "qemu/error-report.h"
 #include "qemu/config-file.h"
 
-#define FW_CFG_CTL_SIZE 2
 #define FW_CFG_NAME "fw_cfg"
 #define FW_CFG_PATH "/machine/" FW_CFG_NAME
 
@@ -886,6 +885,9 @@ static void fw_cfg_io_realize(DeviceState *dev, Error **errp)
     FWCfgIoState *s = FW_CFG_IO(dev);
     SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
 
+    /* when using port i/o, the 8-bit data register ALWAYS overlaps
+     * with half of the 16-bit control register. Hence, the total size
+     * of the i/o region used is FW_CFG_CTL_SIZE */
     memory_region_init_io(&s->comb_iomem, OBJECT(s), &fw_cfg_comb_mem_ops,
                           FW_CFG(s), "fwcfg", FW_CFG_CTL_SIZE);
     sysbus_add_io(sbd, s->iobase, &s->comb_iomem);
index 5d19975df5b95e540c8adc45eb2fe5f8f8d58fed..4315f4e5824de2b18c4cc9c61daca7aa27a470fe 100644 (file)
@@ -44,6 +44,9 @@
 
 #define FW_CFG_INVALID          0xffff
 
+/* width in bytes of fw_cfg control register */
+#define FW_CFG_CTL_SIZE         0x02
+
 #define FW_CFG_MAX_FILE_PATH    56
 
 #ifndef NO_QEMU_PROTOS
This page took 0.029064 seconds and 4 git commands to generate.