Files
eb001/tb/shinTest/testcase/ebmmu.py

1837 lines
66 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from pyutils import *
def tc1():
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 1
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000000, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000000a, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000014, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 10, data)
gen_file_def = "ebmmu_tc1_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>读取EB-MMU的设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 40
genPkt.addSubPkt(0x01, 0, 0x0200, 0x0, 10, data)
genPkt.addSubPkt(0x02, 0, 0x0200, 0x0, 10, data)
genPkt.addSubPkt(0x03, 0, 0x0200, 0x0, 10, data)
genPkt.addSubPkt(0x04, 0, 0x0200, 0x0, 10, data)
gen_file_def = "ebmmu_tc1_seq_read"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 40
genPkt.addSubPkt(0x1000, 2, 0x0000, 0x0, 40, data)
gen_file_def = "ebmmu_tc1_read"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2():
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 2
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000000, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x020a, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000010, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x020a, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000020, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x020a, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000030, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x020a, 0x1, 10, data)
gen_file_def = "ebmmu_tc2_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>读取数据
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 40
genPkt.addSubPkt(0x01, 0, 0x0000, 0x0, 16, data)
genPkt.addSubPkt(0x02, 0, 0x0000, 0x0, 16, data)
genPkt.addSubPkt(0x03, 0, 0x0000, 0x0, 16, data)
genPkt.addSubPkt(0x04, 0, 0x0000, 0x0, 16, data)
gen_file_def = "ebmmu_tc2_seq_read"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 100
genPkt.addSubPkt(0x2000, 2, 0x0000, 0x0, 0x40, data)
gen_file_def = "ebmmu_tc2_read"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc3():
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 3
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0214, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa+0xc, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0214, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa+0xc+0xc, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0214, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa+0xc+0xc+0xc, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0214, 0x1, 10, data)
gen_file_def = "ebmmu_tc3_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 150
genPkt.addSubPkt(0x1000, 2, 0x0000, 0x0, 0x0c * 4 + 0x28, data)
gen_file_def = "ebmmu_tc3_read"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc4():
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 4
genPkt.clean()
genPkt.setPktType(0)
genPkt.addBeforeExc( genSlvSMWriteData(1, 1, 0x80)
+ genSlvSMWriteData(2, 3, 0x98)
+ genSlvSMWriteData(3, 5, 0x81)
+ genSlvSMWriteData(4, 7, 0x8c))
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000058, 0x1000, 0x80, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x2000, 0x98, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80 + 0x98
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x3000, 0x81, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80 + 0x98 + 0x81
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x4000, 0x8c, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x021e, 0x1, 10, data)
gen_file_def = "ebmmu_tc4_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 550
genPkt.addSubPkt(0x1000, 2, 0x0058, 0x0, 0x80+0x98+0x81+0x8c, data)
gen_file_def = "ebmmu_tc4_read"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc5():
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>用EB-MMU方式读取EB-MMU设置 5
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 550
genPkt.addSubPkt(0x1000, 2, 0x0058, 0x0, 0x80+0x98+0x81+0x8c, data)
gen_file_def = "ebmmu_tc5_read"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc6():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例6
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x58 + 0x80 + 0x98 + 0x81 + 0x8c
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0228, 0x1, 10, data)
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc6_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 0x80 * 4
for i in range(0x80 * 4):
if i < 0x80:
data[i] = i & 0xff
elif i < 0x80+0x80:
data[i] = (i + 2 - 0x80) & 0xff
elif i < 0x80+0x80+0x80:
data[i] = (i + 3 - 0x80 - 0x80) & 0xff
else:
data[i] = (i + 5 - 0x80 - 0x80 - 0x80) & 0xff
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80 * 4, data)
gen_file_def = "ebmmu_tc6_write"
sm_idx = 0
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)
+genSlvSMReadData(1, 0, 0x80)
+genSlvSMReadData(2, 0, 0x80)
+genSlvSMReadData(3, 0, 0x80)
+genSlvSMReadData(4, 0, 0x80))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc7():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例7
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x58 + 0x80 + 0x98 + 0x81 + 0x8c
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
addr = addr_off + 0x0
#print(hex(addr))
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
#print(hex(addr))
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x0)
genPkt.addSubPkt(0x2, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x0)
genPkt.addSubPkt(0x4, 0, 0x0228, 0x1, 10, data)
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc7_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 0x80 * 4
for i in range(0x80 * 4):
if i < 0x80:
data[i] = i & 0xff
elif i < 0x80+0x80:
data[i] = (i + 2 - 0x80) & 0xff
elif i < 0x80+0x80+0x80:
data[i] = (i + 3 - 0x80 - 0x80) & 0xff
else:
data[i] = (i + 5 - 0x80 - 0x80 - 0x80) & 0xff
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80 * 4, data)
gen_file_def = "ebmmu_tc7_write"
sm_idx = 0
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)
+genSlvSMReadData(1, 0, 0x80)
+genSlvSMReadData(2, 0, 0x80)
+genSlvSMReadData(3, 0, 0x80)
+genSlvSMReadData(4, 0, 0x80))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc8():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例8广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc8_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 8
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [1,] * 0x80
data = [((i * 2) & 0xff) for i in range(0x80)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80, data)
gen_file_def = "ebmmu_tc8_write"
sm_idx = 0
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x80)
+genSlvSMReadData(2, 0, 0x80)
+genSlvSMReadData(3, 0, 0x80)
+genSlvSMReadData(4, 0, 0x80)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc9():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例9广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x0100, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc9_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 9
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [0xa5,] * 0x100
#data[-1] = 0x5a
data = [((i + 5) & 0xff) for i in range(0x100)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc9_write"
sm_idx = 0
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genSlvSMReadData(2, 0, 0x100)
+genSlvSMReadData(3, 0, 0x100)
+genSlvSMReadData(4, 0, 0x100)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc10():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例10广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x0100, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc10_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 10两次写入em-mmu
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [0xc3,] * 0x100
#data[-1] = 0x3c
data = [((i + 0x80) & 0xff) for i in range(0x100)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc10_write"
sm_idx = 0
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)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [0x81,] * 0x100
#data[-1] = 0x18
data = [((i + 0x40) & 0xff) for i in range(0x100)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc10b_write"
sm_idx = 0
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genSlvSMReadData(2, 0, 0x100)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genSlvSMReadData(2, 0, 0x100)
+genSlvSMReadData(3, 0, 0x100)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genSlvSMReadData(3, 0, 0x100)
+genSlvSMReadData(4, 0, 0x100)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(4, 0, 0x100)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc11():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例11检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
addr_off = addr_off + 0x100
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
addr_off = addr_off + 0x100
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
addr_off = addr_off + 0x100
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x306, 0xe, 2, data)
gen_file_def = "ebmmu_tc11_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 11两次读出eb-mmu
genPkt.clean()
genPkt.setPktType(0)
data0 = list(range(0x100))
data1 = list(range(0xff, -1, -1))
genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(2, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(3, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(4, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(1, 0x300, False, 0x20)
+ genIFRwDataCode(2, 0x300, False, 0x20)
+ genIFRwDataCode(3, 0x300, False, 0x20)
+ genIFRwDataCode(4, 0x300, False, 0x20)
+ genIFRwDataCode(1, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(2, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(3, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(4, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(1, 0x300, False, 0x20)
+ genIFRwDataCode(2, 0x300, False, 0x20)
+ genIFRwDataCode(3, 0x300, False, 0x20)
+ genIFRwDataCode(4, 0x300, False, 0x20)
)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0, ] * 0x100 * 4
gen_file_def = "ebmmu_tc11_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, 0x100 * 4, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0x0,] * 0x100 * 4
gen_file_def = "ebmmu_tc11b_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, 0x100 * 4, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc12():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例12检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 0x8
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, 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, 0x30e, 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, 0x31e, 0xe, 2, data)
gen_file_def = "ebmmu_tc12_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 12
genPkt.clean()
genPkt.setPktType(0)
data0 = list(range(0, sm_size))
data1 = list(range(1, sm_size + 1))
data2 = list(range(2, sm_size + 2))
data3 = list(range(3, sm_size + 3))
data4 = list(range(4, sm_size + 4))
data5 = list(range(5, sm_size + 5))
data6 = list(range(6, sm_size + 6))
data7 = list(range(7, sm_size + 7))
genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, sm_size, data0)
+ genIFRwDataCode(1, 0x2000, True, sm_size, data1)
+ genIFRwDataCode(1, 0x3000, True, sm_size, data2)
+ genIFRwDataCode(1, 0x4000, True, sm_size, data3)
+ genIFRwDataCode(2, 0x1000, True, sm_size, data4)
+ genIFRwDataCode(2, 0x2000, True, sm_size, data5)
+ genIFRwDataCode(2, 0x3000, True, sm_size, data6)
+ genIFRwDataCode(2, 0x4000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x1000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x2000, True, sm_size, data6)
+ genIFRwDataCode(3, 0x3000, True, sm_size, data5)
+ genIFRwDataCode(3, 0x4000, True, sm_size, data4)
+ genIFRwDataCode(4, 0x1000, True, sm_size, data3)
+ genIFRwDataCode(4, 0x2000, True, sm_size, data2)
+ genIFRwDataCode(4, 0x3000, True, sm_size, data1)
+ genIFRwDataCode(4, 0x4000, True, sm_size, data0)
)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0, ] * sm_size * 16
gen_file_def = "ebmmu_tc12_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc13():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例13检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 0x8
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, 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, 0x30e, 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, 0x31e, 0xe, 2, data)
gen_file_def = "ebmmu_tc13_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 12
genPkt.clean()
genPkt.setPktType(0)
data0 = list(range(0, sm_size))
data1 = list(range(1, sm_size + 1))
data2 = list(range(2, sm_size + 2))
data3 = list(range(3, sm_size + 3))
data4 = list(range(4, sm_size + 4))
data5 = list(range(5, sm_size + 5))
data6 = list(range(6, sm_size + 6))
data7 = list(range(7, sm_size + 7))
genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, sm_size, data0)
+ genIFRwDataCode(1, 0x2000, True, sm_size, data1)
+ genIFRwDataCode(1, 0x3000, True, sm_size, data2)
+ genIFRwDataCode(1, 0x4000, True, sm_size, data3)
+ genIFRwDataCode(2, 0x1000, True, sm_size, data4)
+ genIFRwDataCode(2, 0x2000, True, sm_size, data5)
+ genIFRwDataCode(2, 0x3000, True, sm_size, data6)
+ genIFRwDataCode(2, 0x4000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x1000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x2000, True, sm_size, data6)
+ genIFRwDataCode(3, 0x3000, True, sm_size, data5)
+ genIFRwDataCode(3, 0x4000, True, sm_size, data4)
+ genIFRwDataCode(4, 0x1000, True, sm_size, data3)
+ genIFRwDataCode(4, 0x2000, True, sm_size, data2)
+ genIFRwDataCode(4, 0x3000, True, sm_size, data1)
+ genIFRwDataCode(4, 0x4000, True, sm_size, data0)
)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0, ] * sm_size * 16
gen_file_def = "ebmmu_tc13_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc14():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例14检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 0x8
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, 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, 0x30a, 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, 0x31a, 0xe, 2, data)
gen_file_def = "ebmmu_tc14_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 14
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [(i & 0xff) for i in range(sm_size * 16)]
gen_file_def = "ebmmu_tc14_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc15():
genPkt = GenPkt()
gen_file_def = "ebmmu_tc15"
sm_idx = 0
tc_des = "测试8个ebmmu全配置下运行每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入\\n" \
+ "对应的sm才能正常工作。QSPI/SPI侧能正常的读到相关的数据。"
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例15检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 16
#subPkt参数索引、索引类型、地址、命令、长度、数据
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)
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)
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)
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)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, 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)
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)
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)
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)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, 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)
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)
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)
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)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, 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)
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)
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)
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)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, 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, 0x30a, 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, 0x31a, 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))
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 = "ebmmu_tc15_rw"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genTcEndFrameCode(gen_file_def)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def
def tc16():
genPkt = GenPkt()
gen_file_def = "ebmmu_tc16"
sm_idx = 0
tc_des = "测试8个ebmmu全配置下运行每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入\\n" \
+ "对应的sm才能正常工作。两次写入数据复位设备1的SM1SM1状态复原不能读取到有效的数据。"
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 16
#subPkt参数索引、索引类型、地址、命令、长度、数据
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)
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)
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)
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)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, 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)
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)
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)
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)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, 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)
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)
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)
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)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, 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)
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)
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)
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)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, 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, 0x30a, 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, 0x31a, 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))
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 = "ebmmu_tc16_rw"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data)
data = [((i * 2)& 0xff) for i in range(sm_size * 16)]
genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data)
rst_data=[0x0, ]
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(1, 0x300, True, 1, rst_data)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def