aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHeiko J Schick <schihei@de.ibm.com>2006-03-30 15:47:14 -0500
committerPaul Mackerras <paulus@samba.org>2006-04-01 06:37:00 -0500
commitb13a96cfb055fd4b9c61463f87534a6f406b174b (patch)
tree4ab32133b1a786ef9bd9448ffadff0f2fc9c36bf /include
parent706c8c93ba4865a19e981b9770151a7a63c15794 (diff)
[PATCH] powerpc: Extends HCALL interface for InfiniBand usage
This extends the HCALL interface for InfiniBand usage. I've made the patch against the linux-2.6 git tree and Segher's patch: [PATCH] Change H_StudlyCaps to H_SHOUTING_CAPS We moved this into the common powerpc code based on comments we got after posting the first eHCA InfiniBand device driver patch. Signed-off-by: Heiko j Schick <schickhj@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/hvcall.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/include/asm-powerpc/hvcall.h b/include/asm-powerpc/hvcall.h
index 029afaef1e66..6cc7e1fb7bfd 100644
--- a/include/asm-powerpc/hvcall.h
+++ b/include/asm-powerpc/hvcall.h
@@ -7,8 +7,12 @@
7#define H_SUCCESS 0 7#define H_SUCCESS 0
8#define H_BUSY 1 /* Hardware busy -- retry later */ 8#define H_BUSY 1 /* Hardware busy -- retry later */
9#define H_CLOSED 2 /* Resource closed */ 9#define H_CLOSED 2 /* Resource closed */
10#define H_NOT_AVAILABLE 3
10#define H_CONSTRAINED 4 /* Resource request constrained to max allowed */ 11#define H_CONSTRAINED 4 /* Resource request constrained to max allowed */
12#define H_PARTIAL 5
11#define H_IN_PROGRESS 14 /* Kind of like busy */ 13#define H_IN_PROGRESS 14 /* Kind of like busy */
14#define H_PAGE_REGISTERED 15
15#define H_PARTIAL_STORE 16
12#define H_PENDING 17 /* returned from H_POLL_PENDING */ 16#define H_PENDING 17 /* returned from H_POLL_PENDING */
13#define H_CONTINUE 18 /* Returned from H_Join on success */ 17#define H_CONTINUE 18 /* Returned from H_Join on success */
14#define H_LONG_BUSY_START_RANGE 9900 /* Start of long busy range */ 18#define H_LONG_BUSY_START_RANGE 9900 /* Start of long busy range */
@@ -41,6 +45,36 @@
41#define H_DEST_PARM -14 45#define H_DEST_PARM -14
42#define H_REMOTE_PARM -15 46#define H_REMOTE_PARM -15
43#define H_RESOURCE -16 47#define H_RESOURCE -16
48#define H_ADAPTER_PARM -17
49#define H_RH_PARM -18
50#define H_RCQ_PARM -19
51#define H_SCQ_PARM -20
52#define H_EQ_PARM -21
53#define H_RT_PARM -22
54#define H_ST_PARM -23
55#define H_SIGT_PARM -24
56#define H_TOKEN_PARM -25
57#define H_MLENGTH_PARM -27
58#define H_MEM_PARM -28
59#define H_MEM_ACCESS_PARM -29
60#define H_ATTR_PARM -30
61#define H_PORT_PARM -31
62#define H_MCG_PARM -32
63#define H_VL_PARM -33
64#define H_TSIZE_PARM -34
65#define H_TRACE_PARM -35
66
67#define H_MASK_PARM -37
68#define H_MCG_FULL -38
69#define H_ALIAS_EXIST -39
70#define H_P_COUNTER -40
71#define H_TABLE_FULL -41
72#define H_ALT_TABLE -42
73#define H_MR_CONDITION -43
74#define H_NOT_ENOUGH_RESOURCES -44
75#define H_R_STATE -45
76#define H_RESCINDEND -46
77
44 78
45/* Long Busy is a condition that can be returned by the firmware 79/* Long Busy is a condition that can be returned by the firmware
46 * when a call cannot be completed now, but the identical call 80 * when a call cannot be completed now, but the identical call
@@ -73,6 +107,9 @@
73#define H_DABRX_KERNEL (1UL<<(63-62)) 107#define H_DABRX_KERNEL (1UL<<(63-62))
74#define H_DABRX_USER (1UL<<(63-63)) 108#define H_DABRX_USER (1UL<<(63-63))
75 109
110/* Each control block has to be on a 4K bondary */
111#define H_CB_ALIGNMENT 4096
112
76/* pSeries hypervisor opcodes */ 113/* pSeries hypervisor opcodes */
77#define H_REMOVE 0x04 114#define H_REMOVE 0x04
78#define H_ENTER 0x08 115#define H_ENTER 0x08
@@ -124,6 +161,33 @@
124#define H_VTERM_PARTNER_INFO 0x150 161#define H_VTERM_PARTNER_INFO 0x150
125#define H_REGISTER_VTERM 0x154 162#define H_REGISTER_VTERM 0x154
126#define H_FREE_VTERM 0x158 163#define H_FREE_VTERM 0x158
164#define H_RESET_EVENTS 0x15C
165#define H_ALLOC_RESOURCE 0x160
166#define H_FREE_RESOURCE 0x164
167#define H_MODIFY_QP 0x168
168#define H_QUERY_QP 0x16C
169#define H_REREGISTER_PMR 0x170
170#define H_REGISTER_SMR 0x174
171#define H_QUERY_MR 0x178
172#define H_QUERY_MW 0x17C
173#define H_QUERY_HCA 0x180
174#define H_QUERY_PORT 0x184
175#define H_MODIFY_PORT 0x188
176#define H_DEFINE_AQP1 0x18C
177#define H_GET_TRACE_BUFFER 0x190
178#define H_DEFINE_AQP0 0x194
179#define H_RESIZE_MR 0x198
180#define H_ATTACH_MCQP 0x19C
181#define H_DETACH_MCQP 0x1A0
182#define H_CREATE_RPT 0x1A4
183#define H_REMOVE_RPT 0x1A8
184#define H_REGISTER_RPAGES 0x1AC
185#define H_DISABLE_AND_GETC 0x1B0
186#define H_ERROR_DATA 0x1B4
187#define H_GET_HCA_INFO 0x1B8
188#define H_GET_PERF_COUNT 0x1BC
189#define H_MANAGE_TRACE 0x1C0
190#define H_QUERY_INT_STATE 0x1E4
127#define H_POLL_PENDING 0x1D8 191#define H_POLL_PENDING 0x1D8
128#define H_JOIN 0x298 192#define H_JOIN 0x298
129#define H_ENABLE_CRQ 0x2B0 193#define H_ENABLE_CRQ 0x2B0
@@ -183,6 +247,42 @@ long plpar_hcall_4out(unsigned long opcode,
183 unsigned long *out3, 247 unsigned long *out3,
184 unsigned long *out4); 248 unsigned long *out4);
185 249
250long plpar_hcall_7arg_7ret(unsigned long opcode,
251 unsigned long arg1,
252 unsigned long arg2,
253 unsigned long arg3,
254 unsigned long arg4,
255 unsigned long arg5,
256 unsigned long arg6,
257 unsigned long arg7,
258 unsigned long *out1,
259 unsigned long *out2,
260 unsigned long *out3,
261 unsigned long *out4,
262 unsigned long *out5,
263 unsigned long *out6,
264 unsigned long *out7);
265
266long plpar_hcall_9arg_9ret(unsigned long opcode,
267 unsigned long arg1,
268 unsigned long arg2,
269 unsigned long arg3,
270 unsigned long arg4,
271 unsigned long arg5,
272 unsigned long arg6,
273 unsigned long arg7,
274 unsigned long arg8,
275 unsigned long arg9,
276 unsigned long *out1,
277 unsigned long *out2,
278 unsigned long *out3,
279 unsigned long *out4,
280 unsigned long *out5,
281 unsigned long *out6,
282 unsigned long *out7,
283 unsigned long *out8,
284 unsigned long *out9);
285
186#endif /* __ASSEMBLY__ */ 286#endif /* __ASSEMBLY__ */
187#endif /* __KERNEL__ */ 287#endif /* __KERNEL__ */
188#endif /* _ASM_POWERPC_HVCALL_H */ 288#endif /* _ASM_POWERPC_HVCALL_H */