mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	I made some updates to the code that didn't make it into the README - fix this Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
		
			
				
	
	
		
			187 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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.
 |