Browse Source
2. Fix 3Bserver fixup.S Set the HT0 link frequency to 800MHz Fix a NODE2 windows problem that may cause core in NODE2 dead in speculationmaster
Wang Huandong
12 years ago
committed by
wanghongmei
3 changed files with 4 additions and 290 deletions
@ -1,200 +0,0 @@ |
|||
/*whd : loongson3_fixup.S |
|||
used to fix up the potential addressing miss |
|||
caused by speculated execution |
|||
*/ |
|||
|
|||
|
|||
#if 0 |
|||
#set XBAR to route all the DMA request to Scache0 |
|||
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
THIS CONFIGURATION WILL AFFECT the Scache initilization, |
|||
The Scache init MUST BE rewrite when reconfiguared |
|||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ |
|||
#define SINGLE_SCACHE |
|||
#ifdef SINGLE_SCACHE |
|||
dli a0,0xf #using 37:36 |
|||
#else |
|||
dli a0,0x2 #using 11:10 |
|||
#endif |
|||
dli t0,0x900000003ff00400 |
|||
sd a0,0x0(t0) |
|||
|
|||
#if 1//config L1 xbar cpu port |
|||
dli t2, 0x900000003ff02000 |
|||
dli t1, 0x900000003ff02800 |
|||
TTYDBG("Using Scache 0 \r\n") |
|||
1: |
|||
dli t0, 0x0000000000000000 |
|||
sd t0, 0x38(t2) |
|||
dli t0, 0x0000000000000000 |
|||
sd t0, 0x78(t2) |
|||
dli t0, 0x00000000000000f0 |
|||
sd t0, 0xb8(t2) |
|||
#endif |
|||
|
|||
PRINTSTR("Scache index setup done\r\n") |
|||
#endif |
|||
|
|||
#ifdef MULTI_CHIP |
|||
#if 0 |
|||
TTYDBG("HT0 frequency reconfig \r\n") |
|||
###################### HT@CPU1 |
|||
dli a0, 0x90001cfdfb000000 |
|||
//set 800 Mhz HT HOST |
|||
lw a1, 0x48(a0) |
|||
li a2, 0x500 ##800Mhz |
|||
or a1, a1, a2 |
|||
sw a1, 0x48(a0) |
|||
|
|||
//set 8 bit HT HOST |
|||
lw a1, 0x44(a0) |
|||
li a2, 0x88ffffff ##8bit mode |
|||
and a1, a1, a2 ##set to 8 bit mode |
|||
li a2, 0x11000000 ##16bit |
|||
or a1, a1, a2 |
|||
sw a1, 0x44(a0) |
|||
|
|||
###################### HT@CPU0 |
|||
dli a0, 0x90000cfdfb000000 |
|||
//set 800 Mhz HT HOST |
|||
lw a1, 0x48(a0) |
|||
li a2, 0x500 ##800Mhz |
|||
or a1, a1, a2 ## |
|||
sw a1, 0x48(a0) |
|||
|
|||
//set 8 bit HT HOST |
|||
lw a1, 0x44(a0) |
|||
li a2, 0x88ffffff ##8bit mode |
|||
and a1, a1, a2 ##set to 8 bit mode |
|||
li a2, 0x11000000 ##16bit |
|||
or a1, a1, a2 |
|||
sw a1, 0x44(a0) |
|||
|
|||
###################### Disconnect |
|||
dli a0, 0x90000cfdfb000000 |
|||
//Disconnect HT BUS |
|||
lw a1, 0x50(a0) |
|||
li a2, 0x40000000 |
|||
or a1, a1, a2 |
|||
sw a1, 0x50(a0) |
|||
|
|||
################################################## |
|||
#endif |
|||
#endif |
|||
|
|||
|
|||
#if 1//config L1 xbar cpu port |
|||
dli t2, 0x900000003ff02000 |
|||
dli t1, 0x900000003ff02400 |
|||
TTYDBG("Fix L1xbar illegal access \r\n") |
|||
1: |
|||
|
|||
####### Unused HT0 port ######################### |
|||
dli t0, 0x0000200000000000 |
|||
sd t0, 0x28(t2) |
|||
dli t0, 0x0000200000000000 |
|||
sd t0, 0x68(t2) |
|||
dli t0, 0x00002000000000f4 |
|||
sd t0, 0xa8(t2) |
|||
|
|||
/* |
|||
dli t0, 0x0000200000000000 |
|||
sd t0, 0x30(t2) |
|||
dli t0, 0x0000200000000000 |
|||
sd t0, 0x70(t2) |
|||
dli t0, 0x00002000000000f7 |
|||
sd t0, 0xb0(t2) |
|||
|
|||
|
|||
#ifndef MULTI_CHIP |
|||
####### address space to other nodes ############ |
|||
|
|||
dli t0, 0x0000100000000000 |
|||
sd t0, 0x38(t2) |
|||
dli t0, 0x0000300000000000 |
|||
sd t0, 0x78(t2) |
|||
dli t0, 0x00001000000000f7 |
|||
sd t0, 0xb8(t2) |
|||
#endif |
|||
*/ |
|||
|
|||
dli t0, 0x0000080000000000 |
|||
sd t0, 0x38(t2) |
|||
dli t0, 0x0000080000000000 |
|||
sd t0, 0x78(t2) |
|||
dli t0, 0x00000800000000f4 |
|||
sd t0, 0xb8(t2) |
|||
daddiu t2, t2, 0x100 |
|||
bne t2, t1, 1b |
|||
nop |
|||
|
|||
#endif |
|||
|
|||
#if 1//config L1 xbar cpu port |
|||
TTYDBG("Fix L1xbar illegal access from core4 to core7\r\n") |
|||
dli t2, 0x900010003ff06000 |
|||
dli t1, 0x900010003ff06500 |
|||
1: |
|||
|
|||
####### Unused HT0 port ######################### |
|||
/* |
|||
dli t0, 0x00000c0000000000 |
|||
sd t0, 0x28(t2) |
|||
dli t0, 0x00000c0000000000 |
|||
sd t0, 0x68(t2) |
|||
dli t0, 0x00000c00000000f7 |
|||
sd t0, 0xa8(t2) |
|||
*/ |
|||
|
|||
dli t0, 0x0000200000000000 |
|||
sd t0, 0x30(t2) |
|||
dli t0, 0x0000200000000000 |
|||
sd t0, 0x70(t2) |
|||
dli t0, 0x00002000000000f7 |
|||
sd t0, 0xb0(t2) |
|||
|
|||
dli t0, 0x0000080000000000 |
|||
sd t0, 0x38(t2) |
|||
dli t0, 0x0000080000000000 |
|||
sd t0, 0x78(t2) |
|||
dli t0, 0x00000800000000f7 |
|||
sd t0, 0xb8(t2) |
|||
|
|||
daddiu t2, t2, 0x100 |
|||
bne t2, t1, 1b |
|||
nop |
|||
|
|||
#endif |
|||
|
|||
#if 1 |
|||
############ |
|||
TTYDBG("Fix L2xbar in NODE 0\r\n") |
|||
dli t2, 0x900000003ff00000 |
|||
dli t0, 0xfffffffffff00000 |
|||
sd t0, 0x40(t2) |
|||
|
|||
dli t0, 0x000000001fc000f2 |
|||
sd t0, 0x80(t2) |
|||
|
|||
dli t0, 0x000000001fc00000 |
|||
sd t0, 0x0(t2) |
|||
|
|||
############ 0x10000000 Set to not allow Cache access ####### |
|||
dli t0, 0x0000000010000082 |
|||
sd t0, 0x88(t2) |
|||
|
|||
sd $0, 0x90(t2) |
|||
#endif |
|||
|
|||
TTYDBG("Fix L2xbar in NODE 1\r\n") |
|||
dli t2, 0x900010003ff04000 |
|||
|
|||
dli t0, 0x0000100010000000 |
|||
sd t0, 0x08(t2) |
|||
dli t0, 0xfffffffff0000000 |
|||
sd t0, 0x48(t2) |
|||
dli t0, 0x0000000010000082 |
|||
sd t0, 0x88(t2) |
|||
|
|||
sd $0, 0x80(t2) |
|||
sd $0, 0x90(t2) |
Loading…
Reference in new issue