diff options
author | Blue Swirl <blauwirbel@gmail.com> | 2010-01-29 18:15:21 +0000 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2010-01-29 18:15:21 +0000 |
commit | a4d5f62ceba66536da1a62d19840a7fd4be6ad9b (patch) | |
tree | fab112d84ed39dcfc6f2096bc94d98bc64ffe978 | |
parent | 6c510fbf601fd8c6891b2f1d7165ceb82308a16f (diff) |
Sparc64: byte swap IO port access
This requires an updated OpenBIOS image.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r-- | hw/apb_pci.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/apb_pci.c b/hw/apb_pci.c index 7f458c60da..2b838ed91e 100644 --- a/hw/apb_pci.c +++ b/hw/apb_pci.c @@ -189,13 +189,13 @@ static void pci_apb_iowriteb (void *opaque, target_phys_addr_t addr, static void pci_apb_iowritew (void *opaque, target_phys_addr_t addr, uint32_t val) { - cpu_outw(addr & IOPORTS_MASK, val); + cpu_outw(addr & IOPORTS_MASK, bswap16(val)); } static void pci_apb_iowritel (void *opaque, target_phys_addr_t addr, uint32_t val) { - cpu_outl(addr & IOPORTS_MASK, val); + cpu_outl(addr & IOPORTS_MASK, bswap32(val)); } static uint32_t pci_apb_ioreadb (void *opaque, target_phys_addr_t addr) @@ -210,7 +210,7 @@ static uint32_t pci_apb_ioreadw (void *opaque, target_phys_addr_t addr) { uint32_t val; - val = cpu_inw(addr & IOPORTS_MASK); + val = bswap16(cpu_inw(addr & IOPORTS_MASK)); return val; } @@ -218,7 +218,7 @@ static uint32_t pci_apb_ioreadl (void *opaque, target_phys_addr_t addr) { uint32_t val; - val = cpu_inl(addr & IOPORTS_MASK); + val = bswap32(cpu_inl(addr & IOPORTS_MASK)); return val; } |