/*---------------------------------------------------------------------
 *                                                                     
 *                  I N T E L   P R O P R I E T A R Y                   
 *                                                                       
 *      COPYRIGHT (c)  2001 BY  INTEL  CORPORATION.  ALL RIGHTS          
 *      RESERVED.   NO  PART  OF THIS PROGRAM  OR  PUBLICATION  MAY      
 *      BE  REPRODUCED,   TRANSMITTED,   TRANSCRIBED,   STORED  IN  A    
 *      RETRIEVAL SYSTEM, OR TRANSLATED INTO ANY LANGUAGE OR COMPUTER    
 *      LANGUAGE IN ANY FORM OR BY ANY MEANS, ELECTRONIC, MECHANICAL,    
 *      MAGNETIC,  OPTICAL,  CHEMICAL, MANUAL, OR OTHERWISE,  WITHOUT    
 *      THE PRIOR WRITTEN PERMISSION OF :                                
 *                                                                       
 *                         INTEL  CORPORATION                            
 *                                                                      
 *                      2200 MISSION COLLEGE BLVD                        
 *                                                                       
 *                SANTA  CLARA,  CALIFORNIA  95052-8119                  
 *                                                                       
 *---------------------------------------------------------------------
 *
 *        File Name: dl_system.h
 *
 *        Purpose: This file contains system wide parameters
 *                 that are customized for a given application.
 *
 *-------------------------------------------------------------------*/
#ifndef	__DL_SYSTEM__H__
#define	__DL_SYSTEM__H__

/* Define chip. */
#ifndef IXP2400
#define IXP2400
#endif

/* Put IPv4 counters in scratch. */
#define IPV4_COUNTERS_SCRATCH

/*	Scratch for communicating between scheduler and queue manager */
#define RING_SIZE_128 		0
#define RING_SIZE_256		1
#define RING_SIZE_512		2
#define RING_SIZE_1024		3

#define INGRESS_SCHEDULER_DEQUEUE_RING_ID		 	SCHEDULER_TO_QM_SCR_RING
#define INGRESS_SCHEDULER_DEQUEUE_RING_BASE_ID		csr_scratch_ring_base_6
#define INGRESS_SCHEDULER_DEQUEUE_RING_HEAD_ID		csr_scratch_ring_head_6	
#define INGRESS_SCHEDULER_DEQUEUE_RING_TAIL_ID		csr_scratch_ring_tail_6
#define INGRESS_SCHEDULER_DEQUEUE_RING_SIZE			RING_SIZE_512
#define INGRESS_SCHEDULER_DEQUEUE_RING_BASE			SCHEDULER_TO_QM_SCR_RING_BASE				
#define	INGRESS_SCHEDULER_DEQUEUE_RING_FULL_VALUE	inp_state_scr_ring6_full 

#define	QM_RING_NUMBER								IPV4_RING_OUT

/* Include default settings. */

/* This file is also used by script files that setup the system when run 
 * in simulation mode. When symbol IXP_SCRIPTS is defined, it indicates
 * that scripts are using this file. Since script files cannot access
 * path definitions, they should not encounter '#include <file>'. Instead
 * they include the <file> using Simulation -> Options -> Startup.
 */
#ifndef IXP_SCRIPTS
#include <dl_ingress_system_default.h>
#endif

/*ECE 526 begin*/

#ifndef		BID_COUNT
#define		BID_COUNT			0x2A
#endif

/*ECE 526 end*/

/*ECE 526 begin*/

/*---------------------------------------------------------------------
 * Base address for IPv4 packets counters.
 *-------------------------------------------------------------------*/


#ifndef		COUNT_SRAM_ADDR
#define   	COUNT_SRAM_ADDR   	0x40300200
#endif

/*ECE 526 end*/

#endif /* __DL_SYSTEM__H__ */