1*11e25f0dSDavid C Somayajulu /* 2*11e25f0dSDavid C Somayajulu * Copyright (c) 2017-2018 Cavium, Inc. 3*11e25f0dSDavid C Somayajulu * All rights reserved. 4*11e25f0dSDavid C Somayajulu * 5*11e25f0dSDavid C Somayajulu * Redistribution and use in source and binary forms, with or without 6*11e25f0dSDavid C Somayajulu * modification, are permitted provided that the following conditions 7*11e25f0dSDavid C Somayajulu * are met: 8*11e25f0dSDavid C Somayajulu * 9*11e25f0dSDavid C Somayajulu * 1. Redistributions of source code must retain the above copyright 10*11e25f0dSDavid C Somayajulu * notice, this list of conditions and the following disclaimer. 11*11e25f0dSDavid C Somayajulu * 2. Redistributions in binary form must reproduce the above copyright 12*11e25f0dSDavid C Somayajulu * notice, this list of conditions and the following disclaimer in the 13*11e25f0dSDavid C Somayajulu * documentation and/or other materials provided with the distribution. 14*11e25f0dSDavid C Somayajulu * 15*11e25f0dSDavid C Somayajulu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 16*11e25f0dSDavid C Somayajulu * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17*11e25f0dSDavid C Somayajulu * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18*11e25f0dSDavid C Somayajulu * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 19*11e25f0dSDavid C Somayajulu * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20*11e25f0dSDavid C Somayajulu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21*11e25f0dSDavid C Somayajulu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22*11e25f0dSDavid C Somayajulu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23*11e25f0dSDavid C Somayajulu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24*11e25f0dSDavid C Somayajulu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25*11e25f0dSDavid C Somayajulu * POSSIBILITY OF SUCH DAMAGE. 26*11e25f0dSDavid C Somayajulu * 27*11e25f0dSDavid C Somayajulu */ 28*11e25f0dSDavid C Somayajulu 29*11e25f0dSDavid C Somayajulu /**************************************************************************** 30*11e25f0dSDavid C Somayajulu * 31*11e25f0dSDavid C Somayajulu * Name: mfw_hsi.h 32*11e25f0dSDavid C Somayajulu * 33*11e25f0dSDavid C Somayajulu * Description: Global definitions 34*11e25f0dSDavid C Somayajulu * 35*11e25f0dSDavid C Somayajulu ****************************************************************************/ 36*11e25f0dSDavid C Somayajulu 37*11e25f0dSDavid C Somayajulu #ifndef MFW_HSI_H 38*11e25f0dSDavid C Somayajulu #define MFW_HSI_H 39*11e25f0dSDavid C Somayajulu 40*11e25f0dSDavid C Somayajulu #define MFW_TRACE_SIGNATURE 0x25071946 41*11e25f0dSDavid C Somayajulu 42*11e25f0dSDavid C Somayajulu /* The trace in the buffer */ 43*11e25f0dSDavid C Somayajulu #define MFW_TRACE_EVENTID_MASK 0x00ffff 44*11e25f0dSDavid C Somayajulu #define MFW_TRACE_PRM_SIZE_MASK 0x0f0000 45*11e25f0dSDavid C Somayajulu #define MFW_TRACE_PRM_SIZE_SHIFT 16 46*11e25f0dSDavid C Somayajulu #define MFW_TRACE_ENTRY_SIZE 3 47*11e25f0dSDavid C Somayajulu 48*11e25f0dSDavid C Somayajulu struct mcp_trace { 49*11e25f0dSDavid C Somayajulu u32 signature; /* Help to identify that the trace is valid */ 50*11e25f0dSDavid C Somayajulu u32 size; /* the size of the trace buffer in bytes*/ 51*11e25f0dSDavid C Somayajulu u32 curr_level; /* 2 - all will be written to the buffer 52*11e25f0dSDavid C Somayajulu * 1 - debug trace will not be written 53*11e25f0dSDavid C Somayajulu * 0 - just errors will be written to the buffer 54*11e25f0dSDavid C Somayajulu */ 55*11e25f0dSDavid C Somayajulu u32 modules_mask[2];/* a bit per module, 1 means write it, 0 means mask it */ 56*11e25f0dSDavid C Somayajulu 57*11e25f0dSDavid C Somayajulu /* Warning: the following pointers are assumed to be 32bits as they are used only in the MFW */ 58*11e25f0dSDavid C Somayajulu u32 trace_prod; /* The next trace will be written to this offset */ 59*11e25f0dSDavid C Somayajulu u32 trace_oldest; /* The oldest valid trace starts at this offset (usually very close after the current producer) */ 60*11e25f0dSDavid C Somayajulu }; 61*11e25f0dSDavid C Somayajulu 62*11e25f0dSDavid C Somayajulu #endif /* MFW_HSI_H */ 63