powerpc: Add Initiate Coprocessor Store Word (icswx) support
authorTseng-Hui (Frank) Lin <thlin@linux.vnet.ibm.com>
Mon, 2 May 2011 20:43:04 +0000 (20:43 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 4 May 2011 05:19:26 +0000 (15:19 +1000)
commit851d2e2fe8dbcbe3afcad6fc4569c881d8ad4ce9
tree94082e7751a66236febed1cf18a1f01a02084ae9
parenta32e252f7cdfb3675a4e50215cfac356ed8952c4
powerpc: Add Initiate Coprocessor Store Word (icswx) support

Icswx is a PowerPC instruction to send data to a co-processor. On Book-S
processors the LPAR_ID and process ID (PID) of the owning process are
registered in the window context of the co-processor at initialization
time. When the icswx instruction is executed the L2 generates a cop-reg
transaction on PowerBus. The transaction has no address and the
processor does not perform an MMU access to authenticate the transaction.
The co-processor compares the LPAR_ID and the PID included in the
transaction and the LPAR_ID and PID held in the window context to
determine if the process is authorized to generate the transaction.

The OS needs to assign a 16-bit PID for the process. This cop-PID needs
to be updated during context switch. The cop-PID needs to be destroyed
when the context is destroyed.

Signed-off-by: Sonny Rao <sonnyrao@linux.vnet.ibm.com>
Signed-off-by: Tseng-Hui (Frank) Lin <thlin@linux.vnet.ibm.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/cputable.h
arch/powerpc/include/asm/mmu-hash64.h
arch/powerpc/include/asm/mmu_context.h
arch/powerpc/include/asm/reg.h
arch/powerpc/mm/mmu_context_hash64.c
arch/powerpc/platforms/Kconfig.cputype