[Skiboot] [PATCH 1/2] phb4: Init changes

Michael Neuling mikey at neuling.org
Wed Nov 29 11:38:20 AEDT 2017


These init changes for phb4 from the HW team.

Link down are now endpoint recoverable (ERC) rather than PHB fatal
errors.

BLIF Completion Timeout Error now generate an interrupt rather than
causing freeze events.

Signed-off-by: Michael Neuling <mikey at neuling.org>
---
 hw/phb4.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/phb4.c b/hw/phb4.c
index cfadf59d0c..17c9e6db81 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -2144,9 +2144,9 @@ static void phb4_prepare_link_change(struct pci_slot *slot, bool is_up)
 		out_be64(p->regs + PHB_REGB_ERR_INF_ENABLE,
 			 0x2130006efca8bc00ull);
 		out_be64(p->regs + PHB_REGB_ERR_ERC_ENABLE,
-			 0x0000000000000000ull);
+			 0x0080000000000000ull);
 		out_be64(p->regs + PHB_REGB_ERR_FAT_ENABLE,
-			 0xde8fff91035743ffull);
+			 0xde0fff91035743ffull);
 
 		/*
 		 * We might lose the bus numbers during the reset operation
@@ -4245,12 +4245,12 @@ static void phb4_init_errors(struct phb4 *p)
 	/* Enable/disable error status indicators that trigger irqs */
 	if (p->has_link) {
 		out_be64(p->regs + 0x1c20,	0x2130006efca8bc00ull);
-		out_be64(p->regs + 0x1c30,	0xde8fff91035743ffull);
+		out_be64(p->regs + 0x1c30,	0xde1fff91035743ffull);
 	} else {
 		out_be64(p->regs + 0x1c20,	0x0000000000000000ull);
 		out_be64(p->regs + 0x1c30,	0x0000000000000000ull);
 	}
-	out_be64(p->regs + 0x1c28,	0x0000000000000000ull);
+	out_be64(p->regs + 0x1c28,	0x0080000000000000ull);
 	out_be64(p->regs + 0x1c40,	0x0000000000000000ull);
 	out_be64(p->regs + 0x1c48,	0x0000000000000000ull);
 	out_be64(p->regs + 0x1c50,	0x0000000000000000ull);
@@ -4274,7 +4274,7 @@ static void phb4_init_errors(struct phb4 *p)
 	if (p->rev == PHB4_REV_NIMBUS_DD10)
 		out_be64(p->regs + 0x0da8,	0xc00000b801000060ull);
 	else
-		out_be64(p->regs + 0x0da8,	0xc00008b801000060ull);
+		out_be64(p->regs + 0x0da8,	0xc00018b801000060ull);
 	/*
 	 * Errata ER20161123 says we should set the top two bits in
 	 * 0x0db0 but this causes config space accesses which don't
@@ -4494,7 +4494,7 @@ static void phb4_init_hw(struct phb4 *p, bool first_init)
 	/* Init_126..130 - Re-enable error interrupts */
 	out_be64(p->regs + PHB_ERR_IRQ_ENABLE,			0xca8880cc00000000ull);
 	out_be64(p->regs + PHB_TXE_ERR_IRQ_ENABLE,		0x2008400e08200000ull);
-	out_be64(p->regs + PHB_RXE_ARB_ERR_IRQ_ENABLE,		0xc40028fc01804070ull);
+	out_be64(p->regs + PHB_RXE_ARB_ERR_IRQ_ENABLE,		0xc40038fc01804070ull);
 	out_be64(p->regs + PHB_RXE_MRG_ERR_IRQ_ENABLE,		0x00006100008000a8ull);
 	if (p->rev == PHB4_REV_NIMBUS_DD10)
 		out_be64(p->regs + PHB_RXE_TCE_ERR_IRQ_ENABLE,	0x6051005000000000ull);
-- 
2.14.1



More information about the Skiboot mailing list