Merge branch 'master' of git://git.denx.de/u-boot-blackfin
[platform/kernel/u-boot.git] / include / configs / bf533-stamp.h
1 /*
2  * U-boot - Configuration file for BF533 STAMP board
3  */
4
5 #ifndef __CONFIG_BF533_STAMP_H__
6 #define __CONFIG_BF533_STAMP_H__
7
8 #include <asm/config-pre.h>
9
10
11 /*
12  * Processor Settings
13  */
14 #define CONFIG_BFIN_CPU             bf533-0.3
15 #define CONFIG_BFIN_BOOT_MODE       BFIN_BOOT_BYPASS
16
17
18 /*
19  * Clock Settings
20  *      CCLK = (CLKIN * VCO_MULT) / CCLK_DIV
21  *      SCLK = (CLKIN * VCO_MULT) / SCLK_DIV
22  */
23 /* CONFIG_CLKIN_HZ is any value in Hz                                   */
24 #define CONFIG_CLKIN_HZ                 11059200
25 /* CLKIN_HALF controls the DF bit in PLL_CTL      0 = CLKIN             */
26 /*                                                1 = CLKIN / 2         */
27 #define CONFIG_CLKIN_HALF               0
28 /* PLL_BYPASS controls the BYPASS bit in PLL_CTL  0 = do not bypass     */
29 /*                                                1 = bypass PLL        */
30 #define CONFIG_PLL_BYPASS               0
31 /* VCO_MULT controls the MSEL (multiplier) bits in PLL_CTL              */
32 /* Values can range from 0-63 (where 0 means 64)                        */
33 #define CONFIG_VCO_MULT                 45
34 /* CCLK_DIV controls the core clock divider                             */
35 /* Values can be 1, 2, 4, or 8 ONLY                                     */
36 #define CONFIG_CCLK_DIV                 1
37 /* SCLK_DIV controls the system clock divider                           */
38 /* Values can range from 1-15                                           */
39 #define CONFIG_SCLK_DIV                 6 /* note: 1.2 boards can go faster */
40
41
42 /*
43  * Memory Settings
44  */
45 #define CONFIG_MEM_ADD_WDTH     11
46 #define CONFIG_MEM_SIZE         128
47
48 #define CONFIG_EBIU_SDRRC_VAL   0x268
49 #define CONFIG_EBIU_SDGCTL_VAL  0x911109
50
51 #define CONFIG_EBIU_AMGCTL_VAL  0xFF
52 #define CONFIG_EBIU_AMBCTL0_VAL 0xBBC3BBC3
53 #define CONFIG_EBIU_AMBCTL1_VAL 0x99B39983
54
55 #define CONFIG_SYS_MONITOR_LEN  (256 * 1024)
56 #define CONFIG_SYS_MALLOC_LEN   (384 * 1024)
57
58
59 /*
60  * Network Settings
61  */
62 #define ADI_CMDS_NETWORK        1
63 #define CONFIG_DRIVER_SMC91111  1
64 #define CONFIG_SMC91111_BASE    0x20300300
65 #define SMC91111_EEPROM_INIT() \
66         do { \
67                 *pFIO_DIR |= PF1; \
68                 *pFIO_FLAG_S = PF1; \
69                 SSYNC(); \
70         } while (0)
71 #define CONFIG_HOSTNAME         bf533-stamp
72 /* Uncomment next line to use fixed MAC address */
73 /* #define CONFIG_ETHADDR       02:80:ad:20:31:b8 */
74
75
76 /*
77  * Flash Settings
78  */
79 #define CONFIG_FLASH_CFI_DRIVER
80 #define CONFIG_SYS_FLASH_BASE           0x20000000
81 #define CONFIG_SYS_FLASH_CFI
82 #define CONFIG_SYS_FLASH_CFI_AMD_RESET
83 #define CONFIG_SYS_MAX_FLASH_BANKS      1
84 #define CONFIG_SYS_MAX_FLASH_SECT       67
85
86
87 /*
88  * SPI Settings
89  */
90 #define CONFIG_BFIN_SPI
91 #define CONFIG_ENV_SPI_MAX_HZ   30000000
92 #define CONFIG_SF_DEFAULT_SPEED 30000000
93 #define CONFIG_SPI_FLASH
94 #define CONFIG_SPI_FLASH_ATMEL
95 #define CONFIG_SPI_FLASH_SPANSION
96 #define CONFIG_SPI_FLASH_STMICRO
97 #define CONFIG_SPI_FLASH_WINBOND
98
99
100 /*
101  * Env Storage Settings
102  */
103 #if (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_SPI_MASTER)
104 #define CONFIG_ENV_IS_IN_SPI_FLASH
105 #define CONFIG_ENV_OFFSET       0x10000
106 #define CONFIG_ENV_SIZE         0x2000
107 #define CONFIG_ENV_SECT_SIZE    0x10000
108 #else
109 #define CONFIG_ENV_IS_IN_FLASH
110 #define CONFIG_ENV_OFFSET       0x4000
111 #define CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH_BASE + CONFIG_ENV_OFFSET)
112 #define CONFIG_ENV_SIZE         0x2000
113 #define CONFIG_ENV_SECT_SIZE    0x2000
114 #endif
115 #if (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_BYPASS)
116 #define ENV_IS_EMBEDDED
117 #else
118 #define ENV_IS_EMBEDDED_CUSTOM
119 #endif
120 #ifdef ENV_IS_EMBEDDED
121 /* WARNING - the following is hand-optimized to fit within
122  * the sector before the environment sector. If it throws
123  * an error during compilation remove an object here to get
124  * it linked after the configuration sector.
125  */
126 # define LDS_BOARD_TEXT \
127         cpu/blackfin/traps.o            (.text .text.*); \
128         cpu/blackfin/interrupt.o        (.text .text.*); \
129         cpu/blackfin/serial.o           (.text .text.*); \
130         common/dlmalloc.o               (.text .text.*); \
131         lib_generic/crc32.o             (.text .text.*); \
132         . = DEFINED(env_offset) ? env_offset : .; \
133         common/env_embedded.o           (.text .text.*);
134 #endif
135
136
137 /*
138  * I2C Settings
139  * By default PF2 is used as SDA and PF3 as SCL on the Stamp board
140  */
141 #define CONFIG_SOFT_I2C
142 #ifdef CONFIG_SOFT_I2C
143 #define PF_SCL PF3
144 #define PF_SDA PF2
145 #define I2C_INIT \
146         do { \
147                 *pFIO_DIR |= PF_SCL; \
148                 SSYNC(); \
149         } while (0)
150 #define I2C_ACTIVE \
151         do { \
152                 *pFIO_DIR |= PF_SDA; \
153                 *pFIO_INEN &= ~PF_SDA; \
154                 SSYNC(); \
155         } while (0)
156 #define I2C_TRISTATE \
157         do { \
158                 *pFIO_DIR &= ~PF_SDA; \
159                 *pFIO_INEN |= PF_SDA; \
160                 SSYNC(); \
161         } while (0)
162 #define I2C_READ ((*pFIO_FLAG_D & PF_SDA) != 0)
163 #define I2C_SDA(bit) \
164         do { \
165                 if (bit) \
166                         *pFIO_FLAG_S = PF_SDA; \
167                 else \
168                         *pFIO_FLAG_C = PF_SDA; \
169                 SSYNC(); \
170         } while (0)
171 #define I2C_SCL(bit) \
172         do { \
173                 if (bit) \
174                         *pFIO_FLAG_S = PF_SCL; \
175                 else \
176                         *pFIO_FLAG_C = PF_SCL; \
177                 SSYNC(); \
178         } while (0)
179 #define I2C_DELAY               udelay(5)       /* 1/4 I2C clock duration */
180
181 #define CONFIG_SYS_I2C_SPEED            50000
182 #define CONFIG_SYS_I2C_SLAVE            0
183 #endif
184
185
186 /*
187  * Compact Flash / IDE / ATA Settings
188  */
189
190 /* Enabled below option for CF support */
191 /* #define CONFIG_STAMP_CF */
192 #if defined(CONFIG_STAMP_CF)
193 #define CONFIG_MISC_INIT_R
194 #define CONFIG_DOS_PARTITION    1
195 #undef  CONFIG_IDE_8xx_DIRECT           /* no pcmcia interface required */
196 #undef  CONFIG_IDE_LED                  /* no led for ide supported */
197 #undef  CONFIG_IDE_RESET                /* no reset for ide supported */
198
199 #define CONFIG_SYS_IDE_MAXBUS           1
200 #define CONFIG_SYS_IDE_MAXDEVICE        (CONFIG_SYS_IDE_MAXBUS * 1)
201
202 #define CONFIG_SYS_ATA_BASE_ADDR        0x20200000
203 #define CONFIG_SYS_ATA_IDE0_OFFSET      0x0000
204
205 #define CONFIG_SYS_ATA_DATA_OFFSET      0x0020  /* data I/O */
206 #define CONFIG_SYS_ATA_REG_OFFSET       0x0020  /* normal register accesses */
207 #define CONFIG_SYS_ATA_ALT_OFFSET       0x0007  /* alternate registers */
208
209 #define CONFIG_SYS_ATA_STRIDE           2
210
211 #undef CONFIG_EBIU_AMBCTL1_VAL
212 #define CONFIG_EBIU_AMBCTL1_VAL 0x99B3ffc2
213 #endif
214
215
216 /*
217  * Misc Settings
218  */
219 #define CONFIG_RTC_BFIN
220 #define CONFIG_UART_CONSOLE     0
221
222 /* FLASH/ETHERNET uses the same async bank */
223 #define SHARED_RESOURCES        1
224
225 /* define to enable boot progress via leds */
226 /* #define CONFIG_SHOW_BOOT_PROGRESS */
227
228 /* define to enable run status via led */
229 /* #define CONFIG_STATUS_LED */
230 #ifdef CONFIG_STATUS_LED
231 #define CONFIG_BOARD_SPECIFIC_LED
232 #ifndef __ASSEMBLY__
233 typedef unsigned int led_id_t;
234 void __led_init(led_id_t mask, int state);
235 void __led_set(led_id_t mask, int state);
236 void __led_toggle(led_id_t mask);
237 #endif
238 /* use LED1 to indicate booting/alive */
239 #define STATUS_LED_BOOT 0
240 #define STATUS_LED_BIT 1
241 #define STATUS_LED_STATE STATUS_LED_ON
242 #define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 4)
243 /* use LED2 to indicate crash */
244 #define STATUS_LED_CRASH 1
245 #define STATUS_LED_BIT1 2
246 #define STATUS_LED_STATE1 STATUS_LED_ON
247 #define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2)
248 #endif
249
250 /* define to enable splash screen support */
251 /* #define CONFIG_VIDEO */
252
253
254 /*
255  * Pull in common ADI header for remaining command/environment setup
256  */
257 #include <configs/bfin_adi_common.h>
258
259 #endif