blob: c01f72ba92d07de2268e4f089f7dfd2046dec7d1 [file] [log] [blame]
/********************************************************************************
* Marvell GPL License Option
*
* If you received this File from Marvell, you may opt to use, redistribute and/or
* modify this File in accordance with the terms and conditions of the General
* Public License Version 2, June 1991 (the "GPL License"), a copy of which is
* available along with the File in the license.txt file or by writing to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
* on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
* DISCLAIMED. The GPL License provides additional details about this warranty
* disclaimer.
******************************************************************************/
#ifndef performance_counter_h
#define performance_counter_h
#define w32Perc_Config0 { \
UNSG32 uConfig_pc_event_sel0 : 6; \
UNSG32 rsvd0 : 1; \
UNSG32 uConfig_pc_reg_en0 : 1; \
UNSG32 uConfig_pc_event_sel1 : 6; \
UNSG32 rsvd1 : 1; \
UNSG32 uConfig_pc_reg_en1 : 1; \
UNSG32 uConfig_pc_event_sel2 : 6; \
UNSG32 rsvd2 : 1; \
UNSG32 uConfig_pc_reg_en2 : 1; \
UNSG32 uConfig_pc_event_sel3 : 6; \
UNSG32 rsvd3 : 1; \
UNSG32 uConfig_pc_reg_en3 : 1; \
}
#define w32Perc_Config1 { \
UNSG32 uConfig_pc_event_sel4 : 6; \
UNSG32 rsvd0 : 1; \
UNSG32 uConfig_pc_reg_en4 : 1; \
UNSG32 uConfig_pc_event_sel5 : 6; \
UNSG32 rsvd1 : 1; \
UNSG32 uConfig_pc_reg_en5 : 1; \
UNSG32 uConfig_pc_event_sel6 : 6; \
UNSG32 rsvd2 : 1; \
UNSG32 uConfig_pc_reg_en6 : 1; \
UNSG32 uConfig_pc_event_sel7 : 6; \
UNSG32 rsvd3 : 1; \
UNSG32 uConfig_pc_reg_en7 : 1; \
}
#define w32Perc_Status { \
UNSG32 uStatus_pc_overflow0 : 1; \
UNSG32 uStatus_pc_overflow1 : 1; \
UNSG32 uStatus_pc_overflow2 : 1; \
UNSG32 uStatus_pc_overflow3 : 1; \
UNSG32 uStatus_pc_overflow4 : 1; \
UNSG32 uStatus_pc_overflow5 : 1; \
UNSG32 uStatus_pc_overflow6 : 1; \
UNSG32 uStatus_pc_overflow7 : 1; \
UNSG32 rsvd0 : 24; \
}
#define w32Perc_Control { \
UNSG32 uControl_pc_start_cond : 1; \
UNSG32 rsvd0 : 3; \
UNSG32 uControl_pc_stop_cond : 1; \
UNSG32 rsvd1 : 11; \
UNSG32 uControl_pc_clk_div : 3; \
UNSG32 rsvd2 : 13; \
}
typedef union T32Perc_Config
{ UNSG32 u32[2];
struct {
struct w32Perc_Config0;
struct w32Perc_Config1;
};
} T32Perc_Config;
typedef union
{ UNSG32 u32;
struct w32Perc_Config;
} ;
typedef union T32Perc_Status
{ UNSG32 u32;
struct w32Perc_Status;
} T32Perc_Status;
typedef union T32Perc_Control
{ UNSG32 u32;
struct w32Perc_Control;
} T32Perc_Control;
/*
Port0: CPU
Port1: vppDhub
Port2: agDhub + vipDhub | AVIF
Port3: GC4K[gfx3dM0]
Port4: PxBar
##Ethernet1
##gmac
##USB3 && USB2
##ZSP
##SDIO0, SDIO1, SDIO2
##pBridge(NAND Flash)
##USB0, ##USB1
## TSP
##drmDmx
##Smart Card
## CI
## PCIE
## Sata
Port5: GC420 [gfx2D]
Port6: VMeta
Port7: GC4K[gfx3D] M1
*/
#define w32port_Priority_Control { \
UNSG32 priority_p0 : 2; \
UNSG32 priority_p1 : 2; \
UNSG32 priority_p2 : 2; \
UNSG32 priority_p3 : 2; \
UNSG32 priority_p4 : 2; \
UNSG32 priority_p5 : 2; \
UNSG32 priority_p6 : 2; \
UNSG32 priority_p7 : 2; \
UNSG32 rsvd1 : 8; \
UNSG32 port_priority_en : 8; \
}
typedef union T32port_Priority_Control
{ UNSG32 u32;
struct w32port_Priority_Control;
} T32port_Priority_Control;
#endif