xive: Workaround for bad DD1 checker
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)
@@ -1321,6 +1321,10 @@ 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;
+ /* 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;
