From b420ad787e0f5c592a3384bef37bacb85f82c270 Mon Sep 17 00:00:00 2001 From: Matthew Mets Date: Thu, 22 Dec 2022 11:55:06 +0100 Subject: [PATCH] Switch to using included binaries * production test: Update message format * test_txrx_touchpad: Retry if device communications fail * production test: put all binaries in binaries/ folder * binaries/top.bin: replace broken binary --- hw/boards/mta1-usb-v1/test/binaries/main.uf2 | Bin 0 -> 42496 bytes .../test/{app_test => binaries}/top.bin | Bin .../test/binaries/usb_device_cdc.bin | Bin 0 -> 2903 bytes hw/boards/mta1-usb-v1/test/production_test.py | 42 +++++++++--------- 4 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 hw/boards/mta1-usb-v1/test/binaries/main.uf2 rename hw/boards/mta1-usb-v1/test/{app_test => binaries}/top.bin (100%) create mode 100644 hw/boards/mta1-usb-v1/test/binaries/usb_device_cdc.bin diff --git a/hw/boards/mta1-usb-v1/test/binaries/main.uf2 b/hw/boards/mta1-usb-v1/test/binaries/main.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..b6fc449a0c17a2949b90efa426679662e96d690f GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/hw/boards/mta1-usb-v1/test/app_test/top.bin b/hw/boards/mta1-usb-v1/test/binaries/top.bin similarity index 100% rename from hw/boards/mta1-usb-v1/test/app_test/top.bin rename to hw/boards/mta1-usb-v1/test/binaries/top.bin diff --git a/hw/boards/mta1-usb-v1/test/binaries/usb_device_cdc.bin b/hw/boards/mta1-usb-v1/test/binaries/usb_device_cdc.bin new file mode 100644 index 0000000000000000000000000000000000000000..344b7159b7559e53b5fa94eef620a0930530cade GIT binary patch literal 2903 zcmb_eeQ*=U6@Rz7)0a(b1f{f{#*!@CBm=Fn47e#D!gAA;LU6H75|XA$fTXl(N`p2d zDA&Fy>dx9{!l{dV{55_qNt^3PY5g!{eHz`b~)Swl4Kbmv)vzAfQ)s0ggxs`<15 z9N*f;`HLD|K#y|qeYcKldw>W>hdvv=MUUpje!cjeeI2kHdJUScwb`#dLa(FJ-*jP$UJ&gUIJ5mKZ@)_H zS2_D&S>#6Kl)2T`2EGY4*(#!pvjn~Q9*r7k#Lx-|jInWg!$wDl`J}tcb1E5^=1Vn_ zRjTc9`#daZ(63Lo&v$b3?#7o+G5!tr?>y}?c=wGOC;2jHb*koN;!Cq%1ZO&Gz4Nu+ z8lBgw_tqBq>uoey5;y34@45%#hon$s%p5cZW5Hz59rOe>L3L0F@>%`dfvJulj*#Tm0Br^P}ik4IHwi*fru(1r2U|YW!u0H>ezNzEt$ri zl*}?=e&AwKxgQ{wX?8faIgQ=r*dRDf-Q`5oJI#4hTt_Q`R&jI=ylXmX9vIuN9p4W& z^>*zJ5P2DDS9fTuDk9Df>?Go&0k=%K$Lj2Bxrl4=B6iz!aSN6R zD2r1Dq6MI^cA+UE1BI^c>k$XL>Vbo;?t^*v2K(*AAB`VR(PJ(2*q`V-=k2@6JzZwz z%Z+9VzajMH*Z&6(=wW;%COF~meh~6R@%Is>#62A#id-B}Dbg6&smO%^w<5n8@GR+r z$DIAhf=aq5zUpj4tr)cph(!^Lit7-IA{G@J5sM%e5g$h^f>=Zzw^*l?HA*=bry!oh zJ$Y}MiL%XF3Hp_GnNFESz2e8qrH^MqU#>U+I$EBiBmcxrKj73JiXXOVeV6G-P|g>Z zA+ISJ=J2%UvUFuwHHRjfkrg*PF#$!jxSt zUB~n*E>rp@;vzYv%&oriU8)7D1F8q_r6O7^p9+{CFgFwwt_%abBO{_3rG12ihN=f2 z!G`?L*gygZIjP-#sQ zj@7gQTfi2wMXZi}k3Gh|&la;KY$;pDY-~BJXLi=We!w1QKV(m^AF&ne$805A#hzrV zStI)iTf>@IGizaM*;DLk_6%Fco@LLmpR(uK&zOU~z+PnQ*#@?ey~JK-KWCfRFW4{H zE9_V7RrYJPnf->n#QO!Eup0Ets zgh|UE8V|SOEnpYsUmy7`+?bobxg;~-v>kGa9m(}cu`}7I!)n248#tWB$blm%*XdCU z&2(s$^<(oX%Lju0dAztzPgJ5~esb`R;rpm5n#MztBig6(xx)E*OK*c9_0nTt?sA{< zOssZH6OPI6!{>5bnK*e5{hD9(N&etkEH99J?Z--O=|TK^-$9?7dCa8;Q13d38&S5V zwi)B;Og5KrSGe)?@>nHLB59S9H?32)uMdAJ)<2+P%$gpzW+trJNo#JbQ#;x>s*FQS?sn9@Socc2AD`#?6(E z3U8^~JKf_oD7T&CUU#Y2Gd+KU88hggI4)m|#1FjF+}?*g-jbx*cxQTbYQ`SV3Aa(w zrA~OL2h3vjmMFFt@I}i?z z*64Tuj-V=7pp+9V8~|@2M6jrV(+E3NTFB{m4u~Evpc;V?n=IV2;8i+)wrUkL!*ZAp z^PmNqpdRH~v<#|d*aWZOy9u25ZGjc4g-{0@U?VKRvIZ8R=SGw@U`4GK>lR@-4_<`z cs4Yb81@x>%--YN`hgvmib?_3vRlrC4Z%{0S2LJ#7 literal 0 HcmV?d00001 diff --git a/hw/boards/mta1-usb-v1/test/production_test.py b/hw/boards/mta1-usb-v1/test/production_test.py index 8b19020..598ec65 100755 --- a/hw/boards/mta1-usb-v1/test/production_test.py +++ b/hw/boards/mta1-usb-v1/test/production_test.py @@ -14,15 +14,15 @@ import shutil file_locations = { 'iceprog':'tillitis-iceprog', 'chprog':'chprog', - 'app_gateware':'app_test/top.bin', - 'ch552_firmware':'../ch552_fw/usb_device_cdc.bin', + 'app_gateware':'binaries/top.bin', + 'ch552_firmware':'binaries/usb_device_cdc.bin', 'ch552_firmware_injected':'/tmp/ch552_fw_injected.bin', - 'pico_bootloader_source':'/home/lab/ice40_flasher/bin/main.uf2', + 'pico_bootloader_source':'binaries/main.uf2', 'pico_bootloader_target':'/media/lab/RPI-RP2/main.uf2' } def enable_power(): - """Enable power to the mta1-usb device""" + """Enable power to the TK-1""" d = hid_test.ice40_flasher() d.gpio_set_direction(7, True) d.gpio_put(7, True) @@ -32,7 +32,7 @@ def enable_power(): return True def disable_power(): - """Disable power to the mta1-usb device""" + """Disable power to the TK-1""" time.sleep(.1) d = hid_test.ice40_flasher() d.gpio_set_direction(7, True) @@ -50,7 +50,7 @@ def measure_voltages(device, samples): return adc_vals def voltage_test(): - """Turn on the device, delay, measure 3.3V 2.5V, and 1.2V voltage rails, then turn off the device""" + """Measure 3.3V 2.5V, and 1.2V voltage rails on the TK-1""" enable_power() d = hid_test.ice40_flasher() @@ -70,7 +70,7 @@ def voltage_test(): return True def flash_validate_id(): - """Read the ID from the flash, and verify that it's not all 0's or 1's (which would indicate a communications issue)""" + """Read the ID from TK-1 SPI flash, and verify that it's not all 0's or 1's""" result = run([ file_locations['iceprog'], '-t' @@ -90,7 +90,7 @@ def flash_validate_id(): return (result.returncode == 0) def flash_program(): - """Program and verify the SPI flash with the application test gateware""" + """Program and verify the TK-1 SPI flash with the application test gateware""" result = run([ file_locations['iceprog'], file_locations['app_gateware'] @@ -100,7 +100,7 @@ def flash_program(): return (result.returncode == 0) def flash_check(): - """Verify the SPI flash is programmed with the application test gateware""" + """Verify the TK-1 SPI flash is programmed with the application test gateware""" result = run([ file_locations['iceprog'], '-c', @@ -111,7 +111,7 @@ def flash_check(): return (result.returncode == 0) def test_extra_io(): - """Test the RTS, CTS, and GPIO1-4 lines by measuring a test pattern generated by the app_test gateware when RTS is toggled""" + """Test the TK-1 RTS, CTS, and GPIO1-4 lines by measuring a test pattern generated by the app_test gateware""" enable_power() time.sleep(.1) @@ -175,7 +175,7 @@ def inject_serial_number(infile, outfile, serial): of.write(f) def flash_ch552(serial): - """Flash an attached CH552 device (in bootloader mode) with the USB CDC firmware, injected with the given serial number""" + """Flash an attached CH552 device with the USB CDC firmware, injected with the given serial number""" print(serial) inject_serial_number( @@ -242,7 +242,7 @@ def ch552_program(): return True def test_txrx_touchpad(): - """Test UART communication by asking the operator to interact with the touch pad""" + """Test UART communication, RGB LED, and touchpad by asking the operator to interact with the touch pad""" description = { 'vid':0x1207, 'pid':0x8887, @@ -259,7 +259,7 @@ def test_txrx_touchpad(): for i in range(0,5): # Attempt to clear any buffered data from the serial port s.write(b'0123') - time.sleep(0.1) + time.sleep(0.2) s.read(20) try: @@ -279,14 +279,14 @@ def test_txrx_touchpad(): return True except ValueError as e: print(e) - return False + continue print('Max retries exceeded, failure!') return False def program_pico(): - """Load the ice40 flasher firmware onto an rpi pico in bootloader mode""" + """Load the ice40 flasher firmware onto the TP-1""" print('Attach test rig to USB (times out in 10 seconds)') for trys in range(0,100): # retry every 0.1s try: @@ -304,7 +304,7 @@ def program_pico(): def sleep_2(): - """ Sleep for 2 seconds """ + """Sleep for 2 seconds""" time.sleep(2) return True @@ -401,21 +401,23 @@ def run_tests(test_list): if __name__ == '__main__': last_a = 0 + print('\n\nTillitis TK-1 and TP-1 Production tests') + while True: print('\n\n') options = [] - print('Test sequences') + print('=== Test sequences ===') i = 1 for name, tests in test_sequences.items(): - print('{:}{:}. {:}{:}({:})'.format(ANSI['bold'], i, name, ANSI['reset'], ', '.join([test.__name__ for test in tests]))) + print('{:}{:}. {:}{:}: {:}'.format(ANSI['bold'], i, name, ANSI['reset'], ', '.join([test.__name__ for test in tests]))) options.append(tests) i += 1 - print('\nManual tests') + print('\n=== Manual tests ===') for test in manual_tests: - print('{:}{:}. {:}{:} ({:})'.format(ANSI['bold'], i, test.__name__, ANSI['reset'], test.__doc__)) + print('{:}{:}. {:}{:}: {:}'.format(ANSI['bold'], i, test.__name__, ANSI['reset'], test.__doc__)) options.append([test]) i += 1