📄 ppmc8260.h
字号:
/* 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 + -