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 CFG_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 CFG_SYSCLK = 000 :: SYSCLK = 33MHz 001 :: SYSCLK = 40MHz SW2(1-4) = 1100 CFG_CCBPLL = 0010 :: 2X 0100 :: 4X 0110 :: 6X 1000 :: 8X 1010 :: 10X 1100 :: 12X 1110 :: 14X 0000 :: 16X SW2(5-8) = 1110 CFG_BOOTLOC = 1110 :: boot 16-bit localbus SW3(1-7) = 0011000 CFG_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 CFG_HOSTMODE = 11 :: both prots host/root SW4(3-4) = 11 CFG_BOOTSEQ = 11 :: no boot seq SW4(5-8) = 0011 CFG_IOPORT = 0011 :: both PEX SW5(1) = 1 CFG_FLASHMAP = 1 :: boot from flash 0 :: boot from PromJet SW5(2) = 1 CFG_FLASHBANK = 1 :: swap upper/lower halves (virtual banks) 0 :: normal SW5(3) = 0 CFG_FLASHWP = 0 :: not protected SW5(4) = 0 CFG_PORTDIV = 1 :: 2:1 for PD4 1:1 for PD6 SW5(5-6) = 11 CFG_PIXISOPT = 11 :: s/w determined SW5(7-8) = 11 CFG_LADOPT = 11 :: s/w determined SW6(1) = 1 CFG_CPUBOOT = 1 :: no boot holdoff SW6(2) = 1 CFG_BOOTADDR = 1 :: no traslation SW6(3-5) = 000 CFG_REFCLKSEL = 000 :: 100MHZ SW6(6) = 1 CFG_SERROM_ADDR= 1 :: SW6(7) = 1 CFG_MEMDEBUG = 1 :: SW6(8) = 1 CFG_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 CFG_IDWP = 0 :: write enable 3. Flash U-Boot --------------- The flash range 0xFF800000 to 0xFFFFFFFF 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. 0xFF800000 to 0xFFBFFFFF - 4MB 0xFFC00000 to 0xFFFFFFFF - 4MB When this bit is 0, U-Boot is at 0xFFF00000. When this bit is 1, U-Boot is at 0xFFB00000. 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 0xFFF00000. To Flash U-Boot into the booting bank (0xFFC00000 - 0xFFFFFFFF): tftp 1000000 u-boot.bin protect off all erase fff00000 +$filesize cp.b 1000000 fff00000 $filesize or use tftpflash command: run tftpflash To Flash U-boot into the alternative bank (0xFF800000 - 0xFFBFFFFF): tftp 1000000 u-boot.bin erase ffb00000 +$filesize cp.b 1000000 ffb00000 $filesize 4. Memory Map ------------- Memory Range Device Size ------------ ------ ---- 0x0000_0000 0x7fff_ffff DDR 2G 0x8000_0000 0x9fff_ffff PCI1/PEX1 MEM 512M 0xa000_0000 0xafff_ffff PCI2/PEX2 MEM 512M 0xf800_0000 0xf80f_ffff CCSR 1M 0xf810_0000 0xf81f_ffff PIXIS 1M 0xf840_0000 0xf840_3fff Stack space 32K 0xe200_0000 0xe2ff_ffff PCI1/PEX1 IO 16M 0xe300_0000 0xe3ff_ffff PCI2/PEX2 IO 16M 0xfe00_0000 0xfeff_ffff Flash(alternate)16M 0xff00_0000 0xffff_ffff Flash(boot bank)16M 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.