Freescale MPC8313ERDB Board
-----------------------------------------

1.	Board Switches and Jumpers

	SW3 is used to set CFG_RESET_SOURCE.

	To boot the image at 0xFE000000 in NOR flash, use these DIP
	switche settings for SW3 SW4:

	+------+	+------+
	|      |	| **** |
	| **** |	|      |
	+------+ ON	+------+ ON
	  4321		  4321
	(where the '*' indicates the position of the tab of the switch.)

2.	Memory Map
	The memory map looks like this:

	0x0000_0000	0x07ff_ffff	DDR		 128M
	0x8000_0000	0x8fff_ffff	PCI MEM		 256M
	0x9000_0000	0x9fff_ffff	PCI_MMIO	 256M
	0xe000_0000	0xe00f_ffff	IMMR		 1M
	0xe200_0000	0xe20f_ffff	PCI IO	 	 16M
	0xe280_0000	0xe280_7fff	NAND FLASH (CS1) 32K
	0xf000_0000	0xf001_ffff	VSC7385 (CS2)	 128K
	0xfa00_0000	0xfa00_7fff	Board Status/	 32K
					LED Control (CS3)
	0xfe00_0000	0xfe7f_ffff	NOR FLASH (CS0)	 8M

3.	Definitions

3.1	Explanation of NEW definitions in:

	include/configs/MPC8313ERDB.h

	CONFIG_MPC83xx		MPC83xx family
	CONFIG_MPC831x		MPC831x specific
	CONFIG_MPC8313ERDB	MPC8313ERDB board specific

4.	Compilation

	Assuming you're using BASH (or similar) as your shell:

	export CROSS_COMPILE=your-cross-compiler-prefix-
	make distclean
	make MPC8313ERDB_33_config
	(or make MPC8313ERDB_66_config, depending on the speed of
	 the oscillator on your board)
	make

5.	Downloading and Flashing Images

5.1	Reflash U-boot Image using U-boot

	=>run tftpflash

	You may want to try
	=>tftpboot $loadaddr $uboot
	first, to make sure that the TFTP load will succeed before it
	goes ahead and wipes out your current firmware.  And of course,
	have an alternate means of programming the flash available
	if the new u-boot doesn't boot.

5.2	Downloading and Booting Linux Kernel

	Ensure that all networking-related environment variables are set
	properly (including ipaddr, serverip, gatewayip (if needed),
	netmask, ethaddr, eth1addr, rootpath (if using NFS root),
	fdtfile, and bootfile).

	Then, do one of the following, depending on whether you
	want an NFS root or a ramdisk root:

	=>run nfsboot
	or
	=>run ramboot

6	Notes

	Booting from NAND flash is not yet supported.
	The console baudrate for MPC8313ERDB is 115200bps.
