/***************************************************************************
 *     Copyright (c) 1999-2009, 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         Tue Nov 17 17:11:09 2009
 *                 MD5 Checksum         c5a869a181cd53ce96d34b0e7ab357f3
 *
 * 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/7420/rdb/c0/bchp_mips_biu.h $
 * 
 * Hydra_Software_Devel/1   11/17/09 9:33p albertl
 * SW7420-455: Initial revision.
 *
 ***************************************************************************/

#ifndef BCHP_MIPS_BIU_H__
#define BCHP_MIPS_BIU_H__

/***************************************************************************
 *MIPS_BIU - MIPS_BIU Registers
 ***************************************************************************/
#define BCHP_MIPS_BIU_EXCEPTION_VECTOR_OFFSET    0x00440400 /* "Exception Vector Offset Address" */
#define BCHP_MIPS_BIU_PROCESSOR_ID               0x00440404 /* Processor ID Register. */

/***************************************************************************
 *EXCEPTION_VECTOR_OFFSET - "Exception Vector Offset Address"
 ***************************************************************************/
/* MIPS_BIU :: EXCEPTION_VECTOR_OFFSET :: ADDRS [31:00] */
#define BCHP_MIPS_BIU_EXCEPTION_VECTOR_OFFSET_ADDRS_MASK           0xffffffff
#define BCHP_MIPS_BIU_EXCEPTION_VECTOR_OFFSET_ADDRS_SHIFT          0

/***************************************************************************
 *PROCESSOR_ID - Processor ID Register.
 ***************************************************************************/
/* MIPS_BIU :: PROCESSOR_ID :: reserved0 [31:08] */
#define BCHP_MIPS_BIU_PROCESSOR_ID_reserved0_MASK                  0xffffff00
#define BCHP_MIPS_BIU_PROCESSOR_ID_reserved0_SHIFT                 8

/* MIPS_BIU :: PROCESSOR_ID :: ID [07:00] */
#define BCHP_MIPS_BIU_PROCESSOR_ID_ID_MASK                         0x000000ff
#define BCHP_MIPS_BIU_PROCESSOR_ID_ID_SHIFT                        0

#endif /* #ifndef BCHP_MIPS_BIU_H__ */

/* End of File */
