Freescale MPC8360EMDS Board
-----------------------------------------
1.	Board Switches and Jumpers
1.0 	There are four Dual-In-Line Packages(DIP) Switches on MPC8360EMDS board
	For some reason, the HW designers describe the switch settings
	in terms of 0 and 1, and then map that to physical switches where
	the label "On" refers to logic 0 and "Off" is logic 1.

	Switch bits are numbered 1 through, like, 4 6 8 or 10, but the
	bits may contribute to signals that are numbered based at 0,
	and some of those signals may be high-bit-number-0 too.  Heed
	well the names and labels and do not get confused.

		"Off" == 1
		"On"  == 0

	SW18 is switch 18 as silk-screened onto the board.
	SW4[8] is the bit labled 8 on Switch 4.
	SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2.
	SW3[7:1] refers to bits labeled 7 through 1 in order on switch 3.
	SW3[1:8]= 0000_0001 refers to bits labeled 1 through 6 is set as "On"
		and bits labeled 8 is set as "Off".

1.1	There are three type boards for MPC8360E silicon up to now, They are

	* MPC8360E-MDS-PB PROTO (a.k.a 8360SYS PROTOTYPE)
	* MPC8360E-MDS-PB PILOT (a.k.a 8360SYS PILOT)
	* MPC8360EA-MDS-PB PROTO (a.k.a 8360SYS2 PROTOTYPE)

1.2	For all the MPC8360EMDS Board

	First, make sure the board default setting is consistent with the
	document shipped with your board. Then apply the following setting:
	SW3[1-8]= 0000_0100  (HRCW setting value is performed on local bus)
	SW4[1-8]= 0011_0000  (Flash boot on local bus)
	SW9[1-8]= 0110_0110  (PCI Mode enabled. HRCW is read from FLASH)
	SW10[1-8]= 0000_1000  (core PLL setting)
	SW11[1-8]= 0000_0100 (SW11 is on the another side of the board)
	JP6 1-2
	on board Oscillator: 66M

1.3	Since different board/chip rev. combinations have AC timing issues,
	u-boot forces RGMII-ID (RGMII with Internal Delay) mode on by default
	by the patch (mpc83xx: Disable G1TXCLK, G2TXCLK h/w buffers).

	When the rev2.x silicon mount on these boards, and if you are using
	u-boot version after this patch, to make the ethernet interfaces usable,
	and to enable RGMII-ID on your board, you have to setup the jumpers
	correctly.

	* MPC8360E-MDS-PB PROTO
	  nothing to do
	* MPC8360E-MDS-PB PILOT
	  JP9 and JP8 should be ON
	* MPC8360EA-MDS-PB PROTO
	  JP2 and JP3 should be ON

2.	Memory Map

2.1.	The memory map should look pretty much like this:

	0x0000_0000	0x7fff_ffff	DDR			2G
	0x8000_0000	0x8fff_ffff	PCI MEM prefetch	256M
	0x9000_0000	0x9fff_ffff	PCI MEM non-prefetch	256M
	0xc000_0000	0xdfff_ffff	Empty			512M
	0xe000_0000	0xe01f_ffff	Int Mem Reg Space	2M
	0xe020_0000	0xe02f_ffff	Empty			1M
	0xe030_0000	0xe03f_ffff	PCI IO			1M
	0xe040_0000	0xefff_ffff	Empty			252M
	0xf000_0000	0xf3ff_ffff	Local Bus SDRAM		64M
	0xf400_0000	0xf7ff_ffff	Empty			64M
	0xf800_0000	0xf800_7fff	BCSR on CS1		32K
	0xf800_8000	0xf800_ffff	PIB CS4			32K
	0xf801_0000	0xf801_7fff	PIB CS5			32K
	0xfe00_0000	0xfeff_ffff	FLASH on CS0		16M


3. Definitions

3.1 Explanation of NEW definitions in:

	include/configs/MPC8360EMDS.h

    CONFIG_MPC83XX	    MPC83xx family for both MPC8349 and MPC8360
    CONFIG_MPC8360	    MPC8360 specific
    CONFIG_MPC8360EMDS	    MPC8360EMDS board specific

4. Compilation

	Assuming you're using BASH shell:

		export CROSS_COMPILE=your-cross-compile-prefix
		cd u-boot
		make distclean
		make MPC8360EMDS_config
		make

	MPC8360 support PCI in host and slave mode.

	To make u-boot support PCI host 66M :
	1) DIP SW support PCI mode as described in Section 1.1.
	2) Make MPC8360EMDS_HOST_66_config

	To make u-boot support PCI host 33M :
	1) DIP SW setting is similar as Section 1.1, except for SW3[4] is 1
	2) Make MPC8360EMDS_HOST_33_config

	To make u-boot support PCI slave 66M :
	1) DIP SW setting is similar as Section 1.1, except for SW9[3] is 1
	2) Make MPC8360EMDS_SLAVE_config


5. Downloading and Flashing Images

5.0 Download over serial line using Kermit:

	loadb
	[Drop to kermit:
	    ^\c
	    send <u-boot-bin-image>
	    c
	]


    Or via tftp:

	tftp 10000 u-boot.bin

5.1 Reflash U-boot Image using U-boot

	tftp 20000 u-boot.bin
	protect off fef00000 fef3ffff
	erase fef00000 fef3ffff

	cp.b 20000 fef00000 xxxx

	or

	cp.b 20000 fef00000 3ffff


You have to supply the correct byte count with 'xxxx' from the TFTP result log.
Maybe 3ffff will work too, that corresponds to the erased sectors.


6. Notes
	1) The console baudrate for MPC8360EMDS is 115200bps.
