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    Alternate 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, assuming 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. 
 |