[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/6] fw_cfg: use sysbus_init_mmio() in fw_cfg_io_rea
From: |
Mark Cave-Ayland |
Subject: |
[Qemu-devel] [PATCH 5/6] fw_cfg: use sysbus_init_mmio() in fw_cfg_io_realize() |
Date: |
Sat, 10 Jun 2017 13:30:20 +0100 |
This brings the function in line with fw_cfg_mem_realize(), deferring the
actual mapping until outside of the realize function.
Signed-off-by: Mark Cave-Ayland <address@hidden>
---
hw/nvram/fw_cfg.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index 87b4392..4159316 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -941,6 +941,7 @@ FWCfgState *fw_cfg_init_io_dma(uint32_t iobase, uint32_t
dma_iobase,
AddressSpace *dma_as)
{
DeviceState *dev;
+ SysBusDevice *sbd;
FWCfgState *s;
bool dma_requested = dma_iobase && dma_as;
@@ -953,12 +954,16 @@ FWCfgState *fw_cfg_init_io_dma(uint32_t iobase, uint32_t
dma_iobase,
qdev_init_nofail(dev);
+ sbd = SYS_BUS_DEVICE(dev);
+ sysbus_add_io(sbd, iobase, sysbus_mmio_get_region(sbd, 0));
+
s = FW_CFG(dev);
if (s->dma_enabled) {
/* 64 bits for the address field */
s->dma_as = dma_as;
s->dma_addr = 0;
+ sysbus_add_io(sbd, dma_iobase, sysbus_mmio_get_region(sbd, 1));
}
return s;
@@ -1090,13 +1095,13 @@ static void fw_cfg_io_realize(DeviceState *dev, Error
**errp)
* 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);
+ sysbus_init_mmio(sbd, &s->comb_iomem);
if (FW_CFG(s)->dma_enabled) {
memory_region_init_io(&FW_CFG(s)->dma_iomem, OBJECT(s),
&fw_cfg_dma_mem_ops, FW_CFG(s), "fwcfg.dma",
sizeof(dma_addr_t));
- sysbus_add_io(sbd, s->dma_iobase, &FW_CFG(s)->dma_iomem);
+ sysbus_init_mmio(sbd, &FW_CFG(s)->dma_iomem);
}
}
--
1.7.10.4
- Re: [Qemu-devel] [PATCH 6/6] fw_cfg: move QOM type defines into fw_cfg.h, (continued)
[Qemu-devel] [PATCH 5/6] fw_cfg: use sysbus_init_mmio() in fw_cfg_io_realize(),
Mark Cave-Ayland <=
[Qemu-devel] [PATCH 3/6] fw_cfg: move setting of FW_CFG_ID into fw_cfg_init1(), Mark Cave-Ayland, 2017/06/10
[Qemu-devel] [PATCH 4/6] fw_cfg: move fw_cfg_init1() into the fw_cfg_*_realize() functions, Mark Cave-Ayland, 2017/06/10
Re: [Qemu-devel] [PATCH 0/6] fw_cfg: qdev-related tidy-ups, Philippe Mathieu-Daudé, 2017/06/10