MPC8349ITX.h 12.6 KB
Newer Older
1
/* SPDX-License-Identifier: GPL-2.0+ */
2
/*
3
 * Copyright (C) Freescale Semiconductor, Inc. 2006.
4 5 6
 */

/*
7
 MPC8349E-mITX and MPC8349E-mITX-GP board configuration file
8 9 10 11 12 13 14 15 16

 Memory map:

 0x0000_0000-0x0FFF_FFFF DDR SDRAM (256 MB)
 0x8000_0000-0x9FFF_FFFF PCI1 memory space (512 MB)
 0xA000_0000-0xBFFF_FFFF PCI2 memory space (512 MB)
 0xE000_0000-0xEFFF_FFFF IMMR (1 MB)
 0xE200_0000-0xE2FF_FFFF PCI1 I/O space (16 MB)
 0xE300_0000-0xE3FF_FFFF PCI2 I/O space (16 MB)
17
 0xF000_0000-0xF000_FFFF Compact Flash (MPC8349E-mITX only)
18
 0xF001_0000-0xF001_FFFF Local bus expansion slot
19 20 21
 0xF800_0000-0xF801_FFFF Vitesse 7385 Parallel Interface (MPC8349E-mITX only)
 0xFE00_0000-0xFE7F_FFFF First 8MB bank of Flash memory
 0xFE80_0000-0xFEFF_FFFF Second 8MB bank of Flash memory (MPC8349E-mITX only)
22 23

 I2C address list:
W
Wolfgang Denk 已提交
24 25
						Align.	Board
 Bus	Addr	Part No.	Description	Length	Location
26
 ----------------------------------------------------------------
W
Wolfgang Denk 已提交
27
 I2C0	0x50	M24256-BWMN6P	Board EEPROM	2	U64
28

W
Wolfgang Denk 已提交
29 30 31 32 33 34
 I2C1	0x20	PCF8574		I2C Expander	0	U8
 I2C1	0x21	PCF8574		I2C Expander	0	U10
 I2C1	0x38	PCF8574A	I2C Expander	0	U8
 I2C1	0x39	PCF8574A	I2C Expander	0	U10
 I2C1	0x51	(DDR)		DDR EEPROM	1	U1
 I2C1	0x68	DS1339		RTC		1	U68
35 36 37 38 39 40 41

 Note that a given board has *either* a pair of 8574s or a pair of 8574As.
*/

#ifndef __CONFIG_H
#define __CONFIG_H

42
#define CONFIG_MISC_INIT_F
43

44 45 46
/*
 * On-board devices
 */
47

48
#ifdef CONFIG_TARGET_MPC8349ITX
49 50
/* The CF card interface on the back of the board */
#define CONFIG_COMPACT_FLASH
51
#define CONFIG_VSC7385_ENET	/* VSC7385 ethernet support */
52
#define CONFIG_SYS_USB_HOST	/* use the EHCI USB controller */
53
#endif
54

55
#define CONFIG_RTC_DS1337
56
#define CONFIG_SYS_I2C
57

58 59 60 61 62
/*
 * Device configurations
 */

/* I2C */
63 64 65 66 67 68 69 70
#ifdef CONFIG_SYS_I2C
#define CONFIG_SYS_I2C_FSL
#define CONFIG_SYS_FSL_I2C_SPEED	400000
#define CONFIG_SYS_FSL_I2C_SLAVE	0x7F
#define CONFIG_SYS_FSL_I2C_OFFSET	0x3000
#define CONFIG_SYS_FSL_I2C2_SPEED	400000
#define CONFIG_SYS_FSL_I2C2_SLAVE	0x7F
#define CONFIG_SYS_FSL_I2C2_OFFSET	0x3100
71

72
#define CONFIG_SYS_SPD_BUS_NUM		1	/* The I2C bus for SPD */
73
#define CONFIG_SYS_RTC_BUS_NUM		1	/* The I2C bus for RTC */
74 75 76 77 78 79

#define CONFIG_SYS_I2C_8574_ADDR1	0x20	/* I2C1, PCF8574 */
#define CONFIG_SYS_I2C_8574_ADDR2	0x21	/* I2C1, PCF8574 */
#define CONFIG_SYS_I2C_8574A_ADDR1	0x38	/* I2C1, PCF8574A */
#define CONFIG_SYS_I2C_8574A_ADDR2	0x39	/* I2C1, PCF8574A */
#define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* I2C0, Board EEPROM */
80 81
#define CONFIG_SYS_I2C_RTC_ADDR		0x68	/* I2C1, DS1339 RTC*/
#define SPD_EEPROM_ADDRESS		0x51	/* I2C1, DDR */
82 83

/* Don't probe these addresses: */
84
#define CONFIG_SYS_I2C_NOPROBES	{ {1, CONFIG_SYS_I2C_8574_ADDR1}, \
85 86
				 {1, CONFIG_SYS_I2C_8574_ADDR2}, \
				 {1, CONFIG_SYS_I2C_8574A_ADDR1}, \
87
				 {1, CONFIG_SYS_I2C_8574A_ADDR2} }
88
/* Bit definitions for the 8574[A] I2C expander */
89 90
				/* Board revision, 00=0.0, 01=0.1, 10=1.0 */
#define I2C_8574_REVISION	0x03
91 92 93 94 95 96 97
#define I2C_8574_CF		0x08	/* 1=Compact flash absent, 0=present */
#define I2C_8574_MPCICLKRN	0x10	/* MiniPCI Clk Run */
#define I2C_8574_PCI66		0x20	/* 0=33MHz PCI, 1=66MHz PCI */
#define I2C_8574_FLASHSIDE	0x40	/* 0=Reset vector from U4, 1=from U7*/

#endif

98 99
/* Compact Flash */
#ifdef CONFIG_COMPACT_FLASH
100

101 102
#define CONFIG_SYS_IDE_MAXBUS		1
#define CONFIG_SYS_IDE_MAXDEVICE	1
103

104 105 106 107 108 109
#define CONFIG_SYS_ATA_IDE0_OFFSET	0x0000
#define CONFIG_SYS_ATA_BASE_ADDR	CONFIG_SYS_CF_BASE
#define CONFIG_SYS_ATA_DATA_OFFSET	0x0000
#define CONFIG_SYS_ATA_REG_OFFSET	0
#define CONFIG_SYS_ATA_ALT_OFFSET	0x0200
#define CONFIG_SYS_ATA_STRIDE		2
110

111 112
/* If a CF card is not inserted, time out quickly */
#define ATA_RESET_TIME	1
113

114 115 116 117 118 119 120 121 122
#endif

/*
 * SATA
 */
#ifdef CONFIG_SATA_SIL3114

#define CONFIG_SYS_SATA_MAX_DEVICE      4
#define CONFIG_LBA48
123

124
#endif
125

126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
#ifdef CONFIG_SYS_USB_HOST
/*
 * Support USB
 */
#define CONFIG_USB_EHCI_FSL

/* Current USB implementation supports the only USB controller,
 * so we have to choose between the MPH or the DR ones */
#if 1
#define CONFIG_HAS_FSL_MPH_USB
#else
#define CONFIG_HAS_FSL_DR_USB
#endif

#endif

142
/*
143
 * DDR Setup
144
 */
145
#define CONFIG_SYS_SDRAM_BASE		0x00000000 /* DDR is system memory*/
146
#define CONFIG_SYS_83XX_DDR_USES_CS0
147
#define CONFIG_SYS_MEMTEST_START	0x1000	/* memtest region */
148 149
#define CONFIG_SYS_MEMTEST_END		0x2000

150 151
#define CONFIG_SYS_DDR_SDRAM_CLK_CNTL	(DDR_SDRAM_CLK_CNTL_SS_EN \
					| DDR_SDRAM_CLK_CNTL_CLK_ADJUST_075)
152

153 154 155
#define CONFIG_VERY_BIG_RAM
#define CONFIG_MAX_MEM_MAPPED   ((phys_size_t)256 << 20)

156
#ifdef CONFIG_SYS_I2C
157 158 159
#define CONFIG_SPD_EEPROM		/* use SPD EEPROM for DDR setup*/
#endif

160 161 162
/* No SPD? Then manually set up DDR parameters */
#ifndef CONFIG_SPD_EEPROM
    #define CONFIG_SYS_DDR_SIZE		256	/* Mb */
163
    #define CONFIG_SYS_DDR_CS0_CONFIG	(CSCONFIG_EN \
164 165
					| CSCONFIG_ROW_BIT_13 \
					| CSCONFIG_COL_BIT_10)
166

167 168
    #define CONFIG_SYS_DDR_TIMING_1	0x26242321
    #define CONFIG_SYS_DDR_TIMING_2	0x00000800  /* P9-45, may need tuning */
169 170
#endif

171 172 173 174
/*
 *Flash on the Local Bus
 */

175 176
#define CONFIG_SYS_FLASH_BASE		0xFE000000	/* start of FLASH   */
#define CONFIG_SYS_FLASH_EMPTY_INFO
177 178
/* 127 64KB sectors + 8 8KB sectors per device */
#define CONFIG_SYS_MAX_FLASH_SECT	135
179 180 181
#define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
#define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
182 183 184

/* The ITX has two flash chips, but the ITX-GP has only one.  To support both
boards, we say we have two, but don't display a message if we find only one. */
185
#define CONFIG_SYS_FLASH_QUIET_TEST
186 187 188 189
#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
#define CONFIG_SYS_FLASH_BANKS_LIST	\
		{CONFIG_SYS_FLASH_BASE, CONFIG_SYS_FLASH_BASE + 0x800000}
#define CONFIG_SYS_FLASH_SIZE		16	/* FLASH size in MB */
190

191 192 193 194 195 196 197 198 199 200 201 202
/* Vitesse 7385 */

#ifdef CONFIG_VSC7385_ENET

#define CONFIG_TSEC2

/* The flash address and size of the VSC7385 firmware image */
#define CONFIG_VSC7385_IMAGE		0xFEFFE000
#define CONFIG_VSC7385_IMAGE_SIZE	8192

#endif

203 204 205 206
/*
 * BRx, ORx, LBLAWBARx, and LBLAWARx
 */

M
Mario Six 已提交
207

208
/* Vitesse 7385 */
209

210
#define CONFIG_SYS_VSC7385_BASE	0xF8000000
211

212 213
#ifdef CONFIG_VSC7385_ENET

M
Mario Six 已提交
214

215
#endif
216

217

218
#define CONFIG_SYS_LED_BASE	0xF9000000
M
Mario Six 已提交
219

220 221

/* Compact Flash */
222 223 224

#ifdef CONFIG_COMPACT_FLASH

225
#define CONFIG_SYS_CF_BASE	0xF0000000
226 227 228 229


#endif

230 231 232
/*
 * U-Boot memory configuration
 */
233
#define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_TEXT_BASE	/* start of monitor */
234

235 236
#if (CONFIG_SYS_MONITOR_BASE < CONFIG_SYS_FLASH_BASE)
#define CONFIG_SYS_RAMBOOT
237
#else
238
#undef	CONFIG_SYS_RAMBOOT
239 240
#endif

241
#define CONFIG_SYS_INIT_RAM_LOCK
242 243
#define CONFIG_SYS_INIT_RAM_ADDR	0xFD000000	/* Initial RAM addr */
#define CONFIG_SYS_INIT_RAM_SIZE	0x1000	/* Size of used area in RAM*/
244

245 246
#define CONFIG_SYS_GBL_DATA_OFFSET	\
			(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
247
#define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET
248

249
/* CONFIG_SYS_MONITOR_LEN must be a multiple of CONFIG_ENV_SECT_SIZE */
250
#define CONFIG_SYS_MONITOR_LEN	(512 * 1024) /* Reserve 512 kB for Mon */
251
#define CONFIG_SYS_MALLOC_LEN	(256 * 1024) /* Reserved for malloc */
252 253 254 255

/*
 * Serial Port
 */
256 257 258
#define CONFIG_SYS_NS16550_SERIAL
#define CONFIG_SYS_NS16550_REG_SIZE	1
#define CONFIG_SYS_NS16550_CLK		get_bus_freq(0)
259

260
#define CONFIG_SYS_BAUDRATE_TABLE  \
261
		{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 115200}
262

S
Simon Glass 已提交
263
#define CONSOLE			ttyS0
264

265 266
#define CONFIG_SYS_NS16550_COM1	(CONFIG_SYS_IMMR + 0x4500)
#define CONFIG_SYS_NS16550_COM2	(CONFIG_SYS_IMMR + 0x4600)
267

268 269 270
/*
 * PCI
 */
271
#ifdef CONFIG_PCI
272
#define CONFIG_PCI_INDIRECT_BRIDGE
273 274 275 276 277 278 279

#define CONFIG_MPC83XX_PCI2

/*
 * General PCI
 * Addresses are mapped 1-1.
 */
280 281 282
#define CONFIG_SYS_PCI1_MEM_BASE	0x80000000
#define CONFIG_SYS_PCI1_MEM_PHYS	CONFIG_SYS_PCI1_MEM_BASE
#define CONFIG_SYS_PCI1_MEM_SIZE	0x10000000	/* 256M */
283 284
#define CONFIG_SYS_PCI1_MMIO_BASE	\
			(CONFIG_SYS_PCI1_MEM_BASE + CONFIG_SYS_PCI1_MEM_SIZE)
285 286
#define CONFIG_SYS_PCI1_MMIO_PHYS	CONFIG_SYS_PCI1_MMIO_BASE
#define CONFIG_SYS_PCI1_MMIO_SIZE	0x10000000	/* 256M */
287 288 289
#define CONFIG_SYS_PCI1_IO_BASE		0x00000000
#define CONFIG_SYS_PCI1_IO_PHYS		0xE2000000
#define CONFIG_SYS_PCI1_IO_SIZE		0x01000000	/* 16M */
290 291

#ifdef CONFIG_MPC83XX_PCI2
292 293
#define CONFIG_SYS_PCI2_MEM_BASE	\
			(CONFIG_SYS_PCI1_MMIO_BASE + CONFIG_SYS_PCI1_MMIO_SIZE)
294 295
#define CONFIG_SYS_PCI2_MEM_PHYS	CONFIG_SYS_PCI2_MEM_BASE
#define CONFIG_SYS_PCI2_MEM_SIZE	0x10000000	/* 256M */
296 297
#define CONFIG_SYS_PCI2_MMIO_BASE	\
			(CONFIG_SYS_PCI2_MEM_BASE + CONFIG_SYS_PCI2_MEM_SIZE)
298 299
#define CONFIG_SYS_PCI2_MMIO_PHYS	CONFIG_SYS_PCI2_MMIO_BASE
#define CONFIG_SYS_PCI2_MMIO_SIZE	0x10000000	/* 256M */
300 301 302 303
#define CONFIG_SYS_PCI2_IO_BASE		0x00000000
#define CONFIG_SYS_PCI2_IO_PHYS		\
			(CONFIG_SYS_PCI1_IO_PHYS + CONFIG_SYS_PCI1_IO_SIZE)
#define CONFIG_SYS_PCI2_IO_SIZE		0x01000000	/* 16M */
304 305 306 307
#endif

#ifndef CONFIG_PCI_PNP
    #define PCI_ENET0_IOADDR	0x00000000
308
    #define PCI_ENET0_MEMADDR	CONFIG_SYS_PCI2_MEM_BASE
309 310 311 312 313 314 315 316 317 318
    #define PCI_IDSEL_NUMBER	0x0f	/* IDSEL = AD15 */
#endif

#define CONFIG_PCI_SCAN_SHOW		/* show pci devices on startup */

#endif

/* TSEC */

#ifdef CONFIG_TSEC_ENET
319
#define CONFIG_TSEC1
320

321
#ifdef CONFIG_TSEC1
322
#define CONFIG_HAS_ETH0
323
#define CONFIG_TSEC1_NAME  "TSEC0"
324
#define CONFIG_SYS_TSEC1_OFFSET	0x24000
W
Wolfgang Denk 已提交
325
#define TSEC1_PHY_ADDR		0x1c	/* VSC8201 uses address 0x1c */
326
#define TSEC1_PHYIDX		0
327
#define TSEC1_FLAGS		TSEC_GIGABIT
328 329
#endif

330
#ifdef CONFIG_TSEC2
331
#define CONFIG_HAS_ETH1
332
#define CONFIG_TSEC2_NAME  "TSEC1"
333
#define CONFIG_SYS_TSEC2_OFFSET	0x25000
334

335 336
#define TSEC2_PHY_ADDR		4
#define TSEC2_PHYIDX		0
337
#define TSEC2_FLAGS		TSEC_GIGABIT
338 339 340 341 342 343 344 345 346
#endif

#define CONFIG_ETHPRIME		"Freescale TSEC"

#endif

/*
 * Environment
 */
347 348
#define CONFIG_ENV_OVERWRITE

349
#ifndef CONFIG_SYS_RAMBOOT
350 351
  #define CONFIG_ENV_ADDR	\
			(CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
352
  #define CONFIG_ENV_SECT_SIZE	0x10000 /* 64K (one sector) for environment */
353
  #define CONFIG_ENV_SIZE	0x2000
354
#else
355 356
  #define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - 0x1000)
  #define CONFIG_ENV_SIZE	0x2000
357 358 359
#endif

#define CONFIG_LOADS_ECHO	/* echo on for serial download */
360
#define CONFIG_SYS_LOADS_BAUD_CHANGE	/* allow baudrate change */
361

362 363 364 365 366
/*
 * BOOTP options
 */
#define CONFIG_BOOTP_BOOTFILESIZE

367 368 369 370 371 372
/* Watchdog */
#undef CONFIG_WATCHDOG		/* watchdog disabled */

/*
 * Miscellaneous configurable options
 */
373

374
#define CONFIG_SYS_LOAD_ADDR	0x2000000	/* default load address */
375
#define CONFIG_LOADADDR	800000	/* default location for tftp and bootm */
376

377 378
/*
 * For booting Linux, the board info and command line data
379
 * have to be in the first 256 MB of memory, since this is
380 381
 * the maximum mapped by the Linux kernel during initialization.
 */
382 383
				/* Initial Memory map for Linux*/
#define CONFIG_SYS_BOOTMAPSZ	(256 << 20)
384
#define CONFIG_SYS_BOOTM_LEN	(64 << 20)	/* Increase max gunzip size */
385

386 387 388
/*
 * System performance
 */
389 390
#define CONFIG_SYS_SCCR_TSEC1CM	1	/* TSEC1 clock mode (0-3) */
#define CONFIG_SYS_SCCR_TSEC2CM	1	/* TSEC2 & I2C0 clock mode (0-3) */
391 392
#define CONFIG_SYS_SCCR_USBMPHCM 3	/* USB MPH controller's clock */
#define CONFIG_SYS_SCCR_USBDRCM	0	/* USB DR controller's clock */
393

394 395 396
/*
 * System IO Config
 */
397 398 399 400
/* Needed for gigabit to work on TSEC 1 */
#define CONFIG_SYS_SICRH SICRH_TSOBI1
				/* USB DR as device + USB MPH as host */
#define CONFIG_SYS_SICRL	(SICRL_LDP_A | SICRL_USB1)
401

402
#if defined(CONFIG_CMD_KGDB)
403 404 405 406 407 408 409 410
#define CONFIG_KGDB_BAUDRATE	230400	/* speed of kgdb serial port */
#endif

/*
 * Environment Configuration
 */
#define CONFIG_ENV_OVERWRITE

411
#define CONFIG_NETDEV		"eth0"
412

413
/* Default path and filenames */
414
#define CONFIG_ROOTPATH		"/nfsroot/rootfs"
415
#define CONFIG_BOOTFILE		"uImage"
416 417
				/* U-Boot image on TFTP server */
#define CONFIG_UBOOTPATH	"u-boot.bin"
418

419
#ifdef CONFIG_TARGET_MPC8349ITX
420
#define CONFIG_FDTFILE		"mpc8349emitx.dtb"
421
#else
422
#define CONFIG_FDTFILE		"mpc8349emitxgp.dtb"
423 424
#endif

425

W
Wolfgang Denk 已提交
426
#define CONFIG_EXTRA_ENV_SETTINGS \
S
Simon Glass 已提交
427
	"console=" __stringify(CONSOLE) "\0"			\
428 429
	"netdev=" CONFIG_NETDEV "\0"					\
	"uboot=" CONFIG_UBOOTPATH "\0"					\
W
Wolfgang Denk 已提交
430
	"tftpflash=tftpboot $loadaddr $uboot; "				\
431 432 433 434 435 436 437 438 439 440
		"protect off " __stringify(CONFIG_SYS_TEXT_BASE)	\
			" +$filesize; "	\
		"erase " __stringify(CONFIG_SYS_TEXT_BASE)		\
			" +$filesize; "	\
		"cp.b $loadaddr " __stringify(CONFIG_SYS_TEXT_BASE)	\
			" $filesize; "	\
		"protect on " __stringify(CONFIG_SYS_TEXT_BASE)		\
			" +$filesize; "	\
		"cmp.b $loadaddr " __stringify(CONFIG_SYS_TEXT_BASE)	\
			" $filesize\0"	\
441
	"fdtaddr=780000\0"						\
442
	"fdtfile=" CONFIG_FDTFILE "\0"
443

W
Wolfgang Denk 已提交
444
#define CONFIG_NFSBOOTCOMMAND						\
445
	"setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath"	\
446
	" ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off "\
447 448 449 450
	" console=$console,$baudrate $othbootargs; "			\
	"tftp $loadaddr $bootfile;"					\
	"tftp $fdtaddr $fdtfile;"					\
	"bootm $loadaddr - $fdtaddr"
451

W
Wolfgang Denk 已提交
452
#define CONFIG_RAMBOOTCOMMAND						\
453 454 455 456 457 458
	"setenv bootargs root=/dev/ram rw"				\
	" console=$console,$baudrate $othbootargs; "			\
	"tftp $ramdiskaddr $ramdiskfile;"				\
	"tftp $loadaddr $bootfile;"					\
	"tftp $fdtaddr $fdtfile;"					\
	"bootm $loadaddr $ramdiskaddr $fdtaddr"
459 460

#endif