增加新的测试用例,测试通过

This commit is contained in:
2025-08-07 12:23:05 +08:00
parent 2de0c86075
commit 1e42bb84d2
2 changed files with 335 additions and 0 deletions

View File

@@ -67,6 +67,7 @@ if __name__ == '__main__':
#add_tc_2_runlist(ebmmu.tc16()) #add_tc_2_runlist(ebmmu.tc16())
#add_tc_2_runlist(ebmmu.tc17()) #add_tc_2_runlist(ebmmu.tc17())
add_tc_2_runlist(ebmmu.tc18()) add_tc_2_runlist(ebmmu.tc18())
add_tc_2_runlist(ebmmu.tc19())
add_tc_2_runlist(watchdog.tc1()) add_tc_2_runlist(watchdog.tc1())

View File

@@ -3865,3 +3865,337 @@ def tc18():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def return gen_file_def
def tc19():
genPkt = GenPkt()
gen_file_def = "ebmmu_tc19"
sm_idx = 0
tc_des = "测试16个ebmmu全配置下运行每1个ebmmu对应一个sm映射8个字节。映射了sm0/2/4/6\\n" \
+ "然后映射sm1/3/5/7共64个字节4个从设备总共256个字节。\\n"\
+ "每个ebmmu必须对齐、足长的写入对应的sm才能正常工作。\\n"\
+ "检查内容ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
genPkt.clean()
genPkt.setPktType(0)
addr = 0x20000000
addr_off = 0x0
sm_size = 8
sm_vaddr = 0x10000000
sm_addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
ebmmu_offset = 0
for i in range(8):
setting_ebmmu_regs(data, ebmmu_offset,
taddr + ebmmu_offset * 1,
0x301 + ebmmu_offset * 4,
1,
0x1,
0x1
)
print(ebmmu_offset, hex(taddr + ebmmu_offset * 1), hex(0x301 + ebmmu_offset * 4), hex(1))
ebmmu_offset = ebmmu_offset + 1
addr_off = addr_off + ebmmu_offset * 1
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x0800 + i * 0x1000, sm_size, 0x2, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x0800 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x1000 + i * 0x1000, sm_size, 0x1, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x1000 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 160, data)
data = [0,] * 256
taddr = addr + addr_off
ebmmu_offset = 0
for i in range(8):
setting_ebmmu_regs(data, ebmmu_offset,
taddr + ebmmu_offset * 1,
0x301 + ebmmu_offset * 4,
1,
0x1,
0x1
)
print(ebmmu_offset, hex(taddr + ebmmu_offset * 1), hex(0x301 + ebmmu_offset * 4), hex(1))
ebmmu_offset = ebmmu_offset + 1
addr_off = addr_off + ebmmu_offset * 1
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x0800 + i * 0x1000, sm_size, 0x2, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x0800 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x1000 + i * 0x1000, sm_size, 0x1, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x1000 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 160, data)
data = [0,] * 256
taddr = addr + addr_off
ebmmu_offset = 0
for i in range(8):
setting_ebmmu_regs(data, ebmmu_offset,
taddr + ebmmu_offset * 1,
0x301 + ebmmu_offset * 4,
1,
0x1,
0x1
)
print(ebmmu_offset, hex(taddr + ebmmu_offset * 1), hex(0x301 + ebmmu_offset * 4), hex(1))
ebmmu_offset = ebmmu_offset + 1
addr_off = addr_off + ebmmu_offset * 1
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x0800 + i * 0x1000, sm_size, 0x2, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x0800 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x1000 + i * 0x1000, sm_size, 0x1, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x1000 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 160, data)
data = [0,] * 256
taddr = addr + addr_off
ebmmu_offset = 0
for i in range(8):
setting_ebmmu_regs(data, ebmmu_offset,
taddr + ebmmu_offset * 1,
0x301 + ebmmu_offset * 4,
1,
0x1,
0x1
)
print(ebmmu_offset, hex(taddr + ebmmu_offset * 1), hex(0x301 + ebmmu_offset * 4), hex(1))
ebmmu_offset = ebmmu_offset + 1
addr_off = addr_off + ebmmu_offset * 1
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x0800 + i * 0x1000, sm_size, 0x2, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x0800 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
tsm_vaddr = sm_vaddr + sm_addr_off
for i in range(4):
setting_ebmmu_regs(data, ebmmu_offset,
tsm_vaddr + i * sm_size,
0x1000 + i * 0x1000, sm_size, 0x1, 0x1)
print(ebmmu_offset, hex(tsm_vaddr + i * sm_size), hex(0x1000 + i * 0x1000), hex(sm_size))
ebmmu_offset = ebmmu_offset + 1
sm_addr_off = sm_addr_off + 4 * sm_size
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
'''
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x306, 0xe, 2, data)
'''
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x30a, 0xe, 2, data)
'''
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x30e, 0xe, 2, data)
'''
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x312, 0xe, 2, data)
'''
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x316, 0xe, 2, data)
'''
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x31a, 0xe, 2, data)
'''
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x31e, 0xe, 2, data)
'''
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
+genWriteTransPktCode(gen_file_def, sm_idx)
+genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx)
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
+genMessageCode("--清除中断")
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 15
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [(i & 0xff) for i in range(sm_size * 16)]
gen_file_def_ap = gen_file_def + "_rw"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x2, sm_size * 8 * 4, list(range(sm_size * 8 * 4)))
genPkt.addSubPkt(0x2000, 2, 0, 0x0, 8 * 4, [0, ] * 32)
genPkt.addBeforeExc(genSlvSMWriteData(1, 1, sm_size, list(range(0, sm_size)))
+genSlvSMWriteData(1, 3, sm_size, list(range(0, sm_size * 2, 2)))
+genSlvSMWriteData(1, 5, sm_size, list(range(0, sm_size * 3, 3)))
+genSlvSMWriteData(1, 7, sm_size, list(range(0, sm_size * 4, 4)))
+genSlvSMWriteData(2, 1, sm_size, list(range(0, sm_size * 5, 5)))
+genSlvSMWriteData(2, 3, sm_size, list(range(0, sm_size * 6, 6)))
+genSlvSMWriteData(2, 5, sm_size, list(range(0, sm_size * 7, 7)))
+genSlvSMWriteData(2, 7, sm_size, list(range(0, sm_size * 8, 8)))
+genSlvSMWriteData(3, 1, sm_size, list(range(0, sm_size * 9, 9)))
+genSlvSMWriteData(3, 3, sm_size, list(range(0, sm_size * 8, 8)))
+genSlvSMWriteData(3, 5, sm_size, list(range(0, sm_size * 7, 7)))
+genSlvSMWriteData(3, 7, sm_size, list(range(0, sm_size * 6, 6)))
+genSlvSMWriteData(4, 1, sm_size, list(range(0, sm_size * 5, 5)))
+genSlvSMWriteData(4, 3, sm_size, list(range(0, sm_size * 4, 4)))
+genSlvSMWriteData(4, 5, sm_size, list(range(0, sm_size * 3, 3)))
+genSlvSMWriteData(4, 7, sm_size, list(range(0, sm_size * 2, 2)))
)
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
+genReadAckPktCode(gen_file_def_ap, sm_idx)
+genSlvSMReadData(1, 0, sm_size)
+genSlvSMReadData(1, 2, sm_size)
+genSlvSMReadData(1, 4, sm_size)
+genSlvSMReadData(1, 6, sm_size)
+genSlvSMReadData(2, 0, sm_size)
+genSlvSMReadData(2, 2, sm_size)
+genSlvSMReadData(2, 4, sm_size)
+genSlvSMReadData(2, 6, sm_size)
+genSlvSMReadData(3, 0, sm_size)
+genSlvSMReadData(3, 2, sm_size)
+genSlvSMReadData(3, 4, sm_size)
+genSlvSMReadData(3, 6, sm_size)
+genSlvSMReadData(4, 0, sm_size)
+genSlvSMReadData(4, 2, sm_size)
+genSlvSMReadData(4, 4, sm_size)
+genSlvSMReadData(4, 6, sm_size)
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
+genMessageCode("--清除中断")
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
+genTcEndFrameCode(gen_file_def)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def