summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-01-01 17:06:38 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-01-01 17:06:38 +0000
commit7c560456707bfe53eb1728fcde759be7d9418b62 (patch)
treef0faa190268d9b42e6a25758c36ac8c5e7380d1f
parentff403da6a76ac4879da101768e5a956c9582b8db (diff)
downloadqemu-7c560456707bfe53eb1728fcde759be7d9418b62.tar.gz
Register only valid register access widths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3881 c046a42c-6fe2-441c-8c8c-71466251a162
-rwxr-xr-xhw/eccmemctl.c32
-rw-r--r--hw/esp.c8
-rw-r--r--hw/fdc.c51
-rw-r--r--hw/iommu.c16
-rw-r--r--hw/pcnet.c8
-rw-r--r--hw/sbi.c8
-rw-r--r--hw/slavio_intctl.c16
-rw-r--r--hw/slavio_misc.c32
-rw-r--r--hw/slavio_serial.c8
-rw-r--r--hw/slavio_timer.c8
-rw-r--r--hw/sparc32_dma.c8
-rw-r--r--hw/sun4c_intctl.c8
-rw-r--r--hw/tcx.c16
13 files changed, 112 insertions, 107 deletions
diff --git a/hw/eccmemctl.c b/hw/eccmemctl.c
index 0b44fabce0..a63a52822e 100755
--- a/hw/eccmemctl.c
+++ b/hw/eccmemctl.c
@@ -93,30 +93,6 @@ typedef struct ECCState {
uint32_t regs[ECC_NREGS];
} ECCState;
-static void ecc_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
-{
- printf("ECC: Unsupported write 0x" TARGET_FMT_plx " %02x\n",
- addr, val & 0xff);
-}
-
-static uint32_t ecc_mem_readb(void *opaque, target_phys_addr_t addr)
-{
- printf("ECC: Unsupported read 0x" TARGET_FMT_plx " 00\n", addr);
- return 0;
-}
-
-static void ecc_mem_writew(void *opaque, target_phys_addr_t addr, uint32_t val)
-{
- printf("ECC: Unsupported write 0x" TARGET_FMT_plx " %04x\n",
- addr, val & 0xffff);
-}
-
-static uint32_t ecc_mem_readw(void *opaque, target_phys_addr_t addr)
-{
- printf("ECC: Unsupported read 0x" TARGET_FMT_plx " 0000\n", addr);
- return 0;
-}
-
static void ecc_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
{
ECCState *s = opaque;
@@ -201,14 +177,14 @@ static uint32_t ecc_mem_readl(void *opaque, target_phys_addr_t addr)
}
static CPUReadMemoryFunc *ecc_mem_read[3] = {
- ecc_mem_readb,
- ecc_mem_readw,
+ NULL,
+ NULL,
ecc_mem_readl,
};
static CPUWriteMemoryFunc *ecc_mem_write[3] = {
- ecc_mem_writeb,
- ecc_mem_writew,
+ NULL,
+ NULL,
ecc_mem_writel,
};
diff --git a/hw/esp.c b/hw/esp.c
index fa58c6e6bf..c701321134 100644
--- a/hw/esp.c
+++ b/hw/esp.c
@@ -543,14 +543,14 @@ static void esp_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
static CPUReadMemoryFunc *esp_mem_read[3] = {
esp_mem_readb,
- esp_mem_readb,
- esp_mem_readb,
+ NULL,
+ NULL,
};
static CPUWriteMemoryFunc *esp_mem_write[3] = {
esp_mem_writeb,
- esp_mem_writeb,
- esp_mem_writeb,
+ NULL,
+ NULL,
};
static void esp_save(QEMUFile *f, void *opaque)
diff --git a/hw/fdc.c b/hw/fdc.c
index d6897654df..4356aee9ca 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -493,6 +493,18 @@ static CPUWriteMemoryFunc *fdctrl_mem_write[3] = {
fdctrl_write_mem,
};
+static CPUReadMemoryFunc *fdctrl_mem_read_strict[3] = {
+ fdctrl_read_mem,
+ NULL,
+ NULL,
+};
+
+static CPUWriteMemoryFunc *fdctrl_mem_write_strict[3] = {
+ fdctrl_write_mem,
+ NULL,
+ NULL,
+};
+
static void fd_save (QEMUFile *f, fdrive_t *fd)
{
uint8_t tmp;
@@ -586,12 +598,11 @@ static void fdctrl_external_reset(void *opaque)
fdctrl_reset(s, 0);
}
-fdctrl_t *fdctrl_init (qemu_irq irq, int dma_chann, int mem_mapped,
- target_phys_addr_t io_base,
- BlockDriverState **fds)
+static fdctrl_t *fdctrl_init_common (qemu_irq irq, int dma_chann,
+ target_phys_addr_t io_base,
+ BlockDriverState **fds)
{
fdctrl_t *fdctrl;
- int io_mem;
int i;
FLOPPY_DPRINTF("init controller\n");
@@ -611,7 +622,6 @@ fdctrl_t *fdctrl_init (qemu_irq irq, int dma_chann, int mem_mapped,
fdctrl->dma_chann = dma_chann;
fdctrl->io_base = io_base;
fdctrl->config = 0x60; /* Implicit seek, polling & FIFO enabled */
- fdctrl->sun4m = 0;
if (fdctrl->dma_chann != -1) {
fdctrl->dma_en = 1;
DMA_register_channel(dma_chann, &fdctrl_transfer_handler, fdctrl);
@@ -623,6 +633,25 @@ fdctrl_t *fdctrl_init (qemu_irq irq, int dma_chann, int mem_mapped,
}
fdctrl_reset(fdctrl, 0);
fdctrl->state = FD_CTRL_ACTIVE;
+ register_savevm("fdc", io_base, 1, fdc_save, fdc_load, fdctrl);
+ qemu_register_reset(fdctrl_external_reset, fdctrl);
+ for (i = 0; i < 2; i++) {
+ fd_revalidate(&fdctrl->drives[i]);
+ }
+
+ return fdctrl;
+}
+
+fdctrl_t *fdctrl_init (qemu_irq irq, int dma_chann, int mem_mapped,
+ target_phys_addr_t io_base,
+ BlockDriverState **fds)
+{
+ fdctrl_t *fdctrl;
+ int io_mem;
+
+ fdctrl = fdctrl_init_common(irq, dma_chann, io_base, fds);
+
+ fdctrl->sun4m = 0;
if (mem_mapped) {
io_mem = cpu_register_io_memory(0, fdctrl_mem_read, fdctrl_mem_write,
fdctrl);
@@ -637,11 +666,6 @@ fdctrl_t *fdctrl_init (qemu_irq irq, int dma_chann, int mem_mapped,
register_ioport_write((uint32_t)io_base + 0x07, 1, 1, &fdctrl_write,
fdctrl);
}
- register_savevm("fdc", io_base, 1, fdc_save, fdc_load, fdctrl);
- qemu_register_reset(fdctrl_external_reset, fdctrl);
- for (i = 0; i < 2; i++) {
- fd_revalidate(&fdctrl->drives[i]);
- }
return fdctrl;
}
@@ -650,9 +674,14 @@ fdctrl_t *sun4m_fdctrl_init (qemu_irq irq, target_phys_addr_t io_base,
BlockDriverState **fds)
{
fdctrl_t *fdctrl;
+ int io_mem;
- fdctrl = fdctrl_init(irq, 0, 1, io_base, fds);
+ fdctrl = fdctrl_init_common(irq, 0, io_base, fds);
fdctrl->sun4m = 1;
+ io_mem = cpu_register_io_memory(0, fdctrl_mem_read_strict,
+ fdctrl_mem_write_strict,
+ fdctrl);
+ cpu_register_physical_memory(io_base, 0x08, io_mem);
return fdctrl;
}
diff --git a/hw/iommu.c b/hw/iommu.c
index d3a50fc7aa..f83a9e3efc 100644
--- a/hw/iommu.c
+++ b/hw/iommu.c
@@ -115,7 +115,7 @@ typedef struct IOMMUState {
qemu_irq irq;
} IOMMUState;
-static uint32_t iommu_mem_readw(void *opaque, target_phys_addr_t addr)
+static uint32_t iommu_mem_readl(void *opaque, target_phys_addr_t addr)
{
IOMMUState *s = opaque;
target_phys_addr_t saddr;
@@ -136,7 +136,7 @@ static uint32_t iommu_mem_readw(void *opaque, target_phys_addr_t addr)
return ret;
}
-static void iommu_mem_writew(void *opaque, target_phys_addr_t addr,
+static void iommu_mem_writel(void *opaque, target_phys_addr_t addr,
uint32_t val)
{
IOMMUState *s = opaque;
@@ -213,15 +213,15 @@ static void iommu_mem_writew(void *opaque, target_phys_addr_t addr,
}
static CPUReadMemoryFunc *iommu_mem_read[3] = {
- iommu_mem_readw,
- iommu_mem_readw,
- iommu_mem_readw,
+ NULL,
+ NULL,
+ iommu_mem_readl,
};
static CPUWriteMemoryFunc *iommu_mem_write[3] = {
- iommu_mem_writew,
- iommu_mem_writew,
- iommu_mem_writew,
+ NULL,
+ NULL,
+ iommu_mem_writel,
};
static uint32_t iommu_page_get_flags(IOMMUState *s, target_phys_addr_t addr)
diff --git a/hw/pcnet.c b/hw/pcnet.c
index 40070ee60c..a886d87e8b 100644
--- a/hw/pcnet.c
+++ b/hw/pcnet.c
@@ -2043,15 +2043,15 @@ static uint32_t lance_mem_readw(void *opaque, target_phys_addr_t addr)
}
static CPUReadMemoryFunc *lance_mem_read[3] = {
+ NULL,
lance_mem_readw,
- lance_mem_readw,
- lance_mem_readw,
+ NULL,
};
static CPUWriteMemoryFunc *lance_mem_write[3] = {
+ NULL,
lance_mem_writew,
- lance_mem_writew,
- lance_mem_writew,
+ NULL,
};
void lance_init(NICInfo *nd, target_phys_addr_t leaddr, void *dma_opaque,
diff --git a/hw/sbi.c b/hw/sbi.c
index b5f1ac202b..8d264f1aab 100644
--- a/hw/sbi.c
+++ b/hw/sbi.c
@@ -91,14 +91,14 @@ static void sbi_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
}
static CPUReadMemoryFunc *sbi_mem_read[3] = {
- sbi_mem_readl,
- sbi_mem_readl,
+ NULL,
+ NULL,
sbi_mem_readl,
};
static CPUWriteMemoryFunc *sbi_mem_write[3] = {
- sbi_mem_writel,
- sbi_mem_writel,
+ NULL,
+ NULL,
sbi_mem_writel,
};
diff --git a/hw/slavio_intctl.c b/hw/slavio_intctl.c
index 82b239cede..b4bc6ef7ad 100644
--- a/hw/slavio_intctl.c
+++ b/hw/slavio_intctl.c
@@ -129,14 +129,14 @@ static void slavio_intctl_mem_writel(void *opaque, target_phys_addr_t addr, uint
}
static CPUReadMemoryFunc *slavio_intctl_mem_read[3] = {
- slavio_intctl_mem_readl,
- slavio_intctl_mem_readl,
+ NULL,
+ NULL,
slavio_intctl_mem_readl,
};
static CPUWriteMemoryFunc *slavio_intctl_mem_write[3] = {
- slavio_intctl_mem_writel,
- slavio_intctl_mem_writel,
+ NULL,
+ NULL,
slavio_intctl_mem_writel,
};
@@ -200,14 +200,14 @@ static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uin
}
static CPUReadMemoryFunc *slavio_intctlm_mem_read[3] = {
- slavio_intctlm_mem_readl,
- slavio_intctlm_mem_readl,
+ NULL,
+ NULL,
slavio_intctlm_mem_readl,
};
static CPUWriteMemoryFunc *slavio_intctlm_mem_write[3] = {
- slavio_intctlm_mem_writel,
- slavio_intctlm_mem_writel,
+ NULL,
+ NULL,
slavio_intctlm_mem_writel,
};
diff --git a/hw/slavio_misc.c b/hw/slavio_misc.c
index 9728bcad91..c54e00aa05 100644
--- a/hw/slavio_misc.c
+++ b/hw/slavio_misc.c
@@ -191,14 +191,14 @@ static uint32_t slavio_misc_mem_readb(void *opaque, target_phys_addr_t addr)
static CPUReadMemoryFunc *slavio_misc_mem_read[3] = {
slavio_misc_mem_readb,
- slavio_misc_mem_readb,
- slavio_misc_mem_readb,
+ NULL,
+ NULL,
};
static CPUWriteMemoryFunc *slavio_misc_mem_write[3] = {
slavio_misc_mem_writeb,
- slavio_misc_mem_writeb,
- slavio_misc_mem_writeb,
+ NULL,
+ NULL,
};
static uint32_t slavio_sysctrl_mem_readl(void *opaque, target_phys_addr_t addr)
@@ -241,18 +241,18 @@ static void slavio_sysctrl_mem_writel(void *opaque, target_phys_addr_t addr,
}
static CPUReadMemoryFunc *slavio_sysctrl_mem_read[3] = {
- slavio_sysctrl_mem_readl,
- slavio_sysctrl_mem_readl,
+ NULL,
+ NULL,
slavio_sysctrl_mem_readl,
};
static CPUWriteMemoryFunc *slavio_sysctrl_mem_write[3] = {
- slavio_sysctrl_mem_writel,
- slavio_sysctrl_mem_writel,
+ NULL,
+ NULL,
slavio_sysctrl_mem_writel,
};
-static uint32_t slavio_led_mem_reads(void *opaque, target_phys_addr_t addr)
+static uint32_t slavio_led_mem_readw(void *opaque, target_phys_addr_t addr)
{
MiscState *s = opaque;
uint32_t ret = 0, saddr;
@@ -270,7 +270,7 @@ static uint32_t slavio_led_mem_reads(void *opaque, target_phys_addr_t addr)
return ret;
}
-static void slavio_led_mem_writes(void *opaque, target_phys_addr_t addr,
+static void slavio_led_mem_writew(void *opaque, target_phys_addr_t addr,
uint32_t val)
{
MiscState *s = opaque;
@@ -289,15 +289,15 @@ static void slavio_led_mem_writes(void *opaque, target_phys_addr_t addr,
}
static CPUReadMemoryFunc *slavio_led_mem_read[3] = {
- slavio_led_mem_reads,
- slavio_led_mem_reads,
- slavio_led_mem_reads,
+ NULL,
+ slavio_led_mem_readw,
+ NULL,
};
static CPUWriteMemoryFunc *slavio_led_mem_write[3] = {
- slavio_led_mem_writes,
- slavio_led_mem_writes,
- slavio_led_mem_writes,
+ NULL,
+ slavio_led_mem_writew,
+ NULL,
};
static void slavio_misc_save(QEMUFile *f, void *opaque)
diff --git a/hw/slavio_serial.c b/hw/slavio_serial.c
index e0158a8495..07919111f4 100644
--- a/hw/slavio_serial.c
+++ b/hw/slavio_serial.c
@@ -641,14 +641,14 @@ static void serial_event(void *opaque, int event)
static CPUReadMemoryFunc *slavio_serial_mem_read[3] = {
slavio_serial_mem_readb,
- slavio_serial_mem_readb,
- slavio_serial_mem_readb,
+ NULL,
+ NULL,
};
static CPUWriteMemoryFunc *slavio_serial_mem_write[3] = {
slavio_serial_mem_writeb,
- slavio_serial_mem_writeb,
- slavio_serial_mem_writeb,
+ NULL,
+ NULL,
};
static void slavio_serial_save_chn(QEMUFile *f, ChannelState *s)
diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
index 32485797f3..c0d849ad38 100644
--- a/hw/slavio_timer.c
+++ b/hw/slavio_timer.c
@@ -276,14 +276,14 @@ static void slavio_timer_mem_writel(void *opaque, target_phys_addr_t addr,
}
static CPUReadMemoryFunc *slavio_timer_mem_read[3] = {
- slavio_timer_mem_readl,
- slavio_timer_mem_readl,
+ NULL,
+ NULL,
slavio_timer_mem_readl,
};
static CPUWriteMemoryFunc *slavio_timer_mem_write[3] = {
- slavio_timer_mem_writel,
- slavio_timer_mem_writel,
+ NULL,
+ NULL,
slavio_timer_mem_writel,
};
diff --git a/hw/sparc32_dma.c b/hw/sparc32_dma.c
index 742f2d8710..c69b559bec 100644
--- a/hw/sparc32_dma.c
+++ b/hw/sparc32_dma.c
@@ -198,14 +198,14 @@ static void dma_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
}
static CPUReadMemoryFunc *dma_mem_read[3] = {
- dma_mem_readl,
- dma_mem_readl,
+ NULL,
+ NULL,
dma_mem_readl,
};
static CPUWriteMemoryFunc *dma_mem_write[3] = {
- dma_mem_writel,
- dma_mem_writel,
+ NULL,
+ NULL,
dma_mem_writel,
};
diff --git a/hw/sun4c_intctl.c b/hw/sun4c_intctl.c
index 52c82fbc19..510eb2e119 100644
--- a/hw/sun4c_intctl.c
+++ b/hw/sun4c_intctl.c
@@ -80,14 +80,14 @@ static void sun4c_intctl_mem_writeb(void *opaque, target_phys_addr_t addr, uint3
static CPUReadMemoryFunc *sun4c_intctl_mem_read[3] = {
sun4c_intctl_mem_readb,
- sun4c_intctl_mem_readb,
- sun4c_intctl_mem_readb,
+ NULL,
+ NULL,
};
static CPUWriteMemoryFunc *sun4c_intctl_mem_write[3] = {
sun4c_intctl_mem_writeb,
- sun4c_intctl_mem_writeb,
- sun4c_intctl_mem_writeb,
+ NULL,
+ NULL,
};
void sun4c_pic_info(void *opaque)
diff --git a/hw/tcx.c b/hw/tcx.c
index 22bde4a26a..afafa2aa25 100644
--- a/hw/tcx.c
+++ b/hw/tcx.c
@@ -457,14 +457,14 @@ static void tcx_dac_writel(void *opaque, target_phys_addr_t addr, uint32_t val)
}
static CPUReadMemoryFunc *tcx_dac_read[3] = {
- tcx_dac_readl,
- tcx_dac_readl,
+ NULL,
+ NULL,
tcx_dac_readl,
};
static CPUWriteMemoryFunc *tcx_dac_write[3] = {
- tcx_dac_writel,
- tcx_dac_writel,
+ NULL,
+ NULL,
tcx_dac_writel,
};
@@ -479,14 +479,14 @@ static void tcx_dummy_writel(void *opaque, target_phys_addr_t addr,
}
static CPUReadMemoryFunc *tcx_dummy_read[3] = {
- tcx_dummy_readl,
- tcx_dummy_readl,
+ NULL,
+ NULL,
tcx_dummy_readl,
};
static CPUWriteMemoryFunc *tcx_dummy_write[3] = {
- tcx_dummy_writel,
- tcx_dummy_writel,
+ NULL,
+ NULL,
tcx_dummy_writel,
};