/***************************************************************************
 *     Copyright (c) 1999-2011, Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 * Module Description:
 *                     DO NOT EDIT THIS FILE DIRECTLY
 *
 * This module was generated magically with RDB from a source description
 * file. You must edit the source file for changes to be made to this file.
 *
 *
 * Date:           Generated on         Mon Apr 11 12:00:20 2011
 *                 MD5 Checksum         8cf142ad25caa9f873c54e8bb2bb1755
 *
 * Compiled with:  RDB Utility          combo_header.pl
 *                 RDB Parser           3.0
 *                 unknown              unknown
 *                 Perl Interpreter     5.008008
 *                 Operating System     linux
 *
 * Revision History:
 *
 * $brcm_Log: /magnum/basemodules/chp/7425/rdb/b0/bchp_pcie_rc_cfg_vendor.h $
 * 
 * Hydra_Software_Devel/2   4/12/11 4:23p vanessah
 * SW7425-112: Update rdb files for 7425 B0.
 *
 ***************************************************************************/

#ifndef BCHP_PCIE_RC_CFG_VENDOR_H__
#define BCHP_PCIE_RC_CFG_VENDOR_H__

/***************************************************************************
 *PCIE_RC_CFG_VENDOR
 ***************************************************************************/
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP       0x00410180 /* vendor_cap */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER 0x00410184 /* vendor_specific_header */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1 0x00410188 /* Vendor Specific User Register 1 */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG2 0x0041018c /* Vendor Specific User Register 2 */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG3 0x00410190 /* Vendor Specific User Register 3 */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG4 0x00410194 /* Vendor Specific User Register 4 */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG5 0x00410198 /* Vendor Specific User Register 5 */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG6 0x0041019c /* Vendor Specific User Register 6 */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG7 0x004101a0 /* Vendor Specific User Register 7 */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG8 0x004101a4 /* Vendor Specific User Register 8 */

/***************************************************************************
 *VENDOR_CAP - vendor_cap
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_CAP :: NEXT [31:20] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_NEXT_MASK               0xfff00000
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_NEXT_SHIFT              20
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_NEXT_DEFAULT            0

/* PCIE_RC_CFG_VENDOR :: VENDOR_CAP :: CAP_VER [19:16] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_CAP_VER_MASK            0x000f0000
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_CAP_VER_SHIFT           16
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_CAP_VER_DEFAULT         1

/* PCIE_RC_CFG_VENDOR :: VENDOR_CAP :: VENDOR_SPEC_CAP_ID [15:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_VENDOR_SPEC_CAP_ID_MASK 0x0000ffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_VENDOR_SPEC_CAP_ID_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_CAP_VENDOR_SPEC_CAP_ID_DEFAULT 11

/***************************************************************************
 *VENDOR_SPECIFIC_HEADER - vendor_specific_header
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_HEADER :: VSEC_LENGTH [31:20] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_LENGTH_MASK 0xfff00000
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_LENGTH_SHIFT 20
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_LENGTH_DEFAULT 40

/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_HEADER :: VSEC_REV [19:16] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_REV_MASK 0x000f0000
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_REV_SHIFT 16
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_REV_DEFAULT 0

/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_HEADER :: VSEC_ID [15:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_ID_MASK 0x0000ffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_ID_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_HEADER_VSEC_ID_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG1 - Vendor Specific User Register 1
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG1 :: Undefined [31:06] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_Undefined_MASK 0xffffffc0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_Undefined_SHIFT 6
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_Undefined_DEFAULT 0

/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG1 :: ENDIAN_MODE_BAR3 [05:04] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR3_MASK 0x00000030
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR3_SHIFT 4
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR3_DEFAULT 0

/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG1 :: ENDIAN_MODE_BAR2 [03:02] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR2_MASK 0x0000000c
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR2_SHIFT 2
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR2_DEFAULT 0

/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG1 :: ENDIAN_MODE_BAR1 [01:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR1_MASK 0x00000003
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR1_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR1_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG2 - Vendor Specific User Register 2
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG2 :: Undefined [31:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG2_Undefined_MASK 0xffffffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG2_Undefined_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG2_Undefined_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG3 - Vendor Specific User Register 3
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG3 :: Undefined [31:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG3_Undefined_MASK 0xffffffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG3_Undefined_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG3_Undefined_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG4 - Vendor Specific User Register 4
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG4 :: Undefined [31:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG4_Undefined_MASK 0xffffffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG4_Undefined_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG4_Undefined_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG5 - Vendor Specific User Register 5
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG5 :: Undefined [31:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG5_Undefined_MASK 0xffffffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG5_Undefined_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG5_Undefined_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG6 - Vendor Specific User Register 6
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG6 :: Undefined [31:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG6_Undefined_MASK 0xffffffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG6_Undefined_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG6_Undefined_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG7 - Vendor Specific User Register 7
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG7 :: Undefined [31:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG7_Undefined_MASK 0xffffffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG7_Undefined_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG7_Undefined_DEFAULT 0

/***************************************************************************
 *VENDOR_SPECIFIC_REG8 - Vendor Specific User Register 8
 ***************************************************************************/
/* PCIE_RC_CFG_VENDOR :: VENDOR_SPECIFIC_REG8 :: Undefined [31:00] */
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG8_Undefined_MASK 0xffffffff
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG8_Undefined_SHIFT 0
#define BCHP_PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG8_Undefined_DEFAULT 0

#endif /* #ifndef BCHP_PCIE_RC_CFG_VENDOR_H__ */

/* End of File */
