[Skiboot] [PATCH 44/60] xive: Workaround for bad DD1 checker
Benjamin Herrenschmidt
benh at kernel.crashing.org
Thu Dec 22 14:16:52 AEDT 2016
The VSD size for the EQDT/VPDT in the VC is badly checked by HW,
we need to set it to all 1's (it never accesses the memory directly
so the incorrect size doesn't matter)
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
hw/xive.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/hw/xive.c b/hw/xive.c
index c2fe95f..bd477ca 100644
--- a/hw/xive.c
+++ b/hw/xive.c
@@ -1318,7 +1318,11 @@ static bool xive_set_vsd(struct xive *x, uint32_t tbl, uint32_t idx, uint64_t v)
SETFIELD(VST_TABLE_OFFSET, 0ull, idx));
if (x->last_reg_error)
return false;
- xive_regw(x, VC_VSD_TABLE_DATA, v);
+ /* Hack to workaround DD1 issue with NVT in VC in DD1 */
+ if (tbl == VST_TSEL_VPDT)
+ xive_regw(x, VC_VSD_TABLE_DATA, v | VSD_TSIZE);
+ else
+ xive_regw(x, VC_VSD_TABLE_DATA, v);
if (x->last_reg_error)
return false;
--
2.9.3
More information about the Skiboot
mailing list