diff options
Diffstat (limited to 'include/asm-powerpc/spu.h')
-rw-r--r-- | include/asm-powerpc/spu.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h index b036385cd831..62718f3ba03f 100644 --- a/include/asm-powerpc/spu.h +++ b/include/asm-powerpc/spu.h | |||
@@ -29,6 +29,81 @@ | |||
29 | #define LS_ORDER (6) /* 256 kb */ | 29 | #define LS_ORDER (6) /* 256 kb */ |
30 | 30 | ||
31 | #define LS_SIZE (PAGE_SIZE << LS_ORDER) | 31 | #define LS_SIZE (PAGE_SIZE << LS_ORDER) |
32 | #define LS_ADDR_MASK (LS_SIZE - 1) | ||
33 | |||
34 | #define MFC_PUT_CMD 0x20 | ||
35 | #define MFC_PUTS_CMD 0x28 | ||
36 | #define MFC_PUTR_CMD 0x30 | ||
37 | #define MFC_PUTF_CMD 0x22 | ||
38 | #define MFC_PUTB_CMD 0x21 | ||
39 | #define MFC_PUTFS_CMD 0x2A | ||
40 | #define MFC_PUTBS_CMD 0x29 | ||
41 | #define MFC_PUTRF_CMD 0x32 | ||
42 | #define MFC_PUTRB_CMD 0x31 | ||
43 | #define MFC_PUTL_CMD 0x24 | ||
44 | #define MFC_PUTRL_CMD 0x34 | ||
45 | #define MFC_PUTLF_CMD 0x26 | ||
46 | #define MFC_PUTLB_CMD 0x25 | ||
47 | #define MFC_PUTRLF_CMD 0x36 | ||
48 | #define MFC_PUTRLB_CMD 0x35 | ||
49 | |||
50 | #define MFC_GET_CMD 0x40 | ||
51 | #define MFC_GETS_CMD 0x48 | ||
52 | #define MFC_GETF_CMD 0x42 | ||
53 | #define MFC_GETB_CMD 0x41 | ||
54 | #define MFC_GETFS_CMD 0x4A | ||
55 | #define MFC_GETBS_CMD 0x49 | ||
56 | #define MFC_GETL_CMD 0x44 | ||
57 | #define MFC_GETLF_CMD 0x46 | ||
58 | #define MFC_GETLB_CMD 0x45 | ||
59 | |||
60 | #define MFC_SDCRT_CMD 0x80 | ||
61 | #define MFC_SDCRTST_CMD 0x81 | ||
62 | #define MFC_SDCRZ_CMD 0x89 | ||
63 | #define MFC_SDCRS_CMD 0x8D | ||
64 | #define MFC_SDCRF_CMD 0x8F | ||
65 | |||
66 | #define MFC_GETLLAR_CMD 0xD0 | ||
67 | #define MFC_PUTLLC_CMD 0xB4 | ||
68 | #define MFC_PUTLLUC_CMD 0xB0 | ||
69 | #define MFC_PUTQLLUC_CMD 0xB8 | ||
70 | #define MFC_SNDSIG_CMD 0xA0 | ||
71 | #define MFC_SNDSIGB_CMD 0xA1 | ||
72 | #define MFC_SNDSIGF_CMD 0xA2 | ||
73 | #define MFC_BARRIER_CMD 0xC0 | ||
74 | #define MFC_EIEIO_CMD 0xC8 | ||
75 | #define MFC_SYNC_CMD 0xCC | ||
76 | |||
77 | #define MFC_MIN_DMA_SIZE_SHIFT 4 /* 16 bytes */ | ||
78 | #define MFC_MAX_DMA_SIZE_SHIFT 14 /* 16384 bytes */ | ||
79 | #define MFC_MIN_DMA_SIZE (1 << MFC_MIN_DMA_SIZE_SHIFT) | ||
80 | #define MFC_MAX_DMA_SIZE (1 << MFC_MAX_DMA_SIZE_SHIFT) | ||
81 | #define MFC_MIN_DMA_SIZE_MASK (MFC_MIN_DMA_SIZE - 1) | ||
82 | #define MFC_MAX_DMA_SIZE_MASK (MFC_MAX_DMA_SIZE - 1) | ||
83 | #define MFC_MIN_DMA_LIST_SIZE 0x0008 /* 8 bytes */ | ||
84 | #define MFC_MAX_DMA_LIST_SIZE 0x4000 /* 16K bytes */ | ||
85 | |||
86 | #define MFC_TAGID_TO_TAGMASK(tag_id) (1 << (tag_id & 0x1F)) | ||
87 | |||
88 | /* Events for Channels 0-2 */ | ||
89 | #define MFC_DMA_TAG_STATUS_UPDATE_EVENT 0x00000001 | ||
90 | #define MFC_DMA_TAG_CMD_STALL_NOTIFY_EVENT 0x00000002 | ||
91 | #define MFC_DMA_QUEUE_AVAILABLE_EVENT 0x00000008 | ||
92 | #define MFC_SPU_MAILBOX_WRITTEN_EVENT 0x00000010 | ||
93 | #define MFC_DECREMENTER_EVENT 0x00000020 | ||
94 | #define MFC_PU_INT_MAILBOX_AVAILABLE_EVENT 0x00000040 | ||
95 | #define MFC_PU_MAILBOX_AVAILABLE_EVENT 0x00000080 | ||
96 | #define MFC_SIGNAL_2_EVENT 0x00000100 | ||
97 | #define MFC_SIGNAL_1_EVENT 0x00000200 | ||
98 | #define MFC_LLR_LOST_EVENT 0x00000400 | ||
99 | #define MFC_PRIV_ATTN_EVENT 0x00000800 | ||
100 | #define MFC_MULTI_SRC_EVENT 0x00001000 | ||
101 | |||
102 | /* Flags indicating progress during context switch. */ | ||
103 | #define SPU_CONTEXT_SWITCH_PENDING_nr 0UL | ||
104 | #define SPU_CONTEXT_SWITCH_ACTIVE_nr 1UL | ||
105 | #define SPU_CONTEXT_SWITCH_PENDING (1UL << SPU_CONTEXT_SWITCH_PENDING_nr) | ||
106 | #define SPU_CONTEXT_SWITCH_ACTIVE (1UL << SPU_CONTEXT_SWITCH_ACTIVE_nr) | ||
32 | 107 | ||
33 | struct spu { | 108 | struct spu { |
34 | char *name; | 109 | char *name; |
@@ -41,6 +116,7 @@ struct spu { | |||
41 | int number; | 116 | int number; |
42 | u32 isrc; | 117 | u32 isrc; |
43 | u32 node; | 118 | u32 node; |
119 | u64 flags; | ||
44 | struct kref kref; | 120 | struct kref kref; |
45 | size_t ls_size; | 121 | size_t ls_size; |
46 | unsigned int slb_replace; | 122 | unsigned int slb_replace; |