blob: 294c51ff0054ad0ee3054fabc3fb42168afe310f [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.
******************************************************************************/
//////
/// don't edit! auto-generated by docc: pcie.h
////////////////////////////////////////////////////////////
#ifndef pcie_h
#define pcie_h (){}
#include "ctypes.h"
#pragma pack(1)
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _DOCC_H_BITOPS_
#define _DOCC_H_BITOPS_ (){}
#define _bSETMASK_(b) ((b)<32 ? (1<<((b)&31)) : 0)
#define _NSETMASK_(msb,lsb) (_bSETMASK_((msb)+1)-_bSETMASK_(lsb))
#define _bCLRMASK_(b) (~_bSETMASK_(b))
#define _NCLRMASK_(msb,lsb) (~_NSETMASK_(msb,lsb))
#define _BFGET_(r,msb,lsb) (_NSETMASK_((msb)-(lsb),0)&((r)>>(lsb)))
#define _BFSET_(r,msb,lsb,v) do{ (r)&=_NCLRMASK_(msb,lsb); (r)|=_NSETMASK_(msb,lsb)&((v)<<(lsb)); }while(0)
#endif
//////
///
/// $INTERFACE oneReg (4,4)
/// ###
/// * To create SRAM-like interface creating one 32-bit register (Hier:1)
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (R-)
/// %unsigned 32 0x00000000
/// ###
/// * One Register in an external IP block (i.e., PEX)
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_oneReg
#define h_oneReg (){}
#define BA_oneReg_0x00000000 0x0000
#define B16oneReg_0x00000000 0x0000
#define LSb32oneReg_0x00000000 0
#define LSb16oneReg_0x00000000 0
#define boneReg_0x00000000 32
#define MSK32oneReg_0x00000000 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_oneReg {
///////////////////////////////////////////////////////////
#define GET32oneReg_0x00000000(r32) _BFGET_(r32,31, 0)
#define SET32oneReg_0x00000000(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_0x00000000 : 32;
///////////////////////////////////////////////////////////
} SIE_oneReg;
///////////////////////////////////////////////////////////
SIGN32 oneReg_drvrd(SIE_oneReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 oneReg_drvwr(SIE_oneReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void oneReg_reset(SIE_oneReg *p);
SIGN32 oneReg_cmp (SIE_oneReg *p, SIE_oneReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define oneReg_check(p,pie,pfx,hLOG) oneReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define oneReg_print(p, pfx,hLOG) oneReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: oneReg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE IP_REGSP_0 (4,4)
/// ###
/// * To create SRAM-like interface for PCI-E 3 IP Register access – Creating 32KB address space (Hier:2)
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 dummy
/// $oneReg dummy REG [8192]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 32768B, bits: 262144b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_IP_REGSP_0
#define h_IP_REGSP_0 (){}
#define RA_IP_REGSP_0_dummy 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_IP_REGSP_0 {
///////////////////////////////////////////////////////////
SIE_oneReg ie_dummy[8192];
///////////////////////////////////////////////////////////
} SIE_IP_REGSP_0;
///////////////////////////////////////////////////////////
SIGN32 IP_REGSP_0_drvrd(SIE_IP_REGSP_0 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 IP_REGSP_0_drvwr(SIE_IP_REGSP_0 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void IP_REGSP_0_reset(SIE_IP_REGSP_0 *p);
SIGN32 IP_REGSP_0_cmp (SIE_IP_REGSP_0 *p, SIE_IP_REGSP_0 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define IP_REGSP_0_check(p,pie,pfx,hLOG) IP_REGSP_0_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define IP_REGSP_0_print(p, pfx,hLOG) IP_REGSP_0_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: IP_REGSP_0
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE IP_REGSP_1 (4,4)
/// ###
/// * To create SRAM-like interface for PCI-E 3 IP Register access – creating 4KB address space. (Hier:2)
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 dummy
/// $oneReg dummy REG [2048]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8192B, bits: 65536b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_IP_REGSP_1
#define h_IP_REGSP_1 (){}
#define RA_IP_REGSP_1_dummy 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_IP_REGSP_1 {
///////////////////////////////////////////////////////////
SIE_oneReg ie_dummy[2048];
///////////////////////////////////////////////////////////
} SIE_IP_REGSP_1;
///////////////////////////////////////////////////////////
SIGN32 IP_REGSP_1_drvrd(SIE_IP_REGSP_1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 IP_REGSP_1_drvwr(SIE_IP_REGSP_1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void IP_REGSP_1_reset(SIE_IP_REGSP_1 *p);
SIGN32 IP_REGSP_1_cmp (SIE_IP_REGSP_1 *p, SIE_IP_REGSP_1 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define IP_REGSP_1_check(p,pie,pfx,hLOG) IP_REGSP_1_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define IP_REGSP_1_print(p, pfx,hLOG) IP_REGSP_1_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: IP_REGSP_1
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE REFCLK (4,4)
/// ###
/// * PCI-E reference clock buffer control register. This buffer can act in both RX and TX mode.
/// * In RX mode: This buffer takes in 100 Mhz differential clock and generates the single ended 100 Mhz Clock for PCI-E PHY
/// * In TX mode: This buffer receives the single ended 100 Mhz clock from PHY and sends out the differential 100 Mhz clock to Pad
/// * Note: Since the same registers are duplicated for all the 3 PCIE cores. Only the PCIE0 BIU registers are used to control the REFCLK.
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 CTRL (P-)
/// %unsigned 2 PHY_SEL_FOR_RX_EN_PU_CTRL 0x0
/// ###
/// * Selects which PHY should control the PU and RX_EN for reference clock buffer when operating in RX mode
/// * 00 : Phy 0 (PCIE0)
/// * 01 : Phy 1 (PCIE0)
/// * 10 : Phy 2 (PCIE1)
/// * 11 : Phy 3 (PCIE2)
/// ###
/// %unsigned 1 SW_CTRL_RX_EN_PU 0x0
/// ###
/// * Software controls the PU and RX_EN for reference clock buffer when operating in RX mode
/// * 0 : PHY controls the RX_EN and PU
/// * 1: SW controls the RX_EN and PU
/// ###
/// %unsigned 1 PU 0x0
/// ###
/// * 0: Power down for minimum power consumption
/// * 1: Power UP
/// * Note: If PU = 0 , REFCLK_OUT_RX = 0 and REFCLK_OUT_RX_DIG = 0
/// * Must be set to 0 if there are no input clocks
/// ###
/// %unsigned 1 SEL_EXT 0x1
/// ###
/// * 1: Use external 50Ohm termination
/// * 0: Use internal 50Ohm termination.
/// ###
/// %unsigned 3 SEL_AMP 0x3
/// ###
/// * 111: 0.933V
/// * 110: 0.866V
/// * 101: 0.800V
/// * 100: 0.733V
/// * 011: 0.700V
/// * 010: 0.666V
/// * 001: 0.600V
/// * 000: 0.533V
/// * Default use 0.7V
/// * This choose the output amplitude of the PCIE Reference Clock Buffer
/// * Note: If in RX mode only, don't care.
/// ###
/// %unsigned 2 SEL_REG_LVL 0x1
/// ###
/// * PHY Reserved
/// ###
/// %unsigned 1 RX_EN 0x0
/// ###
/// * 1: Enable RX. The block will act as a receiver and sends clock to PHY.
/// * 0: Disable RX.
/// * Note:
/// * 1) Must be set to 0 if the are no input clocks
/// * If RX_EN = 0: then REFCLK_OUT_RX = 0 and REFCLK_OUT_RX_DIG = 0
/// * 2) After PU = 1 for 12µs, then only set RX_EN = 1.
/// * 3) To turn off RX glitch-lessly, set RX = 0 while maintaining PU = 1 for at least 5 falling edges
/// ###
/// %unsigned 1 TX_EN 0x0
/// ###
/// * 1: Enable TX. The block will act as a transmitter and sends clock out.
/// * 0: Disable TX.
/// ###
/// %unsigned 3 TEST_ANA 0x0
/// ###
/// * * Analog Test Point:
/// * 001: LV regulator output: 0.9V
/// * 010: Regulator reference: 0.55V
/// * 011: Driver reference: 0.525V
/// * 100: AVDD18 1.8V
/// * 101: AVSS 0V
/// * 110: PD18_RX
/// * 111: PD18_TX
/// ###
/// %% 17 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 15b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_REFCLK
#define h_REFCLK (){}
#define RA_REFCLK_CTRL 0x0000
#define BA_REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL 0x0000
#define B16REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL 0x0000
#define LSb32REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL 0
#define LSb16REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL 0
#define bREFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL 2
#define MSK32REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL 0x00000003
#define BA_REFCLK_CTRL_SW_CTRL_RX_EN_PU 0x0000
#define B16REFCLK_CTRL_SW_CTRL_RX_EN_PU 0x0000
#define LSb32REFCLK_CTRL_SW_CTRL_RX_EN_PU 2
#define LSb16REFCLK_CTRL_SW_CTRL_RX_EN_PU 2
#define bREFCLK_CTRL_SW_CTRL_RX_EN_PU 1
#define MSK32REFCLK_CTRL_SW_CTRL_RX_EN_PU 0x00000004
#define BA_REFCLK_CTRL_PU 0x0000
#define B16REFCLK_CTRL_PU 0x0000
#define LSb32REFCLK_CTRL_PU 3
#define LSb16REFCLK_CTRL_PU 3
#define bREFCLK_CTRL_PU 1
#define MSK32REFCLK_CTRL_PU 0x00000008
#define BA_REFCLK_CTRL_SEL_EXT 0x0000
#define B16REFCLK_CTRL_SEL_EXT 0x0000
#define LSb32REFCLK_CTRL_SEL_EXT 4
#define LSb16REFCLK_CTRL_SEL_EXT 4
#define bREFCLK_CTRL_SEL_EXT 1
#define MSK32REFCLK_CTRL_SEL_EXT 0x00000010
#define BA_REFCLK_CTRL_SEL_AMP 0x0000
#define B16REFCLK_CTRL_SEL_AMP 0x0000
#define LSb32REFCLK_CTRL_SEL_AMP 5
#define LSb16REFCLK_CTRL_SEL_AMP 5
#define bREFCLK_CTRL_SEL_AMP 3
#define MSK32REFCLK_CTRL_SEL_AMP 0x000000E0
#define BA_REFCLK_CTRL_SEL_REG_LVL 0x0001
#define B16REFCLK_CTRL_SEL_REG_LVL 0x0000
#define LSb32REFCLK_CTRL_SEL_REG_LVL 8
#define LSb16REFCLK_CTRL_SEL_REG_LVL 8
#define bREFCLK_CTRL_SEL_REG_LVL 2
#define MSK32REFCLK_CTRL_SEL_REG_LVL 0x00000300
#define BA_REFCLK_CTRL_RX_EN 0x0001
#define B16REFCLK_CTRL_RX_EN 0x0000
#define LSb32REFCLK_CTRL_RX_EN 10
#define LSb16REFCLK_CTRL_RX_EN 10
#define bREFCLK_CTRL_RX_EN 1
#define MSK32REFCLK_CTRL_RX_EN 0x00000400
#define BA_REFCLK_CTRL_TX_EN 0x0001
#define B16REFCLK_CTRL_TX_EN 0x0000
#define LSb32REFCLK_CTRL_TX_EN 11
#define LSb16REFCLK_CTRL_TX_EN 11
#define bREFCLK_CTRL_TX_EN 1
#define MSK32REFCLK_CTRL_TX_EN 0x00000800
#define BA_REFCLK_CTRL_TEST_ANA 0x0001
#define B16REFCLK_CTRL_TEST_ANA 0x0000
#define LSb32REFCLK_CTRL_TEST_ANA 12
#define LSb16REFCLK_CTRL_TEST_ANA 12
#define bREFCLK_CTRL_TEST_ANA 3
#define MSK32REFCLK_CTRL_TEST_ANA 0x00007000
///////////////////////////////////////////////////////////
typedef struct SIE_REFCLK {
///////////////////////////////////////////////////////////
#define GET32REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL(r32) _BFGET_(r32, 1, 0)
#define SET32REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL(r16) _BFGET_(r16, 1, 0)
#define SET16REFCLK_CTRL_PHY_SEL_FOR_RX_EN_PU_CTRL(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32REFCLK_CTRL_SW_CTRL_RX_EN_PU(r32) _BFGET_(r32, 2, 2)
#define SET32REFCLK_CTRL_SW_CTRL_RX_EN_PU(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16REFCLK_CTRL_SW_CTRL_RX_EN_PU(r16) _BFGET_(r16, 2, 2)
#define SET16REFCLK_CTRL_SW_CTRL_RX_EN_PU(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32REFCLK_CTRL_PU(r32) _BFGET_(r32, 3, 3)
#define SET32REFCLK_CTRL_PU(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16REFCLK_CTRL_PU(r16) _BFGET_(r16, 3, 3)
#define SET16REFCLK_CTRL_PU(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32REFCLK_CTRL_SEL_EXT(r32) _BFGET_(r32, 4, 4)
#define SET32REFCLK_CTRL_SEL_EXT(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16REFCLK_CTRL_SEL_EXT(r16) _BFGET_(r16, 4, 4)
#define SET16REFCLK_CTRL_SEL_EXT(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32REFCLK_CTRL_SEL_AMP(r32) _BFGET_(r32, 7, 5)
#define SET32REFCLK_CTRL_SEL_AMP(r32,v) _BFSET_(r32, 7, 5,v)
#define GET16REFCLK_CTRL_SEL_AMP(r16) _BFGET_(r16, 7, 5)
#define SET16REFCLK_CTRL_SEL_AMP(r16,v) _BFSET_(r16, 7, 5,v)
#define GET32REFCLK_CTRL_SEL_REG_LVL(r32) _BFGET_(r32, 9, 8)
#define SET32REFCLK_CTRL_SEL_REG_LVL(r32,v) _BFSET_(r32, 9, 8,v)
#define GET16REFCLK_CTRL_SEL_REG_LVL(r16) _BFGET_(r16, 9, 8)
#define SET16REFCLK_CTRL_SEL_REG_LVL(r16,v) _BFSET_(r16, 9, 8,v)
#define GET32REFCLK_CTRL_RX_EN(r32) _BFGET_(r32,10,10)
#define SET32REFCLK_CTRL_RX_EN(r32,v) _BFSET_(r32,10,10,v)
#define GET16REFCLK_CTRL_RX_EN(r16) _BFGET_(r16,10,10)
#define SET16REFCLK_CTRL_RX_EN(r16,v) _BFSET_(r16,10,10,v)
#define GET32REFCLK_CTRL_TX_EN(r32) _BFGET_(r32,11,11)
#define SET32REFCLK_CTRL_TX_EN(r32,v) _BFSET_(r32,11,11,v)
#define GET16REFCLK_CTRL_TX_EN(r16) _BFGET_(r16,11,11)
#define SET16REFCLK_CTRL_TX_EN(r16,v) _BFSET_(r16,11,11,v)
#define GET32REFCLK_CTRL_TEST_ANA(r32) _BFGET_(r32,14,12)
#define SET32REFCLK_CTRL_TEST_ANA(r32,v) _BFSET_(r32,14,12,v)
#define GET16REFCLK_CTRL_TEST_ANA(r16) _BFGET_(r16,14,12)
#define SET16REFCLK_CTRL_TEST_ANA(r16,v) _BFSET_(r16,14,12,v)
#define w32REFCLK_CTRL {\
UNSG32 uCTRL_PHY_SEL_FOR_RX_EN_PU_CTRL : 2;\
UNSG32 uCTRL_SW_CTRL_RX_EN_PU : 1;\
UNSG32 uCTRL_PU : 1;\
UNSG32 uCTRL_SEL_EXT : 1;\
UNSG32 uCTRL_SEL_AMP : 3;\
UNSG32 uCTRL_SEL_REG_LVL : 2;\
UNSG32 uCTRL_RX_EN : 1;\
UNSG32 uCTRL_TX_EN : 1;\
UNSG32 uCTRL_TEST_ANA : 3;\
UNSG32 RSVDx0_b15 : 17;\
}
union { UNSG32 u32REFCLK_CTRL;
struct w32REFCLK_CTRL;
};
///////////////////////////////////////////////////////////
} SIE_REFCLK;
typedef union T32REFCLK_CTRL
{ UNSG32 u32;
struct w32REFCLK_CTRL;
} T32REFCLK_CTRL;
///////////////////////////////////////////////////////////
typedef union TREFCLK_CTRL
{ UNSG32 u32[1];
struct {
struct w32REFCLK_CTRL;
};
} TREFCLK_CTRL;
///////////////////////////////////////////////////////////
SIGN32 REFCLK_drvrd(SIE_REFCLK *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 REFCLK_drvwr(SIE_REFCLK *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void REFCLK_reset(SIE_REFCLK *p);
SIGN32 REFCLK_cmp (SIE_REFCLK *p, SIE_REFCLK *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define REFCLK_check(p,pie,pfx,hLOG) REFCLK_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define REFCLK_print(p, pfx,hLOG) REFCLK_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: REFCLK
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE PCIE biu (4,4)
/// ###
/// * PCI-E module register space
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 IP_REGSP_0
/// $IP_REGSP_0 IP_REGSP_0 MEM
/// ###
/// * PCIE 3 IP First 32KB register Space
/// ###
/// @ 0x08000 (P)
/// # 0x08000 IP_REGSP_1
/// $IP_REGSP_1 IP_REGSP_1 MEM
/// ###
/// * PCIE 3 IP Second 8KB register Space, So total IP Register space is 40KB
/// ###
/// @ 0x0A000 MSI_INTR_RX (RW-)
/// ###
/// * PCI-E MSI Received register
/// ###
/// %unsigned 32 DATA 0x0
/// ###
/// * Data Received register
/// * The received data decides which function generated the interrupt. This data is used to set the corresponding bits in the INTR Status register
/// * Note: Software should use the [15:13] bits as the function ID while programming the MSI DATA register in the endpoint
/// * Endpoint should use the [1:0] bits to indicate what type of interrupt is this.
/// ###
/// @ 0x0A004 MSI_INTR_STATUS (WOC-)
/// ###
/// * PCI-E MSI Interrupt Status register
/// * BG3 supports MSI for 8 functions and each function can have 4 types of interrupts.
/// * The register implements 4 Interrupt bits for each function.
/// * A value of 1 : indicates that the interrupt is pending for that function
/// * A value of 0 : indicates no interrupt pending
/// * Note: Write-1-to clear the interrupt in this register
/// ###
/// %unsigned 32 VALUE 0x0
/// ###
/// * MSI Interrupt status
/// * The bits in this register indicates MSI Interrupt status for the 8 functions.
/// * For each bit :
/// * 0 : means Interrupt is not pending
/// * 1 : means Interrupt is pending
/// * The following is the mapping between function and interrupt bits:
/// * Bits [3:0] : MSI Interrupt status for Function 0 interrupts
/// * Bits [7:4] : MSI Interrupt status for Function 1 interrupts
/// * Bits [11:8] : MSI Interrupt status for Function 2 interrupts
/// * Bits [15:12] : MSI Interrupt status for Function 3 interrupts
/// * Bits [19:16] : MSI Interrupt status for Function 4 interrupts
/// * Bits [23:20] : MSI Interrupt status for Function 5 interrupts
/// * Bits [27:24] : MSI Interrupt status for Function 6 interrupts
/// * Bits [31:28] : MSI Interrupt status for Function 7 interrupts
/// * Each function has 4-bits each (so can have 4 different types of interrupts). If any of them is set, it means corresponding Interrupt for that function is pending.
/// ###
/// @ 0x0A008 MSI_INTR_MASK (RW)
/// ###
/// * PCI-E MSI Interrupt Mask register
/// ###
/// %unsigned 32 VALUE 0x0
/// ###
/// * Interrupt Mask
/// * 0 : Interrupt enabled
/// * 1 : Interrupt disabled (masked)
/// * Bits [3:0] : Interrupt Mask for Function 0 interrupts
/// * Bits [7:4] : Interrupt Mask for Function 1 interrupts
/// * Bits [11:8] : Interrupt Mask for Function 2 interrupts
/// * Bits [15:12] : Interrupt Mask for Function 3 interrupts
/// * Bits [19:16] : Interrupt Mask for Function 4 interrupts
/// * Bits [23:20] : Interrupt Mask for Function 5 interrupts
/// * Bits [27:24] : Interrupt Mask for Function 6 interrupts
/// * Bits [31:28] : Interrupt Mask for Function 7 interrupts
/// ###
/// @ 0x0A00C MAC_CTRL (RW)
/// ###
/// * PCIE MAC control register
/// ###
/// %unsigned 1 SYSWREQ 0x0
/// ###
/// * AXI Lower power control bit
/// ###
/// %unsigned 1 CPU_INTERFACE_SEL 0x0
/// ###
/// * CPU Interface selection bit
/// * 0 : Use AHB to access PCIE registers
/// * 1 : Use SIF Serial interface to access the registers
/// ###
/// %unsigned 1 CFG_TYPE 0x0
/// ###
/// * Register bit to indicate whether outbound CFG cycles are Type 0 or Type1
/// * 0 : Type 0 configuration cycles (default)
/// * 1 : Type 1 configuration cycles cd
/// ###
/// %unsigned 1 MEMMAP_CFG_VALID 0x1
/// ###
/// * Register bit to indicate whether Memory Mapped CFG cycles are supported or not.
/// * 0 : Memory mapped CFG cycles are not supported
/// * 1 : Memory mapped CFG cycles are supported
/// * Note: When this bit 0 : All the AXI transactions on the outbound will be send as Memory TLPs
/// * When this bit is 1 : The 512MB address space for PCIE in the chip is divided into parts, with lower 256MB for MEM and upper 256MB for CFG access.
/// ###
/// %% 28 # Stuffing bits...
/// @ 0x0A010 MAC_STATUS (R-)
/// ###
/// * PCIE MAC misc status register
/// ###
/// %unsigned 1 DWACK
/// ###
/// * AXI low power status
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0A014 MAC_CLK_CTRL (RW)
/// ###
/// * PCIE MAC clock control register
/// ###
/// %unsigned 1 AXI_CLKEN 0x1
/// ###
/// * AXI clock enable
/// * 0: CLK is not enabled (OFF )
/// * 1: CLK is enabled (ON)
/// ###
/// %unsigned 1 AHB_CLKEN 0x1
/// ###
/// * AHB clock enable
/// * 0: CLK is not enabled (OFF )
/// * 1: CLK is enabled (ON)
/// ###
/// %unsigned 1 CORE_CLKEN 0x1
/// ###
/// * PCIE Core clock enable
/// * 0: CLK is not enabled (OFF )
/// * 1: CLK is enabled (ON)
/// ###
/// %unsigned 1 PIPE_CLKEN 0x1
/// ###
/// * PPIE clock enable
/// * 0: CLK is not enabled (OFF )
/// * 1: CLK is enabled (ON)
/// ###
/// %% 28 # Stuffing bits...
/// @ 0x0A018 (P)
/// # 0x0A018 REFCLK
/// $REFCLK REFCLK REG
/// ###
/// * Reference clock buffer control registers
/// ###
/// @ 0x0A01C PHY_CTRL (RW)
/// ###
/// * PHY control register
/// ###
/// %unsigned 1 RXEIDETECT_DIS 0x0
/// ###
/// * Rx electrical idle (or squelch) detect disable:
/// * 0 : Squelch detector is enabled
/// * 1 : Squelch detector is disabled
/// ###
/// %unsigned 1 TXCMN_MODE_DIS 0x0
/// ###
/// * Tx common mode disable
/// * 0 : Tx common mode circuit is enabled
/// * 1: Tx common mode circuit is disabled
/// ###
/// %unsigned 2 SIF_MUX_SEL 0x0
/// ###
/// * Register bits to select which PHY SIF interface is being used out of the 4 PHY
/// * 00 : PHY 0 selected
/// * 01 ; PHY 1 Selected
/// * 10 ; PHY 2 Selected
/// * 11 ; PHY 3 Selected
/// ###
/// %unsigned 2 SIF_DEV_SEL 0x1
/// ###
/// * Device select for serial interface
/// * 00 : SIF is disabled
/// * 01 : SIF is enabled for PHY (For multi-lanes this bit selects the PHY0)
/// * 10 : SIF enabled for PHY1 (Only for multi-lane MAC (PCIE0))
/// ###
/// %unsigned 1 ISOLATION_ENB 0x1
/// ###
/// * Control bit for isolation function
/// * 0 : Power down mode
/// * 1: Normal function mode
/// ###
/// %% 25 # Stuffing bits...
/// @ 0x0A020 HWDBG_CTRL (RW)
/// ###
/// * Hardware Debug control. This register is used to select the Debug Bus coming out of the PCIE subsystem to the chip pins.
/// ###
/// %unsigned 2 PCIESEL 0x0
/// ###
/// * Bit used to select which PCIE debug bus needs to be selected to be observed on the Chip debug port
/// * 0 : PCIE 0 (x2 MAC)
/// * 1 : PCIE 1 (x1 MAC)
/// * 2 : PCIE 2 (x1 MAC)
/// * Note: Only PCIE0 register bits are used others are not used
/// ###
/// %unsigned 1 DATASEL 0x0
/// ###
/// * Bit to select the upper or lower 16-bits of the debug data.
/// * 0: Selects the [15:0] data
/// * 1: Selects the [31:16] data
/// * Note: Only PCIE0 register bits are used others are not used
/// ###
/// %unsigned 8 SIGSEL 0x0
/// ###
/// * These bits selects the debug signals from each PCIE IP.
/// * Note: All the PCIE0/1/2 register bits are used since the debug data from all the 3 PCIE is stored in the HWDBG_DATA regitser
/// ###
/// %% 21 # Stuffing bits...
/// @ 0x0A024 HWDBG_DATA (R-)
/// ###
/// * Debug data from IP
/// ###
/// %unsigned 32 VAL
/// @ 0x0A028 SPARE_0 (RW)
/// %unsigned 32 REGBITS 0x0
/// @ 0x0A02C SPARE_1 (RW)
/// %unsigned 32 REGBITS 0x0
/// @ 0x0A030 SPARE_2 (RW)
/// %unsigned 32 REGBITS 0x0
/// @ 0x0A034 SPARE_3 (RW)
/// %unsigned 32 REGBITS 0x0
/// ###
/// * **INTERNAL_ONLY**
/// * Spare register bits for future use
/// ###
/// @ 0x0A038 (W-)
/// # # Stuffing bytes...
/// %% 196160
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 65536B, bits: 362b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_PCIE
#define h_PCIE (){}
#define RA_PCIE_IP_REGSP_0 0x0000
///////////////////////////////////////////////////////////
#define RA_PCIE_IP_REGSP_1 0x8000
///////////////////////////////////////////////////////////
#define RA_PCIE_MSI_INTR_RX 0xA000
#define BA_PCIE_MSI_INTR_RX_DATA 0xA000
#define B16PCIE_MSI_INTR_RX_DATA 0xA000
#define LSb32PCIE_MSI_INTR_RX_DATA 0
#define LSb16PCIE_MSI_INTR_RX_DATA 0
#define bPCIE_MSI_INTR_RX_DATA 32
#define MSK32PCIE_MSI_INTR_RX_DATA 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_PCIE_MSI_INTR_STATUS 0xA004
#define BA_PCIE_MSI_INTR_STATUS_VALUE 0xA004
#define B16PCIE_MSI_INTR_STATUS_VALUE 0xA004
#define LSb32PCIE_MSI_INTR_STATUS_VALUE 0
#define LSb16PCIE_MSI_INTR_STATUS_VALUE 0
#define bPCIE_MSI_INTR_STATUS_VALUE 32
#define MSK32PCIE_MSI_INTR_STATUS_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_PCIE_MSI_INTR_MASK 0xA008
#define BA_PCIE_MSI_INTR_MASK_VALUE 0xA008
#define B16PCIE_MSI_INTR_MASK_VALUE 0xA008
#define LSb32PCIE_MSI_INTR_MASK_VALUE 0
#define LSb16PCIE_MSI_INTR_MASK_VALUE 0
#define bPCIE_MSI_INTR_MASK_VALUE 32
#define MSK32PCIE_MSI_INTR_MASK_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_PCIE_MAC_CTRL 0xA00C
#define BA_PCIE_MAC_CTRL_SYSWREQ 0xA00C
#define B16PCIE_MAC_CTRL_SYSWREQ 0xA00C
#define LSb32PCIE_MAC_CTRL_SYSWREQ 0
#define LSb16PCIE_MAC_CTRL_SYSWREQ 0
#define bPCIE_MAC_CTRL_SYSWREQ 1
#define MSK32PCIE_MAC_CTRL_SYSWREQ 0x00000001
#define BA_PCIE_MAC_CTRL_CPU_INTERFACE_SEL 0xA00C
#define B16PCIE_MAC_CTRL_CPU_INTERFACE_SEL 0xA00C
#define LSb32PCIE_MAC_CTRL_CPU_INTERFACE_SEL 1
#define LSb16PCIE_MAC_CTRL_CPU_INTERFACE_SEL 1
#define bPCIE_MAC_CTRL_CPU_INTERFACE_SEL 1
#define MSK32PCIE_MAC_CTRL_CPU_INTERFACE_SEL 0x00000002
#define BA_PCIE_MAC_CTRL_CFG_TYPE 0xA00C
#define B16PCIE_MAC_CTRL_CFG_TYPE 0xA00C
#define LSb32PCIE_MAC_CTRL_CFG_TYPE 2
#define LSb16PCIE_MAC_CTRL_CFG_TYPE 2
#define bPCIE_MAC_CTRL_CFG_TYPE 1
#define MSK32PCIE_MAC_CTRL_CFG_TYPE 0x00000004
#define BA_PCIE_MAC_CTRL_MEMMAP_CFG_VALID 0xA00C
#define B16PCIE_MAC_CTRL_MEMMAP_CFG_VALID 0xA00C
#define LSb32PCIE_MAC_CTRL_MEMMAP_CFG_VALID 3
#define LSb16PCIE_MAC_CTRL_MEMMAP_CFG_VALID 3
#define bPCIE_MAC_CTRL_MEMMAP_CFG_VALID 1
#define MSK32PCIE_MAC_CTRL_MEMMAP_CFG_VALID 0x00000008
///////////////////////////////////////////////////////////
#define RA_PCIE_MAC_STATUS 0xA010
#define BA_PCIE_MAC_STATUS_DWACK 0xA010
#define B16PCIE_MAC_STATUS_DWACK 0xA010
#define LSb32PCIE_MAC_STATUS_DWACK 0
#define LSb16PCIE_MAC_STATUS_DWACK 0
#define bPCIE_MAC_STATUS_DWACK 1
#define MSK32PCIE_MAC_STATUS_DWACK 0x00000001
///////////////////////////////////////////////////////////
#define RA_PCIE_MAC_CLK_CTRL 0xA014
#define BA_PCIE_MAC_CLK_CTRL_AXI_CLKEN 0xA014
#define B16PCIE_MAC_CLK_CTRL_AXI_CLKEN 0xA014
#define LSb32PCIE_MAC_CLK_CTRL_AXI_CLKEN 0
#define LSb16PCIE_MAC_CLK_CTRL_AXI_CLKEN 0
#define bPCIE_MAC_CLK_CTRL_AXI_CLKEN 1
#define MSK32PCIE_MAC_CLK_CTRL_AXI_CLKEN 0x00000001
#define BA_PCIE_MAC_CLK_CTRL_AHB_CLKEN 0xA014
#define B16PCIE_MAC_CLK_CTRL_AHB_CLKEN 0xA014
#define LSb32PCIE_MAC_CLK_CTRL_AHB_CLKEN 1
#define LSb16PCIE_MAC_CLK_CTRL_AHB_CLKEN 1
#define bPCIE_MAC_CLK_CTRL_AHB_CLKEN 1
#define MSK32PCIE_MAC_CLK_CTRL_AHB_CLKEN 0x00000002
#define BA_PCIE_MAC_CLK_CTRL_CORE_CLKEN 0xA014
#define B16PCIE_MAC_CLK_CTRL_CORE_CLKEN 0xA014
#define LSb32PCIE_MAC_CLK_CTRL_CORE_CLKEN 2
#define LSb16PCIE_MAC_CLK_CTRL_CORE_CLKEN 2
#define bPCIE_MAC_CLK_CTRL_CORE_CLKEN 1
#define MSK32PCIE_MAC_CLK_CTRL_CORE_CLKEN 0x00000004
#define BA_PCIE_MAC_CLK_CTRL_PIPE_CLKEN 0xA014
#define B16PCIE_MAC_CLK_CTRL_PIPE_CLKEN 0xA014
#define LSb32PCIE_MAC_CLK_CTRL_PIPE_CLKEN 3
#define LSb16PCIE_MAC_CLK_CTRL_PIPE_CLKEN 3
#define bPCIE_MAC_CLK_CTRL_PIPE_CLKEN 1
#define MSK32PCIE_MAC_CLK_CTRL_PIPE_CLKEN 0x00000008
///////////////////////////////////////////////////////////
#define RA_PCIE_REFCLK 0xA018
///////////////////////////////////////////////////////////
#define RA_PCIE_PHY_CTRL 0xA01C
#define BA_PCIE_PHY_CTRL_RXEIDETECT_DIS 0xA01C
#define B16PCIE_PHY_CTRL_RXEIDETECT_DIS 0xA01C
#define LSb32PCIE_PHY_CTRL_RXEIDETECT_DIS 0
#define LSb16PCIE_PHY_CTRL_RXEIDETECT_DIS 0
#define bPCIE_PHY_CTRL_RXEIDETECT_DIS 1
#define MSK32PCIE_PHY_CTRL_RXEIDETECT_DIS 0x00000001
#define BA_PCIE_PHY_CTRL_TXCMN_MODE_DIS 0xA01C
#define B16PCIE_PHY_CTRL_TXCMN_MODE_DIS 0xA01C
#define LSb32PCIE_PHY_CTRL_TXCMN_MODE_DIS 1
#define LSb16PCIE_PHY_CTRL_TXCMN_MODE_DIS 1
#define bPCIE_PHY_CTRL_TXCMN_MODE_DIS 1
#define MSK32PCIE_PHY_CTRL_TXCMN_MODE_DIS 0x00000002
#define BA_PCIE_PHY_CTRL_SIF_MUX_SEL 0xA01C
#define B16PCIE_PHY_CTRL_SIF_MUX_SEL 0xA01C
#define LSb32PCIE_PHY_CTRL_SIF_MUX_SEL 2
#define LSb16PCIE_PHY_CTRL_SIF_MUX_SEL 2
#define bPCIE_PHY_CTRL_SIF_MUX_SEL 2
#define MSK32PCIE_PHY_CTRL_SIF_MUX_SEL 0x0000000C
#define BA_PCIE_PHY_CTRL_SIF_DEV_SEL 0xA01C
#define B16PCIE_PHY_CTRL_SIF_DEV_SEL 0xA01C
#define LSb32PCIE_PHY_CTRL_SIF_DEV_SEL 4
#define LSb16PCIE_PHY_CTRL_SIF_DEV_SEL 4
#define bPCIE_PHY_CTRL_SIF_DEV_SEL 2
#define MSK32PCIE_PHY_CTRL_SIF_DEV_SEL 0x00000030
#define BA_PCIE_PHY_CTRL_ISOLATION_ENB 0xA01C
#define B16PCIE_PHY_CTRL_ISOLATION_ENB 0xA01C
#define LSb32PCIE_PHY_CTRL_ISOLATION_ENB 6
#define LSb16PCIE_PHY_CTRL_ISOLATION_ENB 6
#define bPCIE_PHY_CTRL_ISOLATION_ENB 1
#define MSK32PCIE_PHY_CTRL_ISOLATION_ENB 0x00000040
///////////////////////////////////////////////////////////
#define RA_PCIE_HWDBG_CTRL 0xA020
#define BA_PCIE_HWDBG_CTRL_PCIESEL 0xA020
#define B16PCIE_HWDBG_CTRL_PCIESEL 0xA020
#define LSb32PCIE_HWDBG_CTRL_PCIESEL 0
#define LSb16PCIE_HWDBG_CTRL_PCIESEL 0
#define bPCIE_HWDBG_CTRL_PCIESEL 2
#define MSK32PCIE_HWDBG_CTRL_PCIESEL 0x00000003
#define BA_PCIE_HWDBG_CTRL_DATASEL 0xA020
#define B16PCIE_HWDBG_CTRL_DATASEL 0xA020
#define LSb32PCIE_HWDBG_CTRL_DATASEL 2
#define LSb16PCIE_HWDBG_CTRL_DATASEL 2
#define bPCIE_HWDBG_CTRL_DATASEL 1
#define MSK32PCIE_HWDBG_CTRL_DATASEL 0x00000004
#define BA_PCIE_HWDBG_CTRL_SIGSEL 0xA020
#define B16PCIE_HWDBG_CTRL_SIGSEL 0xA020
#define LSb32PCIE_HWDBG_CTRL_SIGSEL 3
#define LSb16PCIE_HWDBG_CTRL_SIGSEL 3
#define bPCIE_HWDBG_CTRL_SIGSEL 8
#define MSK32PCIE_HWDBG_CTRL_SIGSEL 0x000007F8
///////////////////////////////////////////////////////////
#define RA_PCIE_HWDBG_DATA 0xA024
#define BA_PCIE_HWDBG_DATA_VAL 0xA024
#define B16PCIE_HWDBG_DATA_VAL 0xA024
#define LSb32PCIE_HWDBG_DATA_VAL 0
#define LSb16PCIE_HWDBG_DATA_VAL 0
#define bPCIE_HWDBG_DATA_VAL 32
#define MSK32PCIE_HWDBG_DATA_VAL 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_PCIE_SPARE_0 0xA028
#define BA_PCIE_SPARE_0_REGBITS 0xA028
#define B16PCIE_SPARE_0_REGBITS 0xA028
#define LSb32PCIE_SPARE_0_REGBITS 0
#define LSb16PCIE_SPARE_0_REGBITS 0
#define bPCIE_SPARE_0_REGBITS 32
#define MSK32PCIE_SPARE_0_REGBITS 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_PCIE_SPARE_1 0xA02C
#define BA_PCIE_SPARE_1_REGBITS 0xA02C
#define B16PCIE_SPARE_1_REGBITS 0xA02C
#define LSb32PCIE_SPARE_1_REGBITS 0
#define LSb16PCIE_SPARE_1_REGBITS 0
#define bPCIE_SPARE_1_REGBITS 32
#define MSK32PCIE_SPARE_1_REGBITS 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_PCIE_SPARE_2 0xA030
#define BA_PCIE_SPARE_2_REGBITS 0xA030
#define B16PCIE_SPARE_2_REGBITS 0xA030
#define LSb32PCIE_SPARE_2_REGBITS 0
#define LSb16PCIE_SPARE_2_REGBITS 0
#define bPCIE_SPARE_2_REGBITS 32
#define MSK32PCIE_SPARE_2_REGBITS 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_PCIE_SPARE_3 0xA034
#define BA_PCIE_SPARE_3_REGBITS 0xA034
#define B16PCIE_SPARE_3_REGBITS 0xA034
#define LSb32PCIE_SPARE_3_REGBITS 0
#define LSb16PCIE_SPARE_3_REGBITS 0
#define bPCIE_SPARE_3_REGBITS 32
#define MSK32PCIE_SPARE_3_REGBITS 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_PCIE {
///////////////////////////////////////////////////////////
SIE_IP_REGSP_0 ie_IP_REGSP_0;
///////////////////////////////////////////////////////////
SIE_IP_REGSP_1 ie_IP_REGSP_1;
///////////////////////////////////////////////////////////
#define GET32PCIE_MSI_INTR_RX_DATA(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_MSI_INTR_RX_DATA(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_MSI_INTR_RX {\
UNSG32 uMSI_INTR_RX_DATA : 32;\
}
union { UNSG32 u32PCIE_MSI_INTR_RX;
struct w32PCIE_MSI_INTR_RX;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_MSI_INTR_STATUS_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_MSI_INTR_STATUS_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_MSI_INTR_STATUS {\
UNSG32 uMSI_INTR_STATUS_VALUE : 32;\
}
union { UNSG32 u32PCIE_MSI_INTR_STATUS;
struct w32PCIE_MSI_INTR_STATUS;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_MSI_INTR_MASK_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_MSI_INTR_MASK_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_MSI_INTR_MASK {\
UNSG32 uMSI_INTR_MASK_VALUE : 32;\
}
union { UNSG32 u32PCIE_MSI_INTR_MASK;
struct w32PCIE_MSI_INTR_MASK;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_MAC_CTRL_SYSWREQ(r32) _BFGET_(r32, 0, 0)
#define SET32PCIE_MAC_CTRL_SYSWREQ(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16PCIE_MAC_CTRL_SYSWREQ(r16) _BFGET_(r16, 0, 0)
#define SET16PCIE_MAC_CTRL_SYSWREQ(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32PCIE_MAC_CTRL_CPU_INTERFACE_SEL(r32) _BFGET_(r32, 1, 1)
#define SET32PCIE_MAC_CTRL_CPU_INTERFACE_SEL(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16PCIE_MAC_CTRL_CPU_INTERFACE_SEL(r16) _BFGET_(r16, 1, 1)
#define SET16PCIE_MAC_CTRL_CPU_INTERFACE_SEL(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32PCIE_MAC_CTRL_CFG_TYPE(r32) _BFGET_(r32, 2, 2)
#define SET32PCIE_MAC_CTRL_CFG_TYPE(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16PCIE_MAC_CTRL_CFG_TYPE(r16) _BFGET_(r16, 2, 2)
#define SET16PCIE_MAC_CTRL_CFG_TYPE(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32PCIE_MAC_CTRL_MEMMAP_CFG_VALID(r32) _BFGET_(r32, 3, 3)
#define SET32PCIE_MAC_CTRL_MEMMAP_CFG_VALID(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16PCIE_MAC_CTRL_MEMMAP_CFG_VALID(r16) _BFGET_(r16, 3, 3)
#define SET16PCIE_MAC_CTRL_MEMMAP_CFG_VALID(r16,v) _BFSET_(r16, 3, 3,v)
#define w32PCIE_MAC_CTRL {\
UNSG32 uMAC_CTRL_SYSWREQ : 1;\
UNSG32 uMAC_CTRL_CPU_INTERFACE_SEL : 1;\
UNSG32 uMAC_CTRL_CFG_TYPE : 1;\
UNSG32 uMAC_CTRL_MEMMAP_CFG_VALID : 1;\
UNSG32 RSVDxA00C_b4 : 28;\
}
union { UNSG32 u32PCIE_MAC_CTRL;
struct w32PCIE_MAC_CTRL;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_MAC_STATUS_DWACK(r32) _BFGET_(r32, 0, 0)
#define SET32PCIE_MAC_STATUS_DWACK(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16PCIE_MAC_STATUS_DWACK(r16) _BFGET_(r16, 0, 0)
#define SET16PCIE_MAC_STATUS_DWACK(r16,v) _BFSET_(r16, 0, 0,v)
#define w32PCIE_MAC_STATUS {\
UNSG32 uMAC_STATUS_DWACK : 1;\
UNSG32 RSVDxA010_b1 : 31;\
}
union { UNSG32 u32PCIE_MAC_STATUS;
struct w32PCIE_MAC_STATUS;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_MAC_CLK_CTRL_AXI_CLKEN(r32) _BFGET_(r32, 0, 0)
#define SET32PCIE_MAC_CLK_CTRL_AXI_CLKEN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16PCIE_MAC_CLK_CTRL_AXI_CLKEN(r16) _BFGET_(r16, 0, 0)
#define SET16PCIE_MAC_CLK_CTRL_AXI_CLKEN(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32PCIE_MAC_CLK_CTRL_AHB_CLKEN(r32) _BFGET_(r32, 1, 1)
#define SET32PCIE_MAC_CLK_CTRL_AHB_CLKEN(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16PCIE_MAC_CLK_CTRL_AHB_CLKEN(r16) _BFGET_(r16, 1, 1)
#define SET16PCIE_MAC_CLK_CTRL_AHB_CLKEN(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32PCIE_MAC_CLK_CTRL_CORE_CLKEN(r32) _BFGET_(r32, 2, 2)
#define SET32PCIE_MAC_CLK_CTRL_CORE_CLKEN(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16PCIE_MAC_CLK_CTRL_CORE_CLKEN(r16) _BFGET_(r16, 2, 2)
#define SET16PCIE_MAC_CLK_CTRL_CORE_CLKEN(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32PCIE_MAC_CLK_CTRL_PIPE_CLKEN(r32) _BFGET_(r32, 3, 3)
#define SET32PCIE_MAC_CLK_CTRL_PIPE_CLKEN(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16PCIE_MAC_CLK_CTRL_PIPE_CLKEN(r16) _BFGET_(r16, 3, 3)
#define SET16PCIE_MAC_CLK_CTRL_PIPE_CLKEN(r16,v) _BFSET_(r16, 3, 3,v)
#define w32PCIE_MAC_CLK_CTRL {\
UNSG32 uMAC_CLK_CTRL_AXI_CLKEN : 1;\
UNSG32 uMAC_CLK_CTRL_AHB_CLKEN : 1;\
UNSG32 uMAC_CLK_CTRL_CORE_CLKEN : 1;\
UNSG32 uMAC_CLK_CTRL_PIPE_CLKEN : 1;\
UNSG32 RSVDxA014_b4 : 28;\
}
union { UNSG32 u32PCIE_MAC_CLK_CTRL;
struct w32PCIE_MAC_CLK_CTRL;
};
///////////////////////////////////////////////////////////
SIE_REFCLK ie_REFCLK;
///////////////////////////////////////////////////////////
#define GET32PCIE_PHY_CTRL_RXEIDETECT_DIS(r32) _BFGET_(r32, 0, 0)
#define SET32PCIE_PHY_CTRL_RXEIDETECT_DIS(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16PCIE_PHY_CTRL_RXEIDETECT_DIS(r16) _BFGET_(r16, 0, 0)
#define SET16PCIE_PHY_CTRL_RXEIDETECT_DIS(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32PCIE_PHY_CTRL_TXCMN_MODE_DIS(r32) _BFGET_(r32, 1, 1)
#define SET32PCIE_PHY_CTRL_TXCMN_MODE_DIS(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16PCIE_PHY_CTRL_TXCMN_MODE_DIS(r16) _BFGET_(r16, 1, 1)
#define SET16PCIE_PHY_CTRL_TXCMN_MODE_DIS(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32PCIE_PHY_CTRL_SIF_MUX_SEL(r32) _BFGET_(r32, 3, 2)
#define SET32PCIE_PHY_CTRL_SIF_MUX_SEL(r32,v) _BFSET_(r32, 3, 2,v)
#define GET16PCIE_PHY_CTRL_SIF_MUX_SEL(r16) _BFGET_(r16, 3, 2)
#define SET16PCIE_PHY_CTRL_SIF_MUX_SEL(r16,v) _BFSET_(r16, 3, 2,v)
#define GET32PCIE_PHY_CTRL_SIF_DEV_SEL(r32) _BFGET_(r32, 5, 4)
#define SET32PCIE_PHY_CTRL_SIF_DEV_SEL(r32,v) _BFSET_(r32, 5, 4,v)
#define GET16PCIE_PHY_CTRL_SIF_DEV_SEL(r16) _BFGET_(r16, 5, 4)
#define SET16PCIE_PHY_CTRL_SIF_DEV_SEL(r16,v) _BFSET_(r16, 5, 4,v)
#define GET32PCIE_PHY_CTRL_ISOLATION_ENB(r32) _BFGET_(r32, 6, 6)
#define SET32PCIE_PHY_CTRL_ISOLATION_ENB(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16PCIE_PHY_CTRL_ISOLATION_ENB(r16) _BFGET_(r16, 6, 6)
#define SET16PCIE_PHY_CTRL_ISOLATION_ENB(r16,v) _BFSET_(r16, 6, 6,v)
#define w32PCIE_PHY_CTRL {\
UNSG32 uPHY_CTRL_RXEIDETECT_DIS : 1;\
UNSG32 uPHY_CTRL_TXCMN_MODE_DIS : 1;\
UNSG32 uPHY_CTRL_SIF_MUX_SEL : 2;\
UNSG32 uPHY_CTRL_SIF_DEV_SEL : 2;\
UNSG32 uPHY_CTRL_ISOLATION_ENB : 1;\
UNSG32 RSVDxA01C_b7 : 25;\
}
union { UNSG32 u32PCIE_PHY_CTRL;
struct w32PCIE_PHY_CTRL;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_HWDBG_CTRL_PCIESEL(r32) _BFGET_(r32, 1, 0)
#define SET32PCIE_HWDBG_CTRL_PCIESEL(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16PCIE_HWDBG_CTRL_PCIESEL(r16) _BFGET_(r16, 1, 0)
#define SET16PCIE_HWDBG_CTRL_PCIESEL(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32PCIE_HWDBG_CTRL_DATASEL(r32) _BFGET_(r32, 2, 2)
#define SET32PCIE_HWDBG_CTRL_DATASEL(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16PCIE_HWDBG_CTRL_DATASEL(r16) _BFGET_(r16, 2, 2)
#define SET16PCIE_HWDBG_CTRL_DATASEL(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32PCIE_HWDBG_CTRL_SIGSEL(r32) _BFGET_(r32,10, 3)
#define SET32PCIE_HWDBG_CTRL_SIGSEL(r32,v) _BFSET_(r32,10, 3,v)
#define GET16PCIE_HWDBG_CTRL_SIGSEL(r16) _BFGET_(r16,10, 3)
#define SET16PCIE_HWDBG_CTRL_SIGSEL(r16,v) _BFSET_(r16,10, 3,v)
#define w32PCIE_HWDBG_CTRL {\
UNSG32 uHWDBG_CTRL_PCIESEL : 2;\
UNSG32 uHWDBG_CTRL_DATASEL : 1;\
UNSG32 uHWDBG_CTRL_SIGSEL : 8;\
UNSG32 RSVDxA020_b11 : 21;\
}
union { UNSG32 u32PCIE_HWDBG_CTRL;
struct w32PCIE_HWDBG_CTRL;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_HWDBG_DATA_VAL(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_HWDBG_DATA_VAL(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_HWDBG_DATA {\
UNSG32 uHWDBG_DATA_VAL : 32;\
}
union { UNSG32 u32PCIE_HWDBG_DATA;
struct w32PCIE_HWDBG_DATA;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_SPARE_0_REGBITS(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_SPARE_0_REGBITS(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_SPARE_0 {\
UNSG32 uSPARE_0_REGBITS : 32;\
}
union { UNSG32 u32PCIE_SPARE_0;
struct w32PCIE_SPARE_0;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_SPARE_1_REGBITS(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_SPARE_1_REGBITS(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_SPARE_1 {\
UNSG32 uSPARE_1_REGBITS : 32;\
}
union { UNSG32 u32PCIE_SPARE_1;
struct w32PCIE_SPARE_1;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_SPARE_2_REGBITS(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_SPARE_2_REGBITS(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_SPARE_2 {\
UNSG32 uSPARE_2_REGBITS : 32;\
}
union { UNSG32 u32PCIE_SPARE_2;
struct w32PCIE_SPARE_2;
};
///////////////////////////////////////////////////////////
#define GET32PCIE_SPARE_3_REGBITS(r32) _BFGET_(r32,31, 0)
#define SET32PCIE_SPARE_3_REGBITS(r32,v) _BFSET_(r32,31, 0,v)
#define w32PCIE_SPARE_3 {\
UNSG32 uSPARE_3_REGBITS : 32;\
}
union { UNSG32 u32PCIE_SPARE_3;
struct w32PCIE_SPARE_3;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxA038 [24520];
///////////////////////////////////////////////////////////
} SIE_PCIE;
typedef union T32PCIE_MSI_INTR_RX
{ UNSG32 u32;
struct w32PCIE_MSI_INTR_RX;
} T32PCIE_MSI_INTR_RX;
typedef union T32PCIE_MSI_INTR_STATUS
{ UNSG32 u32;
struct w32PCIE_MSI_INTR_STATUS;
} T32PCIE_MSI_INTR_STATUS;
typedef union T32PCIE_MSI_INTR_MASK
{ UNSG32 u32;
struct w32PCIE_MSI_INTR_MASK;
} T32PCIE_MSI_INTR_MASK;
typedef union T32PCIE_MAC_CTRL
{ UNSG32 u32;
struct w32PCIE_MAC_CTRL;
} T32PCIE_MAC_CTRL;
typedef union T32PCIE_MAC_STATUS
{ UNSG32 u32;
struct w32PCIE_MAC_STATUS;
} T32PCIE_MAC_STATUS;
typedef union T32PCIE_MAC_CLK_CTRL
{ UNSG32 u32;
struct w32PCIE_MAC_CLK_CTRL;
} T32PCIE_MAC_CLK_CTRL;
typedef union T32PCIE_PHY_CTRL
{ UNSG32 u32;
struct w32PCIE_PHY_CTRL;
} T32PCIE_PHY_CTRL;
typedef union T32PCIE_HWDBG_CTRL
{ UNSG32 u32;
struct w32PCIE_HWDBG_CTRL;
} T32PCIE_HWDBG_CTRL;
typedef union T32PCIE_HWDBG_DATA
{ UNSG32 u32;
struct w32PCIE_HWDBG_DATA;
} T32PCIE_HWDBG_DATA;
typedef union T32PCIE_SPARE_0
{ UNSG32 u32;
struct w32PCIE_SPARE_0;
} T32PCIE_SPARE_0;
typedef union T32PCIE_SPARE_1
{ UNSG32 u32;
struct w32PCIE_SPARE_1;
} T32PCIE_SPARE_1;
typedef union T32PCIE_SPARE_2
{ UNSG32 u32;
struct w32PCIE_SPARE_2;
} T32PCIE_SPARE_2;
typedef union T32PCIE_SPARE_3
{ UNSG32 u32;
struct w32PCIE_SPARE_3;
} T32PCIE_SPARE_3;
///////////////////////////////////////////////////////////
typedef union TPCIE_MSI_INTR_RX
{ UNSG32 u32[1];
struct {
struct w32PCIE_MSI_INTR_RX;
};
} TPCIE_MSI_INTR_RX;
typedef union TPCIE_MSI_INTR_STATUS
{ UNSG32 u32[1];
struct {
struct w32PCIE_MSI_INTR_STATUS;
};
} TPCIE_MSI_INTR_STATUS;
typedef union TPCIE_MSI_INTR_MASK
{ UNSG32 u32[1];
struct {
struct w32PCIE_MSI_INTR_MASK;
};
} TPCIE_MSI_INTR_MASK;
typedef union TPCIE_MAC_CTRL
{ UNSG32 u32[1];
struct {
struct w32PCIE_MAC_CTRL;
};
} TPCIE_MAC_CTRL;
typedef union TPCIE_MAC_STATUS
{ UNSG32 u32[1];
struct {
struct w32PCIE_MAC_STATUS;
};
} TPCIE_MAC_STATUS;
typedef union TPCIE_MAC_CLK_CTRL
{ UNSG32 u32[1];
struct {
struct w32PCIE_MAC_CLK_CTRL;
};
} TPCIE_MAC_CLK_CTRL;
typedef union TPCIE_PHY_CTRL
{ UNSG32 u32[1];
struct {
struct w32PCIE_PHY_CTRL;
};
} TPCIE_PHY_CTRL;
typedef union TPCIE_HWDBG_CTRL
{ UNSG32 u32[1];
struct {
struct w32PCIE_HWDBG_CTRL;
};
} TPCIE_HWDBG_CTRL;
typedef union TPCIE_HWDBG_DATA
{ UNSG32 u32[1];
struct {
struct w32PCIE_HWDBG_DATA;
};
} TPCIE_HWDBG_DATA;
typedef union TPCIE_SPARE_0
{ UNSG32 u32[1];
struct {
struct w32PCIE_SPARE_0;
};
} TPCIE_SPARE_0;
typedef union TPCIE_SPARE_1
{ UNSG32 u32[1];
struct {
struct w32PCIE_SPARE_1;
};
} TPCIE_SPARE_1;
typedef union TPCIE_SPARE_2
{ UNSG32 u32[1];
struct {
struct w32PCIE_SPARE_2;
};
} TPCIE_SPARE_2;
typedef union TPCIE_SPARE_3
{ UNSG32 u32[1];
struct {
struct w32PCIE_SPARE_3;
};
} TPCIE_SPARE_3;
///////////////////////////////////////////////////////////
SIGN32 PCIE_drvrd(SIE_PCIE *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 PCIE_drvwr(SIE_PCIE *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void PCIE_reset(SIE_PCIE *p);
SIGN32 PCIE_cmp (SIE_PCIE *p, SIE_PCIE *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define PCIE_check(p,pie,pfx,hLOG) PCIE_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define PCIE_print(p, pfx,hLOG) PCIE_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: PCIE
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: pcie.h
////////////////////////////////////////////////////////////