1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (C) 2006 Freescale Semiconductor, Inc. 3*4882a593Smuzhiyun * Dave Liu <daveliu@freescale.com> 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2007 Logic Product Development, Inc. 6*4882a593Smuzhiyun * Peter Barada <peterb@logicpd.com> 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Copyright (C) 2007 MontaVista Software, Inc. 9*4882a593Smuzhiyun * Anton Vorontsov <avorontsov@ru.mvista.com> 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * (C) Copyright 2008 12*4882a593Smuzhiyun * Heiko Schocher, DENX Software Engineering, hs@denx.de. 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * (C) Copyright 2010-2013 15*4882a593Smuzhiyun * Lukas Roggli, KEYMILE Ltd, lukas.roggli@keymile.com 16*4882a593Smuzhiyun * Holger Brunck, Keymile GmbH, holger.bruncl@keymile.com 17*4882a593Smuzhiyun * 18*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 19*4882a593Smuzhiyun */ 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #ifndef __CONFIG_H 22*4882a593Smuzhiyun #define __CONFIG_H 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun /* 25*4882a593Smuzhiyun * High Level Configuration Options 26*4882a593Smuzhiyun */ 27*4882a593Smuzhiyun #if defined(CONFIG_KMSUPX5) 28*4882a593Smuzhiyun #define CONFIG_KM_BOARD_NAME "kmsupx5" 29*4882a593Smuzhiyun #define CONFIG_HOSTNAME kmsupx5 30*4882a593Smuzhiyun #elif defined(CONFIG_TUGE1) 31*4882a593Smuzhiyun #define CONFIG_KM_BOARD_NAME "tuge1" 32*4882a593Smuzhiyun #define CONFIG_HOSTNAME tuge1 33*4882a593Smuzhiyun #elif defined(CONFIG_TUXX1) /* TUXX1 board (tuxa1/tuda1) specific */ 34*4882a593Smuzhiyun #define CONFIG_KM_BOARD_NAME "tuxx1" 35*4882a593Smuzhiyun #define CONFIG_HOSTNAME tuxx1 36*4882a593Smuzhiyun #elif defined(CONFIG_KMOPTI2) 37*4882a593Smuzhiyun #define CONFIG_KM_BOARD_NAME "kmopti2" 38*4882a593Smuzhiyun #define CONFIG_HOSTNAME kmopti2 39*4882a593Smuzhiyun #elif defined(CONFIG_KMTEPR2) 40*4882a593Smuzhiyun #define CONFIG_KM_BOARD_NAME "kmtepr2" 41*4882a593Smuzhiyun #define CONFIG_HOSTNAME kmtepr2 42*4882a593Smuzhiyun #else 43*4882a593Smuzhiyun #error ("Board not supported") 44*4882a593Smuzhiyun #endif 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0xF0000000 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun /* include common defines/options for all 8321 Keymile boards */ 49*4882a593Smuzhiyun #include "km/km8321-common.h" 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun #define CONFIG_SYS_APP1_BASE 0xA0000000 /* PAXG */ 52*4882a593Smuzhiyun #define CONFIG_SYS_APP1_SIZE 256 /* Megabytes */ 53*4882a593Smuzhiyun #if defined(CONFIG_TUXX1) || defined(CONFIG_KMOPTI2) || defined(CONFIG_KMTEPR2) 54*4882a593Smuzhiyun #define CONFIG_SYS_APP2_BASE 0xB0000000 /* PINC3 */ 55*4882a593Smuzhiyun #define CONFIG_SYS_APP2_SIZE 256 /* Megabytes */ 56*4882a593Smuzhiyun #endif 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun /* 59*4882a593Smuzhiyun * Init Local Bus Memory Controller: 60*4882a593Smuzhiyun * Device on board 61*4882a593Smuzhiyun * Bank Bus Machine PortSz Size TUDA1 TUXA1 TUGE1 KMSUPX4 KMOPTI2 62*4882a593Smuzhiyun * ----------------------------------------------------------------------------- 63*4882a593Smuzhiyun * 2 Local GPCM 8 bit 256MB PAXG LPXF PAXI LPXF PAXE 64*4882a593Smuzhiyun * 3 Local GPCM 8 bit 256MB PINC3 PINC2 unused unused OPI2(16 bit) 65*4882a593Smuzhiyun * 66*4882a593Smuzhiyun * Device on board (continued) 67*4882a593Smuzhiyun * Bank Bus Machine PortSz Size KMTEPR2 68*4882a593Smuzhiyun * ----------------------------------------------------------------------------- 69*4882a593Smuzhiyun * 2 Local GPCM 8 bit 256MB NVRAM 70*4882a593Smuzhiyun * 3 Local GPCM 8 bit 256MB TEP2 (16 bit) 71*4882a593Smuzhiyun */ 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun #if defined(CONFIG_KMTEPRO2) 74*4882a593Smuzhiyun /* 75*4882a593Smuzhiyun * Configuration for C2 (NVRAM) on the local bus 76*4882a593Smuzhiyun */ 77*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWBAR2_PRELIM CONFIG_SYS_APP1_BASE 78*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWAR2_PRELIM (LBLAWAR_EN | LBLAWAR_256MB) 79*4882a593Smuzhiyun #define CONFIG_SYS_BR2_PRELIM (CONFIG_SYS_APP1_BASE | \ 80*4882a593Smuzhiyun BR_PS_8 | \ 81*4882a593Smuzhiyun BR_MS_GPCM | \ 82*4882a593Smuzhiyun BR_V) 83*4882a593Smuzhiyun #define CONFIG_SYS_OR2_PRELIM (MEG_TO_AM(CONFIG_SYS_APP1_SIZE) | \ 84*4882a593Smuzhiyun OR_GPCM_CSNT | \ 85*4882a593Smuzhiyun OR_GPCM_ACS_DIV2 | \ 86*4882a593Smuzhiyun OR_GPCM_XACS | \ 87*4882a593Smuzhiyun OR_GPCM_SCY_2 | \ 88*4882a593Smuzhiyun OR_GPCM_TRLX_SET | \ 89*4882a593Smuzhiyun OR_GPCM_EHTR_SET | \ 90*4882a593Smuzhiyun OR_GPCM_EAD) 91*4882a593Smuzhiyun #else 92*4882a593Smuzhiyun /* 93*4882a593Smuzhiyun * Configuration for C2 on the local bus 94*4882a593Smuzhiyun */ 95*4882a593Smuzhiyun /* Window base at flash base */ 96*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWBAR2_PRELIM CONFIG_SYS_APP1_BASE 97*4882a593Smuzhiyun /* Window size: 256 MB */ 98*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWAR2_PRELIM (LBLAWAR_EN | LBLAWAR_256MB) 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun #define CONFIG_SYS_BR2_PRELIM (CONFIG_SYS_APP1_BASE | \ 101*4882a593Smuzhiyun BR_PS_8 | \ 102*4882a593Smuzhiyun BR_MS_GPCM | \ 103*4882a593Smuzhiyun BR_V) 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun #define CONFIG_SYS_OR2_PRELIM (MEG_TO_AM(CONFIG_SYS_APP1_SIZE) | \ 106*4882a593Smuzhiyun OR_GPCM_CSNT | \ 107*4882a593Smuzhiyun OR_GPCM_ACS_DIV4 | \ 108*4882a593Smuzhiyun OR_GPCM_SCY_2 | \ 109*4882a593Smuzhiyun OR_GPCM_TRLX_SET | \ 110*4882a593Smuzhiyun OR_GPCM_EHTR_CLEAR | \ 111*4882a593Smuzhiyun OR_GPCM_EAD) 112*4882a593Smuzhiyun #endif 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun #if defined(CONFIG_TUXX1) 115*4882a593Smuzhiyun /* 116*4882a593Smuzhiyun * Configuration for C3 on the local bus 117*4882a593Smuzhiyun */ 118*4882a593Smuzhiyun /* Access window base at PINC3 base */ 119*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWBAR3_PRELIM CONFIG_SYS_APP2_BASE 120*4882a593Smuzhiyun /* Window size: 256 MB */ 121*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWAR3_PRELIM (LBLAWAR_EN | LBLAWAR_256MB) 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun #define CONFIG_SYS_BR3_PRELIM (CONFIG_SYS_APP2_BASE | \ 124*4882a593Smuzhiyun BR_PS_8 | \ 125*4882a593Smuzhiyun BR_MS_GPCM | \ 126*4882a593Smuzhiyun BR_V) 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun #define CONFIG_SYS_OR3_PRELIM (MEG_TO_AM(CONFIG_SYS_APP2_SIZE) | \ 129*4882a593Smuzhiyun OR_GPCM_CSNT | \ 130*4882a593Smuzhiyun OR_GPCM_ACS_DIV2 | \ 131*4882a593Smuzhiyun OR_GPCM_SCY_2 | \ 132*4882a593Smuzhiyun OR_GPCM_TRLX_SET | \ 133*4882a593Smuzhiyun OR_GPCM_EHTR_CLEAR) 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun #define CONFIG_SYS_MAMR (MxMR_GPL_x4DIS | \ 136*4882a593Smuzhiyun 0x0000c000 | \ 137*4882a593Smuzhiyun MxMR_WLFx_2X) 138*4882a593Smuzhiyun #endif 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun #if defined(CONFIG_KMOPTI2) || defined(CONFIG_KMTEPR2) 141*4882a593Smuzhiyun /* 142*4882a593Smuzhiyun * Configuration for C3 on the local bus 143*4882a593Smuzhiyun */ 144*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWBAR3_PRELIM CONFIG_SYS_APP2_BASE 145*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWAR3_PRELIM (LBLAWAR_EN | LBLAWAR_256MB) 146*4882a593Smuzhiyun #define CONFIG_SYS_BR3_PRELIM (CONFIG_SYS_APP2_BASE | \ 147*4882a593Smuzhiyun BR_PS_16 | \ 148*4882a593Smuzhiyun BR_MS_GPCM | \ 149*4882a593Smuzhiyun BR_V) 150*4882a593Smuzhiyun #define CONFIG_SYS_OR3_PRELIM (MEG_TO_AM(CONFIG_SYS_APP2_SIZE) | \ 151*4882a593Smuzhiyun OR_GPCM_SCY_4 | \ 152*4882a593Smuzhiyun OR_GPCM_TRLX_CLEAR | \ 153*4882a593Smuzhiyun OR_GPCM_EHTR_CLEAR) 154*4882a593Smuzhiyun #endif 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun /* 157*4882a593Smuzhiyun * MMU Setup 158*4882a593Smuzhiyun */ 159*4882a593Smuzhiyun /* APP1: icache cacheable, but dcache-inhibit and guarded */ 160*4882a593Smuzhiyun #define CONFIG_SYS_IBAT5L (CONFIG_SYS_APP1_BASE | \ 161*4882a593Smuzhiyun BATL_PP_RW | \ 162*4882a593Smuzhiyun BATL_MEMCOHERENCE) 163*4882a593Smuzhiyun /* 512M should also include APP2... */ 164*4882a593Smuzhiyun #define CONFIG_SYS_IBAT5U (CONFIG_SYS_APP1_BASE | \ 165*4882a593Smuzhiyun BATU_BL_256M | \ 166*4882a593Smuzhiyun BATU_VS | \ 167*4882a593Smuzhiyun BATU_VP) 168*4882a593Smuzhiyun #define CONFIG_SYS_DBAT5L (CONFIG_SYS_APP1_BASE | \ 169*4882a593Smuzhiyun BATL_PP_RW | \ 170*4882a593Smuzhiyun BATL_CACHEINHIBIT | \ 171*4882a593Smuzhiyun BATL_GUARDEDSTORAGE) 172*4882a593Smuzhiyun #define CONFIG_SYS_DBAT5U CONFIG_SYS_IBAT5U 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun #if defined(CONFIG_TUGE1) || defined(CONFIG_KMSUPX5) 175*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6L (0) 176*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6U (0) 177*4882a593Smuzhiyun #define CONFIG_SYS_DBAT6L CONFIG_SYS_IBAT6L 178*4882a593Smuzhiyun #else 179*4882a593Smuzhiyun /* APP2: icache cacheable, but dcache-inhibit and guarded */ 180*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6L (CONFIG_SYS_APP2_BASE | \ 181*4882a593Smuzhiyun BATL_PP_RW | \ 182*4882a593Smuzhiyun BATL_MEMCOHERENCE) 183*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6U (CONFIG_SYS_APP2_BASE | \ 184*4882a593Smuzhiyun BATU_BL_256M | \ 185*4882a593Smuzhiyun BATU_VS | \ 186*4882a593Smuzhiyun BATU_VP) 187*4882a593Smuzhiyun #define CONFIG_SYS_DBAT6L (CONFIG_SYS_APP2_BASE | \ 188*4882a593Smuzhiyun BATL_PP_RW | \ 189*4882a593Smuzhiyun BATL_CACHEINHIBIT | \ 190*4882a593Smuzhiyun BATL_GUARDEDSTORAGE) 191*4882a593Smuzhiyun #endif 192*4882a593Smuzhiyun #define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun #define CONFIG_SYS_IBAT7L (0) 195*4882a593Smuzhiyun #define CONFIG_SYS_IBAT7U (0) 196*4882a593Smuzhiyun #define CONFIG_SYS_DBAT7L CONFIG_SYS_IBAT7L 197*4882a593Smuzhiyun #define CONFIG_SYS_DBAT7U CONFIG_SYS_IBAT7U 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun #endif /* __CONFIG_H */ 200