aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-gru/gru_instructions.h
diff options
context:
space:
mode:
authorJack Steiner <steiner@sgi.com>2009-06-17 19:28:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-18 16:04:02 -0400
commit270952a907220c0331fdaecbb55df892921c5e2d (patch)
tree374bc1a642108f2c878a86903a70d8af8cd7a04a /drivers/misc/sgi-gru/gru_instructions.h
parenteb5bd5e52a8eafb1ddb42f983d41f97552afa106 (diff)
gru: update to rev 0.9 of gru spec
Update GRU driver to the latest version of the GRU spec. This consists of minor updates: - changes & additions to error status bits - new restriction on handling of TLB misses while in FMM mode - new field (not used by software) in TFH Signed-off-by: Jack Steiner <steiner@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc/sgi-gru/gru_instructions.h')
-rw-r--r--drivers/misc/sgi-gru/gru_instructions.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/misc/sgi-gru/gru_instructions.h b/drivers/misc/sgi-gru/gru_instructions.h
index 2feb885ca96f..eb9140d32e62 100644
--- a/drivers/misc/sgi-gru/gru_instructions.h
+++ b/drivers/misc/sgi-gru/gru_instructions.h
@@ -253,32 +253,37 @@ struct gru_instruction {
253#define CBE_CAUSE_HA_RESPONSE_FATAL (1 << 13) 253#define CBE_CAUSE_HA_RESPONSE_FATAL (1 << 13)
254#define CBE_CAUSE_HA_RESPONSE_NON_FATAL (1 << 14) 254#define CBE_CAUSE_HA_RESPONSE_NON_FATAL (1 << 14)
255#define CBE_CAUSE_ADDRESS_SPACE_DECODE_ERROR (1 << 15) 255#define CBE_CAUSE_ADDRESS_SPACE_DECODE_ERROR (1 << 15)
256#define CBE_CAUSE_RESPONSE_DATA_ERROR (1 << 16) 256#define CBE_CAUSE_PROTOCOL_STATE_DATA_ERROR (1 << 16)
257#define CBE_CAUSE_PROTOCOL_STATE_DATA_ERROR (1 << 17) 257#define CBE_CAUSE_RA_RESPONSE_DATA_ERROR (1 << 17)
258#define CBE_CAUSE_HA_RESPONSE_DATA_ERROR (1 << 18)
258 259
259/* CBE cbrexecstatus bits */ 260/* CBE cbrexecstatus bits */
260#define CBR_EXS_ABORT_OCC_BIT 0 261#define CBR_EXS_ABORT_OCC_BIT 0
261#define CBR_EXS_INT_OCC_BIT 1 262#define CBR_EXS_INT_OCC_BIT 1
262#define CBR_EXS_PENDING_BIT 2 263#define CBR_EXS_PENDING_BIT 2
263#define CBR_EXS_QUEUED_BIT 3 264#define CBR_EXS_QUEUED_BIT 3
264#define CBR_EXS_TLBHW_BIT 4 265#define CBR_EXS_TLB_INVAL_BIT 4
265#define CBR_EXS_EXCEPTION_BIT 5 266#define CBR_EXS_EXCEPTION_BIT 5
266 267
267#define CBR_EXS_ABORT_OCC (1 << CBR_EXS_ABORT_OCC_BIT) 268#define CBR_EXS_ABORT_OCC (1 << CBR_EXS_ABORT_OCC_BIT)
268#define CBR_EXS_INT_OCC (1 << CBR_EXS_INT_OCC_BIT) 269#define CBR_EXS_INT_OCC (1 << CBR_EXS_INT_OCC_BIT)
269#define CBR_EXS_PENDING (1 << CBR_EXS_PENDING_BIT) 270#define CBR_EXS_PENDING (1 << CBR_EXS_PENDING_BIT)
270#define CBR_EXS_QUEUED (1 << CBR_EXS_QUEUED_BIT) 271#define CBR_EXS_QUEUED (1 << CBR_EXS_QUEUED_BIT)
271#define CBR_EXS_TLBHW (1 << CBR_EXS_TLBHW_BIT) 272#define CBR_TLB_INVAL (1 << CBR_EXS_TLB_INVAL_BIT)
272#define CBR_EXS_EXCEPTION (1 << CBR_EXS_EXCEPTION_BIT) 273#define CBR_EXS_EXCEPTION (1 << CBR_EXS_EXCEPTION_BIT)
273 274
274/* 275/*
275 * Exceptions are retried for the following cases. If any OTHER bits are set 276 * Exceptions are retried for the following cases. If any OTHER bits are set
276 * in ecause, the exception is not retryable. 277 * in ecause, the exception is not retryable.
277 */ 278 */
278#define EXCEPTION_RETRY_BITS (CBE_CAUSE_RESPONSE_DATA_ERROR | \ 279#define EXCEPTION_RETRY_BITS (CBE_CAUSE_EXECUTION_HW_ERROR | \
279 CBE_CAUSE_RA_REQUEST_TIMEOUT | \
280 CBE_CAUSE_TLBHW_ERROR | \ 280 CBE_CAUSE_TLBHW_ERROR | \
281 CBE_CAUSE_HA_REQUEST_TIMEOUT) 281 CBE_CAUSE_RA_REQUEST_TIMEOUT | \
282 CBE_CAUSE_RA_RESPONSE_NON_FATAL | \
283 CBE_CAUSE_HA_RESPONSE_NON_FATAL | \
284 CBE_CAUSE_RA_RESPONSE_DATA_ERROR | \
285 CBE_CAUSE_HA_RESPONSE_DATA_ERROR \
286 )
282 287
283/* Message queue head structure */ 288/* Message queue head structure */
284union gru_mesqhead { 289union gru_mesqhead {