Andy Fleming | 7bd30fc | 2007-08-14 01:33:18 -0500 | [diff] [blame^] | 1 | Overview |
| 2 | -------- |
| 3 | The MPC8544DS system is similar to the 85xx CDS systems such |
| 4 | as the MPC8548CDS due to the similar E500 core. However, it |
| 5 | is placed on the same board as the 8641 HPCN system. |
| 6 | |
| 7 | |
| 8 | Flash Banks |
| 9 | ----------- |
| 10 | Like the 85xx CDS systems, the 8544 DS board has two flash banks. |
| 11 | They are both present on boot, but there locations can be swapped |
| 12 | using the dip-switch SW10, bit 2. |
| 13 | |
| 14 | However, unlike the CDS systems, but similar to the 8641 HPCN |
| 15 | board, a runtime reset through the FPGA can also affect a swap |
| 16 | on the flash bank mappings for the next reset cycle. |
| 17 | |
| 18 | Irrespective of the switch SW10[2], booting is always from the |
| 19 | boot bank at 0xfff8_0000. |
| 20 | |
| 21 | |
| 22 | Memory Map |
| 23 | ---------- |
| 24 | |
| 25 | 0xff80_0000 - 0xffbf_ffff Alernate bank 4MB |
| 26 | 0xffc0_0000 - 0xffff_ffff Boot bank 4MB |
| 27 | |
| 28 | 0xffb8_0000 Alternate image start 512KB |
| 29 | 0xfff8_0000 Boot image start 512KB |
| 30 | |
| 31 | |
| 32 | Flashing Images |
| 33 | --------------- |
| 34 | |
| 35 | For example, to place a new image in the alternate flash bank |
| 36 | and then reset with that new image temporarily, use this: |
| 37 | |
| 38 | tftp 1000000 u-boot.bin.8544ds |
| 39 | erase ffb80000 ffbfffff |
| 40 | cp.b 1000000 ffb80000 80000 |
| 41 | pixis_reset altbank |
| 42 | |
| 43 | |
| 44 | To overwrite the image in the boot flash bank: |
| 45 | |
| 46 | tftp 1000000 u-boot.bin.8544ds |
| 47 | protect off all |
| 48 | erase fff80000 ffffffff |
| 49 | cp.b 1000000 fff80000 80000 |
| 50 | |
| 51 | Other example U-Boot image and flash manipulations examples |
| 52 | can be found in the README.mpc85xxcds file as well. |
| 53 | |
| 54 | |
| 55 | The pixis_reset command |
| 56 | ----------------------- |
| 57 | A new command, "pixis_reset", is introduced to reset mpc8641hpcn board |
| 58 | using the FPGA sequencer. When the board restarts, it has the option |
| 59 | of using either the current or alternate flash bank as the boot |
| 60 | image, with or without the watchdog timer enabled, and finally with |
| 61 | or without frequency changes. |
| 62 | |
| 63 | Usage is; |
| 64 | |
| 65 | pixis_reset |
| 66 | pixis_reset altbank |
| 67 | pixis_reset altbank wd |
| 68 | pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> |
| 69 | pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> |
| 70 | |
| 71 | Examples; |
| 72 | |
| 73 | /* reset to current bank, like "reset" command */ |
| 74 | pixis_reset |
| 75 | |
| 76 | /* reset board but use the to alternate flash bank */ |
| 77 | pixis_reset altbank |
| 78 | |
| 79 | /* reset board, use alternate flash bank with watchdog timer enabled*/ |
| 80 | pixis_reset altbank wd |
| 81 | |
| 82 | /* reset board to alternate bank with frequency changed. |
| 83 | * 40 is SYSCLK, 2.5 is COREPLL ratio, 10 is MPXPLL ratio |
| 84 | */ |
| 85 | pixis-reset altbank cf 40 2.5 10 |
| 86 | |
| 87 | Valid clock choices are in the 8641 Reference Manuals. |
| 88 | |
| 89 | |
| 90 | Using the Device Tree Source File |
| 91 | --------------------------------- |
| 92 | To create the DTB (Device Tree Binary) image file, |
| 93 | use a command similar to this: |
| 94 | |
| 95 | dtc -b 0 -f -I dts -O dtb mpc8544ds.dts > mpc8544ds.dtb |
| 96 | |
| 97 | Likely, that .dts file will come from here; |
| 98 | |
| 99 | linux-2.6/arch/powerpc/boot/dts/mpc8544ds.dts |
| 100 | |
| 101 | After placing the DTB file in your TFTP disk area, |
| 102 | you can download that dtb file using a command like: |
| 103 | |
| 104 | tftp 900000 mpc8544ds.dtb |
| 105 | |
| 106 | Burn it to flash if you want. |
| 107 | |
| 108 | |
| 109 | Booting Linux |
| 110 | ------------- |
| 111 | |
| 112 | Place a linux uImage in the TFTP disk area too. |
| 113 | |
| 114 | tftp 1000000 uImage.8544 |
| 115 | tftp 900000 mpc8544ds.dtb |
| 116 | bootm 1000000 - 900000 |
| 117 | |
| 118 | Watch your ethact, netdev and bootargs U-Boot environment variables. |
| 119 | You may want to do something like this too: |
| 120 | |
| 121 | setenv ethact eTSEC3 |
| 122 | setenv netdev eth1 |