10f2b721cSHolger Brunck /* 20f2b721cSHolger Brunck * (C) Copyright 2012 30f2b721cSHolger Brunck * Holger Brunck, Keymile GmbH Hannover, <holger.brunck@keymile.com> 40f2b721cSHolger Brunck * Christian Herzig, Keymile AG Switzerland, <christian.herzig@keymile.com> 50f2b721cSHolger Brunck * 61a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 70f2b721cSHolger Brunck */ 80f2b721cSHolger Brunck 90f2b721cSHolger Brunck #ifndef __CONFIG_H 100f2b721cSHolger Brunck #define __CONFIG_H 110f2b721cSHolger Brunck 12fdfaa29eSKim Phillips #define CONFIG_DISPLAY_BOARDINFO 13fdfaa29eSKim Phillips 140f2b721cSHolger Brunck /* KMBEC FPGA (PRIO) */ 150f2b721cSHolger Brunck #define CONFIG_SYS_KMBEC_FPGA_BASE 0xE8000000 160f2b721cSHolger Brunck #define CONFIG_SYS_KMBEC_FPGA_SIZE 64 170f2b721cSHolger Brunck 180f2b721cSHolger Brunck #if defined CONFIG_KMETER1 190f2b721cSHolger Brunck #define CONFIG_HOSTNAME kmeter1 200f2b721cSHolger Brunck #define CONFIG_KM_BOARD_NAME "kmeter1" 210f2b721cSHolger Brunck #define CONFIG_KM_DEF_NETDEV "netdev=eth2\0" 220f2b721cSHolger Brunck #elif defined CONFIG_KMCOGE5NE 230f2b721cSHolger Brunck #define CONFIG_HOSTNAME kmcoge5ne 240f2b721cSHolger Brunck #define CONFIG_KM_BOARD_NAME "kmcoge5ne" 250f2b721cSHolger Brunck #define CONFIG_KM_DEF_NETDEV "netdev=eth1\0" 260f2b721cSHolger Brunck #define CONFIG_CMD_NAND 27be7576faSHolger Brunck #define CONFIG_NAND_ECC_BCH 28be7576faSHolger Brunck #define CONFIG_BCH 290f2b721cSHolger Brunck #define CONFIG_NAND_KMETER1 300f2b721cSHolger Brunck #define CONFIG_SYS_MAX_NAND_DEVICE 1 310f2b721cSHolger Brunck #define NAND_MAX_CHIPS 1 320f2b721cSHolger Brunck #define CONFIG_SYS_NAND_BASE CONFIG_SYS_KMBEC_FPGA_BASE /* PRIO_BASE_ADDRESS */ 330f2b721cSHolger Brunck 340f2b721cSHolger Brunck #define CONFIG_KM_UBI_PARTITION_NAME_BOOT "ubi0" 350f2b721cSHolger Brunck #define CONFIG_KM_UBI_PARTITION_NAME_APP "ubi1" 360f2b721cSHolger Brunck #define MTDIDS_DEFAULT "nor0=boot,nand0=app" 370f2b721cSHolger Brunck 380f2b721cSHolger Brunck #define MTDPARTS_DEFAULT "mtdparts=" \ 390f2b721cSHolger Brunck "boot:" \ 400f2b721cSHolger Brunck "768k(u-boot)," \ 410f2b721cSHolger Brunck "128k(env)," \ 420f2b721cSHolger Brunck "128k(envred)," \ 430f2b721cSHolger Brunck "-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");" \ 440f2b721cSHolger Brunck "app:" \ 450f2b721cSHolger Brunck "-(" CONFIG_KM_UBI_PARTITION_NAME_APP ");" 460f2b721cSHolger Brunck #else 470f2b721cSHolger Brunck #error ("Board not supported") 480f2b721cSHolger Brunck #endif 490f2b721cSHolger Brunck 500f2b721cSHolger Brunck /* 510f2b721cSHolger Brunck * High Level Configuration Options 520f2b721cSHolger Brunck */ 530f2b721cSHolger Brunck #define CONFIG_QE /* Has QE */ 540f2b721cSHolger Brunck #define CONFIG_MPC8360 /* MPC8360 CPU specific */ 550f2b721cSHolger Brunck 560f2b721cSHolger Brunck #define CONFIG_SYS_TEXT_BASE 0xF0000000 570f2b721cSHolger Brunck 580f2b721cSHolger Brunck /* include common defines/options for all 83xx Keymile boards */ 590f2b721cSHolger Brunck #include "km/km83xx-common.h" 600f2b721cSHolger Brunck 610f2b721cSHolger Brunck /* 620f2b721cSHolger Brunck * System IO Setup 630f2b721cSHolger Brunck */ 640f2b721cSHolger Brunck #define CONFIG_SYS_SICRH (SICRH_UC1EOBI | SICRH_UC2E1OBI) 650f2b721cSHolger Brunck 660f2b721cSHolger Brunck /* 670f2b721cSHolger Brunck * Hardware Reset Configuration Word 680f2b721cSHolger Brunck */ 690f2b721cSHolger Brunck #define CONFIG_SYS_HRCW_LOW (\ 700f2b721cSHolger Brunck HRCWL_CSB_TO_CLKIN_4X1 | \ 710f2b721cSHolger Brunck HRCWL_CORE_TO_CSB_2X1 | \ 720f2b721cSHolger Brunck HRCWL_CE_PLL_VCO_DIV_2 | \ 730f2b721cSHolger Brunck HRCWL_CE_TO_PLL_1X6) 740f2b721cSHolger Brunck 750f2b721cSHolger Brunck #define CONFIG_SYS_HRCW_HIGH (\ 760f2b721cSHolger Brunck HRCWH_CORE_ENABLE | \ 770f2b721cSHolger Brunck HRCWH_FROM_0X00000100 | \ 780f2b721cSHolger Brunck HRCWH_BOOTSEQ_DISABLE | \ 790f2b721cSHolger Brunck HRCWH_SW_WATCHDOG_DISABLE | \ 800f2b721cSHolger Brunck HRCWH_ROM_LOC_LOCAL_16BIT | \ 810f2b721cSHolger Brunck HRCWH_BIG_ENDIAN | \ 820f2b721cSHolger Brunck HRCWH_LALE_EARLY | \ 830f2b721cSHolger Brunck HRCWH_LDP_CLEAR) 840f2b721cSHolger Brunck 850f2b721cSHolger Brunck /** 860f2b721cSHolger Brunck * DDR RAM settings 870f2b721cSHolger Brunck */ 880f2b721cSHolger Brunck #define CONFIG_SYS_DDR_SDRAM_CFG (\ 890f2b721cSHolger Brunck SDRAM_CFG_SDRAM_TYPE_DDR2 | \ 900f2b721cSHolger Brunck SDRAM_CFG_SREN | \ 910f2b721cSHolger Brunck SDRAM_CFG_HSE) 920f2b721cSHolger Brunck 930f2b721cSHolger Brunck #define CONFIG_SYS_DDR_SDRAM_CFG2 0x00401000 940f2b721cSHolger Brunck 950f2b721cSHolger Brunck #ifdef CONFIG_KMCOGE5NE 960f2b721cSHolger Brunck /** 970f2b721cSHolger Brunck * KMCOGE5NE has 512 MB RAM 980f2b721cSHolger Brunck */ 990f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CS0_CONFIG (\ 1000f2b721cSHolger Brunck CSCONFIG_EN | \ 1010f2b721cSHolger Brunck CSCONFIG_AP | \ 102*22554ba1SValentin Longchamp CSCONFIG_ODT_WR_ONLY_CURRENT | \ 1030f2b721cSHolger Brunck CSCONFIG_BANK_BIT_3 | \ 1040f2b721cSHolger Brunck CSCONFIG_ROW_BIT_13 | \ 1050f2b721cSHolger Brunck CSCONFIG_COL_BIT_10) 1060f2b721cSHolger Brunck #else 1070f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CS0_CONFIG (CSCONFIG_EN | CSCONFIG_AP | \ 1080f2b721cSHolger Brunck CSCONFIG_ROW_BIT_13 | \ 1090f2b721cSHolger Brunck CSCONFIG_COL_BIT_10 | \ 110*22554ba1SValentin Longchamp CSCONFIG_ODT_WR_ONLY_CURRENT) 1110f2b721cSHolger Brunck #endif 1120f2b721cSHolger Brunck 1130f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CLK_CNTL (\ 1140f2b721cSHolger Brunck DDR_SDRAM_CLK_CNTL_CLK_ADJUST_05) 1150f2b721cSHolger Brunck 1160f2b721cSHolger Brunck #define CONFIG_SYS_DDR_INTERVAL (\ 1170f2b721cSHolger Brunck (0x080 << SDRAM_INTERVAL_BSTOPRE_SHIFT) | \ 1180f2b721cSHolger Brunck (0x203 << SDRAM_INTERVAL_REFINT_SHIFT)) 1190f2b721cSHolger Brunck 1200f2b721cSHolger Brunck #define CONFIG_SYS_DDR_CS0_BNDS 0x0000007f 1210f2b721cSHolger Brunck 1220f2b721cSHolger Brunck #define CONFIG_SYS_DDRCDR (\ 1230f2b721cSHolger Brunck DDRCDR_EN | \ 1240f2b721cSHolger Brunck DDRCDR_Q_DRN) 1250f2b721cSHolger Brunck #define CONFIG_SYS_DDR_MODE 0x47860452 1260f2b721cSHolger Brunck #define CONFIG_SYS_DDR_MODE2 0x8080c000 1270f2b721cSHolger Brunck 1280f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_0 (\ 1290f2b721cSHolger Brunck (2 << TIMING_CFG0_MRS_CYC_SHIFT) | \ 1300f2b721cSHolger Brunck (8 << TIMING_CFG0_ODT_PD_EXIT_SHIFT) | \ 1310f2b721cSHolger Brunck (6 << TIMING_CFG0_PRE_PD_EXIT_SHIFT) | \ 1320f2b721cSHolger Brunck (2 << TIMING_CFG0_ACT_PD_EXIT_SHIFT) | \ 1330f2b721cSHolger Brunck (0 << TIMING_CFG0_WWT_SHIFT) | \ 1340f2b721cSHolger Brunck (0 << TIMING_CFG0_RRT_SHIFT) | \ 1350f2b721cSHolger Brunck (0 << TIMING_CFG0_WRT_SHIFT) | \ 1360f2b721cSHolger Brunck (0 << TIMING_CFG0_RWT_SHIFT)) 1370f2b721cSHolger Brunck 1380f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_1 ((TIMING_CFG1_CASLAT_50) | \ 1390f2b721cSHolger Brunck (2 << TIMING_CFG1_WRTORD_SHIFT) | \ 1400f2b721cSHolger Brunck (2 << TIMING_CFG1_ACTTOACT_SHIFT) | \ 1410f2b721cSHolger Brunck (3 << TIMING_CFG1_WRREC_SHIFT) | \ 1420f2b721cSHolger Brunck (7 << TIMING_CFG1_REFREC_SHIFT) | \ 1430f2b721cSHolger Brunck (3 << TIMING_CFG1_ACTTORW_SHIFT) | \ 1440f2b721cSHolger Brunck (8 << TIMING_CFG1_ACTTOPRE_SHIFT) | \ 1450f2b721cSHolger Brunck (3 << TIMING_CFG1_PRETOACT_SHIFT)) 1460f2b721cSHolger Brunck 1470f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_2 (\ 1480f2b721cSHolger Brunck (0xa << TIMING_CFG2_FOUR_ACT_SHIFT) | \ 1490f2b721cSHolger Brunck (3 << TIMING_CFG2_CKE_PLS_SHIFT) | \ 1500f2b721cSHolger Brunck (2 << TIMING_CFG2_WR_DATA_DELAY_SHIFT) | \ 1510f2b721cSHolger Brunck (2 << TIMING_CFG2_RD_TO_PRE_SHIFT) | \ 1520f2b721cSHolger Brunck (4 << TIMING_CFG2_WR_LAT_DELAY_SHIFT) | \ 1530f2b721cSHolger Brunck (5 << TIMING_CFG2_CPO_SHIFT) | \ 1540f2b721cSHolger Brunck (0 << TIMING_CFG2_ADD_LAT_SHIFT)) 1550f2b721cSHolger Brunck 1560f2b721cSHolger Brunck #define CONFIG_SYS_DDR_TIMING_3 0x00000000 1570f2b721cSHolger Brunck 1580f2b721cSHolger Brunck /* EEprom support */ 1590f2b721cSHolger Brunck #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 1600f2b721cSHolger Brunck 1610f2b721cSHolger Brunck /* 1620f2b721cSHolger Brunck * Local Bus Configuration & Clock Setup 1630f2b721cSHolger Brunck */ 1640f2b721cSHolger Brunck #define CONFIG_SYS_LCRR_DBYP LCRR_DBYP 1650f2b721cSHolger Brunck #define CONFIG_SYS_LCRR_EADC LCRR_EADC_2 1660f2b721cSHolger Brunck #define CONFIG_SYS_LCRR_CLKDIV LCRR_CLKDIV_4 1670f2b721cSHolger Brunck 1680f2b721cSHolger Brunck /* 1690f2b721cSHolger Brunck * PAXE on the local bus CS3 1700f2b721cSHolger Brunck */ 1710f2b721cSHolger Brunck #define CONFIG_SYS_PAXE_BASE 0xA0000000 1720f2b721cSHolger Brunck #define CONFIG_SYS_PAXE_SIZE 256 1730f2b721cSHolger Brunck 1740f2b721cSHolger Brunck #define CONFIG_SYS_LBLAWBAR3_PRELIM CONFIG_SYS_PAXE_BASE 1750f2b721cSHolger Brunck 1760f2b721cSHolger Brunck #define CONFIG_SYS_LBLAWAR3_PRELIM 0x8000001C /* 512MB window size */ 1770f2b721cSHolger Brunck 1780f2b721cSHolger Brunck #define CONFIG_SYS_BR3_PRELIM (\ 1790f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 1800f2b721cSHolger Brunck (1 << BR_PS_SHIFT) | \ 1810f2b721cSHolger Brunck BR_V) 1820f2b721cSHolger Brunck 1830f2b721cSHolger Brunck #define CONFIG_SYS_OR3_PRELIM (\ 1840f2b721cSHolger Brunck MEG_TO_AM(CONFIG_SYS_PAXE_SIZE) | \ 1850f2b721cSHolger Brunck OR_GPCM_CSNT | \ 1860f2b721cSHolger Brunck OR_GPCM_ACS_DIV2 | \ 1870f2b721cSHolger Brunck OR_GPCM_SCY_2 | \ 1880f2b721cSHolger Brunck OR_GPCM_TRLX | \ 1890f2b721cSHolger Brunck OR_GPCM_EAD) 1900f2b721cSHolger Brunck 1910f2b721cSHolger Brunck #ifdef CONFIG_KMCOGE5NE 1920f2b721cSHolger Brunck /* 1930f2b721cSHolger Brunck * BFTIC3 on the local bus CS4 1940f2b721cSHolger Brunck */ 1950f2b721cSHolger Brunck #define CONFIG_SYS_BFTIC3_BASE 0xB0000000 1960f2b721cSHolger Brunck #define CONFIG_SYS_BFTIC3_SIZE 256 1970f2b721cSHolger Brunck 1980f2b721cSHolger Brunck #define CONFIG_SYS_BR4_PRELIM (\ 1990f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE |\ 2000f2b721cSHolger Brunck (1 << BR_PS_SHIFT) | \ 2010f2b721cSHolger Brunck BR_V) 2020f2b721cSHolger Brunck 2030f2b721cSHolger Brunck #define CONFIG_SYS_OR4_PRELIM (\ 2040f2b721cSHolger Brunck MEG_TO_AM(CONFIG_SYS_BFTIC3_SIZE) |\ 2050f2b721cSHolger Brunck OR_GPCM_CSNT | \ 2060f2b721cSHolger Brunck OR_GPCM_ACS_DIV2 |\ 2070f2b721cSHolger Brunck OR_GPCM_SCY_2 |\ 2080f2b721cSHolger Brunck OR_GPCM_TRLX |\ 2090f2b721cSHolger Brunck OR_GPCM_EAD) 2100f2b721cSHolger Brunck #endif 2110f2b721cSHolger Brunck 2120f2b721cSHolger Brunck /* 2130f2b721cSHolger Brunck * MMU Setup 2140f2b721cSHolger Brunck */ 2150f2b721cSHolger Brunck 2160f2b721cSHolger Brunck /* PAXE: icache cacheable, but dcache-inhibit and guarded */ 2170f2b721cSHolger Brunck #define CONFIG_SYS_IBAT5L (\ 2180f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 2190f2b721cSHolger Brunck BATL_PP_10 | \ 2200f2b721cSHolger Brunck BATL_MEMCOHERENCE) 2210f2b721cSHolger Brunck 2220f2b721cSHolger Brunck #define CONFIG_SYS_IBAT5U (\ 2230f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 2240f2b721cSHolger Brunck BATU_BL_256M | \ 2250f2b721cSHolger Brunck BATU_VS | \ 2260f2b721cSHolger Brunck BATU_VP) 2270f2b721cSHolger Brunck 2280f2b721cSHolger Brunck #define CONFIG_SYS_DBAT5L (\ 2290f2b721cSHolger Brunck CONFIG_SYS_PAXE_BASE | \ 2300f2b721cSHolger Brunck BATL_PP_10 | \ 2310f2b721cSHolger Brunck BATL_CACHEINHIBIT | \ 2320f2b721cSHolger Brunck BATL_GUARDEDSTORAGE) 2330f2b721cSHolger Brunck 2340f2b721cSHolger Brunck #define CONFIG_SYS_DBAT5U CONFIG_SYS_IBAT5U 2350f2b721cSHolger Brunck 2360f2b721cSHolger Brunck 2370f2b721cSHolger Brunck #ifdef CONFIG_KMCOGE5NE 2380f2b721cSHolger Brunck /* BFTIC3: icache cacheable, but dcache-inhibit and guarded */ 2390f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6L (\ 2400f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE | \ 2410f2b721cSHolger Brunck BATL_PP_10 | \ 2420f2b721cSHolger Brunck BATL_MEMCOHERENCE) 2430f2b721cSHolger Brunck 2440f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6U (\ 2450f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE | \ 2460f2b721cSHolger Brunck BATU_BL_256M | \ 2470f2b721cSHolger Brunck BATU_VS | \ 2480f2b721cSHolger Brunck BATU_VP) 2490f2b721cSHolger Brunck 2500f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6L (\ 2510f2b721cSHolger Brunck CONFIG_SYS_BFTIC3_BASE | \ 2520f2b721cSHolger Brunck BATL_PP_10 | \ 2530f2b721cSHolger Brunck BATL_CACHEINHIBIT | \ 2540f2b721cSHolger Brunck BATL_GUARDEDSTORAGE) 2550f2b721cSHolger Brunck 2560f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U 2570f2b721cSHolger Brunck 2580f2b721cSHolger Brunck /* DDR/LBC SDRAM next 256M: cacheable */ 2590f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7L (\ 2600f2b721cSHolger Brunck CONFIG_SYS_SDRAM_BASE2 |\ 2610f2b721cSHolger Brunck BATL_PP_10 |\ 2620f2b721cSHolger Brunck BATL_CACHEINHIBIT |\ 2630f2b721cSHolger Brunck BATL_GUARDEDSTORAGE) 2640f2b721cSHolger Brunck 2650f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7U (\ 2660f2b721cSHolger Brunck CONFIG_SYS_SDRAM_BASE2 |\ 2670f2b721cSHolger Brunck BATU_BL_256M |\ 2680f2b721cSHolger Brunck BATU_VS |\ 2690f2b721cSHolger Brunck BATU_VP) 27095209b66SThomas Herzmann /* enable POST tests */ 27195209b66SThomas Herzmann #define CONFIG_POST (CONFIG_SYS_POST_MEMORY|CONFIG_SYS_POST_MEM_REGIONS) 27295209b66SThomas Herzmann #define CONFIG_POST_EXTERNAL_WORD_FUNCS /* use own functions, not generic */ 27395209b66SThomas Herzmann #define CPM_POST_WORD_ADDR CONFIG_SYS_MEMTEST_END 27495209b66SThomas Herzmann #define CONFIG_TESTPIN_REG gprt3 /* for kmcoge5ne */ 27595209b66SThomas Herzmann #define CONFIG_TESTPIN_MASK 0x20 /* for kmcoge5ne */ 27695209b66SThomas Herzmann #define CONFIG_CMD_DIAG /* so that testpin is inquired for POST test */ 27795209b66SThomas Herzmann 2780f2b721cSHolger Brunck #else 2790f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6L (0) 2800f2b721cSHolger Brunck #define CONFIG_SYS_IBAT6U (0) 2810f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7L (0) 2820f2b721cSHolger Brunck #define CONFIG_SYS_IBAT7U (0) 2830f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6L CONFIG_SYS_IBAT6L 2840f2b721cSHolger Brunck #define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U 2850f2b721cSHolger Brunck #endif 2860f2b721cSHolger Brunck 2870f2b721cSHolger Brunck #define CONFIG_SYS_DBAT7L CONFIG_SYS_IBAT7L 2880f2b721cSHolger Brunck #define CONFIG_SYS_DBAT7U CONFIG_SYS_IBAT7U 2890f2b721cSHolger Brunck 2900f2b721cSHolger Brunck #endif /* CONFIG */ 291