commit
8f86a3636e
@ -0,0 +1,167 @@ |
||||
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. |
||||
|
Loading…
Reference in new issue