|  | /* | 
|  | * 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 |