It turned out that on ppc my SDR1 shifts by 10 don't work despite the manual mentioning that number, with original 16 it works for whatever reason.
10 is the minimal number of bits of the hash used in indexing the PTEGs. Each PTEG is 64 bytes. So if you're calculating the size here, you get (the number of bits in the mask) + 10 + 6, as log2 of number of bytes.
ppc64 needs the slbmte patch first for testing (0x700 otherwise). HASH_BITS likely should be 16 instead of 15 since 2 was shifted, not 1.
That sure looks confusing as well. PTEGs on 64-bit are 128 bytes.
Segher