aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/phb4.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/phb4.c b/hw/phb4.c
index fbf54b5..214df79 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -4713,7 +4713,11 @@ static void phb4_init_errors(struct phb4 *p)
out_be64(p->regs + 0x0d00, 0xffffffffffffffffull);
out_be64(p->regs + 0x0d08, 0x0000000000000000ull);
out_be64(p->regs + 0x0d18, 0xffffff0fffffffffull);
- out_be64(p->regs + 0x0d28, 0x0000400a00000000ull);
+
+ /* Errata: Clear bit 17, otherwise a CFG write UR/CA will incorrectly
+ * freeze a "random" PE (whatever last PE did an MMIO)
+ */
+ out_be64(p->regs + 0x0d28, 0x0000000a00000000ull);
out_be64(p->regs + 0x0d30, 0xdff7bd05f7ddfff0ull); /* XXX CAPI has diff. value */
out_be64(p->regs + 0x0d40, 0x0000000000000000ull);
out_be64(p->regs + 0x0d48, 0x0000000000000000ull);