ppmc7xx.h 11 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419
/*
 * ppmc7xx.h
 * ---------
 * 
 * Wind River PPMC 7xx/74xx board configuration file.
 * 
 * By Richard Danter (richard.danter@windriver.com)
 * Copyright (C) 2005 Wind River Systems
 */


#ifndef __CONFIG_H
#define __CONFIG_H

#define CONFIG_PPMC7XX


/*===================================================================
 * 
 * User configurable settings - Modify to your preference
 * 
 *===================================================================
 */

/*
 * Debug
 * 
 * DEBUG			- Define this is you want extra debug info
 * GTREGREAD			- Required to build with debug
 * do_bdinfo			- Required to build with debug
 */

#undef	DEBUG
#define	GTREGREAD(x)			0xFFFFFFFF
#define	do_bdinfo(a,b,c,d)


/*
 * CPU type
 * 
 * CONFIG_7xx			- We have a 750 or 755 CPU
 * CONFIG_74xx			- We have a 7400 CPU
 * CONFIG_ALTIVEC		- We have altivec enabled CPU (only 7400)
 * CONFIG_BUS_CLK		- System bus clock in Hz
 */

#define	CONFIG_7xx
#undef	CONFIG_74xx
#undef	CONFIG_ALTIVEC
#define CONFIG_BUS_CLK			66000000


/*
 * Monitor configuration
 * 
 * CONFIG_COMMANDS		- List of command sets to include in shell
 * 
 * The following command sets have been tested and known to work:
 * 
 * CFG_CMD_CACHE		- Cache control commands
 * CFG_CMD_MEMORY		- Memory display, change and test commands
 * CFG_CMD_FLASH		- Erase and program flash
 * CFG_CMD_ENV			- Environment commands
 * CFG_CMD_RUN			- Run commands stored in env vars
 * CFG_CMD_ELF			- Load ELF files
 * CFG_CMD_NET			- Networking/file download commands
 * CFG_CMD_PING			- ICMP Echo Request command
 * CFG_CMD_PCI			- PCI Bus scanning command
 */

#define CONFIG_COMMANDS		( (CFG_CMD_DFL & ~(CFG_CMD_KGDB)) |	\
						   CFG_CMD_FLASH |	\
						   CFG_CMD_ENV |	\
						   CFG_CMD_RUN |	\
						   CFG_CMD_ELF |	\
						   CFG_CMD_NET |	\
						   CFG_CMD_PING |	\
						   CFG_CMD_PCI)


/*
 * Serial configuration
 *
 * CONFIG_CONS_INDEX		- Serial console port number (COM1)
 * CONFIG_BAUDRATE			- Serial speed
 */

#define CONFIG_CONS_INDEX		1
#define CONFIG_BAUDRATE			9600


/*
 * PCI config
 * 
 * CONFIG_PCI				- Enable PCI bus
 * CONFIG_PCI_PNP			- Enable Plug & Play support
 * CONFIG_PCI_SCAN_SHOW		- Enable display of devices at startup
 */

#define	CONFIG_PCI
#define	CONFIG_PCI_PNP
#undef	CONFIG_PCI_SCAN_SHOW


/*
 * Network config
 * 
 * CONFIG_NET_MULTI			- Support for multiple network interfaces
 * CONFIG_EEPRO100			- Intel 8255x Ethernet Controller
 * CONFIG_EEPRO100_SROM_WRITE - Enable writing to network card ROM
 */

#define	CONFIG_NET_MULTI
#define	CONFIG_EEPRO100
#define	CONFIG_EEPRO100_SROM_WRITE


/*
 * Enable extra init functions
 * 
 * CONFIG_MISC_INIT_F		- Call pre-relocation init functions
 * CONFIG_MISC_INIT_R		- Call post relocation init functions
 */

#undef	CONFIG_MISC_INIT_F
#define CONFIG_MISC_INIT_R 


/*
 * Boot config
 * 
 * CONFIG_BOOTCOMMAND		- Command(s) to execute to auto-boot
 * CONFIG_BOOTDELAY			- How long to wait before auto-boot (in sec)
 */

#define CONFIG_BOOTCOMMAND		\
	"bootp;" \
	"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " \
	"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;" \
	"bootm"
#define CONFIG_BOOTDELAY		5


/*===================================================================
 * 
 * Board configuration settings - You should not need to modify these
 * 
 *===================================================================
 */


#include <cmd_confdefs.h>


/*
 * Memory map
 * 
 * This board runs in a standard CHRP (Map-B) configuration.
 * 
 *	Type		Start		End			Size	Width	Chip Sel
 *	----------- ----------- ----------- ------- ------- --------
 *	SDRAM		0x00000000	0x04000000	64MB	64b		SDRAMCS0
 *	User LED's	0x78000000						RCS3
 *	UART		0x7C000000						RCS2
 *	Mailbox		0xFF000000						RCS1
 *	Flash		0xFFC00000	0xFFFFFFFF	4MB	64b		RCS0
 * 
 * Flash sectors are laid out as follows.
 * 
 *	Sector	Start		End			Size	Comments
 *	------- ----------- ----------- ------- -----------
 *	 0		0xFFC00000	0xFFC3FFFF	256KB
 *   1		0xFFC40000	0xFFC7FFFF	256KB
 *	 2		0xFFC80000	0xFFCBFFFF	256KB
 *	 3		0xFFCC0000	0xFFCFFFFF	256KB
 *	 4		0xFFD00000	0xFFD3FFFF	256KB
 *	 5		0xFFD40000	0xFFD7FFFF	256KB
 *	 6		0xFFD80000	0xFFDBFFFF	256KB
 *	 7		0xFFDC0000	0xFFDFFFFF	256KB
 *   8		0xFFE00000	0xFFE3FFFF	256KB
 *	 9		0xFFE40000	0xFFE7FFFF	256KB
 *  10		0xFFE80000	0xFFEBFFFF	256KB
 *  11		0xFFEC0000	0xFFEFFFFF	256KB
 *  12		0xFFF00000	0xFFF3FFFF	256KB	U-Boot code here
 *  13		0xFFF40000	0xFFF7FFFF	256KB
 *  14		0xFFF80000	0xFFFBFFFF	256KB
 *  15		0xFFFC0000	0xFFFDFFFF	128KB
 *  16		0xFFFE0000	0xFFFE7FFF	 32KB	U-Boot env vars here
 *  17		0xFFFE8000	0xFFFEFFFF	 32KB	U-Boot backup copy of env vars here
 *  18		0xFFFF0000	0xFFFFFFFF	 64KB
 */


/*
 * SDRAM config - see memory map details above.
 * 
 * CFG_SDRAM_BASE			- Start address of SDRAM, this _must_ be zero!
 * CFG_SDRAM_SIZE			- Total size of contiguous SDRAM bank(s)
 */

#define CFG_SDRAM_BASE			0x00000000
#define CFG_SDRAM_SIZE			0x04000000


/* 
 * Flash config - see memory map details above.
 * 
 * CFG_FLASH_BASE			- Start address of flash memory
 * CFG_FLASH_SIZE			- Total size of contiguous flash mem
 * CFG_FLASH_ERASE_TOUT		- Erase timeout in ms
 * CFG_FLASH_WRITE_TOUT		- Write timeout in ms
 * CFG_MAX_FLASH_BANKS		- Number of banks of flash on board
 * CFG_MAX_FLASH_SECT		- Number of sectors in a bank
 */

#define CFG_FLASH_BASE			0xFFC00000
#define CFG_FLASH_SIZE			0x00400000
#define CFG_FLASH_ERASE_TOUT	250000
#define CFG_FLASH_WRITE_TOUT	5000
#define CFG_MAX_FLASH_BANKS		1
#define CFG_MAX_FLASH_SECT		19


/*
 * Monitor config - see memory map details above
 * 
 * CFG_MONITOR_BASE			- Base address of monitor code
 * CFG_MALLOC_LEN			- Size of malloc pool (128KB)
 */

#define CFG_MONITOR_BASE		TEXT_BASE
#define CFG_MALLOC_LEN			0x20000


/*
 * Command shell settings
 * 
 * CFG_BARGSIZE			- Boot Argument buffer size
 * CFG_BOOTMAPSZ		- Size of app's mapped RAM at boot (Linux=8MB)
 * CFG_CBSIZE			- Console Buffer (input) size
 * CFG_LOAD_ADDR		- Default load address
 * CFG_LONGHELP			- Provide more detailed help
 * CFG_MAXARGS			- Number of args accepted by monitor commands
 * CFG_MEMTEST_START		- Start address of test to run on RAM
 * CFG_MEMTEST_END		- End address of RAM test
 * CFG_PBSIZE			- Print Buffer (output) size
 * CFG_PROMPT			- Prompt string
 */

#define CFG_BARGSIZE			1024
#define CFG_BOOTMAPSZ			0x800000
#define CFG_CBSIZE			1024
#define CFG_LOAD_ADDR			0x100000
#define CFG_LONGHELP
#define CFG_MAXARGS			16
#define CFG_MEMTEST_START		0x00040000
#define CFG_MEMTEST_END			0x00040100
#define CFG_PBSIZE			1024
#define CFG_PROMPT			"=> "


/*
 * Environment config - see memory map details above
 * 
 * CFG_ENV_IS_IN_FLASH		- The env variables are stored in flash
 * CFG_ENV_ADDR			- Address of the sector containing env vars
 * CFG_ENV_SIZE			- Ammount of RAM for env vars (used to save RAM, 4KB) 
 * CFG_ENV_SECT_SIZE		- Size of sector containing env vars (32KB)
 */

#define CFG_ENV_IS_IN_FLASH		1
#define CFG_ENV_ADDR			0xFFFE0000
#define CFG_ENV_SIZE			0x1000
#define CFG_ENV_ADDR_REDUND		0xFFFE8000
#define CFG_ENV_SIZE_REDUND		0x1000
#define CFG_ENV_SECT_SIZE		0x8000


/*
 * Initial RAM config
 *
 * Since the main system RAM is initialised very early, we place the INIT_RAM
 * in the main system RAM just above the exception vectors. The contents are
 * copied to top of RAM by the init code.
 * 
 * CFG_INIT_RAM_ADDR		- Address of Init RAM, above exception vect
 * CFG_INIT_RAM_END			- Size of Init RAM
 * CFG_GBL_DATA_SIZE		- Ammount of RAM to reserve for global data
 * CFG_GBL_DATA_OFFSET		- Start of global data, top of stack
 */

#define CFG_INIT_RAM_ADDR		(CFG_SDRAM_BASE + 0x4000)
#define CFG_INIT_RAM_END		0x4000
#define CFG_GBL_DATA_SIZE		128
#define CFG_GBL_DATA_OFFSET		(CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)


/*
 * Initial BAT config
 * 
 * BAT0	- System SDRAM
 * BAT1 - LED's and Serial Port
 * BAT2 - PCI Memory
 * BAT3 - PCI I/O including Flash Memory
 */

#define CFG_IBAT0L (CFG_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
#define CFG_IBAT0U (CFG_SDRAM_BASE | BATU_BL_64M | BATU_VS | BATU_VP)
#define CFG_DBAT0L CFG_IBAT0L
#define CFG_DBAT0U CFG_IBAT0U

#define CFG_IBAT1L (0x70000000 | BATL_PP_RW | BATL_CACHEINHIBIT)
#define CFG_IBAT1U (0x70000000 | BATU_BL_256M | BATU_VS | BATU_VP)
#define CFG_DBAT1L (0x70000000 | BATL_PP_RW | BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
#define CFG_DBAT1U (0x70000000 | BATU_BL_256M | BATU_VS | BATU_VP)

#define CFG_IBAT2L (0x80000000 | BATL_PP_RW | BATL_CACHEINHIBIT)
#define CFG_IBAT2U (0x80000000 | BATU_BL_256M | BATU_VS | BATU_VP)
#define CFG_DBAT2L (0x80000000 | BATL_PP_RW | BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
#define CFG_DBAT2U (0x80000000 | BATU_BL_256M | BATU_VS | BATU_VP)

#define CFG_IBAT3L (0xF0000000 | BATL_PP_RW | BATL_CACHEINHIBIT)
#define CFG_IBAT3U (0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP)
#define CFG_DBAT3L (0xF0000000 | BATL_PP_RW | BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
#define CFG_DBAT3U (0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP)


/*
 * Cache config
 * 
 * CFG_CACHELINE_SIZE		- Size of a cache line (CPU specific)
 * CFG_L2					- L2 cache enabled if defined
 * L2_INIT					- L2 cache init flags
 * L2_ENABLE				- L2 cache enable flags
 */

#define CFG_CACHELINE_SIZE		32
#undef	CFG_L2
#define L2_INIT					0
#define L2_ENABLE				0


/*
 * Clocks config
 * 
 * CFG_BUS_HZ				- Bus clock frequency in Hz
 * CFG_BUS_CLK				- As above (?)
 * CFG_HZ					- Decrementer freq in Hz
 */

#define CFG_BUS_HZ				CONFIG_BUS_CLK
#define CFG_BUS_CLK				CONFIG_BUS_CLK
#define CFG_HZ					1000


/*
 * Serial port config
 * 
 * CFG_BAUDRATE_TABLE		- List of valid baud rates
 * CFG_NS16550				- Include the NS16550 driver
 * CFG_NS16550_SERIAL		- Include the serial (wrapper) driver
 * CFG_NS16550_CLK			- Frequency of reference clock
 * CFG_NS16550_REG_SIZE		- 64-bit accesses to 8-bit port
 * CFG_NS16550_COM1			- Base address of 1st serial port
 */

#define CFG_BAUDRATE_TABLE		{ 9600, 19200, 38400, 57600, 115200 }
#define CFG_NS16550
#define CFG_NS16550_SERIAL
#define CFG_NS16550_CLK			3686400
#define CFG_NS16550_REG_SIZE	-8
#define CFG_NS16550_COM1		0x7C000000


/*
 * PCI Config - Address Map B (CHRP)
 */

#define CFG_PCI_MEMORY_BUS      0x00000000
#define CFG_PCI_MEMORY_PHYS     0x00000000
#define CFG_PCI_MEMORY_SIZE     0x40000000
#define CFG_PCI_MEM_BUS         0x80000000
#define CFG_PCI_MEM_PHYS        0x80000000
#define CFG_PCI_MEM_SIZE        0x7D000000
#define CFG_ISA_MEM_BUS         0x00000000
#define CFG_ISA_MEM_PHYS        0xFD000000
#define CFG_ISA_MEM_SIZE        0x01000000
#define CFG_PCI_IO_BUS          0x00800000
#define CFG_PCI_IO_PHYS         0xFE800000
#define CFG_PCI_IO_SIZE         0x00400000
#define CFG_ISA_IO_BUS          0x00000000
#define CFG_ISA_IO_PHYS         0xFE000000
#define CFG_ISA_IO_SIZE         0x00800000
#define CFG_ISA_IO_BASE_ADDRESS CFG_ISA_IO_PHYS
#define CFG_ISA_IO              CFG_ISA_IO_PHYS
#define CFG_60X_PCI_IO_OFFSET   CFG_ISA_IO_PHYS


/*
 * Extra init functions
 * 
 * CFG_BOARD_ASM_INIT		- Call assembly init code
 */

#define CFG_BOARD_ASM_INIT


/*
 * Boot flags
 * 
 * BOOTFLAG_COLD			- Indicates a power-on boot
 * BOOTFLAG_WARM			- Indicates a software reset
 */
 
#define BOOTFLAG_COLD			0x01
#define BOOTFLAG_WARM			0x02


#endif /* __CONFIG_H */