⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip27config.h

📁 上传linux-jx2410的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $Id: ip27config.h,v 1.1.1.1 2004/02/04 12:57:43 laputa Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License.  See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc. * Copyright (C) 2000 by Colin Ngam */#ifndef _ASM_SN_SN1_IP27CONFIG_H#define _ASM_SN_SN1_IP27CONFIG_H/* * Structure: 	ip27config_s * Typedef:	ip27config_t * Purpose: 	Maps out the region of the boot prom used to define *		configuration information. * Notes:       Corresponds to ip27config structure found in start.s. *		Fields are ulong where possible to facilitate IP27 PROM fetches. */#define CONFIG_INFO_OFFSET		0x60#define IP27CONFIG_ADDR			(LBOOT_BASE	    + \					 CONFIG_INFO_OFFSET)#define IP27CONFIG_ADDR_NODE(n)		(NODE_RBOOT_BASE(n) + \					 CONFIG_INFO_OFFSET)/* Offset to the config_type field within local ip27config structure */#define CONFIG_FLAGS_ADDR			(IP27CONFIG_ADDR + 72)/* Offset to the config_type field in the ip27config structure on  * node with nasid n */#define CONFIG_FLAGS_ADDR_NODE(n)		(IP27CONFIG_ADDR_NODE(n) + 72)/* Meaning of each valid bit in the config flags  * None are currently defined *//* Meaning of each mach_type value */#define SN1_MACH_TYPE 0/* * Since 800 ns works well with various HUB frequencies, (such as 360, * 380, 390, and 400 MHZ), we now use 800ns rtc cycle time instead of * 1 microsec. */#define IP27_RTC_FREQ			1250	/* 800ns cycle time */#if _LANGUAGE_Ctypedef	struct ip27config_s {		/* KEEP IN SYNC w/ start.s & below  */    uint		time_const;	/* Time constant 		    */    uint		r10k_mode;	/* R10k boot mode bits 		    */    uint64_t		magic;		/* CONFIG_MAGIC			    */    uint64_t		freq_cpu;	/* Hz 				    */    uint64_t		freq_hub;	/* Hz 				    */    uint64_t		freq_rtc;	/* Hz 				    */    uint		ecc_enable;	/* ECC enable flag		    */    uint		fprom_cyc;	/* FPROM_CYC speed control  	    */    uint		mach_type;	/* Inidicate IP27 (0) or Sn00 (1)    */    uint		check_sum_adj;	/* Used after config hdr overlay    */					/* to make the checksum 0 again     */    uint		flash_count;	/* Value incr'd on each PROM flash  */    uint		fprom_wr;	/* FPROM_WR speed control  	    */    uint		pvers_vers;	/* Prom version number		    */    uint		pvers_rev;	/* Prom revision number		    */    uint		config_type;	/* To support special configurations					 * (none currently defined)					 */} ip27config_t;typedef	struct {    uint		r10k_mode;	/* R10k boot mode bits 		    */    uint		freq_cpu;	/* Hz 				    */    uint		freq_hub;	/* Hz 				    */    char		fprom_cyc;	/* FPROM_CYC speed control  	    */    char		mach_type;	/* IP35(0) is only type defined      */    char		fprom_wr;	/* FPROM_WR speed control  	    */} config_modifiable_t;#define IP27CONFIG		(*(ip27config_t *) IP27CONFIG_ADDR)#define IP27CONFIG_NODE(n)	(*(ip27config_t *) IP27CONFIG_ADDR_NODE(n))#define SN00			0 /* IP35 has no Speedo equivalent *//* Get the config flags from local ip27config */#define CONFIG_FLAGS		(*(uint *) (CONFIG_FLAGS_ADDR))/* Get the config flags from ip27config on the node * with nasid n */#define CONFIG_FLAGS_NODE(n)	(*(uint *) (CONFIG_FLAGS_ADDR_NODE(n)))/* Macro to check if the local ip27config indicates a config * of 12 p 4io */#define CONFIG_12P4I		(0) /* IP35 has no 12p4i equivalent *//* Macro to check if the ip27config on node with nasid n * indicates a config of 12 p 4io */#define CONFIG_12P4I_NODE(n)	(0)#endif /* _LANGUAGE_C */#if _LANGUAGE_ASSEMBLY	.struct		0		/* KEEP IN SYNC WITH C structure */ip27c_time_const:	.word	0ip27c_r10k_mode:	.word	0ip27c_magic:		.dword	0ip27c_freq_cpu:		.dword	0ip27c_freq_hub:		.dword	0ip27c_freq_rtc:		.dword	0ip27c_ecc_enable:	.word	1ip27c_fprom_cyc:	.word	0ip27c_mach_type:	.word	0ip27c_check_sum_adj:	.word	0ip27c_flash_count:	.word	0ip27c_fprom_wr:		.word	0ip27c_pvers_vers:	.word	0ip27c_pvers_rev:	.word	0ip27c_config_type:	.word 	0	/* To recognize special configs */#endif /* _LANGUAGE_ASSEMBLY *//* * R10000 Configuration Cycle - These define the SYSAD values used * during the reset cycle. */#define	IP27C_R10000_KSEG0CA_SHFT	0#define	IP27C_R10000_KSEG0CA_MASK	(7 << IP27C_R10000_KSEG0CA_SHFT)#define	IP27C_R10000_KSEG0CA(_B)	 ((_B) << IP27C_R10000_KSEG0CA_SHFT)#define	IP27C_R10000_DEVNUM_SHFT	3#define	IP27C_R10000_DEVNUM_MASK	(3 << IP27C_R10000_DEVNUM_SHFT)#define	IP27C_R10000_DEVNUM(_B)		((_B) << IP27C_R10000_DEVNUM_SHFT)#define	IP27C_R10000_CRPT_SHFT		5#define	IP27C_R10000_CRPT_MASK		(1 << IP27C_R10000_CRPT_SHFT)#define	IP27C_R10000_CPRT(_B)		((_B)<<IP27C_R10000_CRPT_SHFT)#define	IP27C_R10000_PER_SHFT		6#define	IP27C_R10000_PER_MASK		(1 << IP27C_R10000_PER_SHFT)#define	IP27C_R10000_PER(_B)		((_B) << IP27C_R10000_PER_SHFT)#define	IP27C_R10000_PRM_SHFT		7#define	IP27C_R10000_PRM_MASK		(3 << IP27C_R10000_PRM_SHFT)#define	IP27C_R10000_PRM(_B)		((_B) << IP27C_R10000_PRM_SHFT)#define	IP27C_R10000_SCD_SHFT		9#define	IP27C_R10000_SCD_MASK		(0xf << IP27C_R10000_SCD_MASK)#define	IP27C_R10000_SCD(_B)		((_B) << IP27C_R10000_SCD_SHFT)#define	IP27C_R10000_SCBS_SHFT		13#define	IP27C_R10000_SCBS_MASK		(1 << IP27C_R10000_SCBS_SHFT)#define	IP27C_R10000_SCBS(_B)		(((_B)) << IP27C_R10000_SCBS_SHFT)#define	IP27C_R10000_SCCE_SHFT		14#define	IP27C_R10000_SCCE_MASK		(1 << IP27C_R10000_SCCE_SHFT)#define	IP27C_R10000_SCCE(_B)		((_B) << IP27C_R10000_SCCE_SHFT)#define	IP27C_R10000_ME_SHFT		15#define	IP27C_R10000_ME_MASK		(1 << IP27C_R10000_ME_SHFT)#define	IP27C_R10000_ME(_B)		((_B) << IP27C_R10000_ME_SHFT)#define	IP27C_R10000_SCS_SHFT		16#define	IP27C_R10000_SCS_MASK		(7 << IP27C_R10000_SCS_SHFT)#define	IP27C_R10000_SCS(_B)		((_B) << IP27C_R10000_SCS_SHFT)#define	IP27C_R10000_SCCD_SHFT		19#define	IP27C_R10000_SCCD_MASK		(7 << IP27C_R10000_SCCD_SHFT)#define	IP27C_R10000_SCCD(_B)		((_B) << IP27C_R10000_SCCD_SHFT)#define	IP27C_R10000_DDR_SHFT		23#define	IP27C_R10000_DDR_MASK		(1 << IP27C_R10000_DDR_SHFT)#define	IP27C_R10000_DDR(_B)		((_B) << IP27C_R10000_DDR_SHFT)#define	IP27C_R10000_SCCT_SHFT		25#define	IP27C_R10000_SCCT_MASK		(0xf << IP27C_R10000_SCCT_SHFT)#define	IP27C_R10000_SCCT(_B)		((_B) << IP27C_R10000_SCCT_SHFT)#define	IP27C_R10000_ODSC_SHFT		29#define IP27C_R10000_ODSC_MASK		(1 << IP27C_R10000_ODSC_SHFT)#define	IP27C_R10000_ODSC(_B)		((_B) << IP27C_R10000_ODSC_SHFT)#define	IP27C_R10000_ODSYS_SHFT		30#define	IP27C_R10000_ODSYS_MASK		(1 << IP27C_R10000_ODSYS_SHFT)#define	IP27C_R10000_ODSYS(_B)		((_B) << IP27C_R10000_ODSYS_SHFT)#define	IP27C_R10000_CTM_SHFT		31#define	IP27C_R10000_CTM_MASK		(1 << IP27C_R10000_CTM_SHFT)#define	IP27C_R10000_CTM(_B)		((_B) << IP27C_R10000_CTM_SHFT)#define IP27C_MHZ(x)			(1000000 * (x))#define IP27C_KHZ(x)			(1000 * (x))#define IP27C_MB(x)			((x) << 20)/* * PROM Configurations */#define CONFIG_MAGIC		0x69703237636f6e66/* The high 32 bits of the "mode bits".  Bits 7..0 contain one more * than the number of 5ms clocks in the 100ms "long delay" intervals * of the TRex reset sequence.  Bit 8 is the "synergy mode" bit. */#define CONFIG_TIME_CONST	0x15#define CONFIG_ECC_ENABLE	1#define CONFIG_CHECK_SUM_ADJ	0#define CONFIG_DEFAULT_FLASH_COUNT    0/* * Some promICEs have trouble if CONFIG_FPROM_SETUP is too low. * The nominal value for 100 MHz hub is 5, for 200MHz bedrock is 16. * any update to the below should also reflected in the logic in *   IO7prom/flashprom.c function _verify_config_info and _fill_in_config_info *//* default junk bus timing values to use */#define CONFIG_SYNERGY_ENABLE	0xff#define CONFIG_SYNERGY_SETUP	0xff#define CONFIG_UART_ENABLE	0x0c#define CONFIG_UART_SETUP	0x02#define CONFIG_FPROM_ENABLE	0x10#define CONFIG_FPROM_SETUP	0x10#define CONFIG_FREQ_RTC	IP27C_KHZ(IP27_RTC_FREQ)#if _LANGUAGE_C/* we are going to define all the known configs is a table * for building hex images we will pull out the particular * slice we care about by using the IP27_CONFIG_XX_XX as * entries into the table * to keep the table of reasonable size we only include the * values that differ across configurations * please note then that this makes assumptions about what * will and will not change across configurations *//* these numbers are as the are ordered in the table below */#define	IP27_CONFIG_UNKNOWN -1#define IP27_CONFIG_SN1_1MB_200_400_200_TABLE 0#define IP27_CONFIG_SN00_4MB_100_200_133_TABLE 1#define IP27_CONFIG_SN1_4MB_200_400_267_TABLE 2#define IP27_CONFIG_SN1_8MB_200_500_250_TABLE 3#define IP27_CONFIG_SN1_8MB_200_400_267_TABLE 4#define IP27_CONFIG_SN1_4MB_180_360_240_TABLE 5#define NUMB_IP_CONFIGS 6#ifdef DEF_IP_CONFIG_TABLE/* * N.B.: A new entry needs to be added here everytime a new config is added * The table is indexed by the PIMM PSC value */static int psc_to_flash_config[] = {        IP27_CONFIG_SN1_4MB_200_400_267_TABLE,	/* 0x0 */        IP27_CONFIG_SN1_8MB_200_500_250_TABLE,	/* 0x1 */        IP27_CONFIG_SN1_8MB_200_400_267_TABLE,	/* 0x2 */        IP27_CONFIG_UNKNOWN,	/* 0x3 */        IP27_CONFIG_UNKNOWN,	/* 0x4 */        IP27_CONFIG_UNKNOWN,	/* 0x5 */        IP27_CONFIG_UNKNOWN,	/* 0x6 */        IP27_CONFIG_UNKNOWN,	/* 0x7 */        IP27_CONFIG_SN1_4MB_180_360_240_TABLE,	/* 0x8 */        IP27_CONFIG_UNKNOWN,	/* 0x9 */        IP27_CONFIG_UNKNOWN,	/* 0xa */        IP27_CONFIG_UNKNOWN,	/* 0xb */        IP27_CONFIG_UNKNOWN,	/* 0xc */        IP27_CONFIG_UNKNOWN,	/* 0xd */        IP27_CONFIG_SN00_4MB_100_200_133_TABLE, /* 0xe  O200 PIMM for bringup */        IP27_CONFIG_UNKNOWN	/* 0xf == PIMM not installed */};static config_modifiable_t ip_config_table[NUMB_IP_CONFIGS] = {/* the 1MB_200_400_200 values (Generic settings, will work for any config.) */{	(IP27C_R10000_KSEG0CA(5) + \	 IP27C_R10000_DEVNUM(0)	 + \	 IP27C_R10000_CPRT(0)	 + \	 IP27C_R10000_PER(0)	 + \	 IP27C_R10000_PRM(3)	 + \	 IP27C_R10000_SCD(3)	 + \	 IP27C_R10000_SCBS(1)	 + \	 IP27C_R10000_SCCE(0)	 + \	 IP27C_R10000_ME(1)	 + \	 IP27C_R10000_SCS(1)	 + \	 IP27C_R10000_SCCD(3)	 + \	 IP27C_R10000_SCCT(9)	 + \	 IP27C_R10000_ODSC(0)	 + \	 IP27C_R10000_ODSYS(1)	 + \	 IP27C_R10000_CTM(0)),	IP27C_MHZ(400),	IP27C_MHZ(200),	CONFIG_FPROM_SETUP,	SN1_MACH_TYPE,	CONFIG_FPROM_ENABLE},/* the 4MB_100_200_133 values (O200 PIMM w/translation board, PSC 0xe) * (SysAD at 100MHz (SCD=3), and bedrock core at 200 MHz) */{ /* ODSYS == 0 means HSTL1 on SysAD bus; other PIMMs use HSTL2 */	(IP27C_R10000_KSEG0CA(5) + \	 IP27C_R10000_DEVNUM(0)	 + \	 IP27C_R10000_CPRT(0)	 + \	 IP27C_R10000_PER(0)	 + \	 IP27C_R10000_PRM(3)	 + \	 IP27C_R10000_SCD(3)	 + \	 IP27C_R10000_SCBS(1)	 + \

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -