code
diff --git a/pmon/arch/mips/ls7a/ht.h b/pmon/arch/mips/ls7a/ht.h index 7bddf501..099d630a 100644 --- a/pmon/arch/mips/ls7a/ht.h + + + b/pmon/arch/mips/ls7a/ht.h @@ -64,6 + 64,8 @@ #define LS3A_HT_RX_UNCACHE_WIN0_OFFSET 0xF0 #define LS3A_HT_RX_UNCACHE_WIN1_OFFSET 0xF8 #define LS3A_HT_RX_UNCACHE_WIN2_OFFSET 0x168 + #define LS3A_HT_TX_POST_WIN0_OFFSET 0x170 + #define LS3A_HT_TX_POST_WIN1_OFFSET 0x178 #define LS7A_HT_RX_WIN0_OFFSET 0x140 #define LS7A_HT_RX_WIN1_OFFSET 0x148 diff --git a/pmon/arch/mips/ls7a/ls3a7a_ht_init.S b/pmon/arch/mips/ls7a/ls3a7a_ht_init.S index a24ac816..a0dfb31f 100644 --- a/pmon/arch/mips/ls7a/ls3a7a_ht_init.S + + + b/pmon/arch/mips/ls7a/ls3a7a_ht_init.S @@ -142,6 + 142,12 @@ ls3a7a_ht_init: and a0, a0,a1 sw a0, 0x50(t0) + li a0, 0x0040fffc + sw a0, (LS3A_HT_TX_POST_WIN0_OFFSET + 4)(t0) + li a0, 0x80000000 + sw a0, (LS3A_HT_TX_POST_WIN0_OFFSET)(t0) + + //2. 7A side HT configure begin //!!!note: use t1 store 7A side HT controller address as global variable //open RX space @@ -158,13 + 164,25 @@ ls3a7a_ht_init: li a1, 0x80000000 sw a1, (LS7A_HT_RX_WIN1_OFFSET + 0)(t1) -#if 0 //enable DMA post write + #if 1 //enable DMA post write TTYDBG("Enable 7A HT Post space.\r\\ ") //window0 00_0000_0000-7f_ffff_ffff li a1, 0x00008000 sw a1, (LS7A_HT_TX_POST_WIN0_OFFSET + 4)(t1) li a1, 0x80000000 sw a1, (LS7A_HT_TX_POST_WIN0_OFFSET + 0)(t1) + li a1, 0x80008000 + sw a1, (LS7A_HT_TX_POST_WIN1_OFFSET + 4)(t1) + li a1, 0x80000000 + sw a1, (LS7A_HT_TX_POST_WIN1_OFFSET + 0)(t1) + lw a0, 0x1c4(t1) + li a1, (0x1 << 11) + not a1, a1 + and a0, a0,a1 + sw a0, 0x1c4(t1) + + li a1, 0x40 + sb a1, 0x1c7(t1) #endif //set csr_dw_write to 1'b0 to transfer write mask information when write data less than 32Byte diff --git a/pmon/arch/mips/ls7a/ls7a_config.S b/pmon/arch/mips/ls7a/ls7a_config.S index 81de307c..9468f06a 100644 --- a/pmon/arch/mips/ls7a/ls7a_config.S + + + b/pmon/arch/mips/ls7a/ls7a_config.S @@ -231,3 + 231,15 @@ pd_145: jrra nop .end ls7a_get_pcie_dll_score + + .global ls7a_version + .ent ls7a_version + .set noreorder + .set mips3 + ls7a_version: + dli v1, 0x90000efdfe000100 +lb v0, 0x8(v1) + jr ra + nop + .end ls7a_version + diff --git a/pmon/arch/mips/ls7a/ls7a_init.S b/pmon/arch/mips/ls7a/ls7a_init.S index c4b93653..a41e9e6c 100644 --- a/pmon/arch/mips/ls7a/ls7a_init.S + + + b/pmon/arch/mips/ls7a/ls7a_init.S @@ -1095,6 + 1095,19 @@ cal_one_pcie_x8: and a0, a0, t3 sw a0, 0x58(t1) + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060000000 li a0, 0xff204c @@ -1157,6 + 1170,21 @@ cal_one_pcie_x8: and a0, a0, t3 sw a0, 0x58(t1) + li a0, 0 + sw a0, 0x24(t1) + +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: + dli t1, 0x90000e0060100000 li a0, 0xff204c sw a0, 0x0(t1) @@ -1205,6 + 1233,20 @@ cal_one_pcie_x8: lw a0, 0x58(t1) and a0, a0, t3 sw a0, 0x58(t1) + + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060200000 li a0, 0xff204c @@ -1254,6 + 1296,20 @@ cal_one_pcie_x8: lw a0, 0x58(t1) and a0, a0, t3 sw a0, 0x58(t1) + + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060300000 li a0, 0xff204c @@ -1359,6 + 1415,21 @@ cal_one_pcie_x8: and a0, a0, t3 sw a0, 0x58(t1) + li a0, 0 + sw a0, 0x24(t1) + +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: + dli t1, 0x90000e0060000000 li a0, 0xff204c sw a0, 0x0(t1) @@ -1419,6 + 1490,20 @@ cal_one_pcie_x8: lw a0, 0x58(t1) and a0, a0, t3 sw a0, 0x58(t1) + + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060100000 li a0, 0xff204c @@ -1538,7 + 1623,21 @@ cal_one_pcie_x8: lw a0, 0x58(t1) and a0, a0, t3 sw a0, 0x58(t1) + + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060000000 li a0, 0xff204c sw a0, 0x0(t1) @@ -1600,6 + 1699,20 @@ cal_one_pcie_x8: and a0, a0, t3 sw a0, 0x58(t1) + li a0, 0 + sw a0, 0x24(t1) + +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060100000 li a0, 0xff204c sw a0, 0x0(t1) @@ -1719,6 + 1832,20 @@ cal_one_pcie_x8: and a0, a0, t3 sw a0, 0x58(t1) + li a0, 0 + sw a0, 0x24(t1) + +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060000000 li a0, 0xff204c @@ -1780,7 + 1907,21 @@ cal_one_pcie_x8: lw a0, 0x58(t1) and a0, a0, t3 sw a0, 0x58(t1) + + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060100000 li a0, 0xff204c sw a0, 0x0(t1) @@ -1899,7 + 2040,21 @@ cal_one_pcie_x8: lw a0, 0x58(t1) and a0, a0, t3 sw a0, 0x58(t1) + + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: dli t1, 0x90000e0060000000 li a0, 0xff204c sw a0, 0x0(t1) @@ -1960,7 + 2115,22 @@ cal_one_pcie_x8: lw a0, 0x58(t1) and a0, a0, t3 sw a0, 0x58(t1) + + li a0, 0 + sw a0, 0x24(t1) +bal ls7a_version + nop + beqz v0,1f + nop + lw a0, 0x24(t1) + or a0, 4 + sw a0, 0x24(t1) + lw a0, 0x28(t1) + or a0, 1 + sw a0, 0x28(t1) + 1: + dli t1, 0x90000e0060100000 li a0, 0xff204c sw a0, 0x0(t1)