diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 6352af6..5820dc3 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -18,7 +18,7 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc4()) #add_tc_2_runlist(base.tc5()) #add_tc_2_runlist(base.tc6()) - add_tc_2_runlist(base.tc7()) + #add_tc_2_runlist(base.tc7()) #add_tc_2_runlist(base.tc8()) #add_tc_2_runlist(base.tc9()) #add_tc_2_runlist(base.tc10()) @@ -34,7 +34,7 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc20()) #add_tc_2_runlist(base.tc21()) #add_tc_2_runlist(base.tc22()) - add_tc_2_runlist(base.tc23()) + #add_tc_2_runlist(base.tc23()) @@ -63,7 +63,7 @@ if __name__ == '__main__': #add_tc_2_runlist(ebmmu.tc12()) #add_tc_2_runlist(ebmmu.tc13()) #add_tc_2_runlist(ebmmu.tc14()) - #add_tc_2_runlist(ebmmu.tc15()) + add_tc_2_runlist(ebmmu.tc15()) #add_tc_2_runlist(ebmmu.tc16()) diff --git a/tb/shinTest/testcase/ebmmu.py b/tb/shinTest/testcase/ebmmu.py index 4f35262..877dd3d 100644 --- a/tb/shinTest/testcase/ebmmu.py +++ b/tb/shinTest/testcase/ebmmu.py @@ -1596,7 +1596,7 @@ def tc15(): gen_file_def = "ebmmu_tc15" sm_idx = 0 - tc_des = "测试8个ebmmu全配置下运行,每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入,\\n" \ + tc_des = "测试16个ebmmu全配置下运行,每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入,\\n" \ + "对应的sm才能正常工作。QSPI/SPI侧能正常的读到相关的数据。" #-------------------------------------------------------------------------- @@ -1612,50 +1612,124 @@ def tc15(): data = [0,] * 256 taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) - + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 160, data) #subPkt参数:索引、索引类型、地址、命令、长度、数据 data = [0,] * 256 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) - + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 160, data) #subPkt参数:索引、索引类型、地址、命令、长度、数据 @@ -1663,25 +1737,62 @@ def tc15(): addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) - + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 160, data) #subPkt参数:索引、索引类型、地址、命令、长度、数据 @@ -1689,25 +1800,62 @@ def tc15(): addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) - + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data) data = [0,] * 2 data[0] = (sm_size >> 0) & 0xff @@ -1791,7 +1939,7 @@ def tc16(): gen_file_def = "ebmmu_tc16" sm_idx = 0 - tc_des = "测试8个ebmmu全配置下运行,每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入,\\n" \ + tc_des = "测试16个ebmmu全配置下运行,每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入,\\n" \ + "对应的sm才能正常工作。两次写入数据,复位设备1的SM1,SM1状态复原,不能读取到有效的数据。\\n"\ + "测试用例能成功运行完毕,除设备1的SM1,其余的SMx都能获得正确的数据。\\n\\n" \ + "检查内容:ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序" @@ -1807,50 +1955,128 @@ def tc16(): data = [0,] * 256 taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x1800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset + i, hex(taddr + i * int(sm_size / 4)), hex(0x2800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x3800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 160, data) #subPkt参数:索引、索引类型、地址、命令、长度、数据 data = [0,] * 256 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x1800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset + i, hex(taddr + i * int(sm_size / 4)), hex(0x2800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x3800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 160, data) #subPkt参数:索引、索引类型、地址、命令、长度、数据 @@ -1858,25 +2084,64 @@ def tc16(): addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x1800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset + i, hex(taddr + i * int(sm_size / 4)), hex(0x2800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x3800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 160, data) #subPkt参数:索引、索引类型、地址、命令、长度、数据 @@ -1884,25 +2149,64 @@ def tc16(): addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + ebmmu_offset = 0 + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x0800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x1800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x1800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x2800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset + i, hex(taddr + i * int(sm_size / 4)), hex(0x2800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 + addr_off = addr_off + sm_size taddr = addr + addr_off - setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1) - setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1) + for i in range(4): + setting_ebmmu_regs(data, + ebmmu_offset, + taddr + i * int(sm_size / 4), + 0x3800 + i * int(sm_size / 4), + sm_size / 4, + 0x2, + 0x1 + ) + #print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x3800 + i * int(sm_size / 4))) + ebmmu_offset = ebmmu_offset + 1 - genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data) + genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data) data = [0,] * 2 data[0] = (sm_size >> 0) & 0xff