blob: c03561cef14a8edc84ed6f932c3832ec35799974 [file] [log] [blame]
Aubrey.Li3f0606a2007-03-09 13:38:44 +08001/*
2 * U-boot - Configuration file for BF533 STAMP board
3 */
4
Mike Frysingercf6f4692008-06-01 09:09:48 -04005#ifndef __CONFIG_BF533_STAMP_H__
6#define __CONFIG_BF533_STAMP_H__
Aubrey.Li3f0606a2007-03-09 13:38:44 +08007
Mike Frysingerf348ab82009-04-24 17:22:40 -04008#include <asm/config-pre.h>
Mike Frysingerf7ce12c2008-02-18 05:26:48 -05009
Aubrey.Li3f0606a2007-03-09 13:38:44 +080010
Aubrey.Li3f0606a2007-03-09 13:38:44 +080011/*
Mike Frysingercf6f4692008-06-01 09:09:48 -040012 * Processor Settings
Aubrey.Li3f0606a2007-03-09 13:38:44 +080013 */
Mike Frysingercf6f4692008-06-01 09:09:48 -040014#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) */
Mike Frysinger9f64ba22008-10-12 23:49:13 -040033#define CONFIG_VCO_MULT 45
Mike Frysingercf6f4692008-06-01 09:09:48 -040034/* 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 5
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
Aubrey Li8db13d62007-03-10 23:49:29 +080063#define CONFIG_DRIVER_SMC91111 1
64#define CONFIG_SMC91111_BASE 0x20300300
Mike Frysingercf6f4692008-06-01 09:09:48 -040065#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 */
Aubrey.Li3f0606a2007-03-09 13:38:44 +080074
Aubrey.Li3f0606a2007-03-09 13:38:44 +080075
76/*
Mike Frysingercf6f4692008-06-01 09:09:48 -040077 * Flash Settings
Aubrey.Li3f0606a2007-03-09 13:38:44 +080078 */
Mike Frysingercf6f4692008-06-01 09:09:48 -040079#define CONFIG_FLASH_CFI_DRIVER
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020080#define CONFIG_SYS_FLASH_BASE 0x20000000
Mike Frysingercf6f4692008-06-01 09:09:48 -040081#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
Aubrey.Li3f0606a2007-03-09 13:38:44 +080085
Mike Frysingercf6f4692008-06-01 09:09:48 -040086
87/*
88 * SPI Settings
89 */
90#define CONFIG_BFIN_SPI
91#define CONFIG_ENV_SPI_MAX_HZ 30000000
Mike Frysingerafac8b02009-06-14 22:29:35 -040092#define CONFIG_SF_DEFAULT_SPEED 30000000
Mike Frysingercf6f4692008-06-01 09:09:48 -040093#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 */
Mike Frysinger9171fc82008-03-30 15:46:13 -0400103#if (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_SPI_MASTER)
Mike Frysingercf6f4692008-06-01 09:09:48 -0400104#define CONFIG_ENV_IS_IN_SPI_FLASH
Vivi Libc43a8d2009-06-12 10:53:22 +0000105#define CONFIG_ENV_OFFSET 0x10000
Mike Frysingercf6f4692008-06-01 09:09:48 -0400106#define CONFIG_ENV_SIZE 0x2000
Vivi Libc43a8d2009-06-12 10:53:22 +0000107#define CONFIG_ENV_SECT_SIZE 0x10000
Mike Frysinger9171fc82008-03-30 15:46:13 -0400108#else
Mike Frysingercf6f4692008-06-01 09:09:48 -0400109#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
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800114#endif
Mike Frysingercf6f4692008-06-01 09:09:48 -0400115#if (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_BYPASS)
116#define ENV_IS_EMBEDDED
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800117#else
Mike Frysingercf6f4692008-06-01 09:09:48 -0400118#define ENV_IS_EMBEDDED_CUSTOM
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800119#endif
Mike Frysinger9ff67e52009-06-14 06:29:07 -0400120#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
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800135
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800136
Jon Loeligerba2351f2007-07-04 22:31:49 -0500137/*
Mike Frysingercf6f4692008-06-01 09:09:48 -0400138 * I2C Settings
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800139 * By default PF2 is used as SDA and PF3 as SCL on the Stamp board
140 */
Mike Frysingercf6f4692008-06-01 09:09:48 -0400141#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)
Aubrey Li8db13d62007-03-10 23:49:29 +0800179#define I2C_DELAY udelay(5) /* 1/4 I2C clock duration */
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800180
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200181#define CONFIG_SYS_I2C_SPEED 50000
Mike Frysingerbe853bf2008-10-06 04:16:47 -0400182#define CONFIG_SYS_I2C_SLAVE 0
Mike Frysingercf6f4692008-06-01 09:09:48 -0400183#endif
184
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800185
186/*
Mike Frysingercf6f4692008-06-01 09:09:48 -0400187 * Compact Flash / IDE / ATA Settings
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800188 */
189
190/* Enabled below option for CF support */
Mike Frysingercf6f4692008-06-01 09:09:48 -0400191/* #define CONFIG_STAMP_CF */
192#if defined(CONFIG_STAMP_CF)
193#define CONFIG_MISC_INIT_R
Aubrey Li8db13d62007-03-10 23:49:29 +0800194#define CONFIG_DOS_PARTITION 1
Aubrey Li8db13d62007-03-10 23:49:29 +0800195#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 */
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800198
Mike Frysingercf6f4692008-06-01 09:09:48 -0400199#define CONFIG_SYS_IDE_MAXBUS 1
200#define CONFIG_SYS_IDE_MAXDEVICE (CONFIG_SYS_IDE_MAXBUS * 1)
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800201
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200202#define CONFIG_SYS_ATA_BASE_ADDR 0x20200000
203#define CONFIG_SYS_ATA_IDE0_OFFSET 0x0000
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800204
Mike Frysingercf6f4692008-06-01 09:09:48 -0400205#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 */
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800208
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200209#define CONFIG_SYS_ATA_STRIDE 2
Mike Frysingercf6f4692008-06-01 09:09:48 -0400210
211#undef CONFIG_EBIU_AMBCTL1_VAL
212#define CONFIG_EBIU_AMBCTL1_VAL 0x99B3ffc2
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800213#endif
214
Mike Frysingercf6f4692008-06-01 09:09:48 -0400215
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800216/*
Mike Frysingercf6f4692008-06-01 09:09:48 -0400217 * Misc Settings
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800218 */
Mike Frysingercf6f4692008-06-01 09:09:48 -0400219#define CONFIG_RTC_BFIN
220#define CONFIG_UART_CONSOLE 0
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800221
Mike Frysingercf6f4692008-06-01 09:09:48 -0400222/* FLASH/ETHERNET uses the same async bank */
223#define SHARED_RESOURCES 1
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800224
Mike Frysinger23fd9592008-10-11 22:40:22 -0400225/* 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__
233typedef unsigned int led_id_t;
234void __led_init(led_id_t mask, int state);
235void __led_set(led_id_t mask, int state);
236void __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
Mike Frysingercf6f4692008-06-01 09:09:48 -0400250/* define to enable splash screen support */
251/* #define CONFIG_VIDEO */
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800252
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800253
254/*
Mike Frysingercf6f4692008-06-01 09:09:48 -0400255 * Pull in common ADI header for remaining command/environment setup
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800256 */
Mike Frysingercf6f4692008-06-01 09:09:48 -0400257#include <configs/bfin_adi_common.h>
Mike Frysinger9171fc82008-03-30 15:46:13 -0400258
Aubrey.Li3f0606a2007-03-09 13:38:44 +0800259#endif