Home
last modified time | relevance | path

Searched full:spu (Results 1 – 25 of 65) sorted by relevance

123

/linux/arch/powerpc/platforms/cell/spufs/
H A Dswitch.c9 * 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 Dhw_ops.c2 /* 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 Dsched.c2 /* 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 Dspufs.h3 * 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 Dsputrace.h12 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 Drun.c7 #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 Dsyscalls.c14 * 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 Dfault.c3 * 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 DMakefile12 # 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 Dspu_restore_crt0.S3 * 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 Dcontext.c3 * 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 Dspu_save_crt0.S3 * 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 Dsyscall.tbl8 # 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 Dsyscall.tbl8 # 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 Dcipher.h23 #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 Dspu.h7 * 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 Dspum.h7 * 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 DMakefile4 # 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 Dspufs.rst10 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 Dspu_run.rst10 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 Dspu_create.rst9 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 Dspu.h3 * 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 Dspu_csa.h3 * 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 Dspu_callbacks.c12 #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 Dbcm-pdc-mailbox.c9 * 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 …]

123