aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Barrat <fbarrat@linux.ibm.com>2021-01-29 10:22:07 +0100
committerCédric Le Goater <clg@kaod.org>2021-09-29 12:04:31 +0200
commitb46d0225f9da2a40bb22e4f825ee2b5025c67e14 (patch)
tree1674a0e3dcb786ad59c1ece0dc4fbbe9906c7c36
parentd46612d66656d3cac1a4f4fd12bad9be8c82a2d6 (diff)
downloadskiboot-b46d0225f9da2a40bb22e4f825ee2b5025c67e14.zip
skiboot-b46d0225f9da2a40bb22e4f825ee2b5025c67e14.tar.gz
skiboot-b46d0225f9da2a40bb22e4f825ee2b5025c67e14.tar.bz2
phb4: Disable TCE cache line buffer
This patch implements a circumvention for HW557787. It disables the TCE cache line buffer as, under heavy loads, there's a possibility of an entry being re-allocated incorrectly. [ Upstream commit 15b93a301509ba7813343540e25b47ba395674b9 ] Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
-rw-r--r--hw/phb4.c1
-rw-r--r--include/phb4-regs.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/hw/phb4.c b/hw/phb4.c
index 1be786e..4a99dfa 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -5257,6 +5257,7 @@ static void phb4_init_hw(struct phb4 *p)
/* Init_17 - PHB Control */
val = PHB_CTRLR_IRQ_PGSZ_64K;
+ val |= PHB_CTRLR_TCE_CLB_DISABLE; // HW557787 circumvention
val |= SETFIELD(PHB_CTRLR_TVT_ADDR_SEL, 0ull, TVT_2_PER_PE);
if (PHB4_CAN_STORE_EOI(p))
val |= PHB_CTRLR_IRQ_STORE_EOI;
diff --git a/include/phb4-regs.h b/include/phb4-regs.h
index d3b0aac..b6e7787 100644
--- a/include/phb4-regs.h
+++ b/include/phb4-regs.h
@@ -110,6 +110,7 @@
#define TVT_4_PER_PE 1
#define TVT_8_PER_PE 2
#define TVT_16_PER_PE 3
+#define PHB_CTRLR_TCE_CLB_DISABLE PPC_BIT(21)
#define PHB_CTRLR_DMA_RD_SPACING PPC_BITMASK(28,31)
#define PHB_AIB_FENCE_CTRL 0x860
#define PHB_TCE_TAG_ENABLE 0x868