diff options
| author | hathach <[email protected]> | 2026-05-21 18:18:25 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2026-05-21 19:06:31 +0700 |
| commit | f4d0d09c8ee06a3531c39032cbe102976aeca349 (patch) | |
| tree | 6d884cbb5e5671643ac8bee3211096e6baf77c0f | |
| parent | 4c87db341e4af7d53ce9cbbdf693593a520dc538 (diff) | |
hil added hub + msc + cdc for host capable board
| -rw-r--r-- | test/hil/hil_ci.sh | 10 | ||||
| -rwxr-xr-x | test/hil/hil_test.py | 5 | ||||
| -rw-r--r-- | test/hil/requirements.txt | 1 | ||||
| -rw-r--r-- | test/hil/tinyusb.json | 236 |
4 files changed, 208 insertions, 44 deletions
diff --git a/test/hil/hil_ci.sh b/test/hil/hil_ci.sh index 96872e2e1..35e71f1ba 100644 --- a/test/hil/hil_ci.sh +++ b/test/hil/hil_ci.sh @@ -54,11 +54,14 @@ scp -q "$ROOT_DIR/test/hil/hil_test.py" \ "$CONFIG" \ "$REMOTE:$REMOTE_DIR/test/hil/" -# Copy only firmware binaries (elf/bin/hex), preserving directory structure +# Copy only firmware binaries (elf/bin/hex) plus esptool metadata +# (config.env + flash_args needed by the esptool flasher), preserving structure copy_board_binaries() { local src="$1" rsync -a --prune-empty-dirs \ - --include='*/' --include='*.elf' --include='*.bin' --include='*.hex' --exclude='*' \ + --include='*/' --include='*.elf' --include='*.bin' --include='*.hex' \ + --include='config.env' --include='flash_args' \ + --exclude='*' \ "$src" "$REMOTE:$REMOTE_DIR/examples/" } @@ -85,5 +88,8 @@ echo "==> Running HIL test on $REMOTE" ssh "$REMOTE" bash -s -- "$REMOTE_DIR" "${ARGS[@]}" "test/hil/$CONFIG_BASENAME" <<'REMOTE' cd -- "$1" shift +# esptool/idf tools live in ~/.local/bin on ci.lan; the non-interactive shell +# subprocess used for flashing doesn't pick that up otherwise. +export PATH="$HOME/.local/bin:$PATH" exec python3 -u test/hil/hil_test.py -B examples "$@" REMOTE diff --git a/test/hil/hil_test.py b/test/hil/hil_test.py index ed9ebbf1a..d921a910a 100755 --- a/test/hil/hil_test.py +++ b/test/hil/hil_test.py @@ -796,6 +796,10 @@ def test_host_msc_file_explorer(board): ser.close() +def test_host_msc_file_explorer_freertos(board): + return test_host_msc_file_explorer(board) + + # ------------------------------------------------------------- # Tests: device # ------------------------------------------------------------- @@ -1465,6 +1469,7 @@ dual_tests = [ host_test = [ 'host/cdc_msc_hid', 'host/msc_file_explorer', + 'host/msc_file_explorer_freertos', 'host/device_info', ] diff --git a/test/hil/requirements.txt b/test/hil/requirements.txt index ef2fecebe..127f6a8ec 100644 --- a/test/hil/requirements.txt +++ b/test/hil/requirements.txt @@ -2,3 +2,4 @@ fs hid pyfatfs pyserial +esptool diff --git a/test/hil/tinyusb.json b/test/hil/tinyusb.json index cba7677cf..dc28df7b9 100644 --- a/test/hil/tinyusb.json +++ b/test/hil/tinyusb.json @@ -3,12 +3,35 @@ { "name": "espressif_p4_function_ev", "uid": "6055F9F98715", - "build" : { - "flags_on": ["", "CFG_TUD_DWC2_DMA_ENABLE CFG_TUH_DWC2_DMA_ENABLE"] + "build": { + "flags_on": [ + "", + "CFG_TUD_DWC2_DMA_ENABLE CFG_TUH_DWC2_DMA_ENABLE" + ] }, "tests": { - "only": ["device/cdc_msc_freertos", "device/hid_composite_freertos", "device/audio_test_freertos", "host/device_info"], - "dev_attached": [{"vid_pid": "1a86_55d4", "serial": "52D2002427", "is_cdc": true}] + "only": [ + "device/cdc_msc_freertos", + "device/hid_composite_freertos", + "device/audio_test_freertos", + "host/device_info", + "host/msc_file_explorer_freertos" + ], + "dev_attached": [ + { + "vid_pid": "1a86_55d4", + "serial": "52D2002427", + "is_cdc": true + }, + { + "vid_pid": "21c4_0cc7", + "serial": "900058944CB80A53", + "is_msc": true, + "block_size": 512, + "block_count": 60620800, + "msc_inquiry": "Lexar USB Flash Drive PMAP" + } + ] }, "flasher": { "name": "esptool", @@ -21,12 +44,36 @@ { "name": "espressif_s3_devkitm", "uid": "84F703C084E4", - "build" : { - "flags_on": ["", "CFG_TUD_DWC2_DMA_ENABLE CFG_TUH_DWC2_DMA_ENABLE"] + "build": { + "flags_on": [ + "", + "CFG_TUD_DWC2_DMA_ENABLE CFG_TUH_DWC2_DMA_ENABLE" + ] }, "tests": { - "only": ["device/cdc_msc_freertos", "device/hid_composite_freertos", "device/audio_test_freertos", "host/device_info"], - "dev_attached": [{"vid_pid": "1a86_55d4", "serial": "52D2005402", "is_cdc": true}] + "only": [ + "device/cdc_msc_freertos", + "device/hid_composite_freertos", + "device/audio_test_freertos", + "host/device_info", + "host/msc_file_explorer_freertos" + ], + "dev_attached": [ + { + "vid_pid": "1a86_55d4", + "serial": "52D2005402", + "is_cdc": true + }, + { + "vid_pid": "048d_04d2", + "serial": "\u0409", + "is_msc": true, + "block_size": 512, + "block_count": 30720000, + "msc_inquiry": "General UDisk 5.00", + "comment": "General UDisk reports iSerialNumber=U+0409" + } + ] }, "flasher": { "name": "esptool", @@ -39,7 +86,9 @@ "name": "feather_nrf52840_express", "uid": "1F0479CD0F764471", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "jlink", @@ -51,7 +100,9 @@ "name": "max32666fthr", "uid": "0C81464124010B20FF0A08CC2C", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "openocd_adi", @@ -71,7 +122,13 @@ "device": true, "host": false, "dual": true, - "dev_attached": [{"vid_pid": "067b_2303", "serial": "0", "is_cdc": true}], + "dev_attached": [ + { + "vid_pid": "067b_2303", + "serial": "0", + "is_cdc": true + } + ], "comment": "pl23x" }, "flasher": { @@ -84,7 +141,9 @@ "name": "mimxrt1015_evk", "uid": "DC28F865D2111D228D00B0543A70463C", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "jlink", @@ -96,9 +155,25 @@ "name": "mimxrt1064_evk", "uid": "BAE96FB95AFA6DBB8F00005002001200", "tests": { - "device": true, "host": true, "dual": true, - "dev_attached": [{"vid_pid": "10c4_ea60", "serial": "0001", "is_cdc": true}], - "comment": "cp2102" + "device": true, + "host": true, + "dual": true, + "dev_attached": [ + { + "vid_pid": "10c4_ea60", + "serial": "0001", + "is_cdc": true, + "comment": "cp2102" + }, + { + "vid_pid": "21c4_0cc7", + "serial": "900058874D871F66", + "is_msc": true, + "block_size": 512, + "block_count": 60620800, + "msc_inquiry": "Lexar USB Flash Drive PMAP" + } + ] }, "flasher": { "name": "jlink", @@ -110,7 +185,9 @@ "name": "lpcxpresso11u37", "uid": "17121919", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "jlink", @@ -135,13 +212,32 @@ { "name": "raspberry_pi_pico", "uid": "E6614C311B764A37", - "build" : { - "flags_on": ["CFG_TUH_RPI_PIO_USB"] + "build": { + "flags_on": [ + "CFG_TUH_RPI_PIO_USB" + ] }, "tests": { - "device": true, "host": true, "dual": true, - "dev_attached": [{"vid_pid": "1a86_7523", "serial": "0", "is_cdc": true}], - "comment": "ch34x" + "device": true, + "host": true, + "dual": true, + "dev_attached": [ + { + "vid_pid": "1a86_7523", + "serial": "0", + "is_cdc": true, + "comment": "ch34x" + }, + { + "vid_pid": "048d_04d2", + "serial": "\u0409", + "is_msc": true, + "block_size": 512, + "block_count": 30720000, + "msc_inquiry": "General UDisk 5.00", + "comment": "General UDisk reports iSerialNumber=U+0409" + } + ] }, "flasher": { "name": "openocd", @@ -153,9 +249,16 @@ "name": "raspberry_pi_pico_w", "uid": "E6614864D35DAE36", "tests": { - "device": false, "host": true, "dual": false, + "device": false, + "host": true, + "dual": false, "dev_attached": [ { + "vid_pid": "1a86_55d4", + "serial": "52D2002694", + "is_cdc": true + }, + { "vid_pid": "2008_2018", "serial": "O20070925A002746", "is_msc": true, @@ -176,7 +279,9 @@ "name": "raspberry_pi_pico2", "uid": "560AE75E1C7152C9", "tests": { - "device": false, "host": true, "dual": false, + "device": false, + "host": true, + "dual": false, "dev_attached": [ { "vid_pid": "0951_1603", @@ -184,7 +289,7 @@ "is_msc": true, "block_size": 512, "block_count": 3987456, - "msc_inquiry": "Kingston DataTraveler 2.0 1.0" + "msc_inquiry": "Kingston DataTraveler 2.0 1.00" } ] }, @@ -202,14 +307,24 @@ "host": true, "dual": true, "dev_attached": [ - {"vid_pid": "0403_6001", "serial": "0", "is_cdc": true}, - {"vid_pid": "058f_6387", "serial": "A8BEE062633D", "is_msc": true, - "block_size": 512, "block_count": 7639040, "msc_inquiry": "Generic Flash Disk 8.07"} + { + "vid_pid": "0403_6001", + "serial": "0", + "is_cdc": true + }, + { + "vid_pid": "058f_6387", + "serial": "A8BEE062633D", + "is_msc": true, + "block_size": 512, + "block_count": 7639040, + "msc_inquiry": "Generic Flash Disk 8.07" + } ] }, "flasher": { "name": "openocd", - "uid": "E6614103E78E8324", + "uid": "E663AC91D3359B38", "args": "-f interface/cmsis-dap.cfg -f target/rp2350.cfg -c \"adapter speed 5000\"" } }, @@ -217,7 +332,9 @@ "name": "stm32f072disco", "uid": "3A001A001357364230353532", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "jlink", @@ -229,12 +346,31 @@ { "name": "stm32f723disco", "uid": "460029001951373031313335", - "build" : { - "flags_on": ["", "CFG_TUH_DWC2_DMA_ENABLE"] + "build": { + "flags_on": [ + "", + "CFG_TUH_DWC2_DMA_ENABLE" + ] }, "tests": { - "device": true, "host": true, "dual": false, - "dev_attached": [{"vid_pid": "1a86_55d4", "serial": "52D2003414", "is_cdc": true}] + "device": true, + "host": true, + "dual": false, + "dev_attached": [ + { + "vid_pid": "1a86_55d4", + "serial": "52D2003414", + "is_cdc": true + }, + { + "vid_pid": "21c4_0cc7", + "serial": "90005893730A1A63", + "is_msc": true, + "block_size": 512, + "block_count": 60620800, + "msc_inquiry": "Lexar USB Flash Drive PMAP" + } + ] }, "flasher": { "name": "jlink", @@ -246,11 +382,16 @@ { "name": "stm32h743nucleo", "uid": "110018000951383432343236", - "build" : { - "flags_on": ["", "CFG_TUD_DWC2_DMA_ENABLE"] + "build": { + "flags_on": [ + "", + "CFG_TUD_DWC2_DMA_ENABLE" + ] }, "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "openocd", @@ -262,7 +403,9 @@ "name": "stm32g0b1nucleo", "uid": "4D0038000450434E37343120", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "openocd", @@ -276,11 +419,16 @@ { "name": "stm32f769disco", "uid": "21002F000F51363531383437", - "build" : { - "flags_on": ["", "CFG_TUD_DWC2_DMA_ENABLE"] + "build": { + "flags_on": [ + "", + "CFG_TUD_DWC2_DMA_ENABLE" + ] }, "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "jlink", @@ -292,7 +440,9 @@ "name": "nanoch32v203", "uid": "CDAB277B0FBC03E339E339E3", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "openocd_wch", @@ -304,7 +454,9 @@ "name": "stm32f407disco", "uid": "30001A000647313332353735", "tests": { - "device": true, "host": false, "dual": false + "device": true, + "host": false, + "dual": false }, "flasher": { "name": "jlink", |
