Freescale MPC8641HPCN board 
 | 
=========================== 
 | 
  
 | 
Created 05/24/2006 Haiying Wang 
 | 
------------------------------- 
 | 
  
 | 
1. Building U-Boot 
 | 
------------------ 
 | 
The 86xx HPCN code base is known to compile using: 
 | 
    Binutils 2.15, Gcc 3.4.3, Glibc 2.3.3 
 | 
  
 | 
    $ make MPC8641HPCN_config 
 | 
    Configuring for MPC8641HPCN board... 
 | 
  
 | 
    $ make 
 | 
  
 | 
  
 | 
2. Switch and Jumper Setting 
 | 
---------------------------- 
 | 
Jumpers: 
 | 
    J14 Pins 1-2 (near plcc32 socket) 
 | 
  
 | 
Switches: 
 | 
    SW1(1-5) = 01100    CONFIG_SYS_COREPLL    = 01000 :: CORE =   2:1 
 | 
                          01100 :: CORE = 2.5:1 
 | 
                          10000 :: CORE =   3:1 
 | 
                          11100 :: CORE = 3.5:1 
 | 
                          10100 :: CORE =   4:1 
 | 
                          01110 :: CORE = 4.5:1 
 | 
    SW1(6-8) = 001        CONFIG_SYS_SYSCLK    = 000    :: SYSCLK = 33MHz 
 | 
                          001    :: SYSCLK = 40MHz 
 | 
  
 | 
    SW2(1-4) = 1100        CONFIG_SYS_CCBPLL    = 0010    :: 2X 
 | 
                          0100    :: 4X 
 | 
                          0110    :: 6X 
 | 
                          1000    :: 8X 
 | 
                          1010    :: 10X 
 | 
                          1100    :: 12X 
 | 
                          1110    :: 14X 
 | 
                          0000    :: 16X 
 | 
    SW2(5-8) = 1110        CONFIG_SYS_BOOTLOC    = 1110    :: boot 16-bit localbus 
 | 
  
 | 
    SW3(1-7) = 0011000    CONFIG_SYS_VID        = 0011000 :: VCORE = 1.2V 
 | 
                          0100000 :: VCORE = 1.11V 
 | 
    SW3(8)     = 0        VCC_PLAT    = 0    :: VCC_PLAT = 1.2V 
 | 
                          1    :: VCC_PLAT = 1.0V 
 | 
  
 | 
    SW4(1-2) = 11        CONFIG_SYS_HOSTMODE    = 11    :: both prots host/root 
 | 
    SW4(3-4) = 11        CONFIG_SYS_BOOTSEQ    = 11    :: no boot seq 
 | 
    SW4(5-8) = 0011        CONFIG_SYS_IOPORT    = 0011    :: both PEX 
 | 
  
 | 
    SW5(1)     = 1        CONFIG_SYS_FLASHMAP    = 1    :: boot from flash 
 | 
                          0    :: boot from PromJet 
 | 
    SW5(2)     = 1        CONFIG_SYS_FLASHBANK    = 1    :: swap upper/lower 
 | 
                             halves (virtual banks) 
 | 
                          0    :: normal 
 | 
    SW5(3)     = 0        CONFIG_SYS_FLASHWP    = 0    :: not protected 
 | 
    SW5(4)     = 0        CONFIG_SYS_PORTDIV    = 1    :: 2:1 for PD4 
 | 
                               1:1 for PD6 
 | 
    SW5(5-6) = 11        CONFIG_SYS_PIXISOPT    = 11    :: s/w determined 
 | 
    SW5(7-8) = 11        CONFIG_SYS_LADOPT    = 11    :: s/w determined 
 | 
  
 | 
    SW6(1)     = 1        CONFIG_SYS_CPUBOOT    = 1    :: no boot holdoff 
 | 
    SW6(2)     = 1        CONFIG_SYS_BOOTADDR    = 1    :: no traslation 
 | 
    SW6(3-5) = 000        CONFIG_SYS_REFCLKSEL    = 000    :: 100MHZ 
 | 
    SW6(6)     = 1        CONFIG_SYS_SERROM_ADDR= 1    :: 
 | 
    SW6(7)     = 1        CONFIG_SYS_MEMDEBUG    = 1    :: 
 | 
    SW6(8)     = 1        CONFIG_SYS_DDRDEBUG    = 1    :: 
 | 
  
 | 
    SW8(1)     = 1        ACZ_SYNC    = 1    :: 48MHz on TP49 
 | 
    SW8(2)     = 1        ACB_SYNC    = 1    :: THRMTRIP disabled 
 | 
    SW8(3)     = 1        ACZ_SDOUT    = 1    :: p4 mode 
 | 
    SW8(4)     = 1        ACB_SDOUT    = 1    :: PATA freq. = 133MHz 
 | 
    SW8(5)     = 0        SUSLED        = 0    :: SouthBridge Mode 
 | 
    SW8(6)     = 0        SPREAD        = 0    :: REFCLK SSCG Disabled 
 | 
    SW8(7)     = 1        ACPWR        = 1    :: non-battery 
 | 
    SW8(8)     = 0        CONFIG_SYS_IDWP    = 0    :: write enable 
 | 
  
 | 
  
 | 
3. Flash U-Boot 
 | 
--------------- 
 | 
The flash range 0xEF800000 to 0xEFFFFFFF can be divided into 2 halves. 
 | 
It is possible to use either half to boot using U-Boot.  Switch 5 bit 2 
 | 
is used for this purpose. 
 | 
  
 | 
0xEF800000 to 0xEFBFFFFF - 4MB 
 | 
0xEFC00000 to 0xEFFFFFFF - 4MB 
 | 
When this bit is 0, U-Boot is at 0xEFF00000. 
 | 
When this bit is 1, U-Boot is at 0xEFB00000. 
 | 
  
 | 
Use the above mentioned flash commands to program the other half, and 
 | 
use switch 5, bit 2 to alternate between the halves.  Note: The booting 
 | 
version of U-Boot will always be at 0xEFF00000. 
 | 
  
 | 
To Flash U-Boot into the booting bank (0xEFC00000 - 0xEFFFFFFF): 
 | 
  
 | 
    tftp 1000000 u-boot.bin 
 | 
    protect off all 
 | 
    erase eff00000 +$filesize 
 | 
    cp.b 1000000 eff00000 $filesize 
 | 
  
 | 
or use tftpflash command: 
 | 
    run tftpflash 
 | 
  
 | 
To Flash U-Boot into the alternative bank (0xEF800000 - 0xEFBFFFFF): 
 | 
  
 | 
    tftp 1000000 u-boot.bin 
 | 
    erase efb00000 +$filesize 
 | 
    cp.b 1000000 efb00000 $filesize 
 | 
  
 | 
  
 | 
4. Memory Map 
 | 
------------- 
 | 
NOTE:  RIO and PCI are mutually exclusive, so they share an address 
 | 
  
 | 
For 32-bit U-Boot, devices are mapped so that the virtual address == 
 | 
the physical address, and the map looks liks this: 
 | 
  
 | 
    Memory Range            Device        Size 
 | 
    ------------            ------        ---- 
 | 
    0x0000_0000    0x7fff_ffff    DDR        2G 
 | 
    0x8000_0000    0x9fff_ffff    RIO MEM        512M 
 | 
    0x8000_0000    0x9fff_ffff    PCI1/PEX1 MEM    512M 
 | 
    0xa000_0000    0xbfff_ffff    PCI2/PEX2 MEM    512M 
 | 
    0xffe0_0000    0xffef_ffff    CCSR        1M 
 | 
    0xffdf_0000    0xffdf_7fff    PIXIS        8K 
 | 
    0xffdf_8000    0xffdf_ffff    CF        8K 
 | 
    0xf840_0000    0xf840_3fff    Stack space    32K 
 | 
    0xffc0_0000    0xffc0_ffff    PCI1/PEX1 IO    64K 
 | 
    0xffc1_0000    0xffc1_ffff    PCI2/PEX2 IO    64K 
 | 
    0xef80_0000    0xefff_ffff    Flash        8M 
 | 
  
 | 
For 36-bit-enabled U-Boot, the virtual map is the same as for 32-bit. 
 | 
However, the physical map is altered to reside in 36-bit space, as follows. 
 | 
Addresses are no longer mapped with VA == PA.  All accesses from 
 | 
software use the VA; the PA is only used for setting up windows 
 | 
and mappings. Note that with the exception of PCI MEM and RIO, the low 
 | 
 32 bits are the same as the VA above; only the top 4 bits vary: 
 | 
  
 | 
    Memory Range            Device        Size 
 | 
    ------------            ------        ---- 
 | 
    0x0_0000_0000    0x0_7fff_ffff    DDR        2G 
 | 
    0xc_0000_0000    0xc_1fff_ffff    RIO MEM        512M 
 | 
    0xc_0000_0000    0xc_1fff_ffff    PCI1/PEX1 MEM    512M 
 | 
    0xc_2000_0000    0xc_3fff_ffff    PCI2/PEX2 MEM    512M 
 | 
    0xf_ffe0_0000    0xf_ffef_ffff    CCSR        1M 
 | 
    0xf_ffdf_0000    0xf_ffdf_7fff    PIXIS        8K 
 | 
    0xf_ffdf_8000    0xf_ffdf_ffff    CF        8K 
 | 
    0x0_f840_0000    0xf_f840_3fff    Stack space    32K 
 | 
    0xf_ffc0_0000    0xf_ffc0_ffff    PCI1/PEX1 IO    64K 
 | 
    0xf_ffc1_0000    0xf_ffc1_ffff    PCI2/PEX2 IO    64K 
 | 
    0xf_ef80_0000    0xf_efff_ffff    Flash        8M 
 | 
  
 | 
5. pixis_reset command 
 | 
-------------------- 
 | 
A new command, "pixis_reset", is introduced to reset mpc8641hpcn 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 
 | 
  
 | 
    /* reset board, use alternate flash bank with watchdog timer enabled*/ 
 | 
    pixis_reset altbank wd 
 | 
  
 | 
    /* reset board to alternate bank with frequency changed. 
 | 
     * 40 is SYSCLK, 2.5 is COREPLL ratio, 10 is MPXPLL ratio 
 | 
     */ 
 | 
    pixis-reset altbank cf 40 2.5 10 
 | 
  
 | 
Valid clock choices are in the 8641 Reference Manuals. 
 |