1 Freescale MPC8641HPCN board
2 ===========================
4 Created 05/24/2006 Haiying Wang
5 -------------------------------
9 The 86xx HPCN code base is known to compile using:
10 Binutils 2.15, Gcc 3.4.3, Glibc 2.3.3
12 $ make MPC8641HPCN_config
13 Configuring for MPC8641HPCN board...
18 2. Switch and Jumper Setting
19 ----------------------------
21 J14 Pins 1-2 (near plcc32 socket)
24 SW1(1-5) = 01100 CONFIG_SYS_COREPLL = 01000 :: CORE = 2:1
30 SW1(6-8) = 001 CONFIG_SYS_SYSCLK = 000 :: SYSCLK = 33MHz
33 SW2(1-4) = 1100 CONFIG_SYS_CCBPLL = 0010 :: 2X
41 SW2(5-8) = 1110 CONFIG_SYS_BOOTLOC = 1110 :: boot 16-bit localbus
43 SW3(1-7) = 0011000 CONFIG_SYS_VID = 0011000 :: VCORE = 1.2V
44 0100000 :: VCORE = 1.11V
45 SW3(8) = 0 VCC_PLAT = 0 :: VCC_PLAT = 1.2V
48 SW4(1-2) = 11 CONFIG_SYS_HOSTMODE = 11 :: both prots host/root
49 SW4(3-4) = 11 CONFIG_SYS_BOOTSEQ = 11 :: no boot seq
50 SW4(5-8) = 0011 CONFIG_SYS_IOPORT = 0011 :: both PEX
52 SW5(1) = 1 CONFIG_SYS_FLASHMAP = 1 :: boot from flash
53 0 :: boot from PromJet
54 SW5(2) = 1 CONFIG_SYS_FLASHBANK = 1 :: swap upper/lower
55 halves (virtual banks)
57 SW5(3) = 0 CONFIG_SYS_FLASHWP = 0 :: not protected
58 SW5(4) = 0 CONFIG_SYS_PORTDIV = 1 :: 2:1 for PD4
60 SW5(5-6) = 11 CONFIG_SYS_PIXISOPT = 11 :: s/w determined
61 SW5(7-8) = 11 CONFIG_SYS_LADOPT = 11 :: s/w determined
63 SW6(1) = 1 CONFIG_SYS_CPUBOOT = 1 :: no boot holdoff
64 SW6(2) = 1 CONFIG_SYS_BOOTADDR = 1 :: no traslation
65 SW6(3-5) = 000 CONFIG_SYS_REFCLKSEL = 000 :: 100MHZ
66 SW6(6) = 1 CONFIG_SYS_SERROM_ADDR= 1 ::
67 SW6(7) = 1 CONFIG_SYS_MEMDEBUG = 1 ::
68 SW6(8) = 1 CONFIG_SYS_DDRDEBUG = 1 ::
70 SW8(1) = 1 ACZ_SYNC = 1 :: 48MHz on TP49
71 SW8(2) = 1 ACB_SYNC = 1 :: THRMTRIP disabled
72 SW8(3) = 1 ACZ_SDOUT = 1 :: p4 mode
73 SW8(4) = 1 ACB_SDOUT = 1 :: PATA freq. = 133MHz
74 SW8(5) = 0 SUSLED = 0 :: SouthBridge Mode
75 SW8(6) = 0 SPREAD = 0 :: REFCLK SSCG Disabled
76 SW8(7) = 1 ACPWR = 1 :: non-battery
77 SW8(8) = 0 CONFIG_SYS_IDWP = 0 :: write enable
82 The flash range 0xEF800000 to 0xEFFFFFFF can be divided into 2 halves.
83 It is possible to use either half to boot using u-boot. Switch 5 bit 2
84 is used for this purpose.
86 0xEF800000 to 0xEFBFFFFF - 4MB
87 0xEFC00000 to 0xEFFFFFFF - 4MB
88 When this bit is 0, U-Boot is at 0xEFF00000.
89 When this bit is 1, U-Boot is at 0xEFB00000.
91 Use the above mentioned flash commands to program the other half, and
92 use switch 5, bit 2 to alternate between the halves. Note: The booting
93 version of U-Boot will always be at 0xEFF00000.
95 To Flash U-Boot into the booting bank (0xEFC00000 - 0xEFFFFFFF):
97 tftp 1000000 u-boot.bin
99 erase eff00000 +$filesize
100 cp.b 1000000 eff00000 $filesize
102 or use tftpflash command:
105 To Flash U-boot into the alternative bank (0xEF800000 - 0xEFBFFFFF):
107 tftp 1000000 u-boot.bin
108 erase efb00000 +$filesize
109 cp.b 1000000 efb00000 $filesize
114 NOTE: RIO and PCI are mutually exclusive, so they share an address
116 For 32-bit u-boot, devices are mapped so that the virtual address ==
117 the physical address, and the map looks liks this:
119 Memory Range Device Size
120 ------------ ------ ----
121 0x0000_0000 0x7fff_ffff DDR 2G
122 0x8000_0000 0x9fff_ffff RIO MEM 512M
123 0x8000_0000 0x9fff_ffff PCI1/PEX1 MEM 512M
124 0xa000_0000 0xbfff_ffff PCI2/PEX2 MEM 512M
125 0xffe0_0000 0xffef_ffff CCSR 1M
126 0xffdf_0000 0xffdf_7fff PIXIS 8K
127 0xffdf_8000 0xffdf_ffff CF 8K
128 0xf840_0000 0xf840_3fff Stack space 32K
129 0xffc0_0000 0xffc0_ffff PCI1/PEX1 IO 64K
130 0xffc1_0000 0xffc1_ffff PCI2/PEX2 IO 64K
131 0xef80_0000 0xefff_ffff Flash 8M
133 For 36-bit-enabled u-boot, the virtual map is the same as for 32-bit.
134 However, the physical map is altered to reside in 36-bit space, as follows.
135 Addresses are no longer mapped with VA == PA. All accesses from
136 software use the VA; the PA is only used for setting up windows
137 and mappings. Note that the low 32 bits are the same as the VA above;
138 only the top 4 bits vary:
140 Memory Range Device Size
141 ------------ ------ ----
142 0x0_0000_0000 0x0_7fff_ffff DDR 2G
143 0xc_8000_0000 0xc_9fff_ffff RIO MEM 512M
144 0xc_8000_0000 0xc_9fff_ffff PCI1/PEX1 MEM 512M
145 0xc_a000_0000 0xc_bfff_ffff PCI2/PEX2 MEM 512M
146 0xf_ffe0_0000 0xf_ffef_ffff CCSR 1M
147 0xf_ffdf_0000 0xf_ffdf_7fff PIXIS 8K
148 0xf_ffdf_8000 0xf_ffdf_ffff CF 8K
149 0x0_f840_0000 0xf_f840_3fff Stack space 32K
150 0xf_ffc0_0000 0xf_ffc0_ffff PCI1/PEX1 IO 64K
151 0xf_ffc1_0000 0xf_ffc1_ffff PCI2/PEX2 IO 64K
152 0xf_ef80_0000 0xf_efff_ffff Flash 8M
154 5. pixis_reset command
156 A new command, "pixis_reset", is introduced to reset mpc8641hpcn board
157 using the FPGA sequencer. When the board restarts, it has the option
158 of using either the current or alternate flash bank as the boot
159 image, with or without the watchdog timer enabled, and finally with
160 or without frequency changes.
166 pixis_reset altbank wd
167 pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio>
168 pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio>
172 /* reset to current bank, like "reset" command */
175 /* reset board but use the to alternate flash bank */
178 /* reset board, use alternate flash bank with watchdog timer enabled*/
179 pixis_reset altbank wd
181 /* reset board to alternate bank with frequency changed.
182 * 40 is SYSCLK, 2.5 is COREPLL ratio, 10 is MPXPLL ratio
184 pixis-reset altbank cf 40 2.5 10
186 Valid clock choices are in the 8641 Reference Manuals.