Overview
--------
MPC8572DS is a high-performance computing, evaluation and development platform
supporting the mpc8572 PowerTM processor.

Building U-boot
-----------
	make MPC8572DS_config
	make

Flash Banks
-----------
MPC8572DS board has two flash banks. They are both present on boot, but their
locations can be swapped using the dip-switch SW9[1:2].

Booting is always from the boot bank at 0xec00_0000.


Memory Map
----------

0xe800_0000 - 0xebff_ffff	Alernate bank		64MB
0xec00_0000 - 0xefff_ffff	Boot bank		64MB

0xebf8_0000 - 0xebff_ffff	Alternate u-boot address	512KB
0xeff8_0000 - 0xefff_ffff	Boot u-boot address		512KB


Flashing Images
---------------

To place a new u-boot image in the alternate flash bank and then reset with that
 new image temporarily, use this:

	tftp 1000000 u-boot.bin
	erase ebf80000 ebffffff
	cp.b 1000000 ebf80000 80000
	pixis_reset altbank


To program the image in the boot flash bank:

	tftp 1000000 u-boot.bin
	protect off all
	erase eff80000 ffffffff
	cp.b 1000000 eff80000 80000


The pixis_reset command
-----------------------
The command - "pixis_reset", is introduced to reset mpc8572ds board
using the FPGA sequencer.  When the board restarts, it has the option
of using either the current or alternate flash bank as the boot
image, with or without the watchdog timer enabled, and finally with
or without frequency changes.

Usage is;

	pixis_reset
	pixis_reset altbank
	pixis_reset altbank wd
	pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio>
	pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio>

Examples:

	/* reset to current bank, like "reset" command */
	pixis_reset

	/* reset board but use the to alternate flash bank */
	pixis_reset altbank


Using the Device Tree Source File
---------------------------------
To create the DTB (Device Tree Binary) image file,
use a command similar to this:

	dtc -b 0 -f -I dts -O dtb mpc8572ds.dts > mpc8572ds.dtb

Likely, that .dts file will come from here;

	linux-2.6/arch/powerpc/boot/dts/mpc8572ds.dts


Booting Linux
-------------

Place a linux uImage in the TFTP disk area.

	tftp 1000000 uImage.8572
	tftp c00000 mpc8572ds.dtb
	bootm 1000000 - c00000


Implementing AMP(Asymmetric MultiProcessing)
-------------
1. Build kernel image for core0:

	a. $ make 85xx/mpc8572_ds_defconfig

	b. $ make menuconfig
	   - un-select "Processor support"->"Symetric multi-processing support"

	c. $ make uImage

	d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core0

2. Build kernel image for core1:

	a. $ make 85xx/mpc8572_ds_defconfig

	b. $ make menuconfig
	   - Un-select "Processor support"->"Symetric multi-processing support"
	   - Select "Advanced setup" -> " Prompt for advanced kernel
	     configuration options"
		- Select "Set physical address where the kernel is loaded" and
		  set it to 0x20000000, asssuming core1 will start from 512MB.
		- Select "Set custom page offset address"
		- Select "Set custom kernel base address"
		- Select "Set maximum low memory"
	   - "Exit" and save the selection.

	c. $ make uImage

	d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core1

3. Create dtb for core0:

	$ dtc -I dts -O dtb -f -b 0 arch/powerpc/boot/dts/mpc8572ds_core0.dts > /tftpboot/mpc8572ds_core0.dtb

4. Create dtb for core1:

	$ dtc -I dts -O dtb -f -b 1 arch/powerpc/boot/dts/mpc8572ds_core1.dts > /tftpboot/mpc8572ds_core1.dtb

5. Bring up two cores separately:

	a. Power on the board, under u-boot prompt:
		=> setenv <serverip>
		=> setenv <ipaddr>
		=> setenv bootargs root=/dev/ram rw console=ttyS0,115200
	b. Bring up core1's kernel first:
		=> setenv bootm_low 0x20000000
		=> setenv bootm_size 0x10000000
		=> tftp 21000000 8572/uImage.core1
		=> tftp 22000000 8572/ramdiskfile
		=> tftp 20c00000 8572/mpc8572ds_core1.dtb
		=> interrupts off
		=> bootm start 21000000 22000000 20c00000
		=> bootm loados
		=> bootm ramdisk
		=> bootm fdt
		=> fdt boardsetup
		=> fdt chosen $initrd_start $initrd_end
		=> bootm prep
		=> cpu 1 release $bootm_low - $fdtaddr -
	c. Bring up core0's kernel(on the same u-boot console):
		=> setenv bootm_low 0
		=> setenv bootm_size 0x20000000
		=> tftp 1000000 8572/uImage.core0
		=> tftp 2000000 8572/ramdiskfile
		=> tftp c00000 8572/mpc8572ds_core0.dtb
		=> bootm 1000000 2000000 c00000

Please note only core0 will run u-boot, core1 starts kernel directly after
"cpu release" command is issued.
