2 * Copyright 2012 Tilera Corporation. All Rights Reserved.
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation, version 2.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
11 * NON INFRINGEMENT. See the GNU General Public License for
15 /* Machine-generated file; do not edit. */
18 #ifndef __ARCH_TRIO_SHM_H__
19 #define __ARCH_TRIO_SHM_H__
22 #include <arch/trio_shm_def.h>
26 * TRIO DMA Descriptor.
27 * The TRIO DMA descriptor is written by software and consumed by hardware.
28 * It is used to specify the location of transaction data in the IO and Tile
39 #ifndef __BIG_ENDIAN__
40 /** Tile side virtual address. */
43 * Encoded size of buffer used on push DMA when C=1:
55 * Chaining designation. Always zero for pull DMA
56 * 0 : Unchained buffer pointer
57 * 1 : Chained buffer pointer. Next buffer descriptor (e.g. VA) stored
58 * in 1st 8-bytes in buffer. For chained buffers, first 8-bytes of each
59 * buffer contain the next buffer descriptor formatted exactly like a PDE
60 * buffer descriptor. This allows a chained PDE buffer to be sent using
65 * Notification interrupt will be delivered when the transaction has
66 * completed (all data has been read from or written to the Tile-side
71 * When 0, the XSIZE field specifies the total byte count for the
72 * transaction. When 1, the XSIZE field is encoded as 2^(N+14) for N in
81 * All other encodings of the XSIZE field are reserved when SMOD=1
85 * Total number of bytes to move for this transaction. When SMOD=1,
86 * this field is encoded - see SMOD description.
88 uint_reg_t xsize : 14;
90 uint_reg_t __reserved_0 : 1;
92 * Generation number. Used to indicate a valid descriptor in ring. When
93 * a new descriptor is written into the ring, software must toggle this
94 * bit. The net effect is that the GEN bit being written into new
95 * descriptors toggles each time the ring tail pointer wraps.
98 #else /* __BIG_ENDIAN__ */
100 uint_reg_t __reserved_0 : 1;
101 uint_reg_t xsize : 14;
103 uint_reg_t notif : 1;
111 #ifndef __BIG_ENDIAN__
112 /** IO-side address */
113 uint_reg_t io_address : 64;
114 #else /* __BIG_ENDIAN__ */
115 uint_reg_t io_address : 64;
123 #endif /* !defined(__ASSEMBLER__) */
125 #endif /* !defined(__ARCH_TRIO_SHM_H__) */