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