test
1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env python3
import os
import sys
import pylink
import serial.tools.list_ports
from test_common import (
DeviceUnderTestAeadUARTP,
eprint,
FileMutex,
run_nist_lws_aead_test,
)
def get_serial():
ports = serial.tools.list_ports.comports()
devices = [
p.device
for p in ports
if p.serial_number == '00000000'
]
devices.sort()
return devices[0]
class F7(DeviceUnderTestAeadUARTP):
RAM_SIZE = 0x50000
def __init__(self, build_dir):
DeviceUnderTestAeadUARTP.__init__(self)
self.uart_device = get_serial()
devname = os.path.basename(self.uart_device)
self.ser = serial.Serial(
self.uart_device,
baudrate=115200,
timeout=5)
self.lock = FileMutex('/var/lock/lwc-compare.%s.lock' % devname)
self.build_dir = build_dir
self.template_path = os.path.dirname(sys.argv[0])
self.jlink = pylink.JLink()
self.jlink.open(779340002)
self.firmware_path = os.path.join(
build_dir, 'f7.bin')
self.ram_pattern_path = os.path.join(
self.template_path, 'ram_pattern.bin')
def firmware_size(self):
return os.stat(self.firmware_path).st_size
def flash(self):
jlink = self.jlink
jlink.connect('STM32F746ZG')
jlink.flash_file(self.firmware_path, 0x8000000)
eprint("Firmware flashed.")
jlink.flash_file(self.ram_pattern_path, 0x20000000)
eprint("RAM flashed.")
jlink.reset()
jlink.restart()
def dump_ram(self):
jlink = self.jlink
return bytes(jlink.memory_read8(0x20000000, F7.RAM_SIZE))
def main(argv):
if len(argv) != 2:
print("Usage: test build_dir")
return 1
build_dir = argv[1]
kat_path = os.path.join(build_dir, 'LWC_AEAD_KAT.txt')
dut = F7(build_dir)
run_nist_lws_aead_test(dut, kat_path, build_dir, 0x0008)
return 0
if __name__ == "__main__":
sys.exit(main(sys.argv))