Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tile: <arch/> header updates from upstream

The hardware architecture descriptor headers have been updated, in
particular to reflect some larger MMIO fields on the mPIPE shims for
controlling the network hardware, from the recent Gx72 release.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>

+59 -35
+18 -6
arch/tile/include/arch/mpipe.h
··· 176 176 */ 177 177 uint_reg_t stack_idx : 5; 178 178 /* Reserved. */ 179 - uint_reg_t __reserved_2 : 5; 179 + uint_reg_t __reserved_2 : 3; 180 + /* 181 + * Instance ID. For devices that support automatic buffer return between 182 + * mPIPE instances, this field indicates the buffer owner. If the INST 183 + * field does not match the mPIPE's instance number when a packet is 184 + * egressed, buffers with HWB set will be returned to the other mPIPE 185 + * instance. Note that not all devices support multi-mPIPE buffer 186 + * return. The MPIPE_EDMA_INFO.REMOTE_BUFF_RTN_SUPPORT bit indicates 187 + * whether the INST field in the buffer descriptor is populated by iDMA 188 + * hardware. This field is ignored on writes. 189 + */ 190 + uint_reg_t inst : 2; 180 191 /* 181 192 * Reads as one to indicate that this is a hardware managed buffer. 182 193 * Ignored on writes since all buffers on a given stack are the same size. ··· 216 205 uint_reg_t c : 2; 217 206 uint_reg_t size : 3; 218 207 uint_reg_t hwb : 1; 219 - uint_reg_t __reserved_2 : 5; 208 + uint_reg_t inst : 2; 209 + uint_reg_t __reserved_2 : 3; 220 210 uint_reg_t stack_idx : 5; 221 211 uint_reg_t __reserved_1 : 6; 222 212 int_reg_t va : 35; ··· 243 231 /* Reserved. */ 244 232 uint_reg_t __reserved_0 : 3; 245 233 /* eDMA ring being accessed */ 246 - uint_reg_t ring : 5; 234 + uint_reg_t ring : 6; 247 235 /* Reserved. */ 248 - uint_reg_t __reserved_1 : 18; 236 + uint_reg_t __reserved_1 : 17; 249 237 /* 250 238 * This field of the address selects the region (address space) to be 251 239 * accessed. For the egress DMA post region, this field must be 5. ··· 262 250 uint_reg_t svc_dom : 5; 263 251 uint_reg_t __reserved_2 : 6; 264 252 uint_reg_t region : 3; 265 - uint_reg_t __reserved_1 : 18; 266 - uint_reg_t ring : 5; 253 + uint_reg_t __reserved_1 : 17; 254 + uint_reg_t ring : 6; 267 255 uint_reg_t __reserved_0 : 3; 268 256 #endif 269 257 };
+3 -3
arch/tile/include/arch/mpipe_constants.h
··· 16 16 #ifndef __ARCH_MPIPE_CONSTANTS_H__ 17 17 #define __ARCH_MPIPE_CONSTANTS_H__ 18 18 19 - #define MPIPE_NUM_CLASSIFIERS 10 19 + #define MPIPE_NUM_CLASSIFIERS 16 20 20 #define MPIPE_CLS_MHZ 1200 21 21 22 - #define MPIPE_NUM_EDMA_RINGS 32 22 + #define MPIPE_NUM_EDMA_RINGS 64 23 23 24 24 #define MPIPE_NUM_SGMII_MACS 16 25 - #define MPIPE_NUM_XAUI_MACS 4 25 + #define MPIPE_NUM_XAUI_MACS 16 26 26 #define MPIPE_NUM_LOOPBACK_CHANNELS 4 27 27 #define MPIPE_NUM_NON_LB_CHANNELS 28 28 28
+33 -21
arch/tile/include/arch/mpipe_shm.h
··· 44 44 * descriptors toggles each time the ring tail pointer wraps. 45 45 */ 46 46 uint_reg_t gen : 1; 47 + /** 48 + * For devices with EDMA reorder support, this field allows the 49 + * descriptor to select the egress FIFO. The associated DMA ring must 50 + * have ALLOW_EFIFO_SEL enabled. 51 + */ 52 + uint_reg_t efifo_sel : 6; 47 53 /** Reserved. Must be zero. */ 48 - uint_reg_t r0 : 7; 54 + uint_reg_t r0 : 1; 49 55 /** Checksum generation enabled for this transfer. */ 50 56 uint_reg_t csum : 1; 51 57 /** ··· 116 110 uint_reg_t notif : 1; 117 111 uint_reg_t ns : 1; 118 112 uint_reg_t csum : 1; 119 - uint_reg_t r0 : 7; 113 + uint_reg_t r0 : 1; 114 + uint_reg_t efifo_sel : 6; 120 115 uint_reg_t gen : 1; 121 116 #endif 122 117 ··· 133 126 /** Reserved. */ 134 127 uint_reg_t __reserved_1 : 3; 135 128 /** 136 - * Instance ID. For devices that support more than one mPIPE instance, 137 - * this field indicates the buffer owner. If the INST field does not 138 - * match the mPIPE's instance number when a packet is egressed, buffers 139 - * with HWB set will be returned to the other mPIPE instance. 129 + * Instance ID. For devices that support automatic buffer return between 130 + * mPIPE instances, this field indicates the buffer owner. If the INST 131 + * field does not match the mPIPE's instance number when a packet is 132 + * egressed, buffers with HWB set will be returned to the other mPIPE 133 + * instance. Note that not all devices support multi-mPIPE buffer 134 + * return. The MPIPE_EDMA_INFO.REMOTE_BUFF_RTN_SUPPORT bit indicates 135 + * whether the INST field in the buffer descriptor is populated by iDMA 136 + * hardware. 140 137 */ 141 - uint_reg_t inst : 1; 142 - /** Reserved. */ 143 - uint_reg_t __reserved_2 : 1; 138 + uint_reg_t inst : 2; 144 139 /** 145 140 * Always set to one by hardware in iDMA packet descriptors. For eDMA, 146 141 * indicates whether the buffer will be released to the buffer stack ··· 175 166 uint_reg_t c : 2; 176 167 uint_reg_t size : 3; 177 168 uint_reg_t hwb : 1; 178 - uint_reg_t __reserved_2 : 1; 179 - uint_reg_t inst : 1; 169 + uint_reg_t inst : 2; 180 170 uint_reg_t __reserved_1 : 3; 181 171 uint_reg_t stack_idx : 5; 182 172 uint_reg_t __reserved_0 : 6; ··· 416 408 /** 417 409 * Sequence number applied when packet is distributed. Classifier 418 410 * selects which sequence number is to be applied by writing the 13-bit 419 - * SQN-selector into this field. 411 + * SQN-selector into this field. For devices that support EXT_SQN (as 412 + * indicated in IDMA_INFO.EXT_SQN_SUPPORT), the GP_SQN can be extended to 413 + * 32-bits via the IDMA_CTL.EXT_SQN register. In this case the 414 + * PACKET_SQN will be reduced to 32 bits. 420 415 */ 421 416 uint_reg_t gp_sqn : 16; 422 417 /** ··· 462 451 /** Reserved. */ 463 452 uint_reg_t __reserved_5 : 3; 464 453 /** 465 - * Instance ID. For devices that support more than one mPIPE instance, 466 - * this field indicates the buffer owner. If the INST field does not 467 - * match the mPIPE's instance number when a packet is egressed, buffers 468 - * with HWB set will be returned to the other mPIPE instance. 454 + * Instance ID. For devices that support automatic buffer return between 455 + * mPIPE instances, this field indicates the buffer owner. If the INST 456 + * field does not match the mPIPE's instance number when a packet is 457 + * egressed, buffers with HWB set will be returned to the other mPIPE 458 + * instance. Note that not all devices support multi-mPIPE buffer 459 + * return. The MPIPE_EDMA_INFO.REMOTE_BUFF_RTN_SUPPORT bit indicates 460 + * whether the INST field in the buffer descriptor is populated by iDMA 461 + * hardware. 469 462 */ 470 - uint_reg_t inst : 1; 471 - /** Reserved. */ 472 - uint_reg_t __reserved_6 : 1; 463 + uint_reg_t inst : 2; 473 464 /** 474 465 * Always set to one by hardware in iDMA packet descriptors. For eDMA, 475 466 * indicates whether the buffer will be released to the buffer stack ··· 504 491 uint_reg_t c : 2; 505 492 uint_reg_t size : 3; 506 493 uint_reg_t hwb : 1; 507 - uint_reg_t __reserved_6 : 1; 508 - uint_reg_t inst : 1; 494 + uint_reg_t inst : 2; 509 495 uint_reg_t __reserved_5 : 3; 510 496 uint_reg_t stack_idx : 5; 511 497 uint_reg_t __reserved_4 : 6;
+5 -5
arch/tile/include/arch/trio_constants.h
··· 16 16 #ifndef __ARCH_TRIO_CONSTANTS_H__ 17 17 #define __ARCH_TRIO_CONSTANTS_H__ 18 18 19 - #define TRIO_NUM_ASIDS 16 19 + #define TRIO_NUM_ASIDS 32 20 20 #define TRIO_NUM_TLBS_PER_ASID 16 21 21 22 22 #define TRIO_NUM_TPIO_REGIONS 8 23 23 #define TRIO_LOG2_NUM_TPIO_REGIONS 3 24 24 25 - #define TRIO_NUM_MAP_MEM_REGIONS 16 26 - #define TRIO_LOG2_NUM_MAP_MEM_REGIONS 4 25 + #define TRIO_NUM_MAP_MEM_REGIONS 32 26 + #define TRIO_LOG2_NUM_MAP_MEM_REGIONS 5 27 27 #define TRIO_NUM_MAP_SQ_REGIONS 8 28 28 #define TRIO_LOG2_NUM_MAP_SQ_REGIONS 3 29 29 30 30 #define TRIO_LOG2_NUM_SQ_FIFO_ENTRIES 6 31 31 32 - #define TRIO_NUM_PUSH_DMA_RINGS 32 32 + #define TRIO_NUM_PUSH_DMA_RINGS 64 33 33 34 - #define TRIO_NUM_PULL_DMA_RINGS 32 34 + #define TRIO_NUM_PULL_DMA_RINGS 64 35 35 36 36 #endif /* __ARCH_TRIO_CONSTANTS_H__ */