cvmx-tra-defs.h revision 215976
1193326Sed/***********************license start*************** 2193326Sed * Copyright (c) 2003-2010 Cavium Networks (support@cavium.com). All rights 3193326Sed * reserved. 4193326Sed * 5193326Sed * 6193326Sed * Redistribution and use in source and binary forms, with or without 7193326Sed * modification, are permitted provided that the following conditions are 8193326Sed * met: 9193326Sed * 10193326Sed * * Redistributions of source code must retain the above copyright 11193326Sed * notice, this list of conditions and the following disclaimer. 12193326Sed * 13193326Sed * * Redistributions in binary form must reproduce the above 14193326Sed * copyright notice, this list of conditions and the following 15212904Sdim * disclaimer in the documentation and/or other materials provided 16212904Sdim * with the distribution. 17212904Sdim 18193326Sed * * Neither the name of Cavium Networks nor the names of 19208600Srdivacky * its contributors may be used to endorse or promote products 20208600Srdivacky * derived from this software without specific prior written 21193326Sed * permission. 22193326Sed 23193326Sed * This Software, including technical data, may be subject to U.S. export control 24208600Srdivacky * laws, including the U.S. Export Administration Act and its associated 25193326Sed * regulations, and may be subject to export or import regulations in other 26193326Sed * countries. 27193326Sed 28208600Srdivacky * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" 29208600Srdivacky * AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS OR 30208600Srdivacky * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO 31208600Srdivacky * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR 32208600Srdivacky * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM 33208600Srdivacky * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE, 34208600Srdivacky * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF 35208600Srdivacky * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR 36208600Srdivacky * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR 37193326Sed * PERFORMANCE OF THE SOFTWARE LIES WITH YOU. 38193326Sed ***********************license end**************************************/ 39193326Sed 40208600Srdivacky 41193326Sed/** 42193326Sed * cvmx-tra-defs.h 43193326Sed * 44193326Sed * Configuration and status register (CSR) type definitions for 45193326Sed * Octeon tra. 46193326Sed * 47193326Sed * This file is auto generated. Do not edit. 48198092Srdivacky * 49198092Srdivacky * <hr>$Revision$<hr> 50193326Sed * 51193326Sed */ 52193326Sed#ifndef __CVMX_TRA_TYPEDEFS_H__ 53193326Sed#define __CVMX_TRA_TYPEDEFS_H__ 54193326Sed 55193326Sed#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 56193326Sed#define CVMX_TRA_BIST_STATUS CVMX_TRA_BIST_STATUS_FUNC() 57193326Sedstatic inline uint64_t CVMX_TRA_BIST_STATUS_FUNC(void) 58208600Srdivacky{ 59208600Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 60193326Sed cvmx_warn("CVMX_TRA_BIST_STATUS not supported on this chip\n"); 61193326Sed return CVMX_ADD_IO_SEG(0x00011800A8000010ull); 62193326Sed} 63193326Sed#else 64193326Sed#define CVMX_TRA_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011800A8000010ull)) 65193326Sed#endif 66212904Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 67193326Sed#define CVMX_TRA_CTL CVMX_TRA_CTL_FUNC() 68193326Sedstatic inline uint64_t CVMX_TRA_CTL_FUNC(void) 69193326Sed{ 70212904Sdim if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 71193326Sed cvmx_warn("CVMX_TRA_CTL not supported on this chip\n"); 72193326Sed return CVMX_ADD_IO_SEG(0x00011800A8000000ull); 73212904Sdim} 74212904Sdim#else 75212904Sdim#define CVMX_TRA_CTL (CVMX_ADD_IO_SEG(0x00011800A8000000ull)) 76212904Sdim#endif 77212904Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 78212904Sdim#define CVMX_TRA_CYCLES_SINCE CVMX_TRA_CYCLES_SINCE_FUNC() 79212904Sdimstatic inline uint64_t CVMX_TRA_CYCLES_SINCE_FUNC(void) 80212904Sdim{ 81212904Sdim if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 82212904Sdim cvmx_warn("CVMX_TRA_CYCLES_SINCE not supported on this chip\n"); 83212904Sdim return CVMX_ADD_IO_SEG(0x00011800A8000018ull); 84212904Sdim} 85212904Sdim#else 86212904Sdim#define CVMX_TRA_CYCLES_SINCE (CVMX_ADD_IO_SEG(0x00011800A8000018ull)) 87212904Sdim#endif 88212904Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 89212904Sdim#define CVMX_TRA_CYCLES_SINCE1 CVMX_TRA_CYCLES_SINCE1_FUNC() 90193326Sedstatic inline uint64_t CVMX_TRA_CYCLES_SINCE1_FUNC(void) 91198092Srdivacky{ 92198092Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 93193326Sed cvmx_warn("CVMX_TRA_CYCLES_SINCE1 not supported on this chip\n"); 94193326Sed return CVMX_ADD_IO_SEG(0x00011800A8000028ull); 95193326Sed} 96208600Srdivacky#else 97193326Sed#define CVMX_TRA_CYCLES_SINCE1 (CVMX_ADD_IO_SEG(0x00011800A8000028ull)) 98208600Srdivacky#endif 99193326Sed#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 100193326Sed#define CVMX_TRA_FILT_ADR_ADR CVMX_TRA_FILT_ADR_ADR_FUNC() 101193326Sedstatic inline uint64_t CVMX_TRA_FILT_ADR_ADR_FUNC(void) 102193326Sed{ 103198092Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 104193326Sed cvmx_warn("CVMX_TRA_FILT_ADR_ADR not supported on this chip\n"); 105193326Sed return CVMX_ADD_IO_SEG(0x00011800A8000058ull); 106193326Sed} 107193326Sed#else 108193326Sed#define CVMX_TRA_FILT_ADR_ADR (CVMX_ADD_IO_SEG(0x00011800A8000058ull)) 109193326Sed#endif 110193326Sed#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 111193326Sed#define CVMX_TRA_FILT_ADR_MSK CVMX_TRA_FILT_ADR_MSK_FUNC() 112193326Sedstatic inline uint64_t CVMX_TRA_FILT_ADR_MSK_FUNC(void) 113193326Sed{ 114208600Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 115208600Srdivacky cvmx_warn("CVMX_TRA_FILT_ADR_MSK not supported on this chip\n"); 116208600Srdivacky return CVMX_ADD_IO_SEG(0x00011800A8000060ull); 117208600Srdivacky} 118208600Srdivacky#else 119208600Srdivacky#define CVMX_TRA_FILT_ADR_MSK (CVMX_ADD_IO_SEG(0x00011800A8000060ull)) 120208600Srdivacky#endif 121208600Srdivacky#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 122208600Srdivacky#define CVMX_TRA_FILT_CMD CVMX_TRA_FILT_CMD_FUNC() 123208600Srdivackystatic inline uint64_t CVMX_TRA_FILT_CMD_FUNC(void) 124212904Sdim{ 125208600Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 126212904Sdim cvmx_warn("CVMX_TRA_FILT_CMD not supported on this chip\n"); 127212904Sdim return CVMX_ADD_IO_SEG(0x00011800A8000040ull); 128212904Sdim} 129208600Srdivacky#else 130193326Sed#define CVMX_TRA_FILT_CMD (CVMX_ADD_IO_SEG(0x00011800A8000040ull)) 131193326Sed#endif 132221345Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 133221345Sdim#define CVMX_TRA_FILT_DID CVMX_TRA_FILT_DID_FUNC() 134221345Sdimstatic inline uint64_t CVMX_TRA_FILT_DID_FUNC(void) 135221345Sdim{ 136221345Sdim if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 137221345Sdim cvmx_warn("CVMX_TRA_FILT_DID not supported on this chip\n"); 138208600Srdivacky return CVMX_ADD_IO_SEG(0x00011800A8000050ull); 139243830Sdim} 140208600Srdivacky#else 141208600Srdivacky#define CVMX_TRA_FILT_DID (CVMX_ADD_IO_SEG(0x00011800A8000050ull)) 142208600Srdivacky#endif 143208600Srdivacky#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 144208600Srdivacky#define CVMX_TRA_FILT_SID CVMX_TRA_FILT_SID_FUNC() 145208600Srdivackystatic inline uint64_t CVMX_TRA_FILT_SID_FUNC(void) 146210299Sed{ 147210299Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 148210299Sed cvmx_warn("CVMX_TRA_FILT_SID not supported on this chip\n"); 149210299Sed return CVMX_ADD_IO_SEG(0x00011800A8000048ull); 150210299Sed} 151208600Srdivacky#else 152208600Srdivacky#define CVMX_TRA_FILT_SID (CVMX_ADD_IO_SEG(0x00011800A8000048ull)) 153208600Srdivacky#endif 154208600Srdivacky#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 155208600Srdivacky#define CVMX_TRA_INT_STATUS CVMX_TRA_INT_STATUS_FUNC() 156210299Sedstatic inline uint64_t CVMX_TRA_INT_STATUS_FUNC(void) 157210299Sed{ 158210299Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 159210299Sed cvmx_warn("CVMX_TRA_INT_STATUS not supported on this chip\n"); 160210299Sed return CVMX_ADD_IO_SEG(0x00011800A8000008ull); 161210299Sed} 162210299Sed#else 163208600Srdivacky#define CVMX_TRA_INT_STATUS (CVMX_ADD_IO_SEG(0x00011800A8000008ull)) 164208600Srdivacky#endif 165208600Srdivacky#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 166208600Srdivacky#define CVMX_TRA_READ_DAT CVMX_TRA_READ_DAT_FUNC() 167208600Srdivackystatic inline uint64_t CVMX_TRA_READ_DAT_FUNC(void) 168208600Srdivacky{ 169208600Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 170208600Srdivacky cvmx_warn("CVMX_TRA_READ_DAT not supported on this chip\n"); 171208600Srdivacky return CVMX_ADD_IO_SEG(0x00011800A8000020ull); 172208600Srdivacky} 173243830Sdim#else 174243830Sdim#define CVMX_TRA_READ_DAT (CVMX_ADD_IO_SEG(0x00011800A8000020ull)) 175243830Sdim#endif 176243830Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 177243830Sdim#define CVMX_TRA_READ_DAT_HI CVMX_TRA_READ_DAT_HI_FUNC() 178243830Sdimstatic inline uint64_t CVMX_TRA_READ_DAT_HI_FUNC(void) 179243830Sdim{ 180208600Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN63XX))) 181208600Srdivacky cvmx_warn("CVMX_TRA_READ_DAT_HI not supported on this chip\n"); 182208600Srdivacky return CVMX_ADD_IO_SEG(0x00011800A8000030ull); 183208600Srdivacky} 184198092Srdivacky#else 185226633Sdim#define CVMX_TRA_READ_DAT_HI (CVMX_ADD_IO_SEG(0x00011800A8000030ull)) 186193326Sed#endif 187193326Sed#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 188193326Sed#define CVMX_TRA_TRIG0_ADR_ADR CVMX_TRA_TRIG0_ADR_ADR_FUNC() 189193326Sedstatic inline uint64_t CVMX_TRA_TRIG0_ADR_ADR_FUNC(void) 190193326Sed{ 191193326Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 192193326Sed cvmx_warn("CVMX_TRA_TRIG0_ADR_ADR not supported on this chip\n"); 193198092Srdivacky return CVMX_ADD_IO_SEG(0x00011800A8000098ull); 194193326Sed} 195193326Sed#else 196208600Srdivacky#define CVMX_TRA_TRIG0_ADR_ADR (CVMX_ADD_IO_SEG(0x00011800A8000098ull)) 197208600Srdivacky#endif 198208600Srdivacky#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 199193326Sed#define CVMX_TRA_TRIG0_ADR_MSK CVMX_TRA_TRIG0_ADR_MSK_FUNC() 200193326Sedstatic inline uint64_t CVMX_TRA_TRIG0_ADR_MSK_FUNC(void) 201193326Sed{ 202193326Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 203193326Sed cvmx_warn("CVMX_TRA_TRIG0_ADR_MSK not supported on this chip\n"); 204193326Sed return CVMX_ADD_IO_SEG(0x00011800A80000A0ull); 205193326Sed} 206193326Sed#else 207198092Srdivacky#define CVMX_TRA_TRIG0_ADR_MSK (CVMX_ADD_IO_SEG(0x00011800A80000A0ull)) 208193326Sed#endif 209193326Sed#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 210198092Srdivacky#define CVMX_TRA_TRIG0_CMD CVMX_TRA_TRIG0_CMD_FUNC() 211193326Sedstatic inline uint64_t CVMX_TRA_TRIG0_CMD_FUNC(void) 212198092Srdivacky{ 213193326Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 214212904Sdim cvmx_warn("CVMX_TRA_TRIG0_CMD not supported on this chip\n"); 215193326Sed return CVMX_ADD_IO_SEG(0x00011800A8000080ull); 216193326Sed} 217193326Sed#else 218212904Sdim#define CVMX_TRA_TRIG0_CMD (CVMX_ADD_IO_SEG(0x00011800A8000080ull)) 219193326Sed#endif 220193326Sed#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 221193326Sed#define CVMX_TRA_TRIG0_DID CVMX_TRA_TRIG0_DID_FUNC() 222193326Sedstatic inline uint64_t CVMX_TRA_TRIG0_DID_FUNC(void) 223193326Sed{ 224193326Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 225208600Srdivacky cvmx_warn("CVMX_TRA_TRIG0_DID not supported on this chip\n"); 226208600Srdivacky return CVMX_ADD_IO_SEG(0x00011800A8000090ull); 227208600Srdivacky} 228208600Srdivacky#else 229193326Sed#define CVMX_TRA_TRIG0_DID (CVMX_ADD_IO_SEG(0x00011800A8000090ull)) 230193326Sed#endif 231212904Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 232193326Sed#define CVMX_TRA_TRIG0_SID CVMX_TRA_TRIG0_SID_FUNC() 233193326Sedstatic inline uint64_t CVMX_TRA_TRIG0_SID_FUNC(void) 234193326Sed{ 235198092Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 236193326Sed cvmx_warn("CVMX_TRA_TRIG0_SID not supported on this chip\n"); 237193326Sed return CVMX_ADD_IO_SEG(0x00011800A8000088ull); 238212904Sdim} 239193326Sed#else 240193326Sed#define CVMX_TRA_TRIG0_SID (CVMX_ADD_IO_SEG(0x00011800A8000088ull)) 241193326Sed#endif 242198092Srdivacky#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 243198092Srdivacky#define CVMX_TRA_TRIG1_ADR_ADR CVMX_TRA_TRIG1_ADR_ADR_FUNC() 244193326Sedstatic inline uint64_t CVMX_TRA_TRIG1_ADR_ADR_FUNC(void) 245212904Sdim{ 246193326Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 247193326Sed cvmx_warn("CVMX_TRA_TRIG1_ADR_ADR not supported on this chip\n"); 248193326Sed return CVMX_ADD_IO_SEG(0x00011800A80000D8ull); 249193326Sed} 250193326Sed#else 251193326Sed#define CVMX_TRA_TRIG1_ADR_ADR (CVMX_ADD_IO_SEG(0x00011800A80000D8ull)) 252193326Sed#endif 253193326Sed#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 254193326Sed#define CVMX_TRA_TRIG1_ADR_MSK CVMX_TRA_TRIG1_ADR_MSK_FUNC() 255193326Sedstatic inline uint64_t CVMX_TRA_TRIG1_ADR_MSK_FUNC(void) 256193326Sed{ 257193326Sed if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 258193326Sed cvmx_warn("CVMX_TRA_TRIG1_ADR_MSK not supported on this chip\n"); 259193326Sed return CVMX_ADD_IO_SEG(0x00011800A80000E0ull); 260193326Sed} 261193326Sed#else 262221345Sdim#define CVMX_TRA_TRIG1_ADR_MSK (CVMX_ADD_IO_SEG(0x00011800A80000E0ull)) 263221345Sdim#endif 264221345Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 265221345Sdim#define CVMX_TRA_TRIG1_CMD CVMX_TRA_TRIG1_CMD_FUNC() 266218893Sdimstatic inline uint64_t CVMX_TRA_TRIG1_CMD_FUNC(void) 267218893Sdim{ 268198092Srdivacky if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 269218893Sdim cvmx_warn("CVMX_TRA_TRIG1_CMD not supported on this chip\n"); 270218893Sdim return CVMX_ADD_IO_SEG(0x00011800A80000C0ull); 271218893Sdim} 272198092Srdivacky#else 273218893Sdim#define CVMX_TRA_TRIG1_CMD (CVMX_ADD_IO_SEG(0x00011800A80000C0ull)) 274218893Sdim#endif 275218893Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 276218893Sdim#define CVMX_TRA_TRIG1_DID CVMX_TRA_TRIG1_DID_FUNC() 277218893Sdimstatic inline uint64_t CVMX_TRA_TRIG1_DID_FUNC(void) 278193326Sed{ 279218893Sdim if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 280218893Sdim cvmx_warn("CVMX_TRA_TRIG1_DID not supported on this chip\n"); 281218893Sdim return CVMX_ADD_IO_SEG(0x00011800A80000D0ull); 282218893Sdim} 283218893Sdim#else 284218893Sdim#define CVMX_TRA_TRIG1_DID (CVMX_ADD_IO_SEG(0x00011800A80000D0ull)) 285193326Sed#endif 286218893Sdim#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 287218893Sdim#define CVMX_TRA_TRIG1_SID CVMX_TRA_TRIG1_SID_FUNC() 288218893Sdimstatic inline uint64_t CVMX_TRA_TRIG1_SID_FUNC(void) 289218893Sdim{ 290218893Sdim if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 291193326Sed cvmx_warn("CVMX_TRA_TRIG1_SID not supported on this chip\n"); 292212904Sdim return CVMX_ADD_IO_SEG(0x00011800A80000C8ull); 293226633Sdim} 294226633Sdim#else 295226633Sdim#define CVMX_TRA_TRIG1_SID (CVMX_ADD_IO_SEG(0x00011800A80000C8ull)) 296226633Sdim#endif 297226633Sdim 298226633Sdim/** 299226633Sdim * cvmx_tra_bist_status 300226633Sdim * 301226633Sdim * TRA_BIST_STATUS = Trace Buffer BiST Status 302226633Sdim * 303226633Sdim * Description: 304226633Sdim */ 305218893Sdimunion cvmx_tra_bist_status 306218893Sdim{ 307212904Sdim uint64_t u64; 308212904Sdim struct cvmx_tra_bist_status_s 309212904Sdim { 310212904Sdim#if __BYTE_ORDER == __BIG_ENDIAN 311212904Sdim uint64_t reserved_3_63 : 61; 312221345Sdim uint64_t tcf : 1; /**< Bist Results for TCF memory 313212904Sdim - 0: GOOD (or bist in progress/never run) 314212904Sdim - 1: BAD */ 315212904Sdim uint64_t tdf1 : 1; /**< Bist Results for TDF memory 1 316218893Sdim - 0: GOOD (or bist in progress/never run) 317218893Sdim - 1: BAD */ 318218893Sdim uint64_t reserved_0_0 : 1; 319218893Sdim#else 320218893Sdim uint64_t reserved_0_0 : 1; 321212904Sdim uint64_t tdf1 : 1; 322212904Sdim uint64_t tcf : 1; 323212904Sdim uint64_t reserved_3_63 : 61; 324212904Sdim#endif 325212904Sdim } s; 326212904Sdim struct cvmx_tra_bist_status_cn31xx 327212904Sdim { 328212904Sdim#if __BYTE_ORDER == __BIG_ENDIAN 329212904Sdim uint64_t reserved_3_63 : 61; 330212904Sdim uint64_t tcf : 1; /**< Bist Results for TCF memory 331212904Sdim - 0: GOOD (or bist in progress/never run) 332218893Sdim - 1: BAD */ 333212904Sdim uint64_t tdf1 : 1; /**< Bist Results for TDF memory 1 334212904Sdim - 0: GOOD (or bist in progress/never run) 335212904Sdim - 1: BAD */ 336212904Sdim uint64_t tdf0 : 1; /**< Bist Results for TCF memory 0 337212904Sdim - 0: GOOD (or bist in progress/never run) 338212904Sdim - 1: BAD */ 339212904Sdim#else 340212904Sdim uint64_t tdf0 : 1; 341234353Sdim uint64_t tdf1 : 1; 342212904Sdim uint64_t tcf : 1; 343234353Sdim uint64_t reserved_3_63 : 61; 344212904Sdim#endif 345212904Sdim } cn31xx; 346212904Sdim struct cvmx_tra_bist_status_cn31xx cn38xx; 347212904Sdim struct cvmx_tra_bist_status_cn31xx cn38xxp2; 348212904Sdim struct cvmx_tra_bist_status_cn31xx cn52xx; 349212904Sdim struct cvmx_tra_bist_status_cn31xx cn52xxp1; 350212904Sdim struct cvmx_tra_bist_status_cn31xx cn56xx; 351212904Sdim struct cvmx_tra_bist_status_cn31xx cn56xxp1; 352212904Sdim struct cvmx_tra_bist_status_cn31xx cn58xx; 353212904Sdim struct cvmx_tra_bist_status_cn31xx cn58xxp1; 354212904Sdim struct cvmx_tra_bist_status_cn63xx 355212904Sdim { 356212904Sdim#if __BYTE_ORDER == __BIG_ENDIAN 357212904Sdim uint64_t reserved_1_63 : 63; 358212904Sdim uint64_t tdf : 1; /**< Bist Results for TCF memory 359212904Sdim - 0: GOOD (or bist in progress/never run) 360212904Sdim - 1: BAD */ 361234353Sdim#else 362212904Sdim uint64_t tdf : 1; 363212904Sdim uint64_t reserved_1_63 : 63; 364212904Sdim#endif 365218893Sdim } cn63xx; 366218893Sdim struct cvmx_tra_bist_status_cn63xx cn63xxp1; 367218893Sdim}; 368218893Sdimtypedef union cvmx_tra_bist_status cvmx_tra_bist_status_t; 369218893Sdim 370218893Sdim/** 371218893Sdim * cvmx_tra_ctl 372218893Sdim * 373218893Sdim * TRA_CTL = Trace Buffer Control 374234353Sdim * 375218893Sdim * Description: 376218893Sdim * 377212904Sdim * Notes: 378212904Sdim * It is illegal to change the values of WRAP, TRIG_CTL, IGNORE_O while tracing (i.e. when ENA=1). 379234353Sdim * Note that the following fields are present only in chip revisions beginning with pass2: IGNORE_O 380234353Sdim */ 381218893Sdimunion cvmx_tra_ctl 382218893Sdim{ 383218893Sdim uint64_t u64; 384218893Sdim struct cvmx_tra_ctl_s 385234353Sdim { 386218893Sdim#if __BYTE_ORDER == __BIG_ENDIAN 387218893Sdim uint64_t reserved_17_63 : 47; 388234353Sdim uint64_t rdat_md : 1; /**< TRA_READ_DAT mode bit 389234353Sdim If set, the TRA_READ_DAT reads will return the lower 390234353Sdim 64 bits of the TRA entry and the upper bits must be 391234353Sdim read through TRA_READ_DAT_HI. If not set the return 392234353Sdim value from TRA_READ_DAT accesses will switch between 393212904Sdim the lower bits and the upper bits of the TRA entry. */ 394234353Sdim uint64_t clkalways : 1; /**< Conditional clock enable 395234353Sdim If set, the TRA clock is never disabled. */ 396234353Sdim uint64_t ignore_o : 1; /**< Ignore overflow during wrap mode 397234353Sdim If set and wrapping mode is enabled, then tracing 398234353Sdim will not stop at the overflow condition. Each 399234353Sdim write during an overflow will overwrite the 400234353Sdim oldest, unread entry and the read pointer is 401234353Sdim incremented by one entry. This bit has no effect 402234353Sdim if WRAP=0. */ 403234353Sdim uint64_t mcd0_ena : 1; /**< MCD0 enable 404234353Sdim If set and any PP sends the MCD0 signal, the 405234353Sdim tracing is disabled. */ 406234353Sdim uint64_t mcd0_thr : 1; /**< MCD0_threshold 407234353Sdim At a fill threshold event, sends an MCD0 408234353Sdim wire pulse that can cause cores to enter debug 409234353Sdim mode, if enabled. This MCD0 wire pulse will not 410234353Sdim occur while (TRA_INT_STATUS.MCD0_THR == 1). */ 411234353Sdim uint64_t mcd0_trg : 1; /**< MCD0_trigger 412234353Sdim At an end trigger event, sends an MCD0 413212904Sdim wire pulse that can cause cores to enter debug 414234353Sdim mode, if enabled. This MCD0 wire pulse will not 415234353Sdim occur while (TRA_INT_STATUS.MCD0_TRG == 1). */ 416234353Sdim uint64_t ciu_thr : 1; /**< CIU_threshold 417234353Sdim When set during a fill threshold event, 418234353Sdim TRA_INT_STATUS[CIU_THR] is set, which can cause 419212904Sdim core interrupts, if enabled. */ 420 uint64_t ciu_trg : 1; /**< CIU_trigger 421 When set during an end trigger event, 422 TRA_INT_STATUS[CIU_TRG] is set, which can cause 423 core interrupts, if enabled. */ 424 uint64_t full_thr : 2; /**< Full Threshhold 425 0=none 426 1=1/2 full 427 2=3/4 full 428 3=4/4 full */ 429 uint64_t time_grn : 3; /**< Timestamp granularity 430 granularity=8^n cycles, n=0,1,2,3,4,5,6,7 */ 431 uint64_t trig_ctl : 2; /**< Trigger Control 432 Note: trigger events are written to the trace 433 0=no triggers 434 1=trigger0=start trigger, trigger1=stop trigger 435 2=(trigger0 || trigger1)=start trigger 436 3=(trigger0 || trigger1)=stop trigger */ 437 uint64_t wrap : 1; /**< Wrap mode 438 When WRAP=0, the trace buffer will disable itself 439 after having logged 1024 entries. When WRAP=1, 440 the trace buffer will never disable itself. 441 In this case, tracing may or may not be 442 temporarily suspended during the overflow 443 condition (see IGNORE_O above). 444 0=do not wrap 445 1=wrap */ 446 uint64_t ena : 1; /**< Enable Trace 447 Master enable. Tracing only happens when ENA=1. 448 When ENA changes from 0 to 1, the read and write 449 pointers are reset to 0x00 to begin a new trace. 450 The MCD0 event may set ENA=0 (see MCD0_ENA 451 above). When using triggers, tracing occurs only 452 between start and stop triggers (including the 453 triggers themselves). 454 0=disable 455 1=enable */ 456#else 457 uint64_t ena : 1; 458 uint64_t wrap : 1; 459 uint64_t trig_ctl : 2; 460 uint64_t time_grn : 3; 461 uint64_t full_thr : 2; 462 uint64_t ciu_trg : 1; 463 uint64_t ciu_thr : 1; 464 uint64_t mcd0_trg : 1; 465 uint64_t mcd0_thr : 1; 466 uint64_t mcd0_ena : 1; 467 uint64_t ignore_o : 1; 468 uint64_t clkalways : 1; 469 uint64_t rdat_md : 1; 470 uint64_t reserved_17_63 : 47; 471#endif 472 } s; 473 struct cvmx_tra_ctl_cn31xx 474 { 475#if __BYTE_ORDER == __BIG_ENDIAN 476 uint64_t reserved_15_63 : 49; 477 uint64_t ignore_o : 1; /**< Ignore overflow during wrap mode 478 If set and wrapping mode is enabled, then tracing 479 will not stop at the overflow condition. Each 480 write during an overflow will overwrite the 481 oldest, unread entry and the read pointer is 482 incremented by one entry. This bit has no effect 483 if WRAP=0. */ 484 uint64_t mcd0_ena : 1; /**< MCD0 enable 485 If set and any PP sends the MCD0 signal, the 486 tracing is disabled. */ 487 uint64_t mcd0_thr : 1; /**< MCD0_threshold 488 At a fill threshold event, sends an MCD0 489 wire pulse that can cause cores to enter debug 490 mode, if enabled. This MCD0 wire pulse will not 491 occur while (TRA_INT_STATUS.MCD0_THR == 1). */ 492 uint64_t mcd0_trg : 1; /**< MCD0_trigger 493 At an end trigger event, sends an MCD0 494 wire pulse that can cause cores to enter debug 495 mode, if enabled. This MCD0 wire pulse will not 496 occur while (TRA_INT_STATUS.MCD0_TRG == 1). */ 497 uint64_t ciu_thr : 1; /**< CIU_threshold 498 When set during a fill threshold event, 499 TRA_INT_STATUS[CIU_THR] is set, which can cause 500 core interrupts, if enabled. */ 501 uint64_t ciu_trg : 1; /**< CIU_trigger 502 When set during an end trigger event, 503 TRA_INT_STATUS[CIU_TRG] is set, which can cause 504 core interrupts, if enabled. */ 505 uint64_t full_thr : 2; /**< Full Threshhold 506 0=none 507 1=1/2 full 508 2=3/4 full 509 3=4/4 full */ 510 uint64_t time_grn : 3; /**< Timestamp granularity 511 granularity=8^n cycles, n=0,1,2,3,4,5,6,7 */ 512 uint64_t trig_ctl : 2; /**< Trigger Control 513 Note: trigger events are written to the trace 514 0=no triggers 515 1=trigger0=start trigger, trigger1=stop trigger 516 2=(trigger0 || trigger1)=start trigger 517 3=(trigger0 || trigger1)=stop trigger */ 518 uint64_t wrap : 1; /**< Wrap mode 519 When WRAP=0, the trace buffer will disable itself 520 after having logged 256 entries. When WRAP=1, 521 the trace buffer will never disable itself. 522 In this case, tracing may or may not be 523 temporarily suspended during the overflow 524 condition (see IGNORE_O above). 525 0=do not wrap 526 1=wrap */ 527 uint64_t ena : 1; /**< Enable Trace 528 Master enable. Tracing only happens when ENA=1. 529 When ENA changes from 0 to 1, the read and write 530 pointers are reset to 0x00 to begin a new trace. 531 The MCD0 event may set ENA=0 (see MCD0_ENA 532 above). When using triggers, tracing occurs only 533 between start and stop triggers (including the 534 triggers themselves). 535 0=disable 536 1=enable */ 537#else 538 uint64_t ena : 1; 539 uint64_t wrap : 1; 540 uint64_t trig_ctl : 2; 541 uint64_t time_grn : 3; 542 uint64_t full_thr : 2; 543 uint64_t ciu_trg : 1; 544 uint64_t ciu_thr : 1; 545 uint64_t mcd0_trg : 1; 546 uint64_t mcd0_thr : 1; 547 uint64_t mcd0_ena : 1; 548 uint64_t ignore_o : 1; 549 uint64_t reserved_15_63 : 49; 550#endif 551 } cn31xx; 552 struct cvmx_tra_ctl_cn31xx cn38xx; 553 struct cvmx_tra_ctl_cn31xx cn38xxp2; 554 struct cvmx_tra_ctl_cn31xx cn52xx; 555 struct cvmx_tra_ctl_cn31xx cn52xxp1; 556 struct cvmx_tra_ctl_cn31xx cn56xx; 557 struct cvmx_tra_ctl_cn31xx cn56xxp1; 558 struct cvmx_tra_ctl_cn31xx cn58xx; 559 struct cvmx_tra_ctl_cn31xx cn58xxp1; 560 struct cvmx_tra_ctl_s cn63xx; 561 struct cvmx_tra_ctl_cn63xxp1 562 { 563#if __BYTE_ORDER == __BIG_ENDIAN 564 uint64_t reserved_16_63 : 48; 565 uint64_t clkalways : 1; /**< Conditional clock enable 566 If set, the TRA clock is never disabled. */ 567 uint64_t ignore_o : 1; /**< Ignore overflow during wrap mode 568 If set and wrapping mode is enabled, then tracing 569 will not stop at the overflow condition. Each 570 write during an overflow will overwrite the 571 oldest, unread entry and the read pointer is 572 incremented by one entry. This bit has no effect 573 if WRAP=0. */ 574 uint64_t mcd0_ena : 1; /**< MCD0 enable 575 If set and any PP sends the MCD0 signal, the 576 tracing is disabled. */ 577 uint64_t mcd0_thr : 1; /**< MCD0_threshold 578 At a fill threshold event, sends an MCD0 579 wire pulse that can cause cores to enter debug 580 mode, if enabled. This MCD0 wire pulse will not 581 occur while (TRA_INT_STATUS.MCD0_THR == 1). */ 582 uint64_t mcd0_trg : 1; /**< MCD0_trigger 583 At an end trigger event, sends an MCD0 584 wire pulse that can cause cores to enter debug 585 mode, if enabled. This MCD0 wire pulse will not 586 occur while (TRA_INT_STATUS.MCD0_TRG == 1). */ 587 uint64_t ciu_thr : 1; /**< CIU_threshold 588 When set during a fill threshold event, 589 TRA_INT_STATUS[CIU_THR] is set, which can cause 590 core interrupts, if enabled. */ 591 uint64_t ciu_trg : 1; /**< CIU_trigger 592 When set during an end trigger event, 593 TRA_INT_STATUS[CIU_TRG] is set, which can cause 594 core interrupts, if enabled. */ 595 uint64_t full_thr : 2; /**< Full Threshhold 596 0=none 597 1=1/2 full 598 2=3/4 full 599 3=4/4 full */ 600 uint64_t time_grn : 3; /**< Timestamp granularity 601 granularity=8^n cycles, n=0,1,2,3,4,5,6,7 */ 602 uint64_t trig_ctl : 2; /**< Trigger Control 603 Note: trigger events are written to the trace 604 0=no triggers 605 1=trigger0=start trigger, trigger1=stop trigger 606 2=(trigger0 || trigger1)=start trigger 607 3=(trigger0 || trigger1)=stop trigger */ 608 uint64_t wrap : 1; /**< Wrap mode 609 When WRAP=0, the trace buffer will disable itself 610 after having logged 1024 entries. When WRAP=1, 611 the trace buffer will never disable itself. 612 In this case, tracing may or may not be 613 temporarily suspended during the overflow 614 condition (see IGNORE_O above). 615 0=do not wrap 616 1=wrap */ 617 uint64_t ena : 1; /**< Enable Trace 618 Master enable. Tracing only happens when ENA=1. 619 When ENA changes from 0 to 1, the read and write 620 pointers are reset to 0x00 to begin a new trace. 621 The MCD0 event may set ENA=0 (see MCD0_ENA 622 above). When using triggers, tracing occurs only 623 between start and stop triggers (including the 624 triggers themselves). 625 0=disable 626 1=enable */ 627#else 628 uint64_t ena : 1; 629 uint64_t wrap : 1; 630 uint64_t trig_ctl : 2; 631 uint64_t time_grn : 3; 632 uint64_t full_thr : 2; 633 uint64_t ciu_trg : 1; 634 uint64_t ciu_thr : 1; 635 uint64_t mcd0_trg : 1; 636 uint64_t mcd0_thr : 1; 637 uint64_t mcd0_ena : 1; 638 uint64_t ignore_o : 1; 639 uint64_t clkalways : 1; 640 uint64_t reserved_16_63 : 48; 641#endif 642 } cn63xxp1; 643}; 644typedef union cvmx_tra_ctl cvmx_tra_ctl_t; 645 646/** 647 * cvmx_tra_cycles_since 648 * 649 * TRA_CYCLES_SINCE = Trace Buffer Cycles Since Last Write, Read/Write pointers 650 * 651 * Description: 652 * 653 * Notes: 654 * This CSR is obsolete. Use TRA_CYCLES_SINCE1 instead. 655 * 656 */ 657union cvmx_tra_cycles_since 658{ 659 uint64_t u64; 660 struct cvmx_tra_cycles_since_s 661 { 662#if __BYTE_ORDER == __BIG_ENDIAN 663 uint64_t cycles : 48; /**< Cycles since the last entry was written */ 664 uint64_t rptr : 8; /**< Read pointer */ 665 uint64_t wptr : 8; /**< Write pointer */ 666#else 667 uint64_t wptr : 8; 668 uint64_t rptr : 8; 669 uint64_t cycles : 48; 670#endif 671 } s; 672 struct cvmx_tra_cycles_since_s cn31xx; 673 struct cvmx_tra_cycles_since_s cn38xx; 674 struct cvmx_tra_cycles_since_s cn38xxp2; 675 struct cvmx_tra_cycles_since_s cn52xx; 676 struct cvmx_tra_cycles_since_s cn52xxp1; 677 struct cvmx_tra_cycles_since_s cn56xx; 678 struct cvmx_tra_cycles_since_s cn56xxp1; 679 struct cvmx_tra_cycles_since_s cn58xx; 680 struct cvmx_tra_cycles_since_s cn58xxp1; 681 struct cvmx_tra_cycles_since_s cn63xx; 682 struct cvmx_tra_cycles_since_s cn63xxp1; 683}; 684typedef union cvmx_tra_cycles_since cvmx_tra_cycles_since_t; 685 686/** 687 * cvmx_tra_cycles_since1 688 * 689 * TRA_CYCLES_SINCE1 = Trace Buffer Cycles Since Last Write, Read/Write pointers 690 * 691 * Description: 692 */ 693union cvmx_tra_cycles_since1 694{ 695 uint64_t u64; 696 struct cvmx_tra_cycles_since1_s 697 { 698#if __BYTE_ORDER == __BIG_ENDIAN 699 uint64_t cycles : 40; /**< Cycles since the last entry was written */ 700 uint64_t reserved_22_23 : 2; 701 uint64_t rptr : 10; /**< Read pointer */ 702 uint64_t reserved_10_11 : 2; 703 uint64_t wptr : 10; /**< Write pointer */ 704#else 705 uint64_t wptr : 10; 706 uint64_t reserved_10_11 : 2; 707 uint64_t rptr : 10; 708 uint64_t reserved_22_23 : 2; 709 uint64_t cycles : 40; 710#endif 711 } s; 712 struct cvmx_tra_cycles_since1_s cn52xx; 713 struct cvmx_tra_cycles_since1_s cn52xxp1; 714 struct cvmx_tra_cycles_since1_s cn56xx; 715 struct cvmx_tra_cycles_since1_s cn56xxp1; 716 struct cvmx_tra_cycles_since1_s cn58xx; 717 struct cvmx_tra_cycles_since1_s cn58xxp1; 718 struct cvmx_tra_cycles_since1_s cn63xx; 719 struct cvmx_tra_cycles_since1_s cn63xxp1; 720}; 721typedef union cvmx_tra_cycles_since1 cvmx_tra_cycles_since1_t; 722 723/** 724 * cvmx_tra_filt_adr_adr 725 * 726 * TRA_FILT_ADR_ADR = Trace Buffer Filter Address Address 727 * 728 * Description: 729 */ 730union cvmx_tra_filt_adr_adr 731{ 732 uint64_t u64; 733 struct cvmx_tra_filt_adr_adr_s 734 { 735#if __BYTE_ORDER == __BIG_ENDIAN 736 uint64_t reserved_38_63 : 26; 737 uint64_t adr : 38; /**< Unmasked Address 738 The combination of TRA_FILT_ADR_ADR and 739 TRA_FILT_ADR_MSK is a masked address to 740 enable tracing of only those commands whose 741 masked address matches */ 742#else 743 uint64_t adr : 38; 744 uint64_t reserved_38_63 : 26; 745#endif 746 } s; 747 struct cvmx_tra_filt_adr_adr_cn31xx 748 { 749#if __BYTE_ORDER == __BIG_ENDIAN 750 uint64_t reserved_36_63 : 28; 751 uint64_t adr : 36; /**< Unmasked Address 752 The combination of TRA_FILT_ADR_ADR and 753 TRA_FILT_ADR_MSK is a masked address to 754 enable tracing of only those commands whose 755 masked address matches */ 756#else 757 uint64_t adr : 36; 758 uint64_t reserved_36_63 : 28; 759#endif 760 } cn31xx; 761 struct cvmx_tra_filt_adr_adr_cn31xx cn38xx; 762 struct cvmx_tra_filt_adr_adr_cn31xx cn38xxp2; 763 struct cvmx_tra_filt_adr_adr_cn31xx cn52xx; 764 struct cvmx_tra_filt_adr_adr_cn31xx cn52xxp1; 765 struct cvmx_tra_filt_adr_adr_cn31xx cn56xx; 766 struct cvmx_tra_filt_adr_adr_cn31xx cn56xxp1; 767 struct cvmx_tra_filt_adr_adr_cn31xx cn58xx; 768 struct cvmx_tra_filt_adr_adr_cn31xx cn58xxp1; 769 struct cvmx_tra_filt_adr_adr_s cn63xx; 770 struct cvmx_tra_filt_adr_adr_s cn63xxp1; 771}; 772typedef union cvmx_tra_filt_adr_adr cvmx_tra_filt_adr_adr_t; 773 774/** 775 * cvmx_tra_filt_adr_msk 776 * 777 * TRA_FILT_ADR_MSK = Trace Buffer Filter Address Mask 778 * 779 * Description: 780 */ 781union cvmx_tra_filt_adr_msk 782{ 783 uint64_t u64; 784 struct cvmx_tra_filt_adr_msk_s 785 { 786#if __BYTE_ORDER == __BIG_ENDIAN 787 uint64_t reserved_38_63 : 26; 788 uint64_t adr : 38; /**< Address Mask 789 The combination of TRA_FILT_ADR_ADR and 790 TRA_FILT_ADR_MSK is a masked address to 791 enable tracing of only those commands whose 792 masked address matches. When a mask bit is not 793 set, the corresponding address bits are assumed 794 to match. Also, note that IOBDMAs do not have 795 proper addresses, so when TRA_FILT_CMD[IOBDMA] 796 is set, TRA_FILT_ADR_MSK must be zero to 797 guarantee that any IOBDMAs enter the trace. */ 798#else 799 uint64_t adr : 38; 800 uint64_t reserved_38_63 : 26; 801#endif 802 } s; 803 struct cvmx_tra_filt_adr_msk_cn31xx 804 { 805#if __BYTE_ORDER == __BIG_ENDIAN 806 uint64_t reserved_36_63 : 28; 807 uint64_t adr : 36; /**< Address Mask 808 The combination of TRA_FILT_ADR_ADR and 809 TRA_FILT_ADR_MSK is a masked address to 810 enable tracing of only those commands whose 811 masked address matches. When a mask bit is not 812 set, the corresponding address bits are assumed 813 to match. Also, note that IOBDMAs do not have 814 proper addresses, so when TRA_FILT_CMD[IOBDMA] 815 is set, TRA_FILT_ADR_MSK must be zero to 816 guarantee that any IOBDMAs enter the trace. */ 817#else 818 uint64_t adr : 36; 819 uint64_t reserved_36_63 : 28; 820#endif 821 } cn31xx; 822 struct cvmx_tra_filt_adr_msk_cn31xx cn38xx; 823 struct cvmx_tra_filt_adr_msk_cn31xx cn38xxp2; 824 struct cvmx_tra_filt_adr_msk_cn31xx cn52xx; 825 struct cvmx_tra_filt_adr_msk_cn31xx cn52xxp1; 826 struct cvmx_tra_filt_adr_msk_cn31xx cn56xx; 827 struct cvmx_tra_filt_adr_msk_cn31xx cn56xxp1; 828 struct cvmx_tra_filt_adr_msk_cn31xx cn58xx; 829 struct cvmx_tra_filt_adr_msk_cn31xx cn58xxp1; 830 struct cvmx_tra_filt_adr_msk_s cn63xx; 831 struct cvmx_tra_filt_adr_msk_s cn63xxp1; 832}; 833typedef union cvmx_tra_filt_adr_msk cvmx_tra_filt_adr_msk_t; 834 835/** 836 * cvmx_tra_filt_cmd 837 * 838 * TRA_FILT_CMD = Trace Buffer Filter Command Mask 839 * 840 * Description: 841 * 842 * Notes: 843 * Note that the trace buffer does not do proper IOBDMA address compares. Thus, if IOBDMA is set, then 844 * the address compare must be disabled (i.e. TRA_FILT_ADR_MSK set to zero) to guarantee that IOBDMAs 845 * enter the trace. 846 */ 847union cvmx_tra_filt_cmd 848{ 849 uint64_t u64; 850 struct cvmx_tra_filt_cmd_s 851 { 852#if __BYTE_ORDER == __BIG_ENDIAN 853 uint64_t saa64 : 1; /**< Enable SAA64 tracing 854 0=disable, 1=enable */ 855 uint64_t saa32 : 1; /**< Enable SAA32 tracing 856 0=disable, 1=enable */ 857 uint64_t reserved_60_61 : 2; 858 uint64_t faa64 : 1; /**< Enable FAA64 tracing 859 0=disable, 1=enable */ 860 uint64_t faa32 : 1; /**< Enable FAA32 tracing 861 0=disable, 1=enable */ 862 uint64_t reserved_56_57 : 2; 863 uint64_t decr64 : 1; /**< Enable DECR64 tracing 864 0=disable, 1=enable */ 865 uint64_t decr32 : 1; /**< Enable DECR32 tracing 866 0=disable, 1=enable */ 867 uint64_t decr16 : 1; /**< Enable DECR16 tracing 868 0=disable, 1=enable */ 869 uint64_t decr8 : 1; /**< Enable DECR8 tracing 870 0=disable, 1=enable */ 871 uint64_t incr64 : 1; /**< Enable INCR64 tracing 872 0=disable, 1=enable */ 873 uint64_t incr32 : 1; /**< Enable INCR32 tracing 874 0=disable, 1=enable */ 875 uint64_t incr16 : 1; /**< Enable INCR16 tracing 876 0=disable, 1=enable */ 877 uint64_t incr8 : 1; /**< Enable INCR8 tracing 878 0=disable, 1=enable */ 879 uint64_t clr64 : 1; /**< Enable CLR64 tracing 880 0=disable, 1=enable */ 881 uint64_t clr32 : 1; /**< Enable CLR32 tracing 882 0=disable, 1=enable */ 883 uint64_t clr16 : 1; /**< Enable CLR16 tracing 884 0=disable, 1=enable */ 885 uint64_t clr8 : 1; /**< Enable CLR8 tracing 886 0=disable, 1=enable */ 887 uint64_t set64 : 1; /**< Enable SET64 tracing 888 0=disable, 1=enable */ 889 uint64_t set32 : 1; /**< Enable SET32 tracing 890 0=disable, 1=enable */ 891 uint64_t set16 : 1; /**< Enable SET16 tracing 892 0=disable, 1=enable */ 893 uint64_t set8 : 1; /**< Enable SET8 tracing 894 0=disable, 1=enable */ 895 uint64_t iobst64 : 1; /**< Enable IOBST64 tracing 896 0=disable, 1=enable */ 897 uint64_t iobst32 : 1; /**< Enable IOBST32 tracing 898 0=disable, 1=enable */ 899 uint64_t iobst16 : 1; /**< Enable IOBST16 tracing 900 0=disable, 1=enable */ 901 uint64_t iobst8 : 1; /**< Enable IOBST8 tracing 902 0=disable, 1=enable */ 903 uint64_t reserved_32_35 : 4; 904 uint64_t lckl2 : 1; /**< Enable LCKL2 tracing 905 0=disable, 1=enable */ 906 uint64_t wbl2 : 1; /**< Enable WBL2 tracing 907 0=disable, 1=enable */ 908 uint64_t wbil2 : 1; /**< Enable WBIL2 tracing 909 0=disable, 1=enable */ 910 uint64_t invl2 : 1; /**< Enable INVL2 tracing 911 0=disable, 1=enable */ 912 uint64_t reserved_27_27 : 1; 913 uint64_t stgl2i : 1; /**< Enable STGL2I tracing 914 0=disable, 1=enable */ 915 uint64_t ltgl2i : 1; /**< Enable LTGL2I tracing 916 0=disable, 1=enable */ 917 uint64_t wbil2i : 1; /**< Enable WBIL2I tracing 918 0=disable, 1=enable */ 919 uint64_t fas64 : 1; /**< Enable FAS64 tracing 920 0=disable, 1=enable */ 921 uint64_t fas32 : 1; /**< Enable FAS32 tracing 922 0=disable, 1=enable */ 923 uint64_t sttil1 : 1; /**< Enable STTIL1 tracing 924 0=disable, 1=enable */ 925 uint64_t stfil1 : 1; /**< Enable STFIL1 tracing 926 0=disable, 1=enable */ 927 uint64_t reserved_16_19 : 4; 928 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 929 0=disable, 1=enable */ 930 uint64_t iobst : 1; /**< Enable IOBST tracing 931 0=disable, 1=enable */ 932 uint64_t reserved_0_13 : 14; 933#else 934 uint64_t reserved_0_13 : 14; 935 uint64_t iobst : 1; 936 uint64_t iobdma : 1; 937 uint64_t reserved_16_19 : 4; 938 uint64_t stfil1 : 1; 939 uint64_t sttil1 : 1; 940 uint64_t fas32 : 1; 941 uint64_t fas64 : 1; 942 uint64_t wbil2i : 1; 943 uint64_t ltgl2i : 1; 944 uint64_t stgl2i : 1; 945 uint64_t reserved_27_27 : 1; 946 uint64_t invl2 : 1; 947 uint64_t wbil2 : 1; 948 uint64_t wbl2 : 1; 949 uint64_t lckl2 : 1; 950 uint64_t reserved_32_35 : 4; 951 uint64_t iobst8 : 1; 952 uint64_t iobst16 : 1; 953 uint64_t iobst32 : 1; 954 uint64_t iobst64 : 1; 955 uint64_t set8 : 1; 956 uint64_t set16 : 1; 957 uint64_t set32 : 1; 958 uint64_t set64 : 1; 959 uint64_t clr8 : 1; 960 uint64_t clr16 : 1; 961 uint64_t clr32 : 1; 962 uint64_t clr64 : 1; 963 uint64_t incr8 : 1; 964 uint64_t incr16 : 1; 965 uint64_t incr32 : 1; 966 uint64_t incr64 : 1; 967 uint64_t decr8 : 1; 968 uint64_t decr16 : 1; 969 uint64_t decr32 : 1; 970 uint64_t decr64 : 1; 971 uint64_t reserved_56_57 : 2; 972 uint64_t faa32 : 1; 973 uint64_t faa64 : 1; 974 uint64_t reserved_60_61 : 2; 975 uint64_t saa32 : 1; 976 uint64_t saa64 : 1; 977#endif 978 } s; 979 struct cvmx_tra_filt_cmd_cn31xx 980 { 981#if __BYTE_ORDER == __BIG_ENDIAN 982 uint64_t reserved_16_63 : 48; 983 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 984 0=disable, 1=enable */ 985 uint64_t iobst : 1; /**< Enable IOBST tracing 986 0=disable, 1=enable */ 987 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 988 0=disable, 1=enable */ 989 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 990 0=disable, 1=enable */ 991 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 992 0=disable, 1=enable */ 993 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 994 0=disable, 1=enable */ 995 uint64_t stt : 1; /**< Enable STT tracing 996 0=disable, 1=enable */ 997 uint64_t stp : 1; /**< Enable STP tracing 998 0=disable, 1=enable */ 999 uint64_t stc : 1; /**< Enable STC tracing 1000 0=disable, 1=enable */ 1001 uint64_t stf : 1; /**< Enable STF tracing 1002 0=disable, 1=enable */ 1003 uint64_t ldt : 1; /**< Enable LDT tracing 1004 0=disable, 1=enable */ 1005 uint64_t ldi : 1; /**< Enable LDI tracing 1006 0=disable, 1=enable */ 1007 uint64_t ldd : 1; /**< Enable LDD tracing 1008 0=disable, 1=enable */ 1009 uint64_t psl1 : 1; /**< Enable PSL1 tracing 1010 0=disable, 1=enable */ 1011 uint64_t pl2 : 1; /**< Enable PL2 tracing 1012 0=disable, 1=enable */ 1013 uint64_t dwb : 1; /**< Enable DWB tracing 1014 0=disable, 1=enable */ 1015#else 1016 uint64_t dwb : 1; 1017 uint64_t pl2 : 1; 1018 uint64_t psl1 : 1; 1019 uint64_t ldd : 1; 1020 uint64_t ldi : 1; 1021 uint64_t ldt : 1; 1022 uint64_t stf : 1; 1023 uint64_t stc : 1; 1024 uint64_t stp : 1; 1025 uint64_t stt : 1; 1026 uint64_t iobld8 : 1; 1027 uint64_t iobld16 : 1; 1028 uint64_t iobld32 : 1; 1029 uint64_t iobld64 : 1; 1030 uint64_t iobst : 1; 1031 uint64_t iobdma : 1; 1032 uint64_t reserved_16_63 : 48; 1033#endif 1034 } cn31xx; 1035 struct cvmx_tra_filt_cmd_cn31xx cn38xx; 1036 struct cvmx_tra_filt_cmd_cn31xx cn38xxp2; 1037 struct cvmx_tra_filt_cmd_cn52xx 1038 { 1039#if __BYTE_ORDER == __BIG_ENDIAN 1040 uint64_t reserved_17_63 : 47; 1041 uint64_t saa : 1; /**< Enable SAA tracing 1042 0=disable, 1=enable */ 1043 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 1044 0=disable, 1=enable */ 1045 uint64_t iobst : 1; /**< Enable IOBST tracing 1046 0=disable, 1=enable */ 1047 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 1048 0=disable, 1=enable */ 1049 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 1050 0=disable, 1=enable */ 1051 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 1052 0=disable, 1=enable */ 1053 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 1054 0=disable, 1=enable */ 1055 uint64_t stt : 1; /**< Enable STT tracing 1056 0=disable, 1=enable */ 1057 uint64_t stp : 1; /**< Enable STP tracing 1058 0=disable, 1=enable */ 1059 uint64_t stc : 1; /**< Enable STC tracing 1060 0=disable, 1=enable */ 1061 uint64_t stf : 1; /**< Enable STF tracing 1062 0=disable, 1=enable */ 1063 uint64_t ldt : 1; /**< Enable LDT tracing 1064 0=disable, 1=enable */ 1065 uint64_t ldi : 1; /**< Enable LDI tracing 1066 0=disable, 1=enable */ 1067 uint64_t ldd : 1; /**< Enable LDD tracing 1068 0=disable, 1=enable */ 1069 uint64_t psl1 : 1; /**< Enable PSL1 tracing 1070 0=disable, 1=enable */ 1071 uint64_t pl2 : 1; /**< Enable PL2 tracing 1072 0=disable, 1=enable */ 1073 uint64_t dwb : 1; /**< Enable DWB tracing 1074 0=disable, 1=enable */ 1075#else 1076 uint64_t dwb : 1; 1077 uint64_t pl2 : 1; 1078 uint64_t psl1 : 1; 1079 uint64_t ldd : 1; 1080 uint64_t ldi : 1; 1081 uint64_t ldt : 1; 1082 uint64_t stf : 1; 1083 uint64_t stc : 1; 1084 uint64_t stp : 1; 1085 uint64_t stt : 1; 1086 uint64_t iobld8 : 1; 1087 uint64_t iobld16 : 1; 1088 uint64_t iobld32 : 1; 1089 uint64_t iobld64 : 1; 1090 uint64_t iobst : 1; 1091 uint64_t iobdma : 1; 1092 uint64_t saa : 1; 1093 uint64_t reserved_17_63 : 47; 1094#endif 1095 } cn52xx; 1096 struct cvmx_tra_filt_cmd_cn52xx cn52xxp1; 1097 struct cvmx_tra_filt_cmd_cn52xx cn56xx; 1098 struct cvmx_tra_filt_cmd_cn52xx cn56xxp1; 1099 struct cvmx_tra_filt_cmd_cn52xx cn58xx; 1100 struct cvmx_tra_filt_cmd_cn52xx cn58xxp1; 1101 struct cvmx_tra_filt_cmd_cn63xx 1102 { 1103#if __BYTE_ORDER == __BIG_ENDIAN 1104 uint64_t saa64 : 1; /**< Enable SAA64 tracing 1105 0=disable, 1=enable */ 1106 uint64_t saa32 : 1; /**< Enable SAA32 tracing 1107 0=disable, 1=enable */ 1108 uint64_t reserved_60_61 : 2; 1109 uint64_t faa64 : 1; /**< Enable FAA64 tracing 1110 0=disable, 1=enable */ 1111 uint64_t faa32 : 1; /**< Enable FAA32 tracing 1112 0=disable, 1=enable */ 1113 uint64_t reserved_56_57 : 2; 1114 uint64_t decr64 : 1; /**< Enable DECR64 tracing 1115 0=disable, 1=enable */ 1116 uint64_t decr32 : 1; /**< Enable DECR32 tracing 1117 0=disable, 1=enable */ 1118 uint64_t decr16 : 1; /**< Enable DECR16 tracing 1119 0=disable, 1=enable */ 1120 uint64_t decr8 : 1; /**< Enable DECR8 tracing 1121 0=disable, 1=enable */ 1122 uint64_t incr64 : 1; /**< Enable INCR64 tracing 1123 0=disable, 1=enable */ 1124 uint64_t incr32 : 1; /**< Enable INCR32 tracing 1125 0=disable, 1=enable */ 1126 uint64_t incr16 : 1; /**< Enable INCR16 tracing 1127 0=disable, 1=enable */ 1128 uint64_t incr8 : 1; /**< Enable INCR8 tracing 1129 0=disable, 1=enable */ 1130 uint64_t clr64 : 1; /**< Enable CLR64 tracing 1131 0=disable, 1=enable */ 1132 uint64_t clr32 : 1; /**< Enable CLR32 tracing 1133 0=disable, 1=enable */ 1134 uint64_t clr16 : 1; /**< Enable CLR16 tracing 1135 0=disable, 1=enable */ 1136 uint64_t clr8 : 1; /**< Enable CLR8 tracing 1137 0=disable, 1=enable */ 1138 uint64_t set64 : 1; /**< Enable SET64 tracing 1139 0=disable, 1=enable */ 1140 uint64_t set32 : 1; /**< Enable SET32 tracing 1141 0=disable, 1=enable */ 1142 uint64_t set16 : 1; /**< Enable SET16 tracing 1143 0=disable, 1=enable */ 1144 uint64_t set8 : 1; /**< Enable SET8 tracing 1145 0=disable, 1=enable */ 1146 uint64_t iobst64 : 1; /**< Enable IOBST64 tracing 1147 0=disable, 1=enable */ 1148 uint64_t iobst32 : 1; /**< Enable IOBST32 tracing 1149 0=disable, 1=enable */ 1150 uint64_t iobst16 : 1; /**< Enable IOBST16 tracing 1151 0=disable, 1=enable */ 1152 uint64_t iobst8 : 1; /**< Enable IOBST8 tracing 1153 0=disable, 1=enable */ 1154 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 1155 0=disable, 1=enable */ 1156 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 1157 0=disable, 1=enable */ 1158 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 1159 0=disable, 1=enable */ 1160 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 1161 0=disable, 1=enable */ 1162 uint64_t lckl2 : 1; /**< Enable LCKL2 tracing 1163 0=disable, 1=enable */ 1164 uint64_t wbl2 : 1; /**< Enable WBL2 tracing 1165 0=disable, 1=enable */ 1166 uint64_t wbil2 : 1; /**< Enable WBIL2 tracing 1167 0=disable, 1=enable */ 1168 uint64_t invl2 : 1; /**< Enable INVL2 tracing 1169 0=disable, 1=enable */ 1170 uint64_t reserved_27_27 : 1; 1171 uint64_t stgl2i : 1; /**< Enable STGL2I tracing 1172 0=disable, 1=enable */ 1173 uint64_t ltgl2i : 1; /**< Enable LTGL2I tracing 1174 0=disable, 1=enable */ 1175 uint64_t wbil2i : 1; /**< Enable WBIL2I tracing 1176 0=disable, 1=enable */ 1177 uint64_t fas64 : 1; /**< Enable FAS64 tracing 1178 0=disable, 1=enable */ 1179 uint64_t fas32 : 1; /**< Enable FAS32 tracing 1180 0=disable, 1=enable */ 1181 uint64_t sttil1 : 1; /**< Enable STTIL1 tracing 1182 0=disable, 1=enable */ 1183 uint64_t stfil1 : 1; /**< Enable STFIL1 tracing 1184 0=disable, 1=enable */ 1185 uint64_t stc : 1; /**< Enable STC tracing 1186 0=disable, 1=enable */ 1187 uint64_t stp : 1; /**< Enable STP tracing 1188 0=disable, 1=enable */ 1189 uint64_t stt : 1; /**< Enable STT tracing 1190 0=disable, 1=enable */ 1191 uint64_t stf : 1; /**< Enable STF tracing 1192 0=disable, 1=enable */ 1193 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 1194 0=disable, 1=enable */ 1195 uint64_t reserved_10_14 : 5; 1196 uint64_t psl1 : 1; /**< Enable PSL1 tracing 1197 0=disable, 1=enable */ 1198 uint64_t ldd : 1; /**< Enable LDD tracing 1199 0=disable, 1=enable */ 1200 uint64_t reserved_6_7 : 2; 1201 uint64_t dwb : 1; /**< Enable DWB tracing 1202 0=disable, 1=enable */ 1203 uint64_t rpl2 : 1; /**< Enable RPL2 tracing 1204 0=disable, 1=enable */ 1205 uint64_t pl2 : 1; /**< Enable PL2 tracing 1206 0=disable, 1=enable */ 1207 uint64_t ldi : 1; /**< Enable LDI tracing 1208 0=disable, 1=enable */ 1209 uint64_t ldt : 1; /**< Enable LDT tracing 1210 0=disable, 1=enable */ 1211 uint64_t nop : 1; /**< Enable NOP tracing 1212 0=disable, 1=enable */ 1213#else 1214 uint64_t nop : 1; 1215 uint64_t ldt : 1; 1216 uint64_t ldi : 1; 1217 uint64_t pl2 : 1; 1218 uint64_t rpl2 : 1; 1219 uint64_t dwb : 1; 1220 uint64_t reserved_6_7 : 2; 1221 uint64_t ldd : 1; 1222 uint64_t psl1 : 1; 1223 uint64_t reserved_10_14 : 5; 1224 uint64_t iobdma : 1; 1225 uint64_t stf : 1; 1226 uint64_t stt : 1; 1227 uint64_t stp : 1; 1228 uint64_t stc : 1; 1229 uint64_t stfil1 : 1; 1230 uint64_t sttil1 : 1; 1231 uint64_t fas32 : 1; 1232 uint64_t fas64 : 1; 1233 uint64_t wbil2i : 1; 1234 uint64_t ltgl2i : 1; 1235 uint64_t stgl2i : 1; 1236 uint64_t reserved_27_27 : 1; 1237 uint64_t invl2 : 1; 1238 uint64_t wbil2 : 1; 1239 uint64_t wbl2 : 1; 1240 uint64_t lckl2 : 1; 1241 uint64_t iobld8 : 1; 1242 uint64_t iobld16 : 1; 1243 uint64_t iobld32 : 1; 1244 uint64_t iobld64 : 1; 1245 uint64_t iobst8 : 1; 1246 uint64_t iobst16 : 1; 1247 uint64_t iobst32 : 1; 1248 uint64_t iobst64 : 1; 1249 uint64_t set8 : 1; 1250 uint64_t set16 : 1; 1251 uint64_t set32 : 1; 1252 uint64_t set64 : 1; 1253 uint64_t clr8 : 1; 1254 uint64_t clr16 : 1; 1255 uint64_t clr32 : 1; 1256 uint64_t clr64 : 1; 1257 uint64_t incr8 : 1; 1258 uint64_t incr16 : 1; 1259 uint64_t incr32 : 1; 1260 uint64_t incr64 : 1; 1261 uint64_t decr8 : 1; 1262 uint64_t decr16 : 1; 1263 uint64_t decr32 : 1; 1264 uint64_t decr64 : 1; 1265 uint64_t reserved_56_57 : 2; 1266 uint64_t faa32 : 1; 1267 uint64_t faa64 : 1; 1268 uint64_t reserved_60_61 : 2; 1269 uint64_t saa32 : 1; 1270 uint64_t saa64 : 1; 1271#endif 1272 } cn63xx; 1273 struct cvmx_tra_filt_cmd_cn63xx cn63xxp1; 1274}; 1275typedef union cvmx_tra_filt_cmd cvmx_tra_filt_cmd_t; 1276 1277/** 1278 * cvmx_tra_filt_did 1279 * 1280 * TRA_FILT_DID = Trace Buffer Filter DestinationId Mask 1281 * 1282 * Description: 1283 */ 1284union cvmx_tra_filt_did 1285{ 1286 uint64_t u64; 1287 struct cvmx_tra_filt_did_s 1288 { 1289#if __BYTE_ORDER == __BIG_ENDIAN 1290 uint64_t reserved_13_63 : 51; 1291 uint64_t pow : 1; /**< Enable tracing of requests to POW 1292 (get work, add work, status/memory/index 1293 loads, NULLRd loads, CSR's) */ 1294 uint64_t reserved_9_11 : 3; 1295 uint64_t rng : 1; /**< Enable tracing of requests to RNG 1296 (loads/IOBDMA's are legal) */ 1297 uint64_t zip : 1; /**< Enable tracing of requests to ZIP 1298 (doorbell stores are legal) */ 1299 uint64_t dfa : 1; /**< Enable tracing of requests to DFA 1300 (CSR's and operations are legal) */ 1301 uint64_t fpa : 1; /**< Enable tracing of requests to FPA 1302 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 1303 uint64_t key : 1; /**< Enable tracing of requests to KEY memory 1304 (loads/IOBDMA's/stores are legal) */ 1305 uint64_t reserved_3_3 : 1; 1306 uint64_t illegal3 : 2; /**< Illegal destinations */ 1307 uint64_t mio : 1; /**< Enable tracing of MIO accesses 1308 (CIU and GPIO CSR's, boot bus accesses) */ 1309#else 1310 uint64_t mio : 1; 1311 uint64_t illegal3 : 2; 1312 uint64_t reserved_3_3 : 1; 1313 uint64_t key : 1; 1314 uint64_t fpa : 1; 1315 uint64_t dfa : 1; 1316 uint64_t zip : 1; 1317 uint64_t rng : 1; 1318 uint64_t reserved_9_11 : 3; 1319 uint64_t pow : 1; 1320 uint64_t reserved_13_63 : 51; 1321#endif 1322 } s; 1323 struct cvmx_tra_filt_did_cn31xx 1324 { 1325#if __BYTE_ORDER == __BIG_ENDIAN 1326 uint64_t reserved_32_63 : 32; 1327 uint64_t illegal : 19; /**< Illegal destinations */ 1328 uint64_t pow : 1; /**< Enable tracing of requests to POW 1329 (get work, add work, status/memory/index 1330 loads, NULLRd loads, CSR's) */ 1331 uint64_t illegal2 : 3; /**< Illegal destinations */ 1332 uint64_t rng : 1; /**< Enable tracing of requests to RNG 1333 (loads/IOBDMA's are legal) */ 1334 uint64_t zip : 1; /**< Enable tracing of requests to ZIP 1335 (doorbell stores are legal) */ 1336 uint64_t dfa : 1; /**< Enable tracing of requests to DFA 1337 (CSR's and operations are legal) */ 1338 uint64_t fpa : 1; /**< Enable tracing of requests to FPA 1339 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 1340 uint64_t key : 1; /**< Enable tracing of requests to KEY memory 1341 (loads/IOBDMA's/stores are legal) */ 1342 uint64_t pci : 1; /**< Enable tracing of requests to PCI and RSL-type 1343 CSR's (RSL CSR's, PCI bus operations, PCI 1344 CSR's) */ 1345 uint64_t illegal3 : 2; /**< Illegal destinations */ 1346 uint64_t mio : 1; /**< Enable tracing of CIU and GPIO CSR's */ 1347#else 1348 uint64_t mio : 1; 1349 uint64_t illegal3 : 2; 1350 uint64_t pci : 1; 1351 uint64_t key : 1; 1352 uint64_t fpa : 1; 1353 uint64_t dfa : 1; 1354 uint64_t zip : 1; 1355 uint64_t rng : 1; 1356 uint64_t illegal2 : 3; 1357 uint64_t pow : 1; 1358 uint64_t illegal : 19; 1359 uint64_t reserved_32_63 : 32; 1360#endif 1361 } cn31xx; 1362 struct cvmx_tra_filt_did_cn31xx cn38xx; 1363 struct cvmx_tra_filt_did_cn31xx cn38xxp2; 1364 struct cvmx_tra_filt_did_cn31xx cn52xx; 1365 struct cvmx_tra_filt_did_cn31xx cn52xxp1; 1366 struct cvmx_tra_filt_did_cn31xx cn56xx; 1367 struct cvmx_tra_filt_did_cn31xx cn56xxp1; 1368 struct cvmx_tra_filt_did_cn31xx cn58xx; 1369 struct cvmx_tra_filt_did_cn31xx cn58xxp1; 1370 struct cvmx_tra_filt_did_cn63xx 1371 { 1372#if __BYTE_ORDER == __BIG_ENDIAN 1373 uint64_t reserved_32_63 : 32; 1374 uint64_t illegal5 : 1; /**< Illegal destinations */ 1375 uint64_t fau : 1; /**< Enable tracing of FAU accesses */ 1376 uint64_t illegal4 : 2; /**< Illegal destinations */ 1377 uint64_t dpi : 1; /**< Enable tracing of DPI accesses 1378 (DPI NCB CSRs) */ 1379 uint64_t illegal : 12; /**< Illegal destinations */ 1380 uint64_t rad : 1; /**< Enable tracing of RAD accesses 1381 (doorbells) */ 1382 uint64_t usb0 : 1; /**< Enable tracing of USB0 accesses 1383 (UAHC0 EHCI and OHCI NCB CSRs) */ 1384 uint64_t pow : 1; /**< Enable tracing of requests to POW 1385 (get work, add work, status/memory/index 1386 loads, NULLRd loads, CSR's) */ 1387 uint64_t illegal2 : 1; /**< Illegal destination */ 1388 uint64_t pko : 1; /**< Enable tracing of PKO accesses 1389 (doorbells) */ 1390 uint64_t ipd : 1; /**< Enable tracing of IPD CSR accesses 1391 (IPD CSRs) */ 1392 uint64_t rng : 1; /**< Enable tracing of requests to RNG 1393 (loads/IOBDMA's are legal) */ 1394 uint64_t zip : 1; /**< Enable tracing of requests to ZIP 1395 (doorbell stores are legal) */ 1396 uint64_t dfa : 1; /**< Enable tracing of requests to DFA 1397 (CSR's and operations are legal) */ 1398 uint64_t fpa : 1; /**< Enable tracing of requests to FPA 1399 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 1400 uint64_t key : 1; /**< Enable tracing of requests to KEY memory 1401 (loads/IOBDMA's/stores are legal) */ 1402 uint64_t sli : 1; /**< Enable tracing of requests to SLI and RSL-type 1403 CSR's (RSL CSR's, PCI/sRIO bus operations, SLI 1404 CSR's) */ 1405 uint64_t illegal3 : 2; /**< Illegal destinations */ 1406 uint64_t mio : 1; /**< Enable tracing of MIO accesses 1407 (CIU and GPIO CSR's, boot bus accesses) */ 1408#else 1409 uint64_t mio : 1; 1410 uint64_t illegal3 : 2; 1411 uint64_t sli : 1; 1412 uint64_t key : 1; 1413 uint64_t fpa : 1; 1414 uint64_t dfa : 1; 1415 uint64_t zip : 1; 1416 uint64_t rng : 1; 1417 uint64_t ipd : 1; 1418 uint64_t pko : 1; 1419 uint64_t illegal2 : 1; 1420 uint64_t pow : 1; 1421 uint64_t usb0 : 1; 1422 uint64_t rad : 1; 1423 uint64_t illegal : 12; 1424 uint64_t dpi : 1; 1425 uint64_t illegal4 : 2; 1426 uint64_t fau : 1; 1427 uint64_t illegal5 : 1; 1428 uint64_t reserved_32_63 : 32; 1429#endif 1430 } cn63xx; 1431 struct cvmx_tra_filt_did_cn63xx cn63xxp1; 1432}; 1433typedef union cvmx_tra_filt_did cvmx_tra_filt_did_t; 1434 1435/** 1436 * cvmx_tra_filt_sid 1437 * 1438 * TRA_FILT_SID = Trace Buffer Filter SourceId Mask 1439 * 1440 * Description: 1441 */ 1442union cvmx_tra_filt_sid 1443{ 1444 uint64_t u64; 1445 struct cvmx_tra_filt_sid_s 1446 { 1447#if __BYTE_ORDER == __BIG_ENDIAN 1448 uint64_t reserved_20_63 : 44; 1449 uint64_t dwb : 1; /**< Enable tracing of requests from the IOB DWB engine */ 1450 uint64_t iobreq : 1; /**< Enable tracing of requests from FPA,TIM,DFA, 1451 PCI,ZIP,POW, and PKO (writes) */ 1452 uint64_t pko : 1; /**< Enable tracing of read requests from PKO */ 1453 uint64_t pki : 1; /**< Enable tracing of write requests from PIP/IPD */ 1454 uint64_t pp : 16; /**< Enable tracing from PP[N] with matching SourceID 1455 0=disable, 1=enableper bit N where 0<=N<=15 */ 1456#else 1457 uint64_t pp : 16; 1458 uint64_t pki : 1; 1459 uint64_t pko : 1; 1460 uint64_t iobreq : 1; 1461 uint64_t dwb : 1; 1462 uint64_t reserved_20_63 : 44; 1463#endif 1464 } s; 1465 struct cvmx_tra_filt_sid_s cn31xx; 1466 struct cvmx_tra_filt_sid_s cn38xx; 1467 struct cvmx_tra_filt_sid_s cn38xxp2; 1468 struct cvmx_tra_filt_sid_s cn52xx; 1469 struct cvmx_tra_filt_sid_s cn52xxp1; 1470 struct cvmx_tra_filt_sid_s cn56xx; 1471 struct cvmx_tra_filt_sid_s cn56xxp1; 1472 struct cvmx_tra_filt_sid_s cn58xx; 1473 struct cvmx_tra_filt_sid_s cn58xxp1; 1474 struct cvmx_tra_filt_sid_cn63xx 1475 { 1476#if __BYTE_ORDER == __BIG_ENDIAN 1477 uint64_t reserved_20_63 : 44; 1478 uint64_t dwb : 1; /**< Enable tracing of requests from the IOB DWB engine */ 1479 uint64_t iobreq : 1; /**< Enable tracing of requests from FPA,TIM,DFA, 1480 PCI,ZIP,POW, and PKO (writes) */ 1481 uint64_t pko : 1; /**< Enable tracing of read requests from PKO */ 1482 uint64_t pki : 1; /**< Enable tracing of write requests from PIP/IPD */ 1483 uint64_t reserved_8_15 : 8; 1484 uint64_t pp : 8; /**< Enable tracing from PP[N] with matching SourceID 1485 0=disable, 1=enableper bit N where 0<=N<=15 */ 1486#else 1487 uint64_t pp : 8; 1488 uint64_t reserved_8_15 : 8; 1489 uint64_t pki : 1; 1490 uint64_t pko : 1; 1491 uint64_t iobreq : 1; 1492 uint64_t dwb : 1; 1493 uint64_t reserved_20_63 : 44; 1494#endif 1495 } cn63xx; 1496 struct cvmx_tra_filt_sid_cn63xx cn63xxp1; 1497}; 1498typedef union cvmx_tra_filt_sid cvmx_tra_filt_sid_t; 1499 1500/** 1501 * cvmx_tra_int_status 1502 * 1503 * TRA_INT_STATUS = Trace Buffer Interrupt Status 1504 * 1505 * Description: 1506 * 1507 * Notes: 1508 * During a CSR write to this register, the write data is used as a mask to clear the selected status 1509 * bits (status'[3:0] = status[3:0] & ~write_data[3:0]). 1510 */ 1511union cvmx_tra_int_status 1512{ 1513 uint64_t u64; 1514 struct cvmx_tra_int_status_s 1515 { 1516#if __BYTE_ORDER == __BIG_ENDIAN 1517 uint64_t reserved_4_63 : 60; 1518 uint64_t mcd0_thr : 1; /**< MCD0 full threshold interrupt status 1519 0=trace buffer did not generate MCD0 wire pulse 1520 1=trace buffer did generate MCD0 wire pulse 1521 and prevents additional MCD0_THR MCD0 wire pulses */ 1522 uint64_t mcd0_trg : 1; /**< MCD0 end trigger interrupt status 1523 0=trace buffer did not generate interrupt 1524 1=trace buffer did generate interrupt 1525 and prevents additional MCD0_TRG MCD0 wire pulses */ 1526 uint64_t ciu_thr : 1; /**< CIU full threshold interrupt status 1527 0=trace buffer did not generate interrupt 1528 1=trace buffer did generate interrupt */ 1529 uint64_t ciu_trg : 1; /**< CIU end trigger interrupt status 1530 0=trace buffer did not generate interrupt 1531 1=trace buffer did generate interrupt */ 1532#else 1533 uint64_t ciu_trg : 1; 1534 uint64_t ciu_thr : 1; 1535 uint64_t mcd0_trg : 1; 1536 uint64_t mcd0_thr : 1; 1537 uint64_t reserved_4_63 : 60; 1538#endif 1539 } s; 1540 struct cvmx_tra_int_status_s cn31xx; 1541 struct cvmx_tra_int_status_s cn38xx; 1542 struct cvmx_tra_int_status_s cn38xxp2; 1543 struct cvmx_tra_int_status_s cn52xx; 1544 struct cvmx_tra_int_status_s cn52xxp1; 1545 struct cvmx_tra_int_status_s cn56xx; 1546 struct cvmx_tra_int_status_s cn56xxp1; 1547 struct cvmx_tra_int_status_s cn58xx; 1548 struct cvmx_tra_int_status_s cn58xxp1; 1549 struct cvmx_tra_int_status_s cn63xx; 1550 struct cvmx_tra_int_status_s cn63xxp1; 1551}; 1552typedef union cvmx_tra_int_status cvmx_tra_int_status_t; 1553 1554/** 1555 * cvmx_tra_read_dat 1556 * 1557 * TRA_READ_DAT = Trace Buffer Read Data 1558 * 1559 * Description: 1560 * 1561 * Notes: 1562 * This CSR is a memory of 1024 entries. When the trace was enabled, the read pointer was set to entry 1563 * 0 by hardware. Each read to this address increments the read pointer. 1564 */ 1565union cvmx_tra_read_dat 1566{ 1567 uint64_t u64; 1568 struct cvmx_tra_read_dat_s 1569 { 1570#if __BYTE_ORDER == __BIG_ENDIAN 1571 uint64_t data : 64; /**< Trace buffer data for current entry */ 1572#else 1573 uint64_t data : 64; 1574#endif 1575 } s; 1576 struct cvmx_tra_read_dat_s cn31xx; 1577 struct cvmx_tra_read_dat_s cn38xx; 1578 struct cvmx_tra_read_dat_s cn38xxp2; 1579 struct cvmx_tra_read_dat_s cn52xx; 1580 struct cvmx_tra_read_dat_s cn52xxp1; 1581 struct cvmx_tra_read_dat_s cn56xx; 1582 struct cvmx_tra_read_dat_s cn56xxp1; 1583 struct cvmx_tra_read_dat_s cn58xx; 1584 struct cvmx_tra_read_dat_s cn58xxp1; 1585 struct cvmx_tra_read_dat_s cn63xx; 1586 struct cvmx_tra_read_dat_s cn63xxp1; 1587}; 1588typedef union cvmx_tra_read_dat cvmx_tra_read_dat_t; 1589 1590/** 1591 * cvmx_tra_read_dat_hi 1592 * 1593 * TRA_READ_DAT_HI = Trace Buffer Read Data- upper 5 bits do not use if TRA_CTL[16]==0 1594 * 1595 * Description: 1596 * 1597 * Notes: 1598 * This CSR is a memory of 1024 entries. Reads to this address do not increment the read pointer. The 1599 * 5 bits read are the upper 5 bits of the TRA entry last read by the TRA_READ_DAT reg. 1600 */ 1601union cvmx_tra_read_dat_hi 1602{ 1603 uint64_t u64; 1604 struct cvmx_tra_read_dat_hi_s 1605 { 1606#if __BYTE_ORDER == __BIG_ENDIAN 1607 uint64_t reserved_5_63 : 59; 1608 uint64_t data : 5; /**< Trace buffer data[68:64] for current entry */ 1609#else 1610 uint64_t data : 5; 1611 uint64_t reserved_5_63 : 59; 1612#endif 1613 } s; 1614 struct cvmx_tra_read_dat_hi_s cn63xx; 1615}; 1616typedef union cvmx_tra_read_dat_hi cvmx_tra_read_dat_hi_t; 1617 1618/** 1619 * cvmx_tra_trig0_adr_adr 1620 * 1621 * TRA_TRIG0_ADR_ADR = Trace Buffer Filter Address Address 1622 * 1623 * Description: 1624 */ 1625union cvmx_tra_trig0_adr_adr 1626{ 1627 uint64_t u64; 1628 struct cvmx_tra_trig0_adr_adr_s 1629 { 1630#if __BYTE_ORDER == __BIG_ENDIAN 1631 uint64_t reserved_38_63 : 26; 1632 uint64_t adr : 38; /**< Unmasked Address 1633 The combination of TRA_TRIG0_ADR_ADR and 1634 TRA_TRIG0_ADR_MSK is a masked address to 1635 enable tracing of only those commands whose 1636 masked address matches */ 1637#else 1638 uint64_t adr : 38; 1639 uint64_t reserved_38_63 : 26; 1640#endif 1641 } s; 1642 struct cvmx_tra_trig0_adr_adr_cn31xx 1643 { 1644#if __BYTE_ORDER == __BIG_ENDIAN 1645 uint64_t reserved_36_63 : 28; 1646 uint64_t adr : 36; /**< Unmasked Address 1647 The combination of TRA_TRIG0_ADR_ADR and 1648 TRA_TRIG0_ADR_MSK is a masked address to 1649 enable tracing of only those commands whose 1650 masked address matches */ 1651#else 1652 uint64_t adr : 36; 1653 uint64_t reserved_36_63 : 28; 1654#endif 1655 } cn31xx; 1656 struct cvmx_tra_trig0_adr_adr_cn31xx cn38xx; 1657 struct cvmx_tra_trig0_adr_adr_cn31xx cn38xxp2; 1658 struct cvmx_tra_trig0_adr_adr_cn31xx cn52xx; 1659 struct cvmx_tra_trig0_adr_adr_cn31xx cn52xxp1; 1660 struct cvmx_tra_trig0_adr_adr_cn31xx cn56xx; 1661 struct cvmx_tra_trig0_adr_adr_cn31xx cn56xxp1; 1662 struct cvmx_tra_trig0_adr_adr_cn31xx cn58xx; 1663 struct cvmx_tra_trig0_adr_adr_cn31xx cn58xxp1; 1664 struct cvmx_tra_trig0_adr_adr_s cn63xx; 1665 struct cvmx_tra_trig0_adr_adr_s cn63xxp1; 1666}; 1667typedef union cvmx_tra_trig0_adr_adr cvmx_tra_trig0_adr_adr_t; 1668 1669/** 1670 * cvmx_tra_trig0_adr_msk 1671 * 1672 * TRA_TRIG0_ADR_MSK = Trace Buffer Filter Address Mask 1673 * 1674 * Description: 1675 */ 1676union cvmx_tra_trig0_adr_msk 1677{ 1678 uint64_t u64; 1679 struct cvmx_tra_trig0_adr_msk_s 1680 { 1681#if __BYTE_ORDER == __BIG_ENDIAN 1682 uint64_t reserved_38_63 : 26; 1683 uint64_t adr : 38; /**< Address Mask 1684 The combination of TRA_TRIG0_ADR_ADR and 1685 TRA_TRIG0_ADR_MSK is a masked address to 1686 enable tracing of only those commands whose 1687 masked address matches. When a mask bit is not 1688 set, the corresponding address bits are assumed 1689 to match. Also, note that IOBDMAs do not have 1690 proper addresses, so when TRA_TRIG0_CMD[IOBDMA] 1691 is set, TRA_FILT_TRIG0_MSK must be zero to 1692 guarantee that any IOBDMAs are recognized as 1693 triggers. */ 1694#else 1695 uint64_t adr : 38; 1696 uint64_t reserved_38_63 : 26; 1697#endif 1698 } s; 1699 struct cvmx_tra_trig0_adr_msk_cn31xx 1700 { 1701#if __BYTE_ORDER == __BIG_ENDIAN 1702 uint64_t reserved_36_63 : 28; 1703 uint64_t adr : 36; /**< Address Mask 1704 The combination of TRA_TRIG0_ADR_ADR and 1705 TRA_TRIG0_ADR_MSK is a masked address to 1706 enable tracing of only those commands whose 1707 masked address matches. When a mask bit is not 1708 set, the corresponding address bits are assumed 1709 to match. Also, note that IOBDMAs do not have 1710 proper addresses, so when TRA_TRIG0_CMD[IOBDMA] 1711 is set, TRA_FILT_TRIG0_MSK must be zero to 1712 guarantee that any IOBDMAs are recognized as 1713 triggers. */ 1714#else 1715 uint64_t adr : 36; 1716 uint64_t reserved_36_63 : 28; 1717#endif 1718 } cn31xx; 1719 struct cvmx_tra_trig0_adr_msk_cn31xx cn38xx; 1720 struct cvmx_tra_trig0_adr_msk_cn31xx cn38xxp2; 1721 struct cvmx_tra_trig0_adr_msk_cn31xx cn52xx; 1722 struct cvmx_tra_trig0_adr_msk_cn31xx cn52xxp1; 1723 struct cvmx_tra_trig0_adr_msk_cn31xx cn56xx; 1724 struct cvmx_tra_trig0_adr_msk_cn31xx cn56xxp1; 1725 struct cvmx_tra_trig0_adr_msk_cn31xx cn58xx; 1726 struct cvmx_tra_trig0_adr_msk_cn31xx cn58xxp1; 1727 struct cvmx_tra_trig0_adr_msk_s cn63xx; 1728 struct cvmx_tra_trig0_adr_msk_s cn63xxp1; 1729}; 1730typedef union cvmx_tra_trig0_adr_msk cvmx_tra_trig0_adr_msk_t; 1731 1732/** 1733 * cvmx_tra_trig0_cmd 1734 * 1735 * TRA_TRIG0_CMD = Trace Buffer Filter Command Mask 1736 * 1737 * Description: 1738 * 1739 * Notes: 1740 * Note that the trace buffer does not do proper IOBDMA address compares. Thus, if IOBDMA is set, then 1741 * the address compare must be disabled (i.e. TRA_TRIG0_ADR_MSK set to zero) to guarantee that IOBDMAs 1742 * are recognized as triggers. 1743 */ 1744union cvmx_tra_trig0_cmd 1745{ 1746 uint64_t u64; 1747 struct cvmx_tra_trig0_cmd_s 1748 { 1749#if __BYTE_ORDER == __BIG_ENDIAN 1750 uint64_t saa64 : 1; /**< Enable SAA64 tracing 1751 0=disable, 1=enable */ 1752 uint64_t saa32 : 1; /**< Enable SAA32 tracing 1753 0=disable, 1=enable */ 1754 uint64_t reserved_60_61 : 2; 1755 uint64_t faa64 : 1; /**< Enable FAA64 tracing 1756 0=disable, 1=enable */ 1757 uint64_t faa32 : 1; /**< Enable FAA32 tracing 1758 0=disable, 1=enable */ 1759 uint64_t reserved_56_57 : 2; 1760 uint64_t decr64 : 1; /**< Enable DECR64 tracing 1761 0=disable, 1=enable */ 1762 uint64_t decr32 : 1; /**< Enable DECR32 tracing 1763 0=disable, 1=enable */ 1764 uint64_t decr16 : 1; /**< Enable DECR16 tracing 1765 0=disable, 1=enable */ 1766 uint64_t decr8 : 1; /**< Enable DECR8 tracing 1767 0=disable, 1=enable */ 1768 uint64_t incr64 : 1; /**< Enable INCR64 tracing 1769 0=disable, 1=enable */ 1770 uint64_t incr32 : 1; /**< Enable INCR32 tracing 1771 0=disable, 1=enable */ 1772 uint64_t incr16 : 1; /**< Enable INCR16 tracing 1773 0=disable, 1=enable */ 1774 uint64_t incr8 : 1; /**< Enable INCR8 tracing 1775 0=disable, 1=enable */ 1776 uint64_t clr64 : 1; /**< Enable CLR64 tracing 1777 0=disable, 1=enable */ 1778 uint64_t clr32 : 1; /**< Enable CLR32 tracing 1779 0=disable, 1=enable */ 1780 uint64_t clr16 : 1; /**< Enable CLR16 tracing 1781 0=disable, 1=enable */ 1782 uint64_t clr8 : 1; /**< Enable CLR8 tracing 1783 0=disable, 1=enable */ 1784 uint64_t set64 : 1; /**< Enable SET64 tracing 1785 0=disable, 1=enable */ 1786 uint64_t set32 : 1; /**< Enable SET32 tracing 1787 0=disable, 1=enable */ 1788 uint64_t set16 : 1; /**< Enable SET16 tracing 1789 0=disable, 1=enable */ 1790 uint64_t set8 : 1; /**< Enable SET8 tracing 1791 0=disable, 1=enable */ 1792 uint64_t iobst64 : 1; /**< Enable IOBST64 tracing 1793 0=disable, 1=enable */ 1794 uint64_t iobst32 : 1; /**< Enable IOBST32 tracing 1795 0=disable, 1=enable */ 1796 uint64_t iobst16 : 1; /**< Enable IOBST16 tracing 1797 0=disable, 1=enable */ 1798 uint64_t iobst8 : 1; /**< Enable IOBST8 tracing 1799 0=disable, 1=enable */ 1800 uint64_t reserved_32_35 : 4; 1801 uint64_t lckl2 : 1; /**< Enable LCKL2 tracing 1802 0=disable, 1=enable */ 1803 uint64_t wbl2 : 1; /**< Enable WBL2 tracing 1804 0=disable, 1=enable */ 1805 uint64_t wbil2 : 1; /**< Enable WBIL2 tracing 1806 0=disable, 1=enable */ 1807 uint64_t invl2 : 1; /**< Enable INVL2 tracing 1808 0=disable, 1=enable */ 1809 uint64_t reserved_27_27 : 1; 1810 uint64_t stgl2i : 1; /**< Enable STGL2I tracing 1811 0=disable, 1=enable */ 1812 uint64_t ltgl2i : 1; /**< Enable LTGL2I tracing 1813 0=disable, 1=enable */ 1814 uint64_t wbil2i : 1; /**< Enable WBIL2I tracing 1815 0=disable, 1=enable */ 1816 uint64_t fas64 : 1; /**< Enable FAS64 tracing 1817 0=disable, 1=enable */ 1818 uint64_t fas32 : 1; /**< Enable FAS32 tracing 1819 0=disable, 1=enable */ 1820 uint64_t sttil1 : 1; /**< Enable STTIL1 tracing 1821 0=disable, 1=enable */ 1822 uint64_t stfil1 : 1; /**< Enable STFIL1 tracing 1823 0=disable, 1=enable */ 1824 uint64_t reserved_16_19 : 4; 1825 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 1826 0=disable, 1=enable */ 1827 uint64_t iobst : 1; /**< Enable IOBST tracing 1828 0=disable, 1=enable */ 1829 uint64_t reserved_0_13 : 14; 1830#else 1831 uint64_t reserved_0_13 : 14; 1832 uint64_t iobst : 1; 1833 uint64_t iobdma : 1; 1834 uint64_t reserved_16_19 : 4; 1835 uint64_t stfil1 : 1; 1836 uint64_t sttil1 : 1; 1837 uint64_t fas32 : 1; 1838 uint64_t fas64 : 1; 1839 uint64_t wbil2i : 1; 1840 uint64_t ltgl2i : 1; 1841 uint64_t stgl2i : 1; 1842 uint64_t reserved_27_27 : 1; 1843 uint64_t invl2 : 1; 1844 uint64_t wbil2 : 1; 1845 uint64_t wbl2 : 1; 1846 uint64_t lckl2 : 1; 1847 uint64_t reserved_32_35 : 4; 1848 uint64_t iobst8 : 1; 1849 uint64_t iobst16 : 1; 1850 uint64_t iobst32 : 1; 1851 uint64_t iobst64 : 1; 1852 uint64_t set8 : 1; 1853 uint64_t set16 : 1; 1854 uint64_t set32 : 1; 1855 uint64_t set64 : 1; 1856 uint64_t clr8 : 1; 1857 uint64_t clr16 : 1; 1858 uint64_t clr32 : 1; 1859 uint64_t clr64 : 1; 1860 uint64_t incr8 : 1; 1861 uint64_t incr16 : 1; 1862 uint64_t incr32 : 1; 1863 uint64_t incr64 : 1; 1864 uint64_t decr8 : 1; 1865 uint64_t decr16 : 1; 1866 uint64_t decr32 : 1; 1867 uint64_t decr64 : 1; 1868 uint64_t reserved_56_57 : 2; 1869 uint64_t faa32 : 1; 1870 uint64_t faa64 : 1; 1871 uint64_t reserved_60_61 : 2; 1872 uint64_t saa32 : 1; 1873 uint64_t saa64 : 1; 1874#endif 1875 } s; 1876 struct cvmx_tra_trig0_cmd_cn31xx 1877 { 1878#if __BYTE_ORDER == __BIG_ENDIAN 1879 uint64_t reserved_16_63 : 48; 1880 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 1881 0=disable, 1=enable */ 1882 uint64_t iobst : 1; /**< Enable IOBST tracing 1883 0=disable, 1=enable */ 1884 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 1885 0=disable, 1=enable */ 1886 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 1887 0=disable, 1=enable */ 1888 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 1889 0=disable, 1=enable */ 1890 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 1891 0=disable, 1=enable */ 1892 uint64_t stt : 1; /**< Enable STT tracing 1893 0=disable, 1=enable */ 1894 uint64_t stp : 1; /**< Enable STP tracing 1895 0=disable, 1=enable */ 1896 uint64_t stc : 1; /**< Enable STC tracing 1897 0=disable, 1=enable */ 1898 uint64_t stf : 1; /**< Enable STF tracing 1899 0=disable, 1=enable */ 1900 uint64_t ldt : 1; /**< Enable LDT tracing 1901 0=disable, 1=enable */ 1902 uint64_t ldi : 1; /**< Enable LDI tracing 1903 0=disable, 1=enable */ 1904 uint64_t ldd : 1; /**< Enable LDD tracing 1905 0=disable, 1=enable */ 1906 uint64_t psl1 : 1; /**< Enable PSL1 tracing 1907 0=disable, 1=enable */ 1908 uint64_t pl2 : 1; /**< Enable PL2 tracing 1909 0=disable, 1=enable */ 1910 uint64_t dwb : 1; /**< Enable DWB tracing 1911 0=disable, 1=enable */ 1912#else 1913 uint64_t dwb : 1; 1914 uint64_t pl2 : 1; 1915 uint64_t psl1 : 1; 1916 uint64_t ldd : 1; 1917 uint64_t ldi : 1; 1918 uint64_t ldt : 1; 1919 uint64_t stf : 1; 1920 uint64_t stc : 1; 1921 uint64_t stp : 1; 1922 uint64_t stt : 1; 1923 uint64_t iobld8 : 1; 1924 uint64_t iobld16 : 1; 1925 uint64_t iobld32 : 1; 1926 uint64_t iobld64 : 1; 1927 uint64_t iobst : 1; 1928 uint64_t iobdma : 1; 1929 uint64_t reserved_16_63 : 48; 1930#endif 1931 } cn31xx; 1932 struct cvmx_tra_trig0_cmd_cn31xx cn38xx; 1933 struct cvmx_tra_trig0_cmd_cn31xx cn38xxp2; 1934 struct cvmx_tra_trig0_cmd_cn52xx 1935 { 1936#if __BYTE_ORDER == __BIG_ENDIAN 1937 uint64_t reserved_17_63 : 47; 1938 uint64_t saa : 1; /**< Enable SAA tracing 1939 0=disable, 1=enable */ 1940 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 1941 0=disable, 1=enable */ 1942 uint64_t iobst : 1; /**< Enable IOBST tracing 1943 0=disable, 1=enable */ 1944 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 1945 0=disable, 1=enable */ 1946 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 1947 0=disable, 1=enable */ 1948 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 1949 0=disable, 1=enable */ 1950 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 1951 0=disable, 1=enable */ 1952 uint64_t stt : 1; /**< Enable STT tracing 1953 0=disable, 1=enable */ 1954 uint64_t stp : 1; /**< Enable STP tracing 1955 0=disable, 1=enable */ 1956 uint64_t stc : 1; /**< Enable STC tracing 1957 0=disable, 1=enable */ 1958 uint64_t stf : 1; /**< Enable STF tracing 1959 0=disable, 1=enable */ 1960 uint64_t ldt : 1; /**< Enable LDT tracing 1961 0=disable, 1=enable */ 1962 uint64_t ldi : 1; /**< Enable LDI tracing 1963 0=disable, 1=enable */ 1964 uint64_t ldd : 1; /**< Enable LDD tracing 1965 0=disable, 1=enable */ 1966 uint64_t psl1 : 1; /**< Enable PSL1 tracing 1967 0=disable, 1=enable */ 1968 uint64_t pl2 : 1; /**< Enable PL2 tracing 1969 0=disable, 1=enable */ 1970 uint64_t dwb : 1; /**< Enable DWB tracing 1971 0=disable, 1=enable */ 1972#else 1973 uint64_t dwb : 1; 1974 uint64_t pl2 : 1; 1975 uint64_t psl1 : 1; 1976 uint64_t ldd : 1; 1977 uint64_t ldi : 1; 1978 uint64_t ldt : 1; 1979 uint64_t stf : 1; 1980 uint64_t stc : 1; 1981 uint64_t stp : 1; 1982 uint64_t stt : 1; 1983 uint64_t iobld8 : 1; 1984 uint64_t iobld16 : 1; 1985 uint64_t iobld32 : 1; 1986 uint64_t iobld64 : 1; 1987 uint64_t iobst : 1; 1988 uint64_t iobdma : 1; 1989 uint64_t saa : 1; 1990 uint64_t reserved_17_63 : 47; 1991#endif 1992 } cn52xx; 1993 struct cvmx_tra_trig0_cmd_cn52xx cn52xxp1; 1994 struct cvmx_tra_trig0_cmd_cn52xx cn56xx; 1995 struct cvmx_tra_trig0_cmd_cn52xx cn56xxp1; 1996 struct cvmx_tra_trig0_cmd_cn52xx cn58xx; 1997 struct cvmx_tra_trig0_cmd_cn52xx cn58xxp1; 1998 struct cvmx_tra_trig0_cmd_cn63xx 1999 { 2000#if __BYTE_ORDER == __BIG_ENDIAN 2001 uint64_t saa64 : 1; /**< Enable SAA64 tracing 2002 0=disable, 1=enable */ 2003 uint64_t saa32 : 1; /**< Enable SAA32 tracing 2004 0=disable, 1=enable */ 2005 uint64_t reserved_60_61 : 2; 2006 uint64_t faa64 : 1; /**< Enable FAA64 tracing 2007 0=disable, 1=enable */ 2008 uint64_t faa32 : 1; /**< Enable FAA32 tracing 2009 0=disable, 1=enable */ 2010 uint64_t reserved_56_57 : 2; 2011 uint64_t decr64 : 1; /**< Enable DECR64 tracing 2012 0=disable, 1=enable */ 2013 uint64_t decr32 : 1; /**< Enable DECR32 tracing 2014 0=disable, 1=enable */ 2015 uint64_t decr16 : 1; /**< Enable DECR16 tracing 2016 0=disable, 1=enable */ 2017 uint64_t decr8 : 1; /**< Enable DECR8 tracing 2018 0=disable, 1=enable */ 2019 uint64_t incr64 : 1; /**< Enable INCR64 tracing 2020 0=disable, 1=enable */ 2021 uint64_t incr32 : 1; /**< Enable INCR32 tracing 2022 0=disable, 1=enable */ 2023 uint64_t incr16 : 1; /**< Enable INCR16 tracing 2024 0=disable, 1=enable */ 2025 uint64_t incr8 : 1; /**< Enable INCR8 tracing 2026 0=disable, 1=enable */ 2027 uint64_t clr64 : 1; /**< Enable CLR64 tracing 2028 0=disable, 1=enable */ 2029 uint64_t clr32 : 1; /**< Enable CLR32 tracing 2030 0=disable, 1=enable */ 2031 uint64_t clr16 : 1; /**< Enable CLR16 tracing 2032 0=disable, 1=enable */ 2033 uint64_t clr8 : 1; /**< Enable CLR8 tracing 2034 0=disable, 1=enable */ 2035 uint64_t set64 : 1; /**< Enable SET64 tracing 2036 0=disable, 1=enable */ 2037 uint64_t set32 : 1; /**< Enable SET32 tracing 2038 0=disable, 1=enable */ 2039 uint64_t set16 : 1; /**< Enable SET16 tracing 2040 0=disable, 1=enable */ 2041 uint64_t set8 : 1; /**< Enable SET8 tracing 2042 0=disable, 1=enable */ 2043 uint64_t iobst64 : 1; /**< Enable IOBST64 tracing 2044 0=disable, 1=enable */ 2045 uint64_t iobst32 : 1; /**< Enable IOBST32 tracing 2046 0=disable, 1=enable */ 2047 uint64_t iobst16 : 1; /**< Enable IOBST16 tracing 2048 0=disable, 1=enable */ 2049 uint64_t iobst8 : 1; /**< Enable IOBST8 tracing 2050 0=disable, 1=enable */ 2051 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 2052 0=disable, 1=enable */ 2053 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 2054 0=disable, 1=enable */ 2055 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 2056 0=disable, 1=enable */ 2057 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 2058 0=disable, 1=enable */ 2059 uint64_t lckl2 : 1; /**< Enable LCKL2 tracing 2060 0=disable, 1=enable */ 2061 uint64_t wbl2 : 1; /**< Enable WBL2 tracing 2062 0=disable, 1=enable */ 2063 uint64_t wbil2 : 1; /**< Enable WBIL2 tracing 2064 0=disable, 1=enable */ 2065 uint64_t invl2 : 1; /**< Enable INVL2 tracing 2066 0=disable, 1=enable */ 2067 uint64_t reserved_27_27 : 1; 2068 uint64_t stgl2i : 1; /**< Enable STGL2I tracing 2069 0=disable, 1=enable */ 2070 uint64_t ltgl2i : 1; /**< Enable LTGL2I tracing 2071 0=disable, 1=enable */ 2072 uint64_t wbil2i : 1; /**< Enable WBIL2I tracing 2073 0=disable, 1=enable */ 2074 uint64_t fas64 : 1; /**< Enable FAS64 tracing 2075 0=disable, 1=enable */ 2076 uint64_t fas32 : 1; /**< Enable FAS32 tracing 2077 0=disable, 1=enable */ 2078 uint64_t sttil1 : 1; /**< Enable STTIL1 tracing 2079 0=disable, 1=enable */ 2080 uint64_t stfil1 : 1; /**< Enable STFIL1 tracing 2081 0=disable, 1=enable */ 2082 uint64_t stc : 1; /**< Enable STC tracing 2083 0=disable, 1=enable */ 2084 uint64_t stp : 1; /**< Enable STP tracing 2085 0=disable, 1=enable */ 2086 uint64_t stt : 1; /**< Enable STT tracing 2087 0=disable, 1=enable */ 2088 uint64_t stf : 1; /**< Enable STF tracing 2089 0=disable, 1=enable */ 2090 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 2091 0=disable, 1=enable */ 2092 uint64_t reserved_10_14 : 5; 2093 uint64_t psl1 : 1; /**< Enable PSL1 tracing 2094 0=disable, 1=enable */ 2095 uint64_t ldd : 1; /**< Enable LDD tracing 2096 0=disable, 1=enable */ 2097 uint64_t reserved_6_7 : 2; 2098 uint64_t dwb : 1; /**< Enable DWB tracing 2099 0=disable, 1=enable */ 2100 uint64_t rpl2 : 1; /**< Enable RPL2 tracing 2101 0=disable, 1=enable */ 2102 uint64_t pl2 : 1; /**< Enable PL2 tracing 2103 0=disable, 1=enable */ 2104 uint64_t ldi : 1; /**< Enable LDI tracing 2105 0=disable, 1=enable */ 2106 uint64_t ldt : 1; /**< Enable LDT tracing 2107 0=disable, 1=enable */ 2108 uint64_t nop : 1; /**< Enable NOP tracing 2109 0=disable, 1=enable */ 2110#else 2111 uint64_t nop : 1; 2112 uint64_t ldt : 1; 2113 uint64_t ldi : 1; 2114 uint64_t pl2 : 1; 2115 uint64_t rpl2 : 1; 2116 uint64_t dwb : 1; 2117 uint64_t reserved_6_7 : 2; 2118 uint64_t ldd : 1; 2119 uint64_t psl1 : 1; 2120 uint64_t reserved_10_14 : 5; 2121 uint64_t iobdma : 1; 2122 uint64_t stf : 1; 2123 uint64_t stt : 1; 2124 uint64_t stp : 1; 2125 uint64_t stc : 1; 2126 uint64_t stfil1 : 1; 2127 uint64_t sttil1 : 1; 2128 uint64_t fas32 : 1; 2129 uint64_t fas64 : 1; 2130 uint64_t wbil2i : 1; 2131 uint64_t ltgl2i : 1; 2132 uint64_t stgl2i : 1; 2133 uint64_t reserved_27_27 : 1; 2134 uint64_t invl2 : 1; 2135 uint64_t wbil2 : 1; 2136 uint64_t wbl2 : 1; 2137 uint64_t lckl2 : 1; 2138 uint64_t iobld8 : 1; 2139 uint64_t iobld16 : 1; 2140 uint64_t iobld32 : 1; 2141 uint64_t iobld64 : 1; 2142 uint64_t iobst8 : 1; 2143 uint64_t iobst16 : 1; 2144 uint64_t iobst32 : 1; 2145 uint64_t iobst64 : 1; 2146 uint64_t set8 : 1; 2147 uint64_t set16 : 1; 2148 uint64_t set32 : 1; 2149 uint64_t set64 : 1; 2150 uint64_t clr8 : 1; 2151 uint64_t clr16 : 1; 2152 uint64_t clr32 : 1; 2153 uint64_t clr64 : 1; 2154 uint64_t incr8 : 1; 2155 uint64_t incr16 : 1; 2156 uint64_t incr32 : 1; 2157 uint64_t incr64 : 1; 2158 uint64_t decr8 : 1; 2159 uint64_t decr16 : 1; 2160 uint64_t decr32 : 1; 2161 uint64_t decr64 : 1; 2162 uint64_t reserved_56_57 : 2; 2163 uint64_t faa32 : 1; 2164 uint64_t faa64 : 1; 2165 uint64_t reserved_60_61 : 2; 2166 uint64_t saa32 : 1; 2167 uint64_t saa64 : 1; 2168#endif 2169 } cn63xx; 2170 struct cvmx_tra_trig0_cmd_cn63xx cn63xxp1; 2171}; 2172typedef union cvmx_tra_trig0_cmd cvmx_tra_trig0_cmd_t; 2173 2174/** 2175 * cvmx_tra_trig0_did 2176 * 2177 * TRA_TRIG0_DID = Trace Buffer Filter DestinationId Mask 2178 * 2179 * Description: 2180 */ 2181union cvmx_tra_trig0_did 2182{ 2183 uint64_t u64; 2184 struct cvmx_tra_trig0_did_s 2185 { 2186#if __BYTE_ORDER == __BIG_ENDIAN 2187 uint64_t reserved_13_63 : 51; 2188 uint64_t pow : 1; /**< Enable triggering on requests to POW 2189 (get work, add work, status/memory/index 2190 loads, NULLRd loads, CSR's) */ 2191 uint64_t reserved_9_11 : 3; 2192 uint64_t rng : 1; /**< Enable triggering on requests to RNG 2193 (loads/IOBDMA's are legal) */ 2194 uint64_t zip : 1; /**< Enable triggering on requests to ZIP 2195 (doorbell stores are legal) */ 2196 uint64_t dfa : 1; /**< Enable triggering on requests to DFA 2197 (CSR's and operations are legal) */ 2198 uint64_t fpa : 1; /**< Enable triggering on requests to FPA 2199 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 2200 uint64_t key : 1; /**< Enable triggering on requests to KEY memory 2201 (loads/IOBDMA's/stores are legal) */ 2202 uint64_t reserved_3_3 : 1; 2203 uint64_t illegal3 : 2; /**< Illegal destinations */ 2204 uint64_t mio : 1; /**< Enable triggering on MIO accesses 2205 (CIU and GPIO CSR's, boot bus accesses) */ 2206#else 2207 uint64_t mio : 1; 2208 uint64_t illegal3 : 2; 2209 uint64_t reserved_3_3 : 1; 2210 uint64_t key : 1; 2211 uint64_t fpa : 1; 2212 uint64_t dfa : 1; 2213 uint64_t zip : 1; 2214 uint64_t rng : 1; 2215 uint64_t reserved_9_11 : 3; 2216 uint64_t pow : 1; 2217 uint64_t reserved_13_63 : 51; 2218#endif 2219 } s; 2220 struct cvmx_tra_trig0_did_cn31xx 2221 { 2222#if __BYTE_ORDER == __BIG_ENDIAN 2223 uint64_t reserved_32_63 : 32; 2224 uint64_t illegal : 19; /**< Illegal destinations */ 2225 uint64_t pow : 1; /**< Enable triggering on requests to POW 2226 (get work, add work, status/memory/index 2227 loads, NULLRd loads, CSR's) */ 2228 uint64_t illegal2 : 3; /**< Illegal destinations */ 2229 uint64_t rng : 1; /**< Enable triggering on requests to RNG 2230 (loads/IOBDMA's are legal) */ 2231 uint64_t zip : 1; /**< Enable triggering on requests to ZIP 2232 (doorbell stores are legal) */ 2233 uint64_t dfa : 1; /**< Enable triggering on requests to DFA 2234 (CSR's and operations are legal) */ 2235 uint64_t fpa : 1; /**< Enable triggering on requests to FPA 2236 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 2237 uint64_t key : 1; /**< Enable triggering on requests to KEY memory 2238 (loads/IOBDMA's/stores are legal) */ 2239 uint64_t pci : 1; /**< Enable triggering on requests to PCI and RSL-type 2240 CSR's (RSL CSR's, PCI bus operations, PCI 2241 CSR's) */ 2242 uint64_t illegal3 : 2; /**< Illegal destinations */ 2243 uint64_t mio : 1; /**< Enable triggering on CIU and GPIO CSR's */ 2244#else 2245 uint64_t mio : 1; 2246 uint64_t illegal3 : 2; 2247 uint64_t pci : 1; 2248 uint64_t key : 1; 2249 uint64_t fpa : 1; 2250 uint64_t dfa : 1; 2251 uint64_t zip : 1; 2252 uint64_t rng : 1; 2253 uint64_t illegal2 : 3; 2254 uint64_t pow : 1; 2255 uint64_t illegal : 19; 2256 uint64_t reserved_32_63 : 32; 2257#endif 2258 } cn31xx; 2259 struct cvmx_tra_trig0_did_cn31xx cn38xx; 2260 struct cvmx_tra_trig0_did_cn31xx cn38xxp2; 2261 struct cvmx_tra_trig0_did_cn31xx cn52xx; 2262 struct cvmx_tra_trig0_did_cn31xx cn52xxp1; 2263 struct cvmx_tra_trig0_did_cn31xx cn56xx; 2264 struct cvmx_tra_trig0_did_cn31xx cn56xxp1; 2265 struct cvmx_tra_trig0_did_cn31xx cn58xx; 2266 struct cvmx_tra_trig0_did_cn31xx cn58xxp1; 2267 struct cvmx_tra_trig0_did_cn63xx 2268 { 2269#if __BYTE_ORDER == __BIG_ENDIAN 2270 uint64_t reserved_32_63 : 32; 2271 uint64_t illegal5 : 1; /**< Illegal destinations */ 2272 uint64_t fau : 1; /**< Enable triggering on FAU accesses */ 2273 uint64_t illegal4 : 2; /**< Illegal destinations */ 2274 uint64_t dpi : 1; /**< Enable triggering on DPI accesses 2275 (DPI NCB CSRs) */ 2276 uint64_t illegal : 12; /**< Illegal destinations */ 2277 uint64_t rad : 1; /**< Enable triggering on RAD accesses 2278 (doorbells) */ 2279 uint64_t usb0 : 1; /**< Enable triggering on USB0 accesses 2280 (UAHC0 EHCI and OHCI NCB CSRs) */ 2281 uint64_t pow : 1; /**< Enable triggering on requests to POW 2282 (get work, add work, status/memory/index 2283 loads, NULLRd loads, CSR's) */ 2284 uint64_t illegal2 : 1; /**< Illegal destination */ 2285 uint64_t pko : 1; /**< Enable triggering on PKO accesses 2286 (doorbells) */ 2287 uint64_t ipd : 1; /**< Enable triggering on IPD CSR accesses 2288 (IPD CSRs) */ 2289 uint64_t rng : 1; /**< Enable triggering on requests to RNG 2290 (loads/IOBDMA's are legal) */ 2291 uint64_t zip : 1; /**< Enable triggering on requests to ZIP 2292 (doorbell stores are legal) */ 2293 uint64_t dfa : 1; /**< Enable triggering on requests to DFA 2294 (CSR's and operations are legal) */ 2295 uint64_t fpa : 1; /**< Enable triggering on requests to FPA 2296 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 2297 uint64_t key : 1; /**< Enable triggering on requests to KEY memory 2298 (loads/IOBDMA's/stores are legal) */ 2299 uint64_t sli : 1; /**< Enable triggering on requests to SLI and RSL-type 2300 CSR's (RSL CSR's, PCI/sRIO bus operations, SLI 2301 CSR's) */ 2302 uint64_t illegal3 : 2; /**< Illegal destinations */ 2303 uint64_t mio : 1; /**< Enable triggering on MIO accesses 2304 (CIU and GPIO CSR's, boot bus accesses) */ 2305#else 2306 uint64_t mio : 1; 2307 uint64_t illegal3 : 2; 2308 uint64_t sli : 1; 2309 uint64_t key : 1; 2310 uint64_t fpa : 1; 2311 uint64_t dfa : 1; 2312 uint64_t zip : 1; 2313 uint64_t rng : 1; 2314 uint64_t ipd : 1; 2315 uint64_t pko : 1; 2316 uint64_t illegal2 : 1; 2317 uint64_t pow : 1; 2318 uint64_t usb0 : 1; 2319 uint64_t rad : 1; 2320 uint64_t illegal : 12; 2321 uint64_t dpi : 1; 2322 uint64_t illegal4 : 2; 2323 uint64_t fau : 1; 2324 uint64_t illegal5 : 1; 2325 uint64_t reserved_32_63 : 32; 2326#endif 2327 } cn63xx; 2328 struct cvmx_tra_trig0_did_cn63xx cn63xxp1; 2329}; 2330typedef union cvmx_tra_trig0_did cvmx_tra_trig0_did_t; 2331 2332/** 2333 * cvmx_tra_trig0_sid 2334 * 2335 * TRA_TRIG0_SID = Trace Buffer Filter SourceId Mask 2336 * 2337 * Description: 2338 */ 2339union cvmx_tra_trig0_sid 2340{ 2341 uint64_t u64; 2342 struct cvmx_tra_trig0_sid_s 2343 { 2344#if __BYTE_ORDER == __BIG_ENDIAN 2345 uint64_t reserved_20_63 : 44; 2346 uint64_t dwb : 1; /**< Enable triggering on requests from the IOB DWB engine */ 2347 uint64_t iobreq : 1; /**< Enable triggering on requests from FPA,TIM,DFA, 2348 PCI,ZIP,POW, and PKO (writes) */ 2349 uint64_t pko : 1; /**< Enable triggering on read requests from PKO */ 2350 uint64_t pki : 1; /**< Enable triggering on write requests from PIP/IPD */ 2351 uint64_t pp : 16; /**< Enable triggering from PP[N] with matching SourceID 2352 0=disable, 1=enableper bit N where 0<=N<=15 */ 2353#else 2354 uint64_t pp : 16; 2355 uint64_t pki : 1; 2356 uint64_t pko : 1; 2357 uint64_t iobreq : 1; 2358 uint64_t dwb : 1; 2359 uint64_t reserved_20_63 : 44; 2360#endif 2361 } s; 2362 struct cvmx_tra_trig0_sid_s cn31xx; 2363 struct cvmx_tra_trig0_sid_s cn38xx; 2364 struct cvmx_tra_trig0_sid_s cn38xxp2; 2365 struct cvmx_tra_trig0_sid_s cn52xx; 2366 struct cvmx_tra_trig0_sid_s cn52xxp1; 2367 struct cvmx_tra_trig0_sid_s cn56xx; 2368 struct cvmx_tra_trig0_sid_s cn56xxp1; 2369 struct cvmx_tra_trig0_sid_s cn58xx; 2370 struct cvmx_tra_trig0_sid_s cn58xxp1; 2371 struct cvmx_tra_trig0_sid_cn63xx 2372 { 2373#if __BYTE_ORDER == __BIG_ENDIAN 2374 uint64_t reserved_20_63 : 44; 2375 uint64_t dwb : 1; /**< Enable triggering on requests from the IOB DWB engine */ 2376 uint64_t iobreq : 1; /**< Enable triggering on requests from FPA,TIM,DFA, 2377 PCI,ZIP,POW, and PKO (writes) */ 2378 uint64_t pko : 1; /**< Enable triggering on read requests from PKO */ 2379 uint64_t pki : 1; /**< Enable triggering on write requests from PIP/IPD */ 2380 uint64_t reserved_8_15 : 8; 2381 uint64_t pp : 8; /**< Enable triggering from PP[N] with matching SourceID 2382 0=disable, 1=enableper bit N where 0<=N<=15 */ 2383#else 2384 uint64_t pp : 8; 2385 uint64_t reserved_8_15 : 8; 2386 uint64_t pki : 1; 2387 uint64_t pko : 1; 2388 uint64_t iobreq : 1; 2389 uint64_t dwb : 1; 2390 uint64_t reserved_20_63 : 44; 2391#endif 2392 } cn63xx; 2393 struct cvmx_tra_trig0_sid_cn63xx cn63xxp1; 2394}; 2395typedef union cvmx_tra_trig0_sid cvmx_tra_trig0_sid_t; 2396 2397/** 2398 * cvmx_tra_trig1_adr_adr 2399 * 2400 * TRA_TRIG1_ADR_ADR = Trace Buffer Filter Address Address 2401 * 2402 * Description: 2403 */ 2404union cvmx_tra_trig1_adr_adr 2405{ 2406 uint64_t u64; 2407 struct cvmx_tra_trig1_adr_adr_s 2408 { 2409#if __BYTE_ORDER == __BIG_ENDIAN 2410 uint64_t reserved_38_63 : 26; 2411 uint64_t adr : 38; /**< Unmasked Address 2412 The combination of TRA_TRIG1_ADR_ADR and 2413 TRA_TRIG1_ADR_MSK is a masked address to 2414 enable tracing of only those commands whose 2415 masked address matches */ 2416#else 2417 uint64_t adr : 38; 2418 uint64_t reserved_38_63 : 26; 2419#endif 2420 } s; 2421 struct cvmx_tra_trig1_adr_adr_cn31xx 2422 { 2423#if __BYTE_ORDER == __BIG_ENDIAN 2424 uint64_t reserved_36_63 : 28; 2425 uint64_t adr : 36; /**< Unmasked Address 2426 The combination of TRA_TRIG1_ADR_ADR and 2427 TRA_TRIG1_ADR_MSK is a masked address to 2428 enable tracing of only those commands whose 2429 masked address matches */ 2430#else 2431 uint64_t adr : 36; 2432 uint64_t reserved_36_63 : 28; 2433#endif 2434 } cn31xx; 2435 struct cvmx_tra_trig1_adr_adr_cn31xx cn38xx; 2436 struct cvmx_tra_trig1_adr_adr_cn31xx cn38xxp2; 2437 struct cvmx_tra_trig1_adr_adr_cn31xx cn52xx; 2438 struct cvmx_tra_trig1_adr_adr_cn31xx cn52xxp1; 2439 struct cvmx_tra_trig1_adr_adr_cn31xx cn56xx; 2440 struct cvmx_tra_trig1_adr_adr_cn31xx cn56xxp1; 2441 struct cvmx_tra_trig1_adr_adr_cn31xx cn58xx; 2442 struct cvmx_tra_trig1_adr_adr_cn31xx cn58xxp1; 2443 struct cvmx_tra_trig1_adr_adr_s cn63xx; 2444 struct cvmx_tra_trig1_adr_adr_s cn63xxp1; 2445}; 2446typedef union cvmx_tra_trig1_adr_adr cvmx_tra_trig1_adr_adr_t; 2447 2448/** 2449 * cvmx_tra_trig1_adr_msk 2450 * 2451 * TRA_TRIG1_ADR_MSK = Trace Buffer Filter Address Mask 2452 * 2453 * Description: 2454 */ 2455union cvmx_tra_trig1_adr_msk 2456{ 2457 uint64_t u64; 2458 struct cvmx_tra_trig1_adr_msk_s 2459 { 2460#if __BYTE_ORDER == __BIG_ENDIAN 2461 uint64_t reserved_38_63 : 26; 2462 uint64_t adr : 38; /**< Address Mask 2463 The combination of TRA_TRIG1_ADR_ADR and 2464 TRA_TRIG1_ADR_MSK is a masked address to 2465 enable tracing of only those commands whose 2466 masked address matches. When a mask bit is not 2467 set, the corresponding address bits are assumed 2468 to match. Also, note that IOBDMAs do not have 2469 proper addresses, so when TRA_TRIG1_CMD[IOBDMA] 2470 is set, TRA_FILT_TRIG1_MSK must be zero to 2471 guarantee that any IOBDMAs are recognized as 2472 triggers. */ 2473#else 2474 uint64_t adr : 38; 2475 uint64_t reserved_38_63 : 26; 2476#endif 2477 } s; 2478 struct cvmx_tra_trig1_adr_msk_cn31xx 2479 { 2480#if __BYTE_ORDER == __BIG_ENDIAN 2481 uint64_t reserved_36_63 : 28; 2482 uint64_t adr : 36; /**< Address Mask 2483 The combination of TRA_TRIG1_ADR_ADR and 2484 TRA_TRIG1_ADR_MSK is a masked address to 2485 enable tracing of only those commands whose 2486 masked address matches. When a mask bit is not 2487 set, the corresponding address bits are assumed 2488 to match. Also, note that IOBDMAs do not have 2489 proper addresses, so when TRA_TRIG1_CMD[IOBDMA] 2490 is set, TRA_FILT_TRIG1_MSK must be zero to 2491 guarantee that any IOBDMAs are recognized as 2492 triggers. */ 2493#else 2494 uint64_t adr : 36; 2495 uint64_t reserved_36_63 : 28; 2496#endif 2497 } cn31xx; 2498 struct cvmx_tra_trig1_adr_msk_cn31xx cn38xx; 2499 struct cvmx_tra_trig1_adr_msk_cn31xx cn38xxp2; 2500 struct cvmx_tra_trig1_adr_msk_cn31xx cn52xx; 2501 struct cvmx_tra_trig1_adr_msk_cn31xx cn52xxp1; 2502 struct cvmx_tra_trig1_adr_msk_cn31xx cn56xx; 2503 struct cvmx_tra_trig1_adr_msk_cn31xx cn56xxp1; 2504 struct cvmx_tra_trig1_adr_msk_cn31xx cn58xx; 2505 struct cvmx_tra_trig1_adr_msk_cn31xx cn58xxp1; 2506 struct cvmx_tra_trig1_adr_msk_s cn63xx; 2507 struct cvmx_tra_trig1_adr_msk_s cn63xxp1; 2508}; 2509typedef union cvmx_tra_trig1_adr_msk cvmx_tra_trig1_adr_msk_t; 2510 2511/** 2512 * cvmx_tra_trig1_cmd 2513 * 2514 * TRA_TRIG1_CMD = Trace Buffer Filter Command Mask 2515 * 2516 * Description: 2517 * 2518 * Notes: 2519 * Note that the trace buffer does not do proper IOBDMA address compares. Thus, if IOBDMA is set, then 2520 * the address compare must be disabled (i.e. TRA_TRIG1_ADR_MSK set to zero) to guarantee that IOBDMAs 2521 * are recognized as triggers. 2522 */ 2523union cvmx_tra_trig1_cmd 2524{ 2525 uint64_t u64; 2526 struct cvmx_tra_trig1_cmd_s 2527 { 2528#if __BYTE_ORDER == __BIG_ENDIAN 2529 uint64_t saa64 : 1; /**< Enable SAA64 tracing 2530 0=disable, 1=enable */ 2531 uint64_t saa32 : 1; /**< Enable SAA32 tracing 2532 0=disable, 1=enable */ 2533 uint64_t reserved_60_61 : 2; 2534 uint64_t faa64 : 1; /**< Enable FAA64 tracing 2535 0=disable, 1=enable */ 2536 uint64_t faa32 : 1; /**< Enable FAA32 tracing 2537 0=disable, 1=enable */ 2538 uint64_t reserved_56_57 : 2; 2539 uint64_t decr64 : 1; /**< Enable DECR64 tracing 2540 0=disable, 1=enable */ 2541 uint64_t decr32 : 1; /**< Enable DECR32 tracing 2542 0=disable, 1=enable */ 2543 uint64_t decr16 : 1; /**< Enable DECR16 tracing 2544 0=disable, 1=enable */ 2545 uint64_t decr8 : 1; /**< Enable DECR8 tracing 2546 0=disable, 1=enable */ 2547 uint64_t incr64 : 1; /**< Enable INCR64 tracing 2548 0=disable, 1=enable */ 2549 uint64_t incr32 : 1; /**< Enable INCR32 tracing 2550 0=disable, 1=enable */ 2551 uint64_t incr16 : 1; /**< Enable INCR16 tracing 2552 0=disable, 1=enable */ 2553 uint64_t incr8 : 1; /**< Enable INCR8 tracing 2554 0=disable, 1=enable */ 2555 uint64_t clr64 : 1; /**< Enable CLR64 tracing 2556 0=disable, 1=enable */ 2557 uint64_t clr32 : 1; /**< Enable CLR32 tracing 2558 0=disable, 1=enable */ 2559 uint64_t clr16 : 1; /**< Enable CLR16 tracing 2560 0=disable, 1=enable */ 2561 uint64_t clr8 : 1; /**< Enable CLR8 tracing 2562 0=disable, 1=enable */ 2563 uint64_t set64 : 1; /**< Enable SET64 tracing 2564 0=disable, 1=enable */ 2565 uint64_t set32 : 1; /**< Enable SET32 tracing 2566 0=disable, 1=enable */ 2567 uint64_t set16 : 1; /**< Enable SET16 tracing 2568 0=disable, 1=enable */ 2569 uint64_t set8 : 1; /**< Enable SET8 tracing 2570 0=disable, 1=enable */ 2571 uint64_t iobst64 : 1; /**< Enable IOBST64 tracing 2572 0=disable, 1=enable */ 2573 uint64_t iobst32 : 1; /**< Enable IOBST32 tracing 2574 0=disable, 1=enable */ 2575 uint64_t iobst16 : 1; /**< Enable IOBST16 tracing 2576 0=disable, 1=enable */ 2577 uint64_t iobst8 : 1; /**< Enable IOBST8 tracing 2578 0=disable, 1=enable */ 2579 uint64_t reserved_32_35 : 4; 2580 uint64_t lckl2 : 1; /**< Enable LCKL2 tracing 2581 0=disable, 1=enable */ 2582 uint64_t wbl2 : 1; /**< Enable WBL2 tracing 2583 0=disable, 1=enable */ 2584 uint64_t wbil2 : 1; /**< Enable WBIL2 tracing 2585 0=disable, 1=enable */ 2586 uint64_t invl2 : 1; /**< Enable INVL2 tracing 2587 0=disable, 1=enable */ 2588 uint64_t reserved_27_27 : 1; 2589 uint64_t stgl2i : 1; /**< Enable STGL2I tracing 2590 0=disable, 1=enable */ 2591 uint64_t ltgl2i : 1; /**< Enable LTGL2I tracing 2592 0=disable, 1=enable */ 2593 uint64_t wbil2i : 1; /**< Enable WBIL2I tracing 2594 0=disable, 1=enable */ 2595 uint64_t fas64 : 1; /**< Enable FAS64 tracing 2596 0=disable, 1=enable */ 2597 uint64_t fas32 : 1; /**< Enable FAS32 tracing 2598 0=disable, 1=enable */ 2599 uint64_t sttil1 : 1; /**< Enable STTIL1 tracing 2600 0=disable, 1=enable */ 2601 uint64_t stfil1 : 1; /**< Enable STFIL1 tracing 2602 0=disable, 1=enable */ 2603 uint64_t reserved_16_19 : 4; 2604 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 2605 0=disable, 1=enable */ 2606 uint64_t iobst : 1; /**< Enable IOBST tracing 2607 0=disable, 1=enable */ 2608 uint64_t reserved_0_13 : 14; 2609#else 2610 uint64_t reserved_0_13 : 14; 2611 uint64_t iobst : 1; 2612 uint64_t iobdma : 1; 2613 uint64_t reserved_16_19 : 4; 2614 uint64_t stfil1 : 1; 2615 uint64_t sttil1 : 1; 2616 uint64_t fas32 : 1; 2617 uint64_t fas64 : 1; 2618 uint64_t wbil2i : 1; 2619 uint64_t ltgl2i : 1; 2620 uint64_t stgl2i : 1; 2621 uint64_t reserved_27_27 : 1; 2622 uint64_t invl2 : 1; 2623 uint64_t wbil2 : 1; 2624 uint64_t wbl2 : 1; 2625 uint64_t lckl2 : 1; 2626 uint64_t reserved_32_35 : 4; 2627 uint64_t iobst8 : 1; 2628 uint64_t iobst16 : 1; 2629 uint64_t iobst32 : 1; 2630 uint64_t iobst64 : 1; 2631 uint64_t set8 : 1; 2632 uint64_t set16 : 1; 2633 uint64_t set32 : 1; 2634 uint64_t set64 : 1; 2635 uint64_t clr8 : 1; 2636 uint64_t clr16 : 1; 2637 uint64_t clr32 : 1; 2638 uint64_t clr64 : 1; 2639 uint64_t incr8 : 1; 2640 uint64_t incr16 : 1; 2641 uint64_t incr32 : 1; 2642 uint64_t incr64 : 1; 2643 uint64_t decr8 : 1; 2644 uint64_t decr16 : 1; 2645 uint64_t decr32 : 1; 2646 uint64_t decr64 : 1; 2647 uint64_t reserved_56_57 : 2; 2648 uint64_t faa32 : 1; 2649 uint64_t faa64 : 1; 2650 uint64_t reserved_60_61 : 2; 2651 uint64_t saa32 : 1; 2652 uint64_t saa64 : 1; 2653#endif 2654 } s; 2655 struct cvmx_tra_trig1_cmd_cn31xx 2656 { 2657#if __BYTE_ORDER == __BIG_ENDIAN 2658 uint64_t reserved_16_63 : 48; 2659 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 2660 0=disable, 1=enable */ 2661 uint64_t iobst : 1; /**< Enable IOBST tracing 2662 0=disable, 1=enable */ 2663 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 2664 0=disable, 1=enable */ 2665 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 2666 0=disable, 1=enable */ 2667 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 2668 0=disable, 1=enable */ 2669 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 2670 0=disable, 1=enable */ 2671 uint64_t stt : 1; /**< Enable STT tracing 2672 0=disable, 1=enable */ 2673 uint64_t stp : 1; /**< Enable STP tracing 2674 0=disable, 1=enable */ 2675 uint64_t stc : 1; /**< Enable STC tracing 2676 0=disable, 1=enable */ 2677 uint64_t stf : 1; /**< Enable STF tracing 2678 0=disable, 1=enable */ 2679 uint64_t ldt : 1; /**< Enable LDT tracing 2680 0=disable, 1=enable */ 2681 uint64_t ldi : 1; /**< Enable LDI tracing 2682 0=disable, 1=enable */ 2683 uint64_t ldd : 1; /**< Enable LDD tracing 2684 0=disable, 1=enable */ 2685 uint64_t psl1 : 1; /**< Enable PSL1 tracing 2686 0=disable, 1=enable */ 2687 uint64_t pl2 : 1; /**< Enable PL2 tracing 2688 0=disable, 1=enable */ 2689 uint64_t dwb : 1; /**< Enable DWB tracing 2690 0=disable, 1=enable */ 2691#else 2692 uint64_t dwb : 1; 2693 uint64_t pl2 : 1; 2694 uint64_t psl1 : 1; 2695 uint64_t ldd : 1; 2696 uint64_t ldi : 1; 2697 uint64_t ldt : 1; 2698 uint64_t stf : 1; 2699 uint64_t stc : 1; 2700 uint64_t stp : 1; 2701 uint64_t stt : 1; 2702 uint64_t iobld8 : 1; 2703 uint64_t iobld16 : 1; 2704 uint64_t iobld32 : 1; 2705 uint64_t iobld64 : 1; 2706 uint64_t iobst : 1; 2707 uint64_t iobdma : 1; 2708 uint64_t reserved_16_63 : 48; 2709#endif 2710 } cn31xx; 2711 struct cvmx_tra_trig1_cmd_cn31xx cn38xx; 2712 struct cvmx_tra_trig1_cmd_cn31xx cn38xxp2; 2713 struct cvmx_tra_trig1_cmd_cn52xx 2714 { 2715#if __BYTE_ORDER == __BIG_ENDIAN 2716 uint64_t reserved_17_63 : 47; 2717 uint64_t saa : 1; /**< Enable SAA tracing 2718 0=disable, 1=enable */ 2719 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 2720 0=disable, 1=enable */ 2721 uint64_t iobst : 1; /**< Enable IOBST tracing 2722 0=disable, 1=enable */ 2723 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 2724 0=disable, 1=enable */ 2725 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 2726 0=disable, 1=enable */ 2727 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 2728 0=disable, 1=enable */ 2729 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 2730 0=disable, 1=enable */ 2731 uint64_t stt : 1; /**< Enable STT tracing 2732 0=disable, 1=enable */ 2733 uint64_t stp : 1; /**< Enable STP tracing 2734 0=disable, 1=enable */ 2735 uint64_t stc : 1; /**< Enable STC tracing 2736 0=disable, 1=enable */ 2737 uint64_t stf : 1; /**< Enable STF tracing 2738 0=disable, 1=enable */ 2739 uint64_t ldt : 1; /**< Enable LDT tracing 2740 0=disable, 1=enable */ 2741 uint64_t ldi : 1; /**< Enable LDI tracing 2742 0=disable, 1=enable */ 2743 uint64_t ldd : 1; /**< Enable LDD tracing 2744 0=disable, 1=enable */ 2745 uint64_t psl1 : 1; /**< Enable PSL1 tracing 2746 0=disable, 1=enable */ 2747 uint64_t pl2 : 1; /**< Enable PL2 tracing 2748 0=disable, 1=enable */ 2749 uint64_t dwb : 1; /**< Enable DWB tracing 2750 0=disable, 1=enable */ 2751#else 2752 uint64_t dwb : 1; 2753 uint64_t pl2 : 1; 2754 uint64_t psl1 : 1; 2755 uint64_t ldd : 1; 2756 uint64_t ldi : 1; 2757 uint64_t ldt : 1; 2758 uint64_t stf : 1; 2759 uint64_t stc : 1; 2760 uint64_t stp : 1; 2761 uint64_t stt : 1; 2762 uint64_t iobld8 : 1; 2763 uint64_t iobld16 : 1; 2764 uint64_t iobld32 : 1; 2765 uint64_t iobld64 : 1; 2766 uint64_t iobst : 1; 2767 uint64_t iobdma : 1; 2768 uint64_t saa : 1; 2769 uint64_t reserved_17_63 : 47; 2770#endif 2771 } cn52xx; 2772 struct cvmx_tra_trig1_cmd_cn52xx cn52xxp1; 2773 struct cvmx_tra_trig1_cmd_cn52xx cn56xx; 2774 struct cvmx_tra_trig1_cmd_cn52xx cn56xxp1; 2775 struct cvmx_tra_trig1_cmd_cn52xx cn58xx; 2776 struct cvmx_tra_trig1_cmd_cn52xx cn58xxp1; 2777 struct cvmx_tra_trig1_cmd_cn63xx 2778 { 2779#if __BYTE_ORDER == __BIG_ENDIAN 2780 uint64_t saa64 : 1; /**< Enable SAA64 tracing 2781 0=disable, 1=enable */ 2782 uint64_t saa32 : 1; /**< Enable SAA32 tracing 2783 0=disable, 1=enable */ 2784 uint64_t reserved_60_61 : 2; 2785 uint64_t faa64 : 1; /**< Enable FAA64 tracing 2786 0=disable, 1=enable */ 2787 uint64_t faa32 : 1; /**< Enable FAA32 tracing 2788 0=disable, 1=enable */ 2789 uint64_t reserved_56_57 : 2; 2790 uint64_t decr64 : 1; /**< Enable DECR64 tracing 2791 0=disable, 1=enable */ 2792 uint64_t decr32 : 1; /**< Enable DECR32 tracing 2793 0=disable, 1=enable */ 2794 uint64_t decr16 : 1; /**< Enable DECR16 tracing 2795 0=disable, 1=enable */ 2796 uint64_t decr8 : 1; /**< Enable DECR8 tracing 2797 0=disable, 1=enable */ 2798 uint64_t incr64 : 1; /**< Enable INCR64 tracing 2799 0=disable, 1=enable */ 2800 uint64_t incr32 : 1; /**< Enable INCR32 tracing 2801 0=disable, 1=enable */ 2802 uint64_t incr16 : 1; /**< Enable INCR16 tracing 2803 0=disable, 1=enable */ 2804 uint64_t incr8 : 1; /**< Enable INCR8 tracing 2805 0=disable, 1=enable */ 2806 uint64_t clr64 : 1; /**< Enable CLR64 tracing 2807 0=disable, 1=enable */ 2808 uint64_t clr32 : 1; /**< Enable CLR32 tracing 2809 0=disable, 1=enable */ 2810 uint64_t clr16 : 1; /**< Enable CLR16 tracing 2811 0=disable, 1=enable */ 2812 uint64_t clr8 : 1; /**< Enable CLR8 tracing 2813 0=disable, 1=enable */ 2814 uint64_t set64 : 1; /**< Enable SET64 tracing 2815 0=disable, 1=enable */ 2816 uint64_t set32 : 1; /**< Enable SET32 tracing 2817 0=disable, 1=enable */ 2818 uint64_t set16 : 1; /**< Enable SET16 tracing 2819 0=disable, 1=enable */ 2820 uint64_t set8 : 1; /**< Enable SET8 tracing 2821 0=disable, 1=enable */ 2822 uint64_t iobst64 : 1; /**< Enable IOBST64 tracing 2823 0=disable, 1=enable */ 2824 uint64_t iobst32 : 1; /**< Enable IOBST32 tracing 2825 0=disable, 1=enable */ 2826 uint64_t iobst16 : 1; /**< Enable IOBST16 tracing 2827 0=disable, 1=enable */ 2828 uint64_t iobst8 : 1; /**< Enable IOBST8 tracing 2829 0=disable, 1=enable */ 2830 uint64_t iobld64 : 1; /**< Enable IOBLD64 tracing 2831 0=disable, 1=enable */ 2832 uint64_t iobld32 : 1; /**< Enable IOBLD32 tracing 2833 0=disable, 1=enable */ 2834 uint64_t iobld16 : 1; /**< Enable IOBLD16 tracing 2835 0=disable, 1=enable */ 2836 uint64_t iobld8 : 1; /**< Enable IOBLD8 tracing 2837 0=disable, 1=enable */ 2838 uint64_t lckl2 : 1; /**< Enable LCKL2 tracing 2839 0=disable, 1=enable */ 2840 uint64_t wbl2 : 1; /**< Enable WBL2 tracing 2841 0=disable, 1=enable */ 2842 uint64_t wbil2 : 1; /**< Enable WBIL2 tracing 2843 0=disable, 1=enable */ 2844 uint64_t invl2 : 1; /**< Enable INVL2 tracing 2845 0=disable, 1=enable */ 2846 uint64_t reserved_27_27 : 1; 2847 uint64_t stgl2i : 1; /**< Enable STGL2I tracing 2848 0=disable, 1=enable */ 2849 uint64_t ltgl2i : 1; /**< Enable LTGL2I tracing 2850 0=disable, 1=enable */ 2851 uint64_t wbil2i : 1; /**< Enable WBIL2I tracing 2852 0=disable, 1=enable */ 2853 uint64_t fas64 : 1; /**< Enable FAS64 tracing 2854 0=disable, 1=enable */ 2855 uint64_t fas32 : 1; /**< Enable FAS32 tracing 2856 0=disable, 1=enable */ 2857 uint64_t sttil1 : 1; /**< Enable STTIL1 tracing 2858 0=disable, 1=enable */ 2859 uint64_t stfil1 : 1; /**< Enable STFIL1 tracing 2860 0=disable, 1=enable */ 2861 uint64_t stc : 1; /**< Enable STC tracing 2862 0=disable, 1=enable */ 2863 uint64_t stp : 1; /**< Enable STP tracing 2864 0=disable, 1=enable */ 2865 uint64_t stt : 1; /**< Enable STT tracing 2866 0=disable, 1=enable */ 2867 uint64_t stf : 1; /**< Enable STF tracing 2868 0=disable, 1=enable */ 2869 uint64_t iobdma : 1; /**< Enable IOBDMA tracing 2870 0=disable, 1=enable */ 2871 uint64_t reserved_10_14 : 5; 2872 uint64_t psl1 : 1; /**< Enable PSL1 tracing 2873 0=disable, 1=enable */ 2874 uint64_t ldd : 1; /**< Enable LDD tracing 2875 0=disable, 1=enable */ 2876 uint64_t reserved_6_7 : 2; 2877 uint64_t dwb : 1; /**< Enable DWB tracing 2878 0=disable, 1=enable */ 2879 uint64_t rpl2 : 1; /**< Enable RPL2 tracing 2880 0=disable, 1=enable */ 2881 uint64_t pl2 : 1; /**< Enable PL2 tracing 2882 0=disable, 1=enable */ 2883 uint64_t ldi : 1; /**< Enable LDI tracing 2884 0=disable, 1=enable */ 2885 uint64_t ldt : 1; /**< Enable LDT tracing 2886 0=disable, 1=enable */ 2887 uint64_t nop : 1; /**< Enable NOP tracing 2888 0=disable, 1=enable */ 2889#else 2890 uint64_t nop : 1; 2891 uint64_t ldt : 1; 2892 uint64_t ldi : 1; 2893 uint64_t pl2 : 1; 2894 uint64_t rpl2 : 1; 2895 uint64_t dwb : 1; 2896 uint64_t reserved_6_7 : 2; 2897 uint64_t ldd : 1; 2898 uint64_t psl1 : 1; 2899 uint64_t reserved_10_14 : 5; 2900 uint64_t iobdma : 1; 2901 uint64_t stf : 1; 2902 uint64_t stt : 1; 2903 uint64_t stp : 1; 2904 uint64_t stc : 1; 2905 uint64_t stfil1 : 1; 2906 uint64_t sttil1 : 1; 2907 uint64_t fas32 : 1; 2908 uint64_t fas64 : 1; 2909 uint64_t wbil2i : 1; 2910 uint64_t ltgl2i : 1; 2911 uint64_t stgl2i : 1; 2912 uint64_t reserved_27_27 : 1; 2913 uint64_t invl2 : 1; 2914 uint64_t wbil2 : 1; 2915 uint64_t wbl2 : 1; 2916 uint64_t lckl2 : 1; 2917 uint64_t iobld8 : 1; 2918 uint64_t iobld16 : 1; 2919 uint64_t iobld32 : 1; 2920 uint64_t iobld64 : 1; 2921 uint64_t iobst8 : 1; 2922 uint64_t iobst16 : 1; 2923 uint64_t iobst32 : 1; 2924 uint64_t iobst64 : 1; 2925 uint64_t set8 : 1; 2926 uint64_t set16 : 1; 2927 uint64_t set32 : 1; 2928 uint64_t set64 : 1; 2929 uint64_t clr8 : 1; 2930 uint64_t clr16 : 1; 2931 uint64_t clr32 : 1; 2932 uint64_t clr64 : 1; 2933 uint64_t incr8 : 1; 2934 uint64_t incr16 : 1; 2935 uint64_t incr32 : 1; 2936 uint64_t incr64 : 1; 2937 uint64_t decr8 : 1; 2938 uint64_t decr16 : 1; 2939 uint64_t decr32 : 1; 2940 uint64_t decr64 : 1; 2941 uint64_t reserved_56_57 : 2; 2942 uint64_t faa32 : 1; 2943 uint64_t faa64 : 1; 2944 uint64_t reserved_60_61 : 2; 2945 uint64_t saa32 : 1; 2946 uint64_t saa64 : 1; 2947#endif 2948 } cn63xx; 2949 struct cvmx_tra_trig1_cmd_cn63xx cn63xxp1; 2950}; 2951typedef union cvmx_tra_trig1_cmd cvmx_tra_trig1_cmd_t; 2952 2953/** 2954 * cvmx_tra_trig1_did 2955 * 2956 * TRA_TRIG1_DID = Trace Buffer Filter DestinationId Mask 2957 * 2958 * Description: 2959 */ 2960union cvmx_tra_trig1_did 2961{ 2962 uint64_t u64; 2963 struct cvmx_tra_trig1_did_s 2964 { 2965#if __BYTE_ORDER == __BIG_ENDIAN 2966 uint64_t reserved_13_63 : 51; 2967 uint64_t pow : 1; /**< Enable triggering on requests to POW 2968 (get work, add work, status/memory/index 2969 loads, NULLRd loads, CSR's) */ 2970 uint64_t reserved_9_11 : 3; 2971 uint64_t rng : 1; /**< Enable triggering on requests to RNG 2972 (loads/IOBDMA's are legal) */ 2973 uint64_t zip : 1; /**< Enable triggering on requests to ZIP 2974 (doorbell stores are legal) */ 2975 uint64_t dfa : 1; /**< Enable triggering on requests to DFA 2976 (CSR's and operations are legal) */ 2977 uint64_t fpa : 1; /**< Enable triggering on requests to FPA 2978 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 2979 uint64_t key : 1; /**< Enable triggering on requests to KEY memory 2980 (loads/IOBDMA's/stores are legal) */ 2981 uint64_t reserved_3_3 : 1; 2982 uint64_t illegal3 : 2; /**< Illegal destinations */ 2983 uint64_t mio : 1; /**< Enable triggering on MIO accesses 2984 (CIU and GPIO CSR's, boot bus accesses) */ 2985#else 2986 uint64_t mio : 1; 2987 uint64_t illegal3 : 2; 2988 uint64_t reserved_3_3 : 1; 2989 uint64_t key : 1; 2990 uint64_t fpa : 1; 2991 uint64_t dfa : 1; 2992 uint64_t zip : 1; 2993 uint64_t rng : 1; 2994 uint64_t reserved_9_11 : 3; 2995 uint64_t pow : 1; 2996 uint64_t reserved_13_63 : 51; 2997#endif 2998 } s; 2999 struct cvmx_tra_trig1_did_cn31xx 3000 { 3001#if __BYTE_ORDER == __BIG_ENDIAN 3002 uint64_t reserved_32_63 : 32; 3003 uint64_t illegal : 19; /**< Illegal destinations */ 3004 uint64_t pow : 1; /**< Enable triggering on requests to POW 3005 (get work, add work, status/memory/index 3006 loads, NULLRd loads, CSR's) */ 3007 uint64_t illegal2 : 3; /**< Illegal destinations */ 3008 uint64_t rng : 1; /**< Enable triggering on requests to RNG 3009 (loads/IOBDMA's are legal) */ 3010 uint64_t zip : 1; /**< Enable triggering on requests to ZIP 3011 (doorbell stores are legal) */ 3012 uint64_t dfa : 1; /**< Enable triggering on requests to DFA 3013 (CSR's and operations are legal) */ 3014 uint64_t fpa : 1; /**< Enable triggering on requests to FPA 3015 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 3016 uint64_t key : 1; /**< Enable triggering on requests to KEY memory 3017 (loads/IOBDMA's/stores are legal) */ 3018 uint64_t pci : 1; /**< Enable triggering on requests to PCI and RSL-type 3019 CSR's (RSL CSR's, PCI bus operations, PCI 3020 CSR's) */ 3021 uint64_t illegal3 : 2; /**< Illegal destinations */ 3022 uint64_t mio : 1; /**< Enable triggering on CIU and GPIO CSR's */ 3023#else 3024 uint64_t mio : 1; 3025 uint64_t illegal3 : 2; 3026 uint64_t pci : 1; 3027 uint64_t key : 1; 3028 uint64_t fpa : 1; 3029 uint64_t dfa : 1; 3030 uint64_t zip : 1; 3031 uint64_t rng : 1; 3032 uint64_t illegal2 : 3; 3033 uint64_t pow : 1; 3034 uint64_t illegal : 19; 3035 uint64_t reserved_32_63 : 32; 3036#endif 3037 } cn31xx; 3038 struct cvmx_tra_trig1_did_cn31xx cn38xx; 3039 struct cvmx_tra_trig1_did_cn31xx cn38xxp2; 3040 struct cvmx_tra_trig1_did_cn31xx cn52xx; 3041 struct cvmx_tra_trig1_did_cn31xx cn52xxp1; 3042 struct cvmx_tra_trig1_did_cn31xx cn56xx; 3043 struct cvmx_tra_trig1_did_cn31xx cn56xxp1; 3044 struct cvmx_tra_trig1_did_cn31xx cn58xx; 3045 struct cvmx_tra_trig1_did_cn31xx cn58xxp1; 3046 struct cvmx_tra_trig1_did_cn63xx 3047 { 3048#if __BYTE_ORDER == __BIG_ENDIAN 3049 uint64_t reserved_32_63 : 32; 3050 uint64_t illegal5 : 1; /**< Illegal destinations */ 3051 uint64_t fau : 1; /**< Enable triggering on FAU accesses */ 3052 uint64_t illegal4 : 2; /**< Illegal destinations */ 3053 uint64_t dpi : 1; /**< Enable triggering on DPI accesses 3054 (DPI NCB CSRs) */ 3055 uint64_t illegal : 12; /**< Illegal destinations */ 3056 uint64_t rad : 1; /**< Enable triggering on RAD accesses 3057 (doorbells) */ 3058 uint64_t usb0 : 1; /**< Enable triggering on USB0 accesses 3059 (UAHC0 EHCI and OHCI NCB CSRs) */ 3060 uint64_t pow : 1; /**< Enable triggering on requests to POW 3061 (get work, add work, status/memory/index 3062 loads, NULLRd loads, CSR's) */ 3063 uint64_t illegal2 : 1; /**< Illegal destination */ 3064 uint64_t pko : 1; /**< Enable triggering on PKO accesses 3065 (doorbells) */ 3066 uint64_t ipd : 1; /**< Enable triggering on IPD CSR accesses 3067 (IPD CSRs) */ 3068 uint64_t rng : 1; /**< Enable triggering on requests to RNG 3069 (loads/IOBDMA's are legal) */ 3070 uint64_t zip : 1; /**< Enable triggering on requests to ZIP 3071 (doorbell stores are legal) */ 3072 uint64_t dfa : 1; /**< Enable triggering on requests to DFA 3073 (CSR's and operations are legal) */ 3074 uint64_t fpa : 1; /**< Enable triggering on requests to FPA 3075 (alloc's (loads/IOBDMA's), frees (stores) are legal) */ 3076 uint64_t key : 1; /**< Enable triggering on requests to KEY memory 3077 (loads/IOBDMA's/stores are legal) */ 3078 uint64_t sli : 1; /**< Enable triggering on requests to SLI and RSL-type 3079 CSR's (RSL CSR's, PCI/sRIO bus operations, SLI 3080 CSR's) */ 3081 uint64_t illegal3 : 2; /**< Illegal destinations */ 3082 uint64_t mio : 1; /**< Enable triggering on MIO accesses 3083 (CIU and GPIO CSR's, boot bus accesses) */ 3084#else 3085 uint64_t mio : 1; 3086 uint64_t illegal3 : 2; 3087 uint64_t sli : 1; 3088 uint64_t key : 1; 3089 uint64_t fpa : 1; 3090 uint64_t dfa : 1; 3091 uint64_t zip : 1; 3092 uint64_t rng : 1; 3093 uint64_t ipd : 1; 3094 uint64_t pko : 1; 3095 uint64_t illegal2 : 1; 3096 uint64_t pow : 1; 3097 uint64_t usb0 : 1; 3098 uint64_t rad : 1; 3099 uint64_t illegal : 12; 3100 uint64_t dpi : 1; 3101 uint64_t illegal4 : 2; 3102 uint64_t fau : 1; 3103 uint64_t illegal5 : 1; 3104 uint64_t reserved_32_63 : 32; 3105#endif 3106 } cn63xx; 3107 struct cvmx_tra_trig1_did_cn63xx cn63xxp1; 3108}; 3109typedef union cvmx_tra_trig1_did cvmx_tra_trig1_did_t; 3110 3111/** 3112 * cvmx_tra_trig1_sid 3113 * 3114 * TRA_TRIG1_SID = Trace Buffer Filter SourceId Mask 3115 * 3116 * Description: 3117 */ 3118union cvmx_tra_trig1_sid 3119{ 3120 uint64_t u64; 3121 struct cvmx_tra_trig1_sid_s 3122 { 3123#if __BYTE_ORDER == __BIG_ENDIAN 3124 uint64_t reserved_20_63 : 44; 3125 uint64_t dwb : 1; /**< Enable triggering on requests from the IOB DWB engine */ 3126 uint64_t iobreq : 1; /**< Enable triggering on requests from FPA,TIM,DFA, 3127 PCI,ZIP,POW, and PKO (writes) */ 3128 uint64_t pko : 1; /**< Enable triggering on read requests from PKO */ 3129 uint64_t pki : 1; /**< Enable triggering on write requests from PIP/IPD */ 3130 uint64_t pp : 16; /**< Enable trigering from PP[N] with matching SourceID 3131 0=disable, 1=enableper bit N where 0<=N<=15 */ 3132#else 3133 uint64_t pp : 16; 3134 uint64_t pki : 1; 3135 uint64_t pko : 1; 3136 uint64_t iobreq : 1; 3137 uint64_t dwb : 1; 3138 uint64_t reserved_20_63 : 44; 3139#endif 3140 } s; 3141 struct cvmx_tra_trig1_sid_s cn31xx; 3142 struct cvmx_tra_trig1_sid_s cn38xx; 3143 struct cvmx_tra_trig1_sid_s cn38xxp2; 3144 struct cvmx_tra_trig1_sid_s cn52xx; 3145 struct cvmx_tra_trig1_sid_s cn52xxp1; 3146 struct cvmx_tra_trig1_sid_s cn56xx; 3147 struct cvmx_tra_trig1_sid_s cn56xxp1; 3148 struct cvmx_tra_trig1_sid_s cn58xx; 3149 struct cvmx_tra_trig1_sid_s cn58xxp1; 3150 struct cvmx_tra_trig1_sid_cn63xx 3151 { 3152#if __BYTE_ORDER == __BIG_ENDIAN 3153 uint64_t reserved_20_63 : 44; 3154 uint64_t dwb : 1; /**< Enable triggering on requests from the IOB DWB engine */ 3155 uint64_t iobreq : 1; /**< Enable triggering on requests from FPA,TIM,DFA, 3156 PCI,ZIP,POW, and PKO (writes) */ 3157 uint64_t pko : 1; /**< Enable triggering on read requests from PKO */ 3158 uint64_t pki : 1; /**< Enable triggering on write requests from PIP/IPD */ 3159 uint64_t reserved_8_15 : 8; 3160 uint64_t pp : 8; /**< Enable trigering from PP[N] with matching SourceID 3161 0=disable, 1=enableper bit N where 0<=N<=15 */ 3162#else 3163 uint64_t pp : 8; 3164 uint64_t reserved_8_15 : 8; 3165 uint64_t pki : 1; 3166 uint64_t pko : 1; 3167 uint64_t iobreq : 1; 3168 uint64_t dwb : 1; 3169 uint64_t reserved_20_63 : 44; 3170#endif 3171 } cn63xx; 3172 struct cvmx_tra_trig1_sid_cn63xx cn63xxp1; 3173}; 3174typedef union cvmx_tra_trig1_sid cvmx_tra_trig1_sid_t; 3175 3176#endif 3177