Lines Matching +full:packet +full:- +full:based

7  * Copyright (c) 2003-2008 Cavium Networks
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
30 * Interface to the hardware Packet Output unit.
37 * memory based locking instead. This locking has the advantage
38 * of not affecting the tag state but doesn't preserve packet
44 * - PKO indexes are no longer stored in the FAU. A large
48 * - The PKO <b>use_locking</b> parameter can now have a global
52 * - PKO 3 word commands are now supported. Use
60 #include <asm/octeon/cvmx-fpa.h>
61 #include <asm/octeon/cvmx-pow.h>
62 #include <asm/octeon/cvmx-cmd-queue.h>
63 #include <asm/octeon/cvmx-pko-defs.h>
105 * to the output queue. This will maintain packet ordering on
111 * access to the output queue. This is a memory based
124 * This structure defines the address to use on a packet enqueue
136 /* The ID of the device on the non-coherent bus */
148 * The output queue to send the packet to (0-127 are
169 * Structure of the first packet output command word.
176 * The size of the reg1 operation - could be 8, 16,
181 * The size of the reg0 operation - could be 8, 16,
186 * If set, subtract 1, if clear, subtract packet
192 * non-zero.
195 /* If set, subtract 1, if clear, subtract packet size */
197 /* The register, subtract will be done if reg0 is non-zero */
205 * When set, packet data not allocated in L2 cache by
222 * If ipoffp1 is non zero, (ipoffp1-1) is the number
234 * buffers containing the packet.
238 * The total number of segs in the packet, if gather
265 /* CSR typedefs have been moved to cvmx-csr-*.h */
268 * Definition of internal state for Packet output processing
276 * Call before any other calls to initialize the packet
282 * Enables the packet output hardware. It must already be
288 * Disables the packet output. Does not affect any configuration.
293 * Shutdown and free resources required by packet output.
305 * allowed to be 1-8. A value of 8 get 8 times the traffic
315 * Ring the packet output doorbell. This tells the packet
320 * @port: Port the packet is for
321 * @queue: Queue the packet is for
344 * Prepare to send a packet. This may initiate a tag switch to
346 * performs other prep work for the packet send operation.
353 * - CVMX_PKO_LOCK_NONE
354 * - PKO doesn't do any locking. It is the responsibility
357 * - CVMX_PKO_LOCK_ATOMIC_TAG
358 * - PKO performs an atomic tagswitch to insure exclusive
360 * packet ordering on output.
361 * - CVMX_PKO_LOCK_CMD_QUEUE
362 * - PKO uses the common command queue locks to insure
364 * memory based ll/sc. This is the most portable
388 * which these fake values can be used - this is not a in cvmx_pko_send_packet_prepare()
401 * Complete packet output. cvmx_pko_send_packet_prepare() must be
410 * @packet: Packet to send
421 union cvmx_buf_ptr packet, in cvmx_pko_send_packet_finish() argument
429 pko_command.u64, packet.u64); in cvmx_pko_send_packet_finish()
442 * Complete packet output. cvmx_pko_send_packet_prepare() must be
451 * @packet: Packet to send
464 union cvmx_buf_ptr packet, in cvmx_pko_send_packet_finish3() argument
473 pko_command.u64, packet.u64, addr); in cvmx_pko_send_packet_finish3()
493 * Returns Core-specific output queue
508 CVMX_PKO_QUEUES_PER_PORT_INTERFACE0 + (port - in cvmx_pko_get_base_queue_per_core()
515 CVMX_PKO_QUEUES_PER_PORT_INTERFACE1 + (port - in cvmx_pko_get_base_queue_per_core()
523 4 * CVMX_PKO_QUEUES_PER_PORT_PCI + (port - in cvmx_pko_get_base_queue_per_core()
588 status->packets = pko_mem_count0.s.count; in cvmx_pko_get_port_status()
595 status->octets = pko_mem_count1.s.count; in cvmx_pko_get_port_status()
606 status->doorbell = debug9.cn38xx.doorbell; in cvmx_pko_get_port_status()
612 status->doorbell = debug8.cn50xx.doorbell; in cvmx_pko_get_port_status()
621 * @packets_s: Maximum packet/sec