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