[v2,3/5] phb4: Implement fence check

Message ID 20170419051408.26335-4-ruscur@russell.cc
State Accepted
Headers show

Commit Message

Russell Currey April 19, 2017, 5:14 a.m.
Fence detection is missing in PHB4, so implement it.  The mechanism is the
exact same as in PHB3.

Signed-off-by: Russell Currey <ruscur@russell.cc>
---
 hw/phb4.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Patch

diff --git a/hw/phb4.c b/hw/phb4.c
index ece042bb..e865d0d2 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -157,7 +157,14 @@  static inline void phb4_ioda_sel(struct phb4 *p, uint32_t table,
 /* Check if AIB is fenced via PBCQ NFIR */
 static bool phb4_fenced(struct phb4 *p)
 {
-	// FIXME
+	uint64_t nfir;
+
+	xscom_read(p->chip_id, p->pe_stk_xscom + 0x0, &nfir);
+	if (nfir & PPC_BIT(16)) {
+		p->flags |= PHB4_AIB_FENCED;
+		p->state = PHB4_STATE_FENCED;
+		return true;
+	}
 	return false;
 }