1*0f2b721cSHolger Brunck /* 2*0f2b721cSHolger Brunck * (C) Copyright 2012 3*0f2b721cSHolger Brunck * Holger Brunck, Keymile GmbH Hannover, <holger.brunck@keymile.com> 4*0f2b721cSHolger Brunck * Christian Herzig, Keymile AG Switzerland, <christian.herzig@keymile.com> 5*0f2b721cSHolger Brunck * 6*0f2b721cSHolger Brunck * This program is free software; you can redistribute it and/or 7*0f2b721cSHolger Brunck * modify it under the terms of the GNU General Public License as 8*0f2b721cSHolger Brunck * published by the Free Software Foundation; either version 2 of 9*0f2b721cSHolger Brunck * the License, or (at your option) any later version. 10*0f2b721cSHolger Brunck */ 11*0f2b721cSHolger Brunck 12*0f2b721cSHolger Brunck #ifndef __CONFIG_H 13*0f2b721cSHolger Brunck #define __CONFIG_H 14*0f2b721cSHolger Brunck 15*0f2b721cSHolger Brunck /* KMBEC FPGA (PRIO) */ 16*0f2b721cSHolger Brunck #define CONFIG_SYS_KMBEC_FPGA_BASE 0xE8000000 17*0f2b721cSHolger Brunck #define CONFIG_SYS_KMBEC_FPGA_SIZE 64 18*0f2b721cSHolger Brunck 19*0f2b721cSHolger Brunck #if defined CONFIG_KMETER1 20*0f2b721cSHolger Brunck #define CONFIG_HOSTNAME kmeter1 21*0f2b721cSHolger Brunck #define CONFIG_KM_BOARD_NAME "kmeter1" 22*0f2b721cSHolger Brunck #define CONFIG_KM_DEF_NETDEV "netdev=eth2\0" 23*0f2b721cSHolger Brunck #elif defined CONFIG_KMCOGE5NE 24*0f2b721cSHolger Brunck #define CONFIG_HOSTNAME kmcoge5ne 25*0f2b721cSHolger Brunck #define CONFIG_KM_BOARD_NAME "kmcoge5ne" 26*0f2b721cSHolger Brunck #define CONFIG_KM_DEF_NETDEV "netdev=eth1\0" 27*0f2b721cSHolger Brunck #define CONFIG_CMD_NAND 28*0f2b721cSHolger Brunck #define CONFIG_NAND_KMETER1 29*0f2b721cSHolger Brunck #define CONFIG_SYS_MAX_NAND_DEVICE 1 30*0f2b721cSHolger Brunck #define NAND_MAX_CHIPS 1 31*0f2b721cSHolger Brunck #define CONFIG_SYS_NAND_BASE CONFIG_SYS_KMBEC_FPGA_BASE /* PRIO_BASE_ADDRESS */ 32*0f2b721cSHolger Brunck 33*0f2b721cSHolger Brunck #define CONFIG_KM_UBI_PARTITION_NAME_BOOT "ubi0" 34*0f2b721cSHolger Brunck #define CONFIG_KM_UBI_PARTITION_NAME_APP "ubi1" 35*0f2b721cSHolger Brunck #define MTDIDS_DEFAULT "nor0=boot,nand0=app" 36*0f2b721cSHolger Brunck 37*0f2b721cSHolger Brunck #define MTDPARTS_DEFAULT "mtdparts=" \ 38*0f2b721cSHolger Brunck "boot:" \ 39*0f2b721cSHolger Brunck "768k(u-boot)," \ 40*0f2b721cSHolger Brunck "128k(env)," \ 41*0f2b721cSHolger Brunck "128k(envred)," \ 42*0f2b721cSHolger Brunck "-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");" \ 43*0f2b721cSHolger Brunck "app:" \ 44*0f2b721cSHolger Brunck "-(" CONFIG_KM_UBI_PARTITION_NAME_APP ");" 45*0f2b721cSHolger Brunck #else 46*0f2b721cSHolger Brunck #error ("Board not supported") 47*0f2b721cSHolger Brunck #endif 48*0f2b721cSHolger Brunck 49*0f2b721cSHolger Brunck /* 50*0f2b721cSHolger Brunck * High Level Configuration Options 51*0f2b721cSHolger Brunck */ 52*0f2b721cSHolger Brunck #define CONFIG_QE /* Has QE */ 53*0f2b721cSHolger Brunck #define CONFIG_MPC8360 /* MPC8360 CPU specific */ 54*0f2b721cSHolger Brunck 55*0f2b721cSHolger Brunck #define CONFIG_SYS_TEXT_BASE 0xF0000000 56*0f2b721cSHolger Brunck 57*0f2b721cSHolger Brunck /* include common defines/options for all 83xx Keymile boards */ 58*0f2b721cSHolger Brunck #include "km/km83xx-common.h" 59*0f2b721cSHolger Brunck 60*0f2b721cSHolger Brunck /* 61*0f2b721cSHolger Brunck * System IO Setup 62*0f2b721cSHolger Brunck */ 63*0f2b721cSHolger Brunck #define CONFIG_SYS_SICRH (SICRH_UC1EOBI | SICRH_UC2E1OBI) 64*0f2b721cSHolger Brunck 65*0f2b721cSHolger Brunck /* 66*0f2b721cSHolger Brunck * Hardware Reset Configuration Word 67*0f2b721cSHolger Brunck */ 68*0f2b721cSHolger Brunck #define CONFIG_SYS_HRCW_LOW (\ 69*0f2b721cSHolger Brunck HRCWL_CSB_TO_CLKIN_4X1 | \ 70*0f2b721cSHolger Brunck HRCWL_CORE_TO_CSB_2X1 | \ 71*0f2b721cSHolger Brunck HRCWL_CE_PLL_VCO_DIV_2 | \ 72*0f2b721cSHolger Brunck HRCWL_CE_TO_PLL_1X6) 73*0f2b721cSHolger Brunck 74*0f2b721cSHolger Brunck #define CONFIG_SYS_HRCW_HIGH (\ 75*0f2b721cSHolger Brunck HRCWH_CORE_ENABLE | \ 76*0f2b721cSHolger Brunck HRCWH_FROM_0X00000100 | \ 77*0f2b721cSHolger Brunck HRCWH_BOOTSEQ_DISABLE | \ 78*0f2b721cSHolger Brunck HRCWH_SW_WATCHDOG_DISABLE | \ 79*0f2b721cSHolger Brunck HRCWH_ROM_LOC_LOCAL_16BIT | \ 80*0f2b721cSHolger Brunck HRCWH_BIG_ENDIAN | \ 81*0f2b721cSHolger Brunck HRCWH_LALE_EARLY | \ 82*0f2b721cSHolger Brunck HRCWH_LDP_CLEAR) 83*0f2b721cSHolger Brunck 84*0f2b721cSHolger Brunck /** 85*0f2b721cSHolger Brunck * DDR RAM settings 86*0f2b721cSHolger Brunck */ 87*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_SDRAM_CFG (\ 88*0f2b721cSHolger Brunck SDRAM_CFG_SDRAM_TYPE_DDR2 | \ 89*0f2b721cSHolger Brunck SDRAM_CFG_SREN | \ 90*0f2b721cSHolger Brunck SDRAM_CFG_HSE) 91*0f2b721cSHolger Brunck 92*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_SDRAM_CFG2 0x00401000 93*0f2b721cSHolger Brunck 94*0f2b721cSHolger Brunck #ifdef CONFIG_KMCOGE5NE 95*0f2b721cSHolger Brunck /** 96*0f2b721cSHolger Brunck * KMCOGE5NE has 512 MB RAM 97*0f2b721cSHolger Brunck */ 98*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CS0_CONFIG (\ 99*0f2b721cSHolger Brunck CSCONFIG_EN | \ 100*0f2b721cSHolger Brunck CSCONFIG_AP | \ 101*0f2b721cSHolger Brunck CSCONFIG_ODT_RD_ONLY_CURRENT | \ 102*0f2b721cSHolger Brunck CSCONFIG_BANK_BIT_3 | \ 103*0f2b721cSHolger Brunck CSCONFIG_ROW_BIT_13 | \ 104*0f2b721cSHolger Brunck CSCONFIG_COL_BIT_10) 105*0f2b721cSHolger Brunck #else 106*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CS0_CONFIG (CSCONFIG_EN | CSCONFIG_AP | \ 107*0f2b721cSHolger Brunck CSCONFIG_ROW_BIT_13 | \ 108*0f2b721cSHolger Brunck CSCONFIG_COL_BIT_10 | \ 109*0f2b721cSHolger Brunck CSCONFIG_ODT_RD_ONLY_CURRENT) 110*0f2b721cSHolger Brunck #endif 111*0f2b721cSHolger Brunck 112*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CLK_CNTL (\ 113*0f2b721cSHolger Brunck DDR_SDRAM_CLK_CNTL_CLK_ADJUST_05) 114*0f2b721cSHolger Brunck 115*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_INTERVAL (\ 116*0f2b721cSHolger Brunck (0x080 << SDRAM_INTERVAL_BSTOPRE_SHIFT) | \ 117*0f2b721cSHolger Brunck (0x203 << SDRAM_INTERVAL_REFINT_SHIFT)) 118*0f2b721cSHolger Brunck 119*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CS0_BNDS 0x0000007f 120*0f2b721cSHolger Brunck 121*0f2b721cSHolger Brunck #define CONFIG_SYS_DDRCDR (\ 122*0f2b721cSHolger Brunck DDRCDR_EN | \ 123*0f2b721cSHolger Brunck DDRCDR_Q_DRN) 124*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_MODE 0x47860452 125*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_MODE2 0x8080c000 126*0f2b721cSHolger Brunck 127*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_0 (\ 128*0f2b721cSHolger Brunck (2 << TIMING_CFG0_MRS_CYC_SHIFT) | \ 129*0f2b721cSHolger Brunck (8 << TIMING_CFG0_ODT_PD_EXIT_SHIFT) | \ 130*0f2b721cSHolger Brunck (6 << TIMING_CFG0_PRE_PD_EXIT_SHIFT) | \ 131*0f2b721cSHolger Brunck (2 << TIMING_CFG0_ACT_PD_EXIT_SHIFT) | \ 132*0f2b721cSHolger Brunck (0 << TIMING_CFG0_WWT_SHIFT) | \ 133*0f2b721cSHolger Brunck (0 << TIMING_CFG0_RRT_SHIFT) | \ 134*0f2b721cSHolger Brunck (0 << TIMING_CFG0_WRT_SHIFT) | \ 135*0f2b721cSHolger Brunck (0 << TIMING_CFG0_RWT_SHIFT)) 136*0f2b721cSHolger Brunck 137*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_1 ((TIMING_CFG1_CASLAT_50) | \ 138*0f2b721cSHolger Brunck (2 << TIMING_CFG1_WRTORD_SHIFT) | \ 139*0f2b721cSHolger Brunck (2 << TIMING_CFG1_ACTTOACT_SHIFT) | \ 140*0f2b721cSHolger Brunck (3 << TIMING_CFG1_WRREC_SHIFT) | \ 141*0f2b721cSHolger Brunck (7 << TIMING_CFG1_REFREC_SHIFT) | \ 142*0f2b721cSHolger Brunck (3 << TIMING_CFG1_ACTTORW_SHIFT) | \ 143*0f2b721cSHolger Brunck (8 << TIMING_CFG1_ACTTOPRE_SHIFT) | \ 144*0f2b721cSHolger Brunck (3 << TIMING_CFG1_PRETOACT_SHIFT)) 145*0f2b721cSHolger Brunck 146*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_2 (\ 147*0f2b721cSHolger Brunck (0xa << TIMING_CFG2_FOUR_ACT_SHIFT) | \ 148*0f2b721cSHolger Brunck (3 << TIMING_CFG2_CKE_PLS_SHIFT) | \ 149*0f2b721cSHolger Brunck (2 << TIMING_CFG2_WR_DATA_DELAY_SHIFT) | \ 150*0f2b721cSHolger Brunck (2 << TIMING_CFG2_RD_TO_PRE_SHIFT) | \ 151*0f2b721cSHolger Brunck (4 << TIMING_CFG2_WR_LAT_DELAY_SHIFT) | \ 152*0f2b721cSHolger Brunck (5 << TIMING_CFG2_CPO_SHIFT) | \ 153*0f2b721cSHolger Brunck (0 << TIMING_CFG2_ADD_LAT_SHIFT)) 154*0f2b721cSHolger Brunck 155*0f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_3 0x00000000 156*0f2b721cSHolger Brunck 157*0f2b721cSHolger Brunck /* EEprom support */ 158*0f2b721cSHolger Brunck #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 159*0f2b721cSHolger Brunck 160*0f2b721cSHolger Brunck /* 161*0f2b721cSHolger Brunck * Local Bus Configuration & Clock Setup 162*0f2b721cSHolger Brunck */ 163*0f2b721cSHolger Brunck #define CONFIG_SYS_LCRR_DBYP LCRR_DBYP 164*0f2b721cSHolger Brunck #define CONFIG_SYS_LCRR_EADC LCRR_EADC_2 165*0f2b721cSHolger Brunck #define CONFIG_SYS_LCRR_CLKDIV LCRR_CLKDIV_4 166*0f2b721cSHolger Brunck 167*0f2b721cSHolger Brunck /* 168*0f2b721cSHolger Brunck * PAXE on the local bus CS3 169*0f2b721cSHolger Brunck */ 170*0f2b721cSHolger Brunck #define CONFIG_SYS_PAXE_BASE 0xA0000000 171*0f2b721cSHolger Brunck #define CONFIG_SYS_PAXE_SIZE 256 172*0f2b721cSHolger Brunck 173*0f2b721cSHolger Brunck #define CONFIG_SYS_LBLAWBAR3_PRELIM CONFIG_SYS_PAXE_BASE 174*0f2b721cSHolger Brunck 175*0f2b721cSHolger Brunck #define CONFIG_SYS_LBLAWAR3_PRELIM 0x8000001C /* 512MB window size */ 176*0f2b721cSHolger Brunck 177*0f2b721cSHolger Brunck #define CONFIG_SYS_BR3_PRELIM (\ 178*0f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 179*0f2b721cSHolger Brunck (1 << BR_PS_SHIFT) | \ 180*0f2b721cSHolger Brunck BR_V) 181*0f2b721cSHolger Brunck 182*0f2b721cSHolger Brunck #define CONFIG_SYS_OR3_PRELIM (\ 183*0f2b721cSHolger Brunck MEG_TO_AM(CONFIG_SYS_PAXE_SIZE) | \ 184*0f2b721cSHolger Brunck OR_GPCM_CSNT | \ 185*0f2b721cSHolger Brunck OR_GPCM_ACS_DIV2 | \ 186*0f2b721cSHolger Brunck OR_GPCM_SCY_2 | \ 187*0f2b721cSHolger Brunck OR_GPCM_TRLX | \ 188*0f2b721cSHolger Brunck OR_GPCM_EAD) 189*0f2b721cSHolger Brunck 190*0f2b721cSHolger Brunck #ifdef CONFIG_KMCOGE5NE 191*0f2b721cSHolger Brunck /* 192*0f2b721cSHolger Brunck * BFTIC3 on the local bus CS4 193*0f2b721cSHolger Brunck */ 194*0f2b721cSHolger Brunck #define CONFIG_SYS_BFTIC3_BASE 0xB0000000 195*0f2b721cSHolger Brunck #define CONFIG_SYS_BFTIC3_SIZE 256 196*0f2b721cSHolger Brunck 197*0f2b721cSHolger Brunck #define CONFIG_SYS_BR4_PRELIM (\ 198*0f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE |\ 199*0f2b721cSHolger Brunck (1 << BR_PS_SHIFT) | \ 200*0f2b721cSHolger Brunck BR_V) 201*0f2b721cSHolger Brunck 202*0f2b721cSHolger Brunck #define CONFIG_SYS_OR4_PRELIM (\ 203*0f2b721cSHolger Brunck MEG_TO_AM(CONFIG_SYS_BFTIC3_SIZE) |\ 204*0f2b721cSHolger Brunck OR_GPCM_CSNT | \ 205*0f2b721cSHolger Brunck OR_GPCM_ACS_DIV2 |\ 206*0f2b721cSHolger Brunck OR_GPCM_SCY_2 |\ 207*0f2b721cSHolger Brunck OR_GPCM_TRLX |\ 208*0f2b721cSHolger Brunck OR_GPCM_EAD) 209*0f2b721cSHolger Brunck #endif 210*0f2b721cSHolger Brunck 211*0f2b721cSHolger Brunck /* 212*0f2b721cSHolger Brunck * MMU Setup 213*0f2b721cSHolger Brunck */ 214*0f2b721cSHolger Brunck 215*0f2b721cSHolger Brunck /* PAXE: icache cacheable, but dcache-inhibit and guarded */ 216*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT5L (\ 217*0f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 218*0f2b721cSHolger Brunck BATL_PP_10 | \ 219*0f2b721cSHolger Brunck BATL_MEMCOHERENCE) 220*0f2b721cSHolger Brunck 221*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT5U (\ 222*0f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 223*0f2b721cSHolger Brunck BATU_BL_256M | \ 224*0f2b721cSHolger Brunck BATU_VS | \ 225*0f2b721cSHolger Brunck BATU_VP) 226*0f2b721cSHolger Brunck 227*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT5L (\ 228*0f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 229*0f2b721cSHolger Brunck BATL_PP_10 | \ 230*0f2b721cSHolger Brunck BATL_CACHEINHIBIT | \ 231*0f2b721cSHolger Brunck BATL_GUARDEDSTORAGE) 232*0f2b721cSHolger Brunck 233*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT5U CONFIG_SYS_IBAT5U 234*0f2b721cSHolger Brunck 235*0f2b721cSHolger Brunck 236*0f2b721cSHolger Brunck #ifdef CONFIG_KMCOGE5NE 237*0f2b721cSHolger Brunck /* BFTIC3: icache cacheable, but dcache-inhibit and guarded */ 238*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6L (\ 239*0f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE | \ 240*0f2b721cSHolger Brunck BATL_PP_10 | \ 241*0f2b721cSHolger Brunck BATL_MEMCOHERENCE) 242*0f2b721cSHolger Brunck 243*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6U (\ 244*0f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE | \ 245*0f2b721cSHolger Brunck BATU_BL_256M | \ 246*0f2b721cSHolger Brunck BATU_VS | \ 247*0f2b721cSHolger Brunck BATU_VP) 248*0f2b721cSHolger Brunck 249*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6L (\ 250*0f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE | \ 251*0f2b721cSHolger Brunck BATL_PP_10 | \ 252*0f2b721cSHolger Brunck BATL_CACHEINHIBIT | \ 253*0f2b721cSHolger Brunck BATL_GUARDEDSTORAGE) 254*0f2b721cSHolger Brunck 255*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U 256*0f2b721cSHolger Brunck 257*0f2b721cSHolger Brunck /* DDR/LBC SDRAM next 256M: cacheable */ 258*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7L (\ 259*0f2b721cSHolger Brunck CONFIG_SYS_SDRAM_BASE2 |\ 260*0f2b721cSHolger Brunck BATL_PP_10 |\ 261*0f2b721cSHolger Brunck BATL_CACHEINHIBIT |\ 262*0f2b721cSHolger Brunck BATL_GUARDEDSTORAGE) 263*0f2b721cSHolger Brunck 264*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7U (\ 265*0f2b721cSHolger Brunck CONFIG_SYS_SDRAM_BASE2 |\ 266*0f2b721cSHolger Brunck BATU_BL_256M |\ 267*0f2b721cSHolger Brunck BATU_VS |\ 268*0f2b721cSHolger Brunck BATU_VP) 269*0f2b721cSHolger Brunck #else 270*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6L (0) 271*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6U (0) 272*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7L (0) 273*0f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7U (0) 274*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6L CONFIG_SYS_IBAT6L 275*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U 276*0f2b721cSHolger Brunck #endif 277*0f2b721cSHolger Brunck 278*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT7L CONFIG_SYS_IBAT7L 279*0f2b721cSHolger Brunck #define CONFIG_SYS_DBAT7U CONFIG_SYS_IBAT7U 280*0f2b721cSHolger Brunck 281*0f2b721cSHolger Brunck #endif /* CONFIG */ 282