diff options
author | Rudolf Marek <mar@sysgo.com> | 2015-08-14 13:38:55 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2015-09-20 22:48:39 +0200 |
commit | e7f08320f055e1093007b3f1d55b145d5f4daaa1 (patch) | |
tree | 8312cece367a79b63b0fe3320b9f50d96fc045e1 | |
parent | 1cde732d88af34849343dc1f0e68072eab0841b9 (diff) |
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>
-rw-r--r-- | hw/pci-host/ppce500.c | 4 |
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; |