Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
[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_STAMP_H__
6 #define __CONFIG_STAMP_H__
7
8 #include <asm/blackfin-config-pre.h>
9
10 #define CONFIG_RTC_BFIN                 1
11
12 #define CONFIG_PANIC_HANG 1
13
14 #define CONFIG_BFIN_CPU bf533-0.3
15 #define CONFIG_BFIN_BOOT_MODE BFIN_BOOT_BYPASS
16
17 /* This sets the default state of the cache on U-Boot's boot */
18 #define CONFIG_ICACHE_ON
19 #define CONFIG_DCACHE_ON
20
21 /*
22  * Board settings
23  */
24 #define CONFIG_DRIVER_SMC91111  1
25 #define CONFIG_SMC91111_BASE    0x20300300
26
27 /* FLASH/ETHERNET uses the same address range */
28 #define SHARED_RESOURCES        1
29
30 /* Is I2C bit-banged? */
31 #define CONFIG_SOFT_I2C         1
32
33 /*
34  * Software (bit-bang) I2C driver configuration
35  */
36 #define PF_SCL                  PF3
37 #define PF_SDA                  PF2
38
39 /*
40  * Video splash screen support
41  */
42 #define  CONFIG_VIDEO           0
43
44 /*
45  * Clock settings
46  */
47
48 /* CONFIG_CLKIN_HZ is any value in Hz                           */
49 #define CONFIG_CLKIN_HZ         11059200
50 /* CONFIG_CLKIN_HALF controls what is passed to PLL 0=CLKIN     */
51 /*                                                  1=CLKIN/2   */
52 #define CONFIG_CLKIN_HALF       0
53 /* CONFIG_PLL_BYPASS controls if the PLL is used 0=don't bypass */
54 /*                                               1=bypass PLL   */
55 #define CONFIG_PLL_BYPASS       0
56 /* CONFIG_VCO_MULT controls what the multiplier of the PLL is.  */
57 /* Values can range from 1-64                                   */
58 #define CONFIG_VCO_MULT         36
59 /* CONFIG_CCLK_DIV controls what the core clock divider is      */
60 /* Values can be 1, 2, 4, or 8 ONLY                             */
61 #define CONFIG_CCLK_DIV         1
62 /* CONFIG_SCLK_DIV controls what the peripheral clock divider is*/
63 /* Values can range from 1-15                                   */
64 #define CONFIG_SCLK_DIV         5
65 /* CONFIG_SPI_BAUD controls the SPI peripheral clock divider    */
66 /* Values can range from 2-65535                                */
67 /* SCK Frequency = SCLK / (2 * CONFIG_SPI_BAUD)                 */
68 #define CONFIG_SPI_BAUD         2
69 #define CONFIG_SPI_BAUD_INITBLOCK       4
70
71 /*
72  * Network settings
73  */
74
75 #if (CONFIG_DRIVER_SMC91111)
76 #if 0
77 #define CONFIG_MII
78 #endif
79
80 /* network support */
81 #define CONFIG_IPADDR           192.168.0.15
82 #define CONFIG_NETMASK          255.255.255.0
83 #define CONFIG_GATEWAYIP        192.168.0.1
84 #define CONFIG_SERVERIP         192.168.0.2
85 #define CONFIG_HOSTNAME         STAMP
86 #define CONFIG_ROOTPATH         /checkout/uClinux-dist/romfs
87
88 /* To remove hardcoding and enable MAC storage in EEPROM  */
89 /* #define CONFIG_ETHADDR               02:80:ad:20:31:b8 */
90 #endif /* CONFIG_DRIVER_SMC91111 */
91
92 /*
93  * Flash settings
94  */
95
96 #define CFG_FLASH_CFI           /* The flash is CFI compatible  */
97 #define CONFIG_FLASH_CFI_DRIVER /* Use common CFI driver        */
98 #define CFG_FLASH_CFI_AMD_RESET
99
100 #define CFG_FLASH_BASE          0x20000000
101 #define CFG_MAX_FLASH_BANKS     1       /* max number of memory banks */
102 #define CFG_MAX_FLASH_SECT      67      /* max number of sectors on one chip */
103
104 #if (CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_SPI_MASTER)
105 #define CFG_ENV_IS_IN_EEPROM    1
106 #define CFG_ENV_OFFSET          0x4000
107 #define CFG_ENV_HEADER          (CFG_ENV_OFFSET + 0x12A)        /* 0x12A is the length of LDR file header */
108 #else
109 #define CFG_ENV_IS_IN_FLASH     1
110 #define CFG_ENV_ADDR            0x20004000
111 #define CFG_ENV_OFFSET          (CFG_ENV_ADDR - CFG_FLASH_BASE)
112 #endif
113
114 #define CFG_ENV_SIZE            0x2000
115 #define CFG_ENV_SECT_SIZE       0x2000  /* Total Size of Environment Sector */
116 #define ENV_IS_EMBEDDED
117
118 #define CFG_FLASH_ERASE_TOUT    30000   /* Timeout for Chip Erase (in ms) */
119 #define CFG_FLASH_ERASEBLOCK_TOUT       5000    /* Timeout for Block Erase (in ms) */
120 #define CFG_FLASH_WRITE_TOUT    1       /* Timeout for Flash Write (in ms) */
121
122 /* JFFS Partition offset set  */
123 #define CFG_JFFS2_FIRST_BANK 0
124 #define CFG_JFFS2_NUM_BANKS  1
125 /* 512k reserved for u-boot */
126 #define CFG_JFFS2_FIRST_SECTOR  11
127
128 /*
129  * following timeouts shall be used once the
130  * Flash real protection is enabled
131  */
132 #define CFG_FLASH_LOCK_TOUT     5       /* Timeout for Flash Set Lock Bit (in ms) */
133 #define CFG_FLASH_UNLOCK_TOUT   10000   /* Timeout for Flash Clear Lock Bits (in ms) */
134
135 /*
136  * SDRAM settings & memory map
137  */
138
139 #define CONFIG_MEM_SIZE         128     /* 128, 64, 32, 16 */
140 #define CONFIG_MEM_ADD_WDTH     11      /* 8, 9, 10, 11    */
141 #define CONFIG_MEM_MT48LC64M4A2FB_7E    1
142
143 #define CFG_MEMTEST_START       0x00000000      /* memtest works on */
144
145 #define CFG_SDRAM_BASE          0x00000000
146
147 #define CFG_MAX_RAM_SIZE        (CONFIG_MEM_SIZE * 1024 *1024)
148 #define CFG_MEMTEST_END         (CFG_MAX_RAM_SIZE - 0x80000 - 1)
149 #define CONFIG_LOADADDR         0x01000000
150
151 #define CFG_LOAD_ADDR           CONFIG_LOADADDR
152 #define CFG_MONITOR_LEN         (256 << 10)     /* Reserve 256 kB for Monitor   */
153 #define CFG_MALLOC_LEN          (128 << 10)     /* Reserve 128 kB for malloc()  */
154 #define CFG_GBL_DATA_SIZE       0x4000          /* Reserve 16k for Global Data  */
155 #define CONFIG_STACKSIZE        (128*1024)      /* regular stack */
156
157 #define CFG_MONITOR_BASE                (CFG_MAX_RAM_SIZE - 0x40000)
158 #define CFG_MALLOC_BASE         (CFG_MONITOR_BASE - CFG_MALLOC_LEN)
159 #define CFG_GBL_DATA_ADDR       (CFG_MALLOC_BASE - CFG_GBL_DATA_SIZE)
160 #define CONFIG_STACKBASE        (CFG_GBL_DATA_ADDR  - 4)
161
162 /* Check to make sure everything fits in SDRAM */
163 #if ((CFG_MONITOR_BASE + CFG_MONITOR_LEN) > CFG_MAX_RAM_SIZE)
164         #error Memory Map does not fit into configuration
165 #endif
166
167 #if ( CONFIG_CLKIN_HALF == 0 )
168 #define CONFIG_VCO_HZ           ( CONFIG_CLKIN_HZ * CONFIG_VCO_MULT )
169 #else
170 #define CONFIG_VCO_HZ           (( CONFIG_CLKIN_HZ * CONFIG_VCO_MULT ) / 2 )
171 #endif
172
173 #if (CONFIG_PLL_BYPASS == 0)
174 #define CONFIG_CCLK_HZ          ( CONFIG_VCO_HZ / CONFIG_CCLK_DIV )
175 #define CONFIG_SCLK_HZ          ( CONFIG_VCO_HZ / CONFIG_SCLK_DIV )
176 #else
177 #define CONFIG_CCLK_HZ          CONFIG_CLKIN_HZ
178 #define CONFIG_SCLK_HZ          CONFIG_CLKIN_HZ
179 #endif
180
181 /*
182  * Command settings
183  */
184
185 #define CFG_LONGHELP            1
186 #define CONFIG_CMDLINE_EDITING  1
187
188 #define CFG_AUTOLOAD            "no"    /*rarpb, bootp or dhcp commands will perform only a */
189
190 /* configuration lookup from the BOOTP/DHCP server, */
191 /* but not try to load any image using TFTP         */
192
193 #define CONFIG_BOOTDELAY        5
194 #define CONFIG_BOOT_RETRY_TIME  -1      /* Enable this if bootretry required, currently its disabled */
195 #define CONFIG_BOOTCOMMAND      "run ramboot"
196
197 #define CONFIG_BOOTARGS         "root=/dev/mtdblock0 rw console=ttyBF0,57600"
198
199
200 #define CONFIG_EXTRA_ENV_SETTINGS \
201         "ramargs=setenv bootargs root=/dev/mtdblock0 rw console=ttyBF0,57600\0" \
202         "nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):" \
203                 "$(rootpath) console=ttyBF0,57600\0" \
204         "addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):" \
205                 "$(gatewayip):$(netmask):$(hostname):eth0:off\0" \
206         "ramboot=tftpboot $(loadaddr) linux; " \
207                 "run ramargs;run addip;bootelf\0" \
208         "nfsboot=tftpboot $(loadaddr) linux; " \
209                 "run nfsargs;run addip;bootelf\0" \
210         "flashboot=bootm 0x20100000\0" \
211         "update=tftpboot $(loadaddr) u-boot.bin; " \
212                 "protect off 0x20000000 0x2003FFFF; erase 0x20000000 0x2003FFFF;" \
213                 "cp.b $(loadaddr) 0x20000000 $(filesize)\0" \
214         ""
215
216 #ifdef CONFIG_SOFT_I2C
217 #if (!CONFIG_SOFT_I2C)
218 #undef CONFIG_SOFT_I2C
219 #endif
220 #endif
221
222
223 /*
224  * BOOTP options
225  */
226 #define CONFIG_BOOTP_BOOTFILESIZE
227 #define CONFIG_BOOTP_BOOTPATH
228 #define CONFIG_BOOTP_GATEWAY
229 #define CONFIG_BOOTP_HOSTNAME
230
231
232 /*
233  * Command line configuration.
234  */
235 #include <config_cmd_default.h>
236
237 #define CONFIG_CMD_ELF
238 #define CONFIG_CMD_CACHE
239 #define CONFIG_CMD_JFFS2
240 #define CONFIG_CMD_EEPROM
241 #define CONFIG_CMD_DATE
242
243 #if (CONFIG_DRIVER_SMC91111)
244 #define CONFIG_CMD_PING
245 #endif
246
247 #if (CONFIG_SOFT_I2C)
248 #define CONFIG_CMD_I2C
249 #endif
250
251 #define CONFIG_CMD_DHCP
252
253
254 /*
255  * Console settings
256  */
257
258 #define CONFIG_BAUDRATE         57600
259 #define CFG_BAUDRATE_TABLE      { 9600, 19200, 38400, 57600, 115200 }
260
261 #define CFG_PROMPT              "bfin> "        /* Monitor Command Prompt */
262
263 #if defined(CONFIG_CMD_KGDB)
264 #define CFG_CBSIZE      1024            /* Console I/O Buffer Size */
265 #else
266 #define CFG_CBSIZE      256             /* Console I/O Buffer Size */
267 #endif
268 #define CFG_PBSIZE      (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)      /* Print Buffer Size */
269 #define CFG_MAXARGS     16              /* max number of command args */
270 #define CFG_BARGSIZE    CFG_CBSIZE      /* Boot Argument Buffer Size */
271
272 #define CONFIG_LOADS_ECHO       1
273
274 /*
275  * I2C settings
276  * By default PF2 is used as SDA and PF3 as SCL on the Stamp board
277  */
278 #if (CONFIG_SOFT_I2C)
279
280 #define I2C_INIT                (*pFIO_DIR |=  PF_SCL); asm("ssync;")
281 #define I2C_ACTIVE              (*pFIO_DIR |=  PF_SDA); *pFIO_INEN &= ~PF_SDA; asm("ssync;")
282 #define I2C_TRISTATE            (*pFIO_DIR &= ~PF_SDA); *pFIO_INEN |= PF_SDA; asm("ssync;")
283 #define I2C_READ                ((volatile)(*pFIO_FLAG_D & PF_SDA) != 0); asm("ssync;")
284 #define I2C_SDA(bit)    if(bit) { \
285                                 *pFIO_FLAG_S = PF_SDA; \
286                                 asm("ssync;"); \
287                                 } \
288                         else    { \
289                                 *pFIO_FLAG_C = PF_SDA; \
290                                 asm("ssync;"); \
291                                 }
292 #define I2C_SCL(bit)    if(bit) { \
293                                 *pFIO_FLAG_S = PF_SCL; \
294                                 asm("ssync;"); \
295                                 } \
296                         else    { \
297                                 *pFIO_FLAG_C = PF_SCL; \
298                                 asm("ssync;"); \
299                                 }
300 #define I2C_DELAY               udelay(5)       /* 1/4 I2C clock duration */
301
302 #define CFG_I2C_SPEED           50000
303 #define CFG_I2C_SLAVE           0xFE
304 #endif /* CONFIG_SOFT_I2C */
305
306 /*
307  * Compact Flash settings
308  */
309
310 /* Enabled below option for CF support */
311 /* #define CONFIG_STAMP_CF      1 */
312
313 #if defined(CONFIG_STAMP_CF) && defined(CONFIG_CMD_IDE)
314
315 #define CONFIG_MISC_INIT_R      1
316 #define CONFIG_DOS_PARTITION    1
317 /*
318  * IDE/ATA stuff
319  */
320 #undef  CONFIG_IDE_8xx_DIRECT           /* no pcmcia interface required */
321 #undef  CONFIG_IDE_LED                  /* no led for ide supported */
322 #undef  CONFIG_IDE_RESET                /* no reset for ide supported */
323
324 #define CFG_IDE_MAXBUS          1       /* max. 1 IDE busses */
325 #define CFG_IDE_MAXDEVICE       (CFG_IDE_MAXBUS*1) /* max. 1 drives per IDE bus */
326
327 #define CFG_ATA_BASE_ADDR       0x20200000
328 #define CFG_ATA_IDE0_OFFSET     0x0000
329
330 #define CFG_ATA_DATA_OFFSET     0x0020  /* Offset for data I/O */
331 #define CFG_ATA_REG_OFFSET      0x0020  /* Offset for normal register accesses */
332 #define CFG_ATA_ALT_OFFSET      0x0007  /* Offset for alternate registers */
333
334 #define CFG_ATA_STRIDE          2
335 #endif
336
337 /*
338  * Miscellaneous configurable options
339  */
340
341 #define CFG_HZ                  1000    /* 1ms time tick */
342
343 #define CFG_BOOTM_LEN           0x4000000/* Large Image Length, set to 64 Meg */
344
345 #define CONFIG_SHOW_BOOT_PROGRESS 1     /* Show boot progress on LEDs */
346
347 #define CONFIG_SPI
348
349 #ifdef  CONFIG_VIDEO
350 #if (CONFIG_VIDEO)
351 #define CONFIG_SPLASH_SCREEN    1
352 #define CONFIG_SILENT_CONSOLE   1
353 #else
354 #undef CONFIG_VIDEO
355 #endif
356 #endif
357
358 /*
359  * FLASH organization and environment definitions
360  */
361
362 #define CONFIG_EBIU_SDRRC_VAL  0x268
363 #define CONFIG_EBIU_SDGCTL_VAL 0x911109
364 #define CONFIG_EBIU_SDBCTL_VAL 0x37
365
366 #define CONFIG_EBIU_AMGCTL_VAL          0xFF
367 #define CONFIG_EBIU_AMBCTL0_VAL         0xBBC3BBC3
368 #define CONFIG_EBIU_AMBCTL1_VAL         0x99B39983
369 #define CF_CONFIG_EBIU_AMBCTL1_VAL              0x99B3ffc2
370
371 #include <asm/blackfin-config-post.h>
372
373 #endif