| /linux/arch/powerpc/platforms/cell/spufs/ |
| H A D | switch.c | 9 * Host-side part of SPU context switch sequence outlined in 33 #include <asm/spu.h> 64 static inline void acquire_spu_lock(struct spu *spu) in acquire_spu_lock() argument 68 * Acquire SPU-specific mutual exclusion lock. in acquire_spu_lock() 73 static inline void release_spu_lock(struct spu *spu) in release_spu_lock() argument 76 * Release SPU-specific mutual exclusion lock. in release_spu_lock() 81 static inline int check_spu_isolate(struct spu_state *csa, struct spu *spu) in check_spu_isolate() argument 83 struct spu_problem __iomem *prob = spu->problem; in check_spu_isolate() 89 * SPU is in isolate state and cannot be context in check_spu_isolate() 97 static inline void disable_interrupts(struct spu_state *csa, struct spu *spu) in disable_interrupts() argument [all …]
|
| H A D | hw_ops.c | 2 /* hw_ops.c - query/set operations on active SPU context. 18 #include <asm/spu.h> 26 struct spu *spu = ctx->spu; in spu_hw_mbox_read() local 27 struct spu_problem __iomem *prob = spu->problem; in spu_hw_mbox_read() 31 spin_lock_irq(&spu->register_lock); in spu_hw_mbox_read() 37 spin_unlock_irq(&spu->register_lock); in spu_hw_mbox_read() 43 return in_be32(&ctx->spu->problem->mb_stat_R); in spu_hw_mbox_stat_read() 48 struct spu *spu = ctx->spu; in spu_hw_mbox_stat_poll() local 52 spin_lock_irq(&spu->register_lock); in spu_hw_mbox_stat_poll() 53 stat = in_be32(&spu->problem->mb_stat_R); in spu_hw_mbox_stat_poll() [all …]
|
| H A D | sched.c | 2 /* sched.c - SPU scheduler. 34 #include <asm/spu.h> 60 * Frequency of the spu scheduler tick. By default we do one SPU scheduler 68 * Minimum timeslice is 5 msecs (or 1 spu scheduler tick, whichever is 133 /* Save the current cpu id for spu interrupt routing. */ in __spu_update_sched_info() 142 node = ctx->spu->node; in spu_update_sched_info() 186 struct spu *spu; in do_notify_spus_active() local 189 list_for_each_entry(spu, &cbe_spu_info[node].spus, cbe_list) { in do_notify_spus_active() 190 if (spu->alloc_state != SPU_FREE) { in do_notify_spus_active() 191 struct spu_context *ctx = spu->ctx; in do_notify_spus_active() [all …]
|
| H A D | spufs.h | 3 * SPU file system 19 #include <asm/spu.h> 68 struct spu *spu; /* pointer to a physical SPU */ member 69 struct spu_state csa; /* SPU context save area. */ 152 struct spu *aff_ref_spu; 173 /* SPU context query/set operations. */ 239 /* ELF coredump callbacks for writing SPU ELF notes */ 257 struct spu *affinity_check(struct spu_context *ctx); 286 void spu_switch_log_notify(struct spu *spu, struct spu_context *ctx, 332 void spufs_ibox_callback(struct spu *spu); [all …]
|
| H A D | sputrace.h | 12 TP_PROTO(struct spu_context *ctx, struct spu *spu, const char *name), 13 TP_ARGS(ctx, spu, name), 24 __entry->number = spu ? spu->number : -1; 27 TP_printk("%s (ctxthread = %d, spu = %d)", 31 #define spu_context_trace(name, ctx, spu) \ argument 32 trace_spufs_context(ctx, spu, __stringify(name))
|
| H A D | run.c | 7 #include <asm/spu.h> 15 void spufs_stop_callback(struct spu *spu, int irq) in spufs_stop_callback() argument 17 struct spu_context *ctx = spu->ctx; in spufs_stop_callback() 30 ctx->csa.class_0_pending = spu->class_0_pending; in spufs_stop_callback() 31 ctx->csa.class_0_dar = spu->class_0_dar; in spufs_stop_callback() 34 ctx->csa.class_1_dsisr = spu->class_1_dsisr; in spufs_stop_callback() 35 ctx->csa.class_1_dar = spu->class_1_dar; in spufs_stop_callback() 61 * If the spu hasn't finished stopping, we need to in spu_stopped() 104 mfc_cntl = &ctx->spu->priv2->mfc_control_RW; in spu_setup_isolated() 125 sr1 = spu_mfc_sr1_get(ctx->spu); in spu_setup_isolated() [all …]
|
| H A D | syscalls.c | 14 * sys_spu_run - run code loaded into an SPU 16 * @unpc: next program counter for the SPU 17 * @ustatus: status of the SPU 20 * user space thread to an SPU. It will return when the 21 * SPU has finished executing or when it hits an error 26 * before the SPU starts fetching code and the user space 31 * value of the spu_status register after the SPU has stopped.
|
| H A D | fault.c | 3 * Low-level SPU handling 12 #include <asm/spu.h> 96 * back to the spu if it gets scheduled again. in spufs_handle_class1() 115 ctx->spu->stats.hash_flt++; in spufs_handle_class1() 155 ctx->spu->stats.maj_flt++; in spufs_handle_class1() 157 ctx->spu->stats.min_flt++; in spufs_handle_class1() 160 if (ctx->spu) in spufs_handle_class1()
|
| H A D | Makefile | 12 # Rules to build switch.o with the help of SPU tool chain 13 SPU_CROSS := spu- 25 # Compile SPU files 31 # Assemble SPU files 37 # Link SPU Executables
|
| H A D | spu_restore_crt0.S | 3 * crt0_r.S: Entry function for SPU-side context restore. 7 * Entry and exit function for SPU-side of the context restore 46 /* SPU Context Restore, Step 5: Restore the remaining 112 GPRs. */ 63 /* SPU Context Restore Step 17: Restore the first 16 GPRs. */ 83 * indicating that the SPU-side restore code has
|
| H A D | context.c | 3 * SPU file system -- SPU context management 17 #include <asm/spu.h> 140 * spu_acquire_saved - lock spu contex and make sure it is in saved state 141 * @ctx: spu contex to lock 162 * spu_release_saved - unlock spu context and return it to the runqueue
|
| H A D | spu_save_crt0.S | 3 * crt0_s.S: Entry function for SPU-side context save. 7 * Entry function for SPU-side of the context save sequence. 23 /* SPU Context Save Step 1: Save the first 16 GPRs. */ 41 /* SPU Context Save, Step 8: Save the remaining 112 GPRs. */
|
| /linux/arch/powerpc/kernel/syscalls/ |
| H A D | syscall.tbl | 8 # The <abi> can be common, spu, nospu, 64, or 32 for this file. 25 13 spu time sys_time 32 18 spu oldstat sys_ni_syscall 38 22 spu umount sys_ni_syscall 43 25 spu stime sys_stime 48 28 spu oldfstat sys_ni_syscall 82 59 spu oldolduname sys_ni_syscall 92 67 spu sigaction sys_ni_syscall 99 72 spu sigsuspend sys_ni_syscall 102 73 spu sigpending sys_ni_syscall [all …]
|
| /linux/tools/perf/arch/powerpc/entry/syscalls/ |
| H A D | syscall.tbl | 8 # The <abi> can be common, spu, nospu, 64, or 32 for this file. 25 13 spu time sys_time 32 18 spu oldstat sys_ni_syscall 38 22 spu umount sys_ni_syscall 43 25 spu stime sys_stime 48 28 spu oldfstat sys_ni_syscall 82 59 spu oldolduname sys_ni_syscall 92 67 spu sigaction sys_ni_syscall 99 72 spu sigsuspend sys_ni_syscall 102 73 spu sigpending sys_ni_syscall [all …]
|
| /linux/drivers/crypto/bcm/ |
| H A D | cipher.h | 23 #include "spu.h" 27 /* Driver supports up to MAX_SPUS SPU blocks */ 59 /* Force at least 4-byte alignment of all SPU message fields */ 80 * SPUM_NS2 and SPUM_NSP are the SPU-M block on Northstar 2 and Northstar Plus, 119 * Buffers for a SPU request/reply message pair. All part of one structure to 126 * SPU request message header. For SPU-M, holds MH, EMH, SCTX, BDESC, 137 /* SPU request message padding */ 140 /* SPU-M request message STATUS field */ 145 /* SPU response message header */ 148 /* SPU response message STATUS field padding */ [all …]
|
| H A D | spu.h | 7 * This file contains the definition of SPU messages. There are currently two 8 * SPU message formats: SPU-M and SPU2. The hardware uses different values to 9 * identify the same things in SPU-M vs SPU2. So this file defines values that 11 * SPU hardware. These values are used in APIs in spu.c. Functions internal to 12 * spu.c and spu2.c convert these to hardware-specific values. 144 bool return_iv; /* True if SPU should return an IV */ 149 /************** SPU sizes ***************/ 163 /* Length up SUPDT field in SPU response message for RC4 */ 166 /* SPU status error codes. These used as common error codes across all 167 * SPU variants. [all …]
|
| H A D | spum.h | 7 * This file contains SPU message definitions specific to SPU-M. 18 /* SPU-M error codes */ 29 * Max length of a SPU message header. Used to allocate a buffer where 30 * the SPU message header is constructed. Can be used for either a SPU-M 32 * For SPU-M, sum of the following: 63 * NSP SPU is limited to ~9KB because of FA2 FIFO size limitations; 70 /* Buffer Descriptor Header [BDESC]. SPU in big-endian mode. */ 80 /* Buffer Data Header [BD]. SPU in big-endian mode. */ 86 /* Command Context Header. SPU-M in big endian mode. */
|
| H A D | Makefile | 4 # Makefile for crypto acceleration files for Broadcom SPU driver 6 # Uncomment to enable debug tracing in the SPU driver. 14 bcm_crypto_spu-objs := util.o spu.o spu2.o cipher.o
|
| /linux/Documentation/filesystems/spufs/ |
| H A D | spufs.rst | 10 spufs - the SPU file system 16 The SPU file system is used on PowerPC machines that implement the Cell 22 can use spu_create(2) to establish SPU contexts in the spufs root. 24 Every SPU context is represented by a directory containing a predefined 26 logical SPU. Users can change permissions on those files, but not actu- 63 the contents of the local storage memory of the SPU. This can be 65 data in the address space of the SPU. The possible operations on an 71 file. The file size is the size of the local storage of the SPU, 76 SPU local storage within the process address space. Only 81 The first SPU to CPU communication mailbox. This file is read-only and [all …]
|
| H A D | spu_run.rst | 10 spu_run - execute an spu context 18 #include <sys/spu.h> 27 ate(2) to address a specific SPU context. When the context gets sched- 28 uled to a physical SPU, it starts execution at the instruction pointer 31 Execution of SPU code happens synchronously, meaning that spu_run does 32 not return while the SPU is still running. If there is a need to exe- 33 cute SPU code in parallel with other code on either the main CPU or 37 When spu_run returns, the current value of the SPU instruction pointer 63 on the SPU. The bit masks for the status codes are: 66 SPU was stopped by stop-and-signal. [all …]
|
| H A D | spu_create.rst | 9 spu_create - create a new spu context 18 #include <sys/spu.h> 26 Processor Units (SPUs). It creates a new logical context for an SPU in 28 point to a non-existing directory in the mount point of the SPU file 36 descriptor is closed, the logical SPU context is destroyed. 42 Allow mapping of some of the hardware registers of the SPU into 67 EEXIST An SPU context already exists at the given path name. 87 ENOSPC There are not enough SPU resources available to create a new 88 context or the user specific limit for the number of SPU con- 111 convention, it gets mounted in /spu.
|
| /linux/arch/powerpc/include/asm/ |
| H A D | spu.h | 3 * SPU core / file system interface and HW structures 108 struct spu { struct 136 void (* wbox_callback)(struct spu *spu); argument 137 void (* ibox_callback)(struct spu *spu); argument 138 void (* stop_callback)(struct spu *spu, int irq); argument 139 void (* mfc_callback)(struct spu *spu); argument 190 void spu_init_channels(struct spu *spu); argument 191 void spu_irq_setaffinity(struct spu *spu, int cpu); 193 void spu_setup_kernel_slbs(struct spu *spu, struct spu_lscsa *lscsa, 196 extern void spu_invalidate_slbs(struct spu *spu); [all …]
|
| H A D | spu_csa.h | 3 * spu_csa.h: Definitions for SPU context save area (CSA). 69 * restored by SPU-side code. 85 * Since we don't want to rely on having the spu-gcc 87 * is used in the SPU-side code, make it 64k-page 218 * Structure representing the whole of the SPU 221 * later optionally resume execution of an SPU
|
| /linux/arch/powerpc/platforms/cell/ |
| H A D | spu_callbacks.c | 12 #include <asm/spu.h> 17 * This table defines the system calls that an SPU can call. 22 * 1. They interact with the way SPU syscalls are handled 28 * we don't want an SPU to: 54 pr_debug("SPU-syscall " in spu_sys_callback()
|
| /linux/drivers/mailbox/ |
| H A D | bcm-pdc-mailbox.c | 9 * offload engines. For example, the PDC driver works with both SPU-M and SPU2 79 /* Length of BCM header at start of SPU msg, in bytes */ 83 * PDC driver reserves ringset 0 on each SPU for its own use. The driver does 436 "SPU %u stats:\n", pdcs->pdc_idx); in pdc_debugfs_read() 483 * this directory for a SPU. 509 * pdc_build_rxd() - Build DMA descriptor to receive SPU result. 510 * @pdcs: PDC state for SPU that will generate result 536 * pdc_build_txd() - Build a DMA descriptor to transmit a SPU request to 538 * @pdcs: PDC state for the SPU that will process this request 564 * pdc_receive_one() - Receive a response message from a given SPU. [all …]
|