[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 12/28] sparc64: remove indirection for I/O port acce
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 12/28] sparc64: remove indirection for I/O port access |
Date: |
Mon, 22 Jul 2013 15:54:22 +0200 |
This fixes endianness bugs in I/O port access.
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/pci-host/apb.c | 54 ++----------------------------------------------------
1 file changed, 2 insertions(+), 52 deletions(-)
diff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c
index 06ace08..208ac85 100644
--- a/hw/pci-host/apb.c
+++ b/hw/pci-host/apb.c
@@ -302,56 +302,6 @@ static uint64_t apb_pci_config_read(void *opaque, hwaddr
addr,
return ret;
}
-static void pci_apb_iowriteb (void *opaque, hwaddr addr,
- uint32_t val)
-{
- cpu_outb(addr & IOPORTS_MASK, val);
-}
-
-static void pci_apb_iowritew (void *opaque, hwaddr addr,
- uint32_t val)
-{
- cpu_outw(addr & IOPORTS_MASK, bswap16(val));
-}
-
-static void pci_apb_iowritel (void *opaque, hwaddr addr,
- uint32_t val)
-{
- cpu_outl(addr & IOPORTS_MASK, bswap32(val));
-}
-
-static uint32_t pci_apb_ioreadb (void *opaque, hwaddr addr)
-{
- uint32_t val;
-
- val = cpu_inb(addr & IOPORTS_MASK);
- return val;
-}
-
-static uint32_t pci_apb_ioreadw (void *opaque, hwaddr addr)
-{
- uint32_t val;
-
- val = bswap16(cpu_inw(addr & IOPORTS_MASK));
- return val;
-}
-
-static uint32_t pci_apb_ioreadl (void *opaque, hwaddr addr)
-{
- uint32_t val;
-
- val = bswap32(cpu_inl(addr & IOPORTS_MASK));
- return val;
-}
-
-static const MemoryRegionOps pci_ioport_ops = {
- .old_mmio = {
- .read = { pci_apb_ioreadb, pci_apb_ioreadw, pci_apb_ioreadl },
- .write = { pci_apb_iowriteb, pci_apb_iowritew, pci_apb_iowritel, },
- },
- .endianness = DEVICE_NATIVE_ENDIAN,
-};
-
/* The APB host has an IRQ line for each IRQ line of each slot. */
static int pci_apb_map_irq(PCIDevice *pci_dev, int irq_num)
{
@@ -536,8 +486,8 @@ static int pci_pbm_init_device(SysBusDevice *dev)
sysbus_init_mmio(dev, &s->pci_config);
/* pci_ioport */
- memory_region_init_io(&s->pci_ioport, OBJECT(s), &pci_ioport_ops, s,
- "apb-pci-ioport", 0x10000);
+ memory_region_init_alias(&s->pci_ioport, OBJECT(s), "apb-pci-ioport",
+ get_system_io(), 0, 0x10000);
/* at region 2 */
sysbus_init_mmio(dev, &s->pci_ioport);
--
1.8.1.4
- [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 05/28] prep: fix I/O port endianness, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 06/28] mips_jazz: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 07/28] mips_r4k: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 09/28] ppc440_bamboo: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 08/28] mips_malta: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 10/28] mipssim: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 11/28] mips_fulong2e: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 12/28] sparc64: remove indirection for I/O port access,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 13/28] ebus: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 15/28] Revert "ioport: remove LITTLE_ENDIAN mark for portio", Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 16/28] pc-testdev: support 8 and 16-bit accesses to 0xe0, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 14/28] isa_mmio: delete, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 17/28] pc-testdev: remove useless cpu_to_le64/le64_to_cpu, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 18/28] mips: degrade BIOS error to warning, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 20/28] sparc64: unbreak, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 19/28] sh4: unbreak r2d, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 21/28] default-configs: add test device to all machines supporting ISA, Paolo Bonzini, 2013/07/22