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

📄 ppmc8260.h

📁 AT91RM9200的完整启动代码:包括loader, boot及U-boot三部分均已编译通过!欢迎下载使用!
💻 H
📖 第 1 页 / 共 3 页
字号:
/* valid baudrates */#define CFG_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }/* * Low Level Configuration Settings * (address mappings, register initial values, etc.) * You should know what you are doing if you make changes here. */#if defined(CONFIG_ETHER_ON_SCC) && (CONFIG_ETHER_INDEX == 1)/* *  Attention: This is board specific *  - RX clk is CLK11 *  - TX clk is CLK12 */#define CFG_CMXSCR_VALUE       (CMXSCR_RS1CS_CLK11  |\				CMXSCR_TS1CS_CLK12)#elif defined(CONFIG_ETHER_ON_FCC) && (CONFIG_ETHER_INDEX == 2)/* * Attention: this is board-specific * - Rx-CLK is CLK13 * - Tx-CLK is CLK14 * - Select bus for bd/buffers (see 28-13) * - Enable Full Duplex in FSMR */#define CFG_CMXFCR_MASK		(CMXFCR_FC2|CMXFCR_RF2CS_MSK|CMXFCR_TF2CS_MSK)#define CFG_CMXFCR_VALUE	(CMXFCR_RF2CS_CLK13|CMXFCR_TF2CS_CLK14)#define CFG_CPMFCR_RAMTYPE	0#define CFG_FCC_PSMR		(FCC_PSMR_FDE | FCC_PSMR_LPB)#endif	/* CONFIG_ETHER_INDEX */#define CFG_FLASH_BASE	CFG_FLASH0_BASE#define CFG_FLASH_SIZE	CFG_FLASH0_SIZE#define CFG_SDRAM_BASE	CFG_SDRAM0_BASE#define CFG_SDRAM_SIZE	(CFG_SDRAM0_SIZE + CFG_SDRAM1_SIZE)/*----------------------------------------------------------------------- * Hard Reset Configuration Words */#if defined(CFG_PPMC_BOOT_LOW)#  define  CFG_PPMC_HRCW_BOOT_FLAGS  (HRCW_CIP | HRCW_BMS)#else#  define  CFG_PPMC_HRCW_BOOT_FLAGS  (0)#endif /* defined(CFG_PPMC_BOOT_LOW) *//* get the HRCW ISB field from CFG_IMMR */#define CFG_PPMC_HRCW_IMMR	( ((CFG_IMMR & 0x10000000) >> 10) | \				  ((CFG_IMMR & 0x01000000) >>  7) | \				  ((CFG_IMMR & 0x00100000) >>  4) )#define CFG_HRCW_MASTER		( HRCW_EBM				| \				  HRCW_BPS11				| \				  HRCW_L2CPC10				| \				  HRCW_DPPC00				| \				  CFG_PPMC_HRCW_IMMR			| \				  HRCW_MMR00				| \				  HRCW_LBPC00				| \				  HRCW_APPC10				| \				  HRCW_CS10PC00				| \				  (CFG_PPMC_MODCK_H & HRCW_MODCK_H1111) | \				  CFG_PPMC_HRCW_BOOT_FLAGS )/* no slaves */#define CFG_HRCW_SLAVE1		0#define CFG_HRCW_SLAVE2		0#define CFG_HRCW_SLAVE3		0#define CFG_HRCW_SLAVE4		0#define CFG_HRCW_SLAVE5		0#define CFG_HRCW_SLAVE6		0#define CFG_HRCW_SLAVE7		0/*----------------------------------------------------------------------- * Definitions for initial stack pointer and data area (in DPRAM) */#define CFG_INIT_RAM_ADDR	CFG_IMMR#define CFG_INIT_RAM_END	0x4000	/* End of used area in DPRAM	*/#define CFG_GBL_DATA_SIZE	128	/* bytes reserved for initial data */#define CFG_GBL_DATA_OFFSET	(CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)#define CFG_INIT_SP_OFFSET	CFG_GBL_DATA_OFFSET/*----------------------------------------------------------------------- * Start addresses for the final memory configuration * (Set up by the startup code) * Please note that CFG_SDRAM_BASE _must_ start at 0 * Note also that the logic that sets CFG_RAMBOOT is platform dependent. */#define CFG_MONITOR_BASE	CFG_FLASH0_BASE#ifndef CFG_MONITOR_BASE#define CFG_MONITOR_BASE	0x0ff80000#endif#if (CFG_MONITOR_BASE < CFG_FLASH_BASE)#  define CFG_RAMBOOT#endif#define CFG_MONITOR_LEN		(256 << 10)	/* Reserve 374 kB for Monitor	*/#define CFG_MALLOC_LEN		(128 << 10)	/* Reserve 128 kB for malloc()	*//* * For booting Linux, the board info and command line data * have to be in the first 8 MB of memory, since this is * the maximum mapped by the Linux kernel during initialization. */#define CFG_BOOTMAPSZ		(8 << 20)	/* Initial Memory map for Linux *//*----------------------------------------------------------------------- * FLASH and environment organization */#define CFG_FLASH_CFI		1	/* Flash is CFI conformant		*/#define CFG_MAX_FLASH_SECT	128	/* max number of sectors on one chip	*/#define CFG_MAX_FLASH_BANKS	1	/* max number of memory banks		*/#define CFG_FLASH_INCREMENT	0	/* there is only one bank		*/#define CFG_FLASH_PROTECTION	1	/* use hardware protection		*/#define CFG_FLASH_USE_BUFFER_WRITE 1    /* use buffered writes (20x faster)     */#ifndef CFG_RAMBOOT#  define CFG_ENV_IS_IN_FLASH	1#  ifdef CFG_ENV_IN_OWN_SECT#    define CFG_ENV_ADDR	(CFG_MONITOR_BASE + 0x40000)#    define CFG_ENV_SECT_SIZE	0x40000#  else#    define CFG_ENV_ADDR (CFG_FLASH_BASE + CFG_MONITOR_LEN - CFG_ENV_SECT_SIZE)#    define CFG_ENV_SIZE	0x1000	/* Total Size of Environment Sector	*/#    define CFG_ENV_SECT_SIZE	0x40000 /* see README - env sect real size	*/#  endif /* CFG_ENV_IN_OWN_SECT */#else#  define CFG_ENV_IS_IN_FLASH	1#  define CFG_ENV_ADDR		(CFG_FLASH_BASE + 0x40000)#define CFG_ENV_SIZE		0x1000#  define CFG_ENV_SECT_SIZE	0x40000#endif /* CFG_RAMBOOT *//*----------------------------------------------------------------------- * Cache Configuration */#define CFG_CACHELINE_SIZE	32	/* For MPC8260 CPU */#if (CONFIG_COMMANDS & CFG_CMD_KGDB)# define CFG_CACHELINE_SHIFT	5	/* log base 2 of the above value */#endif/*----------------------------------------------------------------------- * HIDx - Hardware Implementation-dependent Registers			 2-11 *----------------------------------------------------------------------- * HID0 also contains cache control - initially enable both caches and * invalidate contents, then the final state leaves only the instruction * cache enabled. Note that Power-On and Hard reset invalidate the caches, * but Soft reset does not. * * HID1 has only read-only information - nothing to set. */#define CFG_HID0_INIT	(HID0_ICE  |\			 HID0_DCE  |\			 HID0_ICFI |\			 HID0_DCI  |\			 HID0_IFEM |\			 HID0_ABE)#define CFG_HID0_FINAL	(HID0_ICE  |\			 HID0_IFEM |\			 HID0_ABE  |\			 HID0_EMCP)#define CFG_HID2	0/*----------------------------------------------------------------------- * RMR - Reset Mode Register *----------------------------------------------------------------------- */#define CFG_RMR		0/*----------------------------------------------------------------------- * BCR - Bus Configuration					 4-25 *----------------------------------------------------------------------- */#define CFG_BCR		(BCR_EBM      |\			 0x30000000)/*----------------------------------------------------------------------- * SIUMCR - SIU Module Configuration				 4-31 * Ref Section 4.3.2.6	page 4-31 *----------------------------------------------------------------------- */#define CFG_SIUMCR	(SIUMCR_ESE	 |\			 SIUMCR_DPPC00	 |\			 SIUMCR_L2CPC10	 |\			 SIUMCR_LBPC00	 |\			 SIUMCR_APPC10	 |\			 SIUMCR_CS10PC00 |\			 SIUMCR_BCTLC00	 |\			 SIUMCR_MMR00)/*----------------------------------------------------------------------- * SYPCR - System Protection Control				11-9 * SYPCR can only be written once after reset! *----------------------------------------------------------------------- * Watchdog & Bus Monitor Timer max, 60x Bus Monitor enable */#define CFG_SYPCR	(SYPCR_SWTC |\			 SYPCR_BMT  |\			 SYPCR_PBME |\			 SYPCR_LBME |\			 SYPCR_SWRI |\			 SYPCR_SWP)/*----------------------------------------------------------------------- * TMCNTSC - Time Counter Status and Control			 4-40 *----------------------------------------------------------------------- * Clear once per Second and Alarm Interrupt Status, Set 32KHz timersclk, * and enable Time Counter */#define CFG_TMCNTSC	(TMCNTSC_SEC |\			 TMCNTSC_ALR |\			 TMCNTSC_TCF |\			 TMCNTSC_TCE)/*----------------------------------------------------------------------- * PISCR - Periodic Interrupt Status and Control		 4-42 *----------------------------------------------------------------------- * Clear Periodic Interrupt Status, Set 32KHz timersclk, and enable * Periodic timer */#define CFG_PISCR	(PISCR_PS  |\			 PISCR_PTF |\			 PISCR_PTE)/*----------------------------------------------------------------------- * SCCR - System Clock Control					 9-8 *----------------------------------------------------------------------- */#define CFG_SCCR	0/*----------------------------------------------------------------------- * RCCR - RISC Controller Configuration				13-7 *----------------------------------------------------------------------- */#define CFG_RCCR	0/* * Initialize Memory Controller: * * Bank Bus	Machine PortSz	Device * ---- ---	------- ------	------ *  0	60x	GPCM	32 bit	FLASH (SIMM - 32MB) * *  1	unused *  2	60x	SDRAM	64 bit	SDRAM (DIMM - 128MB) *  3	60x	SDRAM	64 bit	SDRAM (DIMM - 128MB) *  4	Local	SDRAM	32 bit	SDRAM (on board - 16MB) *  5	60x	GPCM	 8 bit	Mailbox/EEPROM (8KB) *  6	60x	GPCM	 8 bit	FLASH  (on board - 2MB) * *  7	60x	GPCM	 8 bit	LEDs, switches * *  (*) This configuration requires the PPMC8260 be configured *	so that *CS0 goes to the FLASH SIMM, and *CS6 goes to *	the on board FLASH. In other words, JP24 should have *	pins 1 and 2 jumpered and pins 3 and 4 jumpered. * *//*----------------------------------------------------------------------- * BR0,BR1 - Base Register *     Ref: Section 10.3.1 on page 10-14 * OR0,OR1 - Option Register *     Ref: Section 10.3.2 on page 10-18 *----------------------------------------------------------------------- *//* Bank 0,1 - FLASH SIMM * * This expects the FLASH SIMM to be connected to *CS0 * It consists of 4 AM29F080B parts. * * Note: For the 4 MB SIMM, *CS1 is unused. *//* BR0 is configured as follows: * *     - Base address of 0xFE000000 *     - 32 bit port size *     - Data errors checking is disabled *     - Read and write access *     - GPCM 60x bus *     - Access are handled by the memory controller according to MSEL *     - Not used for atomic operations *     - No data pipelining is done *     - Valid */#define CFG_BR0_PRELIM	((CFG_FLASH0_BASE & BRx_BA_MSK) |\			 BRx_PS_32			|\			 BRx_MS_GPCM_P			|\			 BRx_V)/* OR0 is configured as follows: * *     - 32 MB *     - *BCTL0 is asserted upon access to the current memory bank *     - *CW / *WE are negated a quarter of a clock earlier *     - *CS is output at the same time as the address lines *     - Uses a clock cycle length of 5 *     - *PSDVAL is generated internally by the memory controller *	 unless *GTA is asserted earlier externally. *     - Relaxed timing is generated by the GPCM for accesses *	 initiated to this memory region. *     - One idle clock is inserted between a read access from the *	 current bank and the next access. */#define CFG_OR0_PRELIM	(MEG_TO_AM(CFG_FLASH0_SIZE)	|\			 ORxG_CSNT			|\			 ORxG_ACS_DIV1			|\			 ORxG_SCY_5_CLK			|\			 ORxG_TRLX			|\			 ORxG_EHTR)/*----------------------------------------------------------------------- * BR2,BR3 - Base Register *     Ref: Section 10.3.1 on page 10-14 * OR2,OR3 - Option Register *     Ref: Section 10.3.2 on page 10-16 *----------------------------------------------------------------------- *//* * Bank 2,3 - 128 MB SDRAM DIMM *//* With a 128 MB DIMM, the BR2 is configured as follows: * *     - Base address of 0x00000000/0x08000000

⌨️ 快捷键说明

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