summaryrefslogtreecommitdiff
path: root/hw/pci-host
diff options
context:
space:
mode:
authorRudolf Marek <mar@sysgo.com>2015-08-14 13:38:55 +0200
committerAlexander Graf <agraf@suse.de>2015-09-20 22:48:39 +0200
commite7f08320f055e1093007b3f1d55b145d5f4daaa1 (patch)
tree8312cece367a79b63b0fe3320b9f50d96fc045e1 /hw/pci-host
parent1cde732d88af34849343dc1f0e68072eab0841b9 (diff)
downloadqemu-e7f08320f055e1093007b3f1d55b145d5f4daaa1.tar.gz
PPC: e500 pci host: Fix ATMUs register reads
There is a bug in the register mask when reading the ATMUs registers. As the result some registers cannot be read, and read is aliased to the other registers. Fix it. Signed-off-by: Rudolf Marek <rudolf.marek@sysgo.com> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'hw/pci-host')
-rw-r--r--hw/pci-host/ppce500.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
index 613ba73c64..50add34e50 100644
--- a/hw/pci-host/ppce500.c
+++ b/hw/pci-host/ppce500.c
@@ -140,7 +140,7 @@ static uint64_t pci_reg_read4(void *opaque, hwaddr addr,
case PPCE500_PCI_OW3:
case PPCE500_PCI_OW4:
idx = (addr >> 5) & 0x7;
- switch (addr & 0xC) {
+ switch (addr & 0x1F) {
case PCI_POTAR:
value = pci->pob[idx].potar;
break;
@@ -162,7 +162,7 @@ static uint64_t pci_reg_read4(void *opaque, hwaddr addr,
case PPCE500_PCI_IW2:
case PPCE500_PCI_IW1:
idx = ((addr >> 5) & 0x3) - 1;
- switch (addr & 0xC) {
+ switch (addr & 0x1F) {
case PCI_PITAR:
value = pci->pib[idx].pitar;
break;