mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	The TB5200 ("Tinybox") is a small baseboard for the TQM5200 module
integrated in a little aluminium case.
Patch by Martin Krause, 8 Jun 2006
Some code cleanup
		
	
			
		
			
				
	
	
		
			337 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			337 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * init.S
 | |
|  * ------
 | |
|  *
 | |
|  * Wind River PPMC 7xx/74xx init code.
 | |
|  *
 | |
|  * By Richard Danter (richard.danter@windriver.com)
 | |
|  * Copyright (C) 2005 Wind River Systems
 | |
|  *
 | |
|  * NOTE: The following code was generated automatically by Workbench
 | |
|  *       from the ppmc7400_107.reg register file.
 | |
|  */
 | |
| 
 | |
| #include <ppc_asm.tmpl>
 | |
| 
 | |
| 
 | |
| .globl board_asm_init
 | |
| board_asm_init:
 | |
| 
 | |
|       lis    r4,0xFEC0
 | |
|       ori    r4,r4,0x0000
 | |
|       lis    r5,0xFEE0
 | |
|       ori    r5,r5,0x0000
 | |
|       lis    r3,0x8000          # ADDR_00
 | |
|       ori    r3,r3,0x0000
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x1057          # VENDOR
 | |
|       li    r8, 0x0
 | |
|       sthbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_02
 | |
|       ori    r3,r3,0x0002
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x0004          # ID
 | |
|       li    r8, 0x2
 | |
|       sthbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_04
 | |
|       ori    r3,r3,0x0004
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x0006          # PCICMD
 | |
|       li    r8, 0x0
 | |
|       sthbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_06
 | |
|       ori    r3,r3,0x0006
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00A0          # PCISTAT
 | |
|       li    r8, 0x2
 | |
|       sthbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_08
 | |
|       ori    r3,r3,0x0008
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x10            # REVID
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_09
 | |
|       ori    r3,r3,0x0009
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # PROGIR
 | |
|       stb    r3,0x1(r5)
 | |
|       lis    r3,0x8000          # ADDR_0A
 | |
|       ori    r3,r3,0x000A
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # SUBCCODE
 | |
|       stb    r3,0x2(r5)
 | |
|       lis    r3,0x8000          # ADDR_0B
 | |
|       ori    r3,r3,0x000B
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x06            # PBCCR
 | |
|       stb    r3,0x3(r5)
 | |
|       lis    r3,0x8000          # ADDR_0C
 | |
|       ori    r3,r3,0x000C
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x08            # PCLSR
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_0D
 | |
|       ori    r3,r3,0x000D
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # PLTR
 | |
|       stb    r3,0x1(r5)
 | |
|       lis    r3,0x8000          # ADDR_0E
 | |
|       ori    r3,r3,0x000E
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # HEADTYPE
 | |
|       stb    r3,0x2(r5)
 | |
|       lis    r3,0x8000          # ADDR_0F
 | |
|       ori    r3,r3,0x000F
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # BISTCTRL
 | |
|       stb    r3,0x3(r5)
 | |
|       lis    r3,0x8000          # ADDR_10
 | |
|       ori    r3,r3,0x0010
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0000          # LMBAR
 | |
|       ori    r3,r3,0x0008
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_14
 | |
|       ori    r3,r3,0x0014
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xF000          # PCSRBAR
 | |
|       ori    r3,r3,0x0000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_3C
 | |
|       ori    r3,r3,0x003C
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # ILR
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_3D
 | |
|       ori    r3,r3,0x003D
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x01            # INTPIN
 | |
|       stb    r3,0x1(r5)
 | |
|       lis    r3,0x8000          # ADDR_3E
 | |
|       ori    r3,r3,0x003E
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # MIN_GNT
 | |
|       stb    r3,0x2(r5)
 | |
|       lis    r3,0x8000          # ADDR_3F
 | |
|       ori    r3,r3,0x003F
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # MAX_LAT
 | |
|       stb    r3,0x3(r5)
 | |
|       lis    r3,0x8000          # ADDR_40
 | |
|       ori    r3,r3,0x0040
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # BUSNB
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_41
 | |
|       ori    r3,r3,0x0041
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # SBUSNB
 | |
|       stb    r3,0x1(r5)
 | |
|       lis    r3,0x8000          # ADDR_46
 | |
|       ori    r3,r3,0x0046
 | |
|       stwbrx    r3,0,r4
 | |
| #      li     r3,0xE080          # PCIARB
 | |
|       li     r3,-0x1F80          # PCIARB
 | |
|       li    r8, 0x2
 | |
|       sthbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_70
 | |
|       ori    r3,r3,0x0070
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x0000          # PMCR1
 | |
|       li    r8, 0x0
 | |
|       sthbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_72
 | |
|       ori    r3,r3,0x0072
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0xC0            # PMCR2
 | |
|       stb    r3,0x2(r5)
 | |
|       lis    r3,0x8000          # ADDR_73
 | |
|       ori    r3,r3,0x0073
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0xEF            # ODCR
 | |
|       stb    r3,0x3(r5)
 | |
|       lis    r3,0x8000          # ADDR_74
 | |
|       ori    r3,r3,0x0074
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x7D00          # CLKDCR
 | |
|       li    r8, 0x0
 | |
|       sthbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_76
 | |
|       ori    r3,r3,0x0076
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # MDCR
 | |
|       stb    r3,0x2(r5)
 | |
|       lis    r6,0xFCE0
 | |
|       ori    r6,r6,0x0000       # r6 is the EUMBAR Base Address
 | |
|       lis    r3,0x8000          # ADDR_78
 | |
|       ori    r3,r3,0x0078
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xFCE0          # EUMBBAR
 | |
|       ori    r3,r3,0x0000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_80
 | |
|       ori    r3,r3,0x0080
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xFFFF          # MSADDR1
 | |
|       ori    r3,r3,0x4000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_84
 | |
|       ori    r3,r3,0x0084
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xFFFF          # MSADDR2
 | |
|       ori    r3,r3,0xFFFF
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_88
 | |
|       ori    r3,r3,0x0088
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0303          # EMSADDR1
 | |
|       ori    r3,r3,0x0000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_8C
 | |
|       ori    r3,r3,0x008C
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0303          # EMSADDR2
 | |
|       ori    r3,r3,0x0303
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_90
 | |
|       ori    r3,r3,0x0090
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xFFFF          # EMEADDR1
 | |
|       ori    r3,r3,0x7F3F
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_94
 | |
|       ori    r3,r3,0x0094
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xFFFF          # EMEADDR2
 | |
|       ori    r3,r3,0xFFFF
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_98
 | |
|       ori    r3,r3,0x0098
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0303          # EXTEMEM1
 | |
|       ori    r3,r3,0x0000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_9C
 | |
|       ori    r3,r3,0x009C
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0303          # EXTEMEM2
 | |
|       ori    r3,r3,0x0303
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_A0
 | |
|       ori    r3,r3,0x00A0
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x03            # MEMBNKEN
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_A3
 | |
|       ori    r3,r3,0x00A3
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # MEMPMODE
 | |
|       stb    r3,0x3(r5)
 | |
|       lis    r3,0x8000          # ADDR_B8
 | |
|       ori    r3,r3,0x00B8
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # ECCCNT
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_B9
 | |
|       ori    r3,r3,0x00B9
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # ECCTRG
 | |
|       stb    r3,0x1(r5)
 | |
|       lis    r3,0x8000          # ADDR_C0
 | |
|       ori    r3,r3,0x00C0
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0xFF            # ERRENR1
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_C1
 | |
|       ori    r3,r3,0x00C1
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # ERRDR1
 | |
|       stb    r3,0x1(r5)
 | |
|       lis    r3,0x8000          # ADDR_C3
 | |
|       ori    r3,r3,0x00C3
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x50            # IPBESR
 | |
|       stb    r3,0x3(r5)
 | |
|       lis    r3,0x8000          # ADDR_C4
 | |
|       ori    r3,r3,0x00C4
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0xBF            # ERRENR2
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_C5
 | |
|       ori    r3,r3,0x00C5
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # ERRDR2
 | |
|       stb    r3,0x1(r5)
 | |
|       lis    r3,0x8000          # ADDR_C7
 | |
|       ori    r3,r3,0x00C7
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0x00            # PCIBESR
 | |
|       stb    r3,0x3(r5)
 | |
|       lis    r3,0x8000          # ADDR_C8
 | |
|       ori    r3,r3,0x00C8
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0000          # BERRADDR
 | |
|       ori    r3,r3,0xE0FE
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_E0
 | |
|       ori    r3,r3,0x00E0
 | |
|       stwbrx    r3,0,r4
 | |
|       li     r3,0xC0            # AMBOR
 | |
|       stb    r3,0x0(r5)
 | |
|       lis    r3,0x8000          # ADDR_F4
 | |
|       ori    r3,r3,0x00F4
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0000          # MCCR2
 | |
|       ori    r3,r3,0x020C
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_F8
 | |
|       ori    r3,r3,0x00F8
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0230          # MCCR3
 | |
|       ori    r3,r3,0x0000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_FC
 | |
|       ori    r3,r3,0x00FC
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x2532          # MCCR4
 | |
|       ori    r3,r3,0x2220
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_F0
 | |
|       ori    r3,r3,0x00F0
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xFFC8          # MCCR1
 | |
|       ori    r3,r3,0x0000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_A8
 | |
|       ori    r3,r3,0x00A8
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0xFF14          # PICR1
 | |
|       ori    r3,r3,0x1CC8
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
|       lis    r3,0x8000          # ADDR_AC
 | |
|       ori    r3,r3,0x00AC
 | |
|       stwbrx    r3,0,r4
 | |
|       lis    r3,0x0000          # PICR2
 | |
|       ori    r3,r3,0x0000
 | |
|       li    r8, 0x0
 | |
|       stwbrx    r3,r8,r5
 | |
| 
 | |
|       blr
 |