1 .. SPDX-License-Identifier: GPL-2.0 2 3 ===== 4 spufs 5 ===== 6 7 Name 8 ==== 9 10 spufs - the SPU file system 11 12 13 Description 14 =========== 15 16 The SPU file system is used on PowerPC 17 Broadband Engine Architecture in order 18 Units (SPUs). 19 20 The file system provides a name space s 21 message queues. Users that have write p 22 can use spu_create(2) to establish SPU 23 24 Every SPU context is represented by a d 25 set of files. These files can be used f 26 logical SPU. Users can change permissio 27 ally add or remove files. 28 29 30 Mount Options 31 ============= 32 33 uid=<uid> 34 set the user owning the mount po 35 36 gid=<gid> 37 set the group owning the mount p 38 39 40 Files 41 ===== 42 43 The files in spufs mostly follow the st 44 tem calls like read(2) or write(2), bu 45 the operations supported on regular fil 46 supported operations and the deviat 47 respective man pages. 48 49 All files that support the read(2) oper 50 all files that support the write(2) o 51 All files support the access(2) and sta 52 only the st_mode, st_nlink, st_uid 53 contain reliable information. 54 55 All files support the chmod(2)/fchmod(2 56 tions, but will not be able to grant 57 possible operations, e.g. read access o 58 59 The current set of files is: 60 61 62 /mem 63 the contents of the local storage memor 64 accessed like a regular shared memory 65 data in the address space of the SPU. 66 open mem file are: 67 68 read(2), pread(2), write(2), pwrite(2), 69 These operate as documented, 70 write(2) and pwrite(2) are not s 71 file. The file size is the size 72 which normally is 256 kilobytes. 73 74 mmap(2) 75 Mapping mem into the process add 76 SPU local storage within the 77 MAP_SHARED mappings are allowed. 78 79 80 /mbox 81 The first SPU to CPU communication mail 82 can be read in units of 32 bits. T 83 blocking mode and it even poll() will n 84 operations on an open mbox file are: 85 86 read(2) 87 If a count smaller than four i 88 sets errno to EINVAL. If there 89 box, the return value is set 90 When data has been read successf 91 the data buffer and the value fo 92 93 94 /ibox 95 The second SPU to CPU communication 96 the first mailbox file, but can be read 97 poll family of system calls can be use 98 operations on an open ibox file are: 99 100 read(2) 101 If a count smaller than four is 102 sets errno to EINVAL. If there 103 box and the file descriptor has 104 return value is set to -1 and er 105 106 If there is no data availab 107 descriptor has been opened witho 108 block until the SPU writes t 109 When data has been read successf 110 the data buffer and the value fo 111 112 poll(2) 113 Poll on the ibox file return 114 data is available for reading. 115 116 117 /wbox 118 The CPU to SPU communation mailbox. It 119 in units of 32 bits. If the mailbox 120 poll can be used to wait for it becomin 121 operations on an open wbox file are: 122 four is requested, write returns -1 and 123 is no space available in the mail box 124 opened with O_NONBLOCK, the return valu 125 EAGAIN. 126 127 If there is no space available in the 128 has been opened without O_NONBLOCK, the 129 reads from its PPE mailbox channel. 130 fully, four bytes are placed in the dat 131 returned. 132 133 poll(2) 134 Poll on the ibox file returns 135 space is available for writing. 136 137 138 /mbox_stat, /ibox_stat, /wbox_stat 139 Read-only files that contain the length 140 many words can be read from mbox 141 written to wbox without blocking. The 142 units and return a big-endian bina 143 operations on an open ``*box_stat`` fil 144 145 read(2) 146 If a count smaller than four is 147 sets errno to EINVAL. Otherwise 148 the data buffer, containing the 149 read from (for mbox_stat and 150 wbox_stat) the respective mail b 151 in EAGAIN. 152 153 154 /npc, /decr, /decr_status, /spu_tag_mask, / 155 Internal registers of the SPU. The r 156 with the numeric value of the next inst 157 can be used in read/write mode for de 158 programs should not rely on them becaus 159 npc requires an SPU context save and is 160 161 The contents of these files are: 162 163 =================== =================== 164 npc Next Program Counte 165 decr SPU Decrementer 166 decr_status Decrementer Status 167 spu_tag_mask MFC tag mask for SP 168 event_mask Event mask for SPU 169 srr0 Interrupt Return ad 170 =================== =================== 171 172 173 The possible operations on an 174 spu_tag_mask, event_mask or srr0 file a 175 176 read(2) 177 When the count supplied to the r 178 required length for the pointer 179 subsequent reads from the same f 180 completing the string, regardle 181 a running SPU task. When a comp 182 subsequent read operations will 183 descriptor needs to be opened to 184 185 write(2) 186 A write operation on the file re 187 the value given in the strin 188 beginning to the first non-numer 189 buffer. Subsequent writes to th 190 the previous setting. 191 192 193 /fpcr 194 This file gives access to the Floating 195 ter as a four byte long file. The opera 196 197 read(2) 198 If a count smaller than four i 199 sets errno to EINVAL. Otherwise 200 the data buffer, containing the 201 ter. 202 203 write(2) 204 If a count smaller than four is 205 sets errno to EINVAL. Otherw 206 from the data buffer, updating t 207 208 209 /signal1, /signal2 210 The two signal notification channels of 211 files that operate on a 32 bit word 212 triggers an interrupt on the SPU. The 213 files can be read from the SPU through 214 space through the file. After the valu 215 is reset to zero. The possible opera 216 nal2 file are: 217 218 read(2) 219 If a count smaller than four is 220 sets errno to EINVAL. Otherwise 221 the data buffer, containing the 222 signal notification register. 223 224 write(2) 225 If a count smaller than four is 226 sets errno to EINVAL. Otherwise 227 from the data buffer, updating t 228 notification register. The sign 229 either be replaced with the inpu 230 bitwise OR of the old value and 231 contents of the signal1_type, 232 file. 233 234 235 /signal1_type, /signal2_type 236 These two files change the behavior of 237 cation files. The contain a numeric 238 either "1" or "0". In mode 0 (overwrit 239 contents of the signal channel with the 240 mode 1 (logical OR), the hardware accum 241 quently written to it. The possible op 242 or signal2_type file are: 243 244 read(2) 245 When the count supplied to the r 246 required length for the digit 247 quent reads from the same file d 248 pleting the string. When a co 249 subsequent read operations will 250 descriptor needs to be opened to 251 252 write(2) 253 A write operation on the file re 254 the value given in the string. T 255 beginning to the first non-num 256 buffer. Subsequent writes to th 257 the previous setting. 258 259 260 Examples 261 ======== 262 /etc/fstab entry 263 none /spu spufs gi 264 265 266 Authors 267 ======= 268 Arnd Bergmann <arndb@de.ibm.com>, Mar 269 Ulrich Weigand <Ulrich.Weigand@de.ibm.co 270 271 See Also 272 ======== 273 capabilities(7), close(2), spu_create(2
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.