blob: b63bdf1a05330a7a8bcd9b8477a531ec6d47da2a [file] [log] [blame]
Heiko Schocher8a410f82010-04-01 12:10:30 +02001/*
2 * Copyright (C) 2006 Freescale Semiconductor, Inc.
3 * Dave Liu <daveliu@freescale.com>
4 *
5 * Copyright (C) 2007 Logic Product Development, Inc.
6 * Peter Barada <peterb@logicpd.com>
7 *
8 * Copyright (C) 2007 MontaVista Software, Inc.
9 * Anton Vorontsov <avorontsov@ru.mvista.com>
10 *
11 * (C) Copyright 2008
12 * Heiko Schocher, DENX Software Engineering, hs@denx.de.
13 *
Holger Brunckc20c9072013-01-21 03:55:25 +000014 * (C) Copyright 2010-2013
Heiko Schocher8a410f82010-04-01 12:10:30 +020015 * Lukas Roggli, KEYMILE Ltd, lukas.roggli@keymile.com
Holger Brunck4a630a72011-12-14 16:21:44 +010016 * Holger Brunck, Keymile GmbH, holger.bruncl@keymile.com
Heiko Schocher8a410f82010-04-01 12:10:30 +020017 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +020018 * SPDX-License-Identifier: GPL-2.0+
Heiko Schocher8a410f82010-04-01 12:10:30 +020019 */
20
21#ifndef __CONFIG_H
22#define __CONFIG_H
23
24/*
25 * High Level Configuration Options
26 */
Holger Brunckc20c9072013-01-21 03:55:25 +000027#if defined(CONFIG_KMSUPX5)
Holger Brunck50c57952012-03-21 13:42:42 +010028#define CONFIG_KM_BOARD_NAME "kmsupx5"
29#define CONFIG_HOSTNAME kmsupx5
Holger Brunckc20c9072013-01-21 03:55:25 +000030#elif defined(CONFIG_TUGE1)
Holger Brunck50c57952012-03-21 13:42:42 +010031#define CONFIG_KM_BOARD_NAME "tuge1"
32#define CONFIG_HOSTNAME tuge1
Holger Brunckc20c9072013-01-21 03:55:25 +000033#elif defined(CONFIG_TUXX1) /* TUXX1 board (tuxa1/tuda1) specific */
Holger Brunck50c57952012-03-21 13:42:42 +010034#define CONFIG_KM_BOARD_NAME "tuxx1"
Holger Brunck4a630a72011-12-14 16:21:44 +010035#define CONFIG_HOSTNAME tuxx1
Holger Brunckdd0f6052013-01-21 03:55:26 +000036#elif defined(CONFIG_KMOPTI2)
37#define CONFIG_KM_BOARD_NAME "kmopti2"
38#define CONFIG_HOSTNAME kmopti2
Christoph Dietrich4c1c6ae2015-11-17 10:53:24 +010039#elif defined(CONFIG_KMTEPR2)
40#define CONFIG_KM_BOARD_NAME "kmtepr2"
41#define CONFIG_HOSTNAME kmtepr2
Holger Brunckc20c9072013-01-21 03:55:25 +000042#else
43#error ("Board not supported")
Holger Brunck2a1c5bd2011-12-14 16:21:45 +010044#endif
Heiko Schocher8a410f82010-04-01 12:10:30 +020045
Heiko Schocher3a8dd212011-03-08 10:47:39 +010046/* include common defines/options for all 8321 Keymile boards */
Valentin Longchamp2f968d82011-05-04 01:47:33 +000047#include "km/km8321-common.h"
Heiko Schocher8a410f82010-04-01 12:10:30 +020048
Heiko Schocher8a410f82010-04-01 12:10:30 +020049#define CONFIG_SYS_APP1_BASE 0xA0000000 /* PAXG */
50#define CONFIG_SYS_APP1_SIZE 256 /* Megabytes */
Christoph Dietrich4c1c6ae2015-11-17 10:53:24 +010051#if defined(CONFIG_TUXX1) || defined(CONFIG_KMOPTI2) || defined(CONFIG_KMTEPR2)
Heiko Schocher8a410f82010-04-01 12:10:30 +020052#define CONFIG_SYS_APP2_BASE 0xB0000000 /* PINC3 */
53#define CONFIG_SYS_APP2_SIZE 256 /* Megabytes */
Holger Brunck2a1c5bd2011-12-14 16:21:45 +010054#endif
Heiko Schocher8a410f82010-04-01 12:10:30 +020055
Heiko Schocher8a410f82010-04-01 12:10:30 +020056/*
Heiko Schocher8a410f82010-04-01 12:10:30 +020057 * Init Local Bus Memory Controller:
Christoph Dietrich4c1c6ae2015-11-17 10:53:24 +010058 * Device on board
59 * Bank Bus Machine PortSz Size TUDA1 TUXA1 TUGE1 KMSUPX4 KMOPTI2
60 * -----------------------------------------------------------------------------
61 * 2 Local GPCM 8 bit 256MB PAXG LPXF PAXI LPXF PAXE
62 * 3 Local GPCM 8 bit 256MB PINC3 PINC2 unused unused OPI2(16 bit)
Heiko Schocher8a410f82010-04-01 12:10:30 +020063 *
Christoph Dietrich4c1c6ae2015-11-17 10:53:24 +010064 * Device on board (continued)
65 * Bank Bus Machine PortSz Size KMTEPR2
66 * -----------------------------------------------------------------------------
67 * 2 Local GPCM 8 bit 256MB NVRAM
68 * 3 Local GPCM 8 bit 256MB TEP2 (16 bit)
Heiko Schocher8a410f82010-04-01 12:10:30 +020069 */
70
Christoph Dietrich4c1c6ae2015-11-17 10:53:24 +010071#if defined(CONFIG_KMTEPRO2)
72/*
73 * Configuration for C2 (NVRAM) on the local bus
74 */
75#define CONFIG_SYS_LBLAWBAR2_PRELIM CONFIG_SYS_APP1_BASE
76#define CONFIG_SYS_LBLAWAR2_PRELIM (LBLAWAR_EN | LBLAWAR_256MB)
77#define CONFIG_SYS_BR2_PRELIM (CONFIG_SYS_APP1_BASE | \
78 BR_PS_8 | \
79 BR_MS_GPCM | \
80 BR_V)
81#define CONFIG_SYS_OR2_PRELIM (MEG_TO_AM(CONFIG_SYS_APP1_SIZE) | \
82 OR_GPCM_CSNT | \
83 OR_GPCM_ACS_DIV2 | \
84 OR_GPCM_XACS | \
85 OR_GPCM_SCY_2 | \
86 OR_GPCM_TRLX_SET | \
87 OR_GPCM_EHTR_SET | \
88 OR_GPCM_EAD)
89#else
Heiko Schocher8a410f82010-04-01 12:10:30 +020090/*
Holger Brunck4a630a72011-12-14 16:21:44 +010091 * Configuration for C2 on the local bus
Heiko Schocher8a410f82010-04-01 12:10:30 +020092 */
93/* Window base at flash base */
94#define CONFIG_SYS_LBLAWBAR2_PRELIM CONFIG_SYS_APP1_BASE
95/* Window size: 256 MB */
96#define CONFIG_SYS_LBLAWAR2_PRELIM (LBLAWAR_EN | LBLAWAR_256MB)
97
98#define CONFIG_SYS_BR2_PRELIM (CONFIG_SYS_APP1_BASE | \
99 BR_PS_8 | \
100 BR_MS_GPCM | \
101 BR_V)
102
103#define CONFIG_SYS_OR2_PRELIM (MEG_TO_AM(CONFIG_SYS_APP1_SIZE) | \
104 OR_GPCM_CSNT | \
105 OR_GPCM_ACS_DIV4 | \
106 OR_GPCM_SCY_2 | \
Joe Hershbergerf05b9332011-10-11 23:57:30 -0500107 OR_GPCM_TRLX_SET | \
108 OR_GPCM_EHTR_CLEAR | \
Heiko Schocher8a410f82010-04-01 12:10:30 +0200109 OR_GPCM_EAD)
Christoph Dietrich4c1c6ae2015-11-17 10:53:24 +0100110#endif
111
Holger Brunckc20c9072013-01-21 03:55:25 +0000112#if defined(CONFIG_TUXX1)
Heiko Schocher8a410f82010-04-01 12:10:30 +0200113/*
Holger Brunck4a630a72011-12-14 16:21:44 +0100114 * Configuration for C3 on the local bus
Heiko Schocher8a410f82010-04-01 12:10:30 +0200115 */
116/* Access window base at PINC3 base */
117#define CONFIG_SYS_LBLAWBAR3_PRELIM CONFIG_SYS_APP2_BASE
118/* Window size: 256 MB */
119#define CONFIG_SYS_LBLAWAR3_PRELIM (LBLAWAR_EN | LBLAWAR_256MB)
120
121#define CONFIG_SYS_BR3_PRELIM (CONFIG_SYS_APP2_BASE | \
122 BR_PS_8 | \
123 BR_MS_GPCM | \
124 BR_V)
125
126#define CONFIG_SYS_OR3_PRELIM (MEG_TO_AM(CONFIG_SYS_APP2_SIZE) | \
127 OR_GPCM_CSNT | \
Joe Hershbergerf05b9332011-10-11 23:57:30 -0500128 OR_GPCM_ACS_DIV2 | \
129 OR_GPCM_SCY_2 | \
130 OR_GPCM_TRLX_SET | \
131 OR_GPCM_EHTR_CLEAR)
Heiko Schocher8a410f82010-04-01 12:10:30 +0200132
133#define CONFIG_SYS_MAMR (MxMR_GPL_x4DIS | \
134 0x0000c000 | \
135 MxMR_WLFx_2X)
Holger Brunck2a1c5bd2011-12-14 16:21:45 +0100136#endif
Heiko Schocher8a410f82010-04-01 12:10:30 +0200137
Christoph Dietrich4c1c6ae2015-11-17 10:53:24 +0100138#if defined(CONFIG_KMOPTI2) || defined(CONFIG_KMTEPR2)
Holger Brunckdd0f6052013-01-21 03:55:26 +0000139/*
140 * Configuration for C3 on the local bus
141 */
142#define CONFIG_SYS_LBLAWBAR3_PRELIM CONFIG_SYS_APP2_BASE
143#define CONFIG_SYS_LBLAWAR3_PRELIM (LBLAWAR_EN | LBLAWAR_256MB)
144#define CONFIG_SYS_BR3_PRELIM (CONFIG_SYS_APP2_BASE | \
145 BR_PS_16 | \
146 BR_MS_GPCM | \
147 BR_V)
148#define CONFIG_SYS_OR3_PRELIM (MEG_TO_AM(CONFIG_SYS_APP2_SIZE) | \
149 OR_GPCM_SCY_4 | \
150 OR_GPCM_TRLX_CLEAR | \
151 OR_GPCM_EHTR_CLEAR)
152#endif
153
Heiko Schocher8a410f82010-04-01 12:10:30 +0200154/*
155 * MMU Setup
156 */
Holger Brunck4a630a72011-12-14 16:21:44 +0100157/* APP1: icache cacheable, but dcache-inhibit and guarded */
Heiko Schocher8a410f82010-04-01 12:10:30 +0200158#define CONFIG_SYS_IBAT5L (CONFIG_SYS_APP1_BASE | \
Joe Hershbergerbfd89732011-10-11 23:57:28 -0500159 BATL_PP_RW | \
Heiko Schocher8a410f82010-04-01 12:10:30 +0200160 BATL_MEMCOHERENCE)
161/* 512M should also include APP2... */
162#define CONFIG_SYS_IBAT5U (CONFIG_SYS_APP1_BASE | \
163 BATU_BL_256M | \
164 BATU_VS | \
165 BATU_VP)
166#define CONFIG_SYS_DBAT5L (CONFIG_SYS_APP1_BASE | \
Joe Hershbergerbfd89732011-10-11 23:57:28 -0500167 BATL_PP_RW | \
Heiko Schocher8a410f82010-04-01 12:10:30 +0200168 BATL_CACHEINHIBIT | \
169 BATL_GUARDEDSTORAGE)
170#define CONFIG_SYS_DBAT5U CONFIG_SYS_IBAT5U
171
Holger Brunckc20c9072013-01-21 03:55:25 +0000172#if defined(CONFIG_TUGE1) || defined(CONFIG_KMSUPX5)
Holger Brunck2a1c5bd2011-12-14 16:21:45 +0100173#define CONFIG_SYS_IBAT6L (0)
174#define CONFIG_SYS_IBAT6U (0)
175#define CONFIG_SYS_DBAT6L CONFIG_SYS_IBAT6L
176#else
Holger Brunck4a630a72011-12-14 16:21:44 +0100177/* APP2: icache cacheable, but dcache-inhibit and guarded */
Heiko Schocher8a410f82010-04-01 12:10:30 +0200178#define CONFIG_SYS_IBAT6L (CONFIG_SYS_APP2_BASE | \
Joe Hershbergerbfd89732011-10-11 23:57:28 -0500179 BATL_PP_RW | \
Heiko Schocher8a410f82010-04-01 12:10:30 +0200180 BATL_MEMCOHERENCE)
181#define CONFIG_SYS_IBAT6U (CONFIG_SYS_APP2_BASE | \
182 BATU_BL_256M | \
183 BATU_VS | \
184 BATU_VP)
185#define CONFIG_SYS_DBAT6L (CONFIG_SYS_APP2_BASE | \
Joe Hershbergerbfd89732011-10-11 23:57:28 -0500186 BATL_PP_RW | \
Heiko Schocher8a410f82010-04-01 12:10:30 +0200187 BATL_CACHEINHIBIT | \
188 BATL_GUARDEDSTORAGE)
Holger Brunck2a1c5bd2011-12-14 16:21:45 +0100189#endif
Heiko Schocher8a410f82010-04-01 12:10:30 +0200190#define CONFIG_SYS_DBAT6U CONFIG_SYS_IBAT6U
191
192#define CONFIG_SYS_IBAT7L (0)
193#define CONFIG_SYS_IBAT7U (0)
194#define CONFIG_SYS_DBAT7L CONFIG_SYS_IBAT7L
195#define CONFIG_SYS_DBAT7U CONFIG_SYS_IBAT7U
Heiko Schocher8a410f82010-04-01 12:10:30 +0200196
197#endif /* __CONFIG_H */