powerpc/pseries: Software invalidatation of TCEs
authorMilton Miller <miltonm@bga.com>
Wed, 29 Jun 2011 20:58:33 +0000 (20:58 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 25 Nov 2011 03:11:26 +0000 (14:11 +1100)
commit8d3d589a7901dd93743e98a60a0bacde485437f3
tree8c8d201d35f1eb606dd38c51620448ac7691fdd6
parent7df1027542c9353bef4d027cb4ab8e99f69017b7
powerpc/pseries: Software invalidatation of TCEs

Some pseries IOMMUs cache TCEs but don't snoop when the TCEs are changed
in memory, hence we need manually invalidate in software.

This adds code to do the invalidate.  It keys off a device tree property
to say where the to do the MMIO for the invalidate and some information
on what the format of the invalidate including some magic routing info.

it_busno get overloaded with this magic routing info and it_index with
the MMIO address for the invalidate command.

This then gets hooked into the building and freeing of TCEs.

This is only useful on bare metal pseries.  pHyp takes care of this when
virtualised.

Based on patch from Milton with cleanups from Mikey.

Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/tce.h
arch/powerpc/platforms/pseries/iommu.c