diff mbox

[v2] hw/phb3: Update capi initialization sequence

Message ID 1470666559-22183-1-git-send-email-fbarrat@linux.vnet.ibm.com
State Accepted
Headers show

Commit Message

Frederic Barrat Aug. 8, 2016, 2:29 p.m. UTC
The capi initialization sequence was revised in a circumvention
document when a 'link down' error was converted from fatal to Endpoint
Recoverable. Other, non-capi, register setup was corrected even before
the initial open-source release of skiboot, but a few capi-related
registers were not updated then, so this patch fixes it.

The point is that a link-down error detected by the UTL logic will
lead to an AIB fence, so that the CAPP unit can detect the error.

Signed-off-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
---

Stewart: this should also be considered for all the stable branches

Changes since v1:
	- same code, reword commit msg
	
 hw/phb3.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Stewart Smith Aug. 24, 2016, 6:54 a.m. UTC | #1
Frederic Barrat <fbarrat@linux.vnet.ibm.com> writes:
> The capi initialization sequence was revised in a circumvention
> document when a 'link down' error was converted from fatal to Endpoint
> Recoverable. Other, non-capi, register setup was corrected even before
> the initial open-source release of skiboot, but a few capi-related
> registers were not updated then, so this patch fixes it.
>
> The point is that a link-down error detected by the UTL logic will
> lead to an AIB fence, so that the CAPP unit can detect the error.
>
> Signed-off-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
> ---
>
> Stewart: this should also be considered for all the stable branches

Thanks, merged to
master e36f4f219b642c6c5032208fca7191fbd75fe1a3
skiboot-5.1.x ec1cf514b83eb22c57bf8aa65d8acd712759a0c2
skiboot-5.3.x bc96a448f571a03afc591b5e6fe120821cbf7fa7
diff mbox

Patch

diff --git a/hw/phb3.c b/hw/phb3.c
index 8742c7a..af9cbac 100644
--- a/hw/phb3.c
+++ b/hw/phb3.c
@@ -3280,10 +3280,11 @@  static void phb3_init_capp_regs(struct phb3 *p, bool dma_mode)
 /* override some inits with CAPI defaults */
 static void phb3_init_capp_errors(struct phb3 *p)
 {
-	out_be64(p->regs + PHB_ERR_AIB_FENCE_ENABLE,       0xffffffdd0c80ffc0);
+	out_be64(p->regs + PHB_ERR_AIB_FENCE_ENABLE,       0xffffffdd8c80ffc0);
 	out_be64(p->regs + PHB_OUT_ERR_AIB_FENCE_ENABLE,   0x9cf3fe08f8dc700f);
 	out_be64(p->regs + PHB_INA_ERR_AIB_FENCE_ENABLE,   0xffff57fbff01ffde);
 	out_be64(p->regs + PHB_INB_ERR_AIB_FENCE_ENABLE,   0xfcffe0fbff7ff0ec);
+	out_be64(p->regs + PHB_LEM_ERROR_MASK,		   0x40018e2400022482);
 }
 
 #define PE_CAPP_EN 0x9013c03