Files
tinyusb/test/hil/tinyusb.json
Ha Thach 1d915b6b59 bsp, hil: flash WCH boards with the unified OpenOCD fork (#3791)
bsp, hil: flash with the unified OpenOCD fork

https://github.com/hathach/openocd (branch tinyusb) is mainline plus every
config these boards need: RPi RP2350, ADI max32/max78, the MounRiver WCH
configs, and the wlinke adapter on mainline's riscv target. It is a superset
of the vendor forks, so one 'openocd' covers all boards; -DOPENOCD=/OPENOCD=
still select another, msdk's when MAXIM_PATH is set.

Drops family_flash_openocd_wch and the OPENOCD_WCH pair, dedups
family_flash_openocd_adi, aligns ch583's work area, and points hil at the
flasher's own config instead of generating one per probe.

Verified: HIL green on all four WCH boards and max32666fthr.
2026-07-28 12:50:28 +07:00

636 lines
22 KiB
JSON

{
"boards": [
{
"name": "frdm_k64f",
"uid": "FFFF1A00FFFFFFFF1031454E0F000280",
"tests": {
"device": false,
"host": true,
"dual": false,
"dev_attached": [
{
"vid_pid": "1a86_55d4",
"serial": "52D2023934",
"is_cdc": true,
"comment": "CH9102 USB-serial (TX-RX loopback)"
},
{
"vid_pid": "21c4_0cc7",
"serial": "9000588268687E25",
"is_msc": true,
"block_size": 512,
"block_count": 60620800,
"msc_inquiry": "Lexar USB Flash Drive PMAP"
}
]
},
"flasher": {
"name": "jlink",
"uid": "000621000000",
"args": "-device MK64FN1M0xxx12"
}
},
{
"name": "ek_tm4c123gxl",
"uid": "010105186C60A110",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "lm4flash",
"uid": "0E205D19",
"args": "-v"
}
},
{
"name": "espressif_p4_function_ev",
"uid": "6055F9F98715",
"variant": [
{ "name": "espressif_p4_function_ev", "flags": "" },
{ "name": "espressif_p4_function_ev-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
],
"tests": {
"only": [
"device/cdc_msc_freertos",
"device/hid_composite_freertos",
"device/audio_test_freertos",
"device/usbtest",
"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",
"uid": "4ea4f48f6bc3ee11bbb9d00f9e1b1c54",
"args": "-b 1500000",
"comment": "use --force for ESP32-P4 v0.1"
},
"comment": "Use TS3USB30 mux to test both device and host"
},
{
"name": "espressif_s3_devkitm",
"uid": "84F703C084E4",
"variant": [
{ "name": "espressif_s3_devkitm", "flags": "" },
{ "name": "espressif_s3_devkitm-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
],
"tests": {
"only": [
"device/cdc_msc_freertos",
"device/hid_composite_freertos",
"device/audio_test_freertos",
"device/usbtest",
"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",
"uid": "3ea619acd1cdeb11a0a0b806e93fd3f1",
"args": "-b 1500000"
},
"comment": "Use TS3USB30 mux to test both device and host"
},
{
"name": "feather_nrf52840_express",
"uid": "1F0479CD0F764471",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "681295394",
"args": "-device nrf52840_xxaa"
}
},
{
"name": "max32666fthr",
"uid": "0C81464124010B20FF0A08CC2C",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "openocd",
"uid": "E6614C311B597D32",
"args": "-f interface/cmsis-dap.cfg -f target/max32665.cfg"
}
},
{
"name": "metro_m4_express",
"uid": "9995AD485337433231202020FF100A34",
"build": {
"args": [
"MAX3421_HOST=1"
]
},
"tests": {
"device": true,
"host": false,
"dual": true,
"skip": ["device/audio_test_freertos"],
"dev_attached": [
{
"vid_pid": "067b_2303",
"serial": "0",
"is_cdc": true
}
],
"comment": "pl23x; audio_test_freertos skipped: samd51 iso-IN capture fails (arecord EIO)"
},
"flasher": {
"name": "jlink",
"uid": "123456",
"args": "-device ATSAMD51J19"
}
},
{
"name": "lpcxpresso11u37",
"uid": "17121919",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "000724441579",
"args": "-device LPC11U37/401"
}
},
{
"name": "ra4m1_ek",
"uid": "152E163038303131393346E46F26574B",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "000831174392",
"args": "-device R7FA4M1AB"
}
},
{
"name": "raspberry_pi_pico",
"uid": "E6614C311B764A37",
"variant": [
{ "name": "raspberry_pi_pico", "flags": "-DCFG_TUH_RPI_PIO_USB=1" }
],
"tests": {
"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",
"uid": "E6614103E72C1D2F",
"args": "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\""
}
},
{
"name": "raspberry_pi_pico_w",
"uid": "E6614864D35DAE36",
"tests": {
"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,
"block_size": 512,
"block_count": 4124152,
"msc_inquiry": "USB2.0 Flash Disk 2.10"
}
]
},
"flasher": {
"name": "openocd",
"uid": "E6633861A3819D38",
"args": "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\""
},
"comment": "Test native host"
},
{
"name": "raspberry_pi_pico2",
"uid": "560AE75E1C7152C9",
"tests": {
"device": false,
"host": true,
"dual": false,
"dev_attached": [
{
"vid_pid": "0951_1603",
"serial": "820000000000000045B46338",
"is_msc": true,
"block_size": 512,
"block_count": 3987456,
"msc_inquiry": "Kingston DataTraveler 2.0 1.00"
}
]
},
"flasher": {
"name": "openocd",
"uid": "E6633861A3978538",
"args": "-f interface/cmsis-dap.cfg -f target/rp2350.cfg -c \"adapter speed 5000\""
}
},
{
"name": "adafruit_fruit_jam",
"uid": "2B0DC7A45781189E",
"tests": {
"device": true,
"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"
}
]
},
"flasher": {
"name": "openocd",
"uid": "E663AC91D3359B38",
"args": "-f interface/cmsis-dap.cfg -f target/rp2350.cfg -c \"adapter speed 5000\""
}
},
{
"name": "stm32f072disco",
"uid": "3A001A001357364230353532",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "779541626",
"args": "-device stm32f072rb"
},
"comment": "2x16 access scheme with 1KB USB SRAM"
},
{
"name": "stm32f407disco",
"uid": "30001A000647313332353735",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "000773661813",
"args": "-device stm32f407vg"
}
},
{
"name": "stm32f723disco",
"uid": "460029001951373031313335",
"variant": [
{ "name": "stm32f723disco", "flags": "" },
{ "name": "stm32f723disco-DMA", "flags": "-DCFG_TUH_DWC2_DMA_ENABLE=1" }
],
"tests": {
"device": true,
"host": true,
"dual": false,
"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",
"uid": "000776606156",
"args": "-device stm32f723ie"
},
"comment": "Device port0 FS (slave only), Host port1 HS with DMA"
},
{
"name": "stm32h743nucleo",
"uid": "110018000951383432343236",
"variant": [
{ "name": "stm32h743nucleo", "flags": "" },
{ "name": "stm32h743nucleo-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
],
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "openocd",
"uid": "004C00343137510F39383538",
"args": "-f interface/stlink.cfg -f target/stm32h7x.cfg"
}
},
{
"name": "stm32g0b1nucleo",
"uid": "4D0038000450434E37343120",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "openocd",
"uid": "066FFF495087534867063844",
"args": "-f interface/stlink.cfg -f target/stm32g0x.cfg"
},
"comment": "32-bit scheme, 2KB USB SRAM"
},
{
"name": "stm32l476disco",
"uid": "3C0050001150334258343920",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "777632258",
"args": "-device STM32L476VG"
}
},
{
"name": "stm32u083nucleo",
"uid": "300044000D5036394E373620",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "stlink",
"uid": "0668FF575457657187061314"
}
},
{
"name": "nanoch32v203",
"uid": "CDAB277B0FBC03E339E339E3",
"toolchain": "riscv-gcc",
"variant": [
{"name": "nanoch32v203-fsdev", "defines": ["RHPORT_DEVICE=0"]},
{"name": "nanoch32v203-usbfs", "defines": ["RHPORT_DEVICE=1"]}
],
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "openocd_wch",
"uid": "EBCA8F0670AF",
"args": "-f target/wch-riscv.cfg"
}
},
{
"name": "ch32v103r_r1_1v0",
"uid": "CDAB3E8749BC54EF0F410025",
"toolchain": "riscv-gcc",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "openocd_wch",
"uid": "BC4954081051",
"args": "-f target/wch-riscv.cfg"
}
},
{
"name": "ch32v307v_r1_1v0",
"uid": "DE6B3E263B3857CAFFFFFFFF",
"toolchain": "riscv-gcc",
"variant": [
{"name": "ch32v307v_r1_1v0-usbhs", "defines": ["SPEED=high"]},
{"name": "ch32v307v_r1_1v0-usbfs", "defines": ["SPEED=full"]}
],
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "openocd_wch",
"uid": "BC5DA47360D0",
"args": "-f target/wch-riscv.cfg"
}
},
{
"name": "ch582m_evt",
"uid": "D443627B5450",
"toolchain": "riscv-gcc",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "openocd_wch",
"uid": "7FD88F0604B5",
"args": "-f target/wch-riscv.cfg"
}
},
{
"name": "nrf5340dk",
"uid": "78E60E166B5F88BE",
"tests": {
"device": true,
"host": false,
"dual": false,
"skip": ["device/cdc_msc_freertos", "device/audio_test_freertos"],
"comment": "board new to HIL: FreeRTOS examples hardfault (UFSR=INVPC) at first task launch on the CM33_NTZ port - pre-existing upstream issue, non-FreeRTOS examples and usbtest pass; fix separately"
},
"flasher": {
"name": "jlink",
"uid": "001050076405",
"args": "-device NRF5340_XXAA_APP"
}
}
],
"boards-skip": [
{
"name": "mimxrt1064_evk",
"uid": "BAE96FB95AFA6DBB8F00005002001200",
"comment-skip": "device-port cable degraded from enum drops to killing the uPD720201 mid-battery (2026-07-17); replace the cable, verify enum, then move back",
"tests": {
"device": true,
"host": true,
"dual": true,
"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",
"uid": "000725299165",
"args": "-device MIMXRT1064xxx6A"
}
},
{
"name": "nrf54lm20dk",
"uid": "899C3DE5B0F4D5CA",
"comment-skip": "J-Link probe fails most flashes (2026-07-16); replug/repair the probe, then move back",
"tests": {
"device": true,
"host": false,
"dual": false,
"skip": ["device/audio_test_freertos"],
"comment": "board new to HIL: audio_test_freertos never reaches dcd_init (FreeRTOS itself runs; cdc_msc_freertos and usbtest pass) - example-level issue on nRF54L, fix separately"
},
"flasher": {
"name": "jlink",
"uid": "1051856258",
"args": "-device NRF54LM20A_M33"
}
},
{
"name": "ra6m5_ek",
"uid": "8419032D32363657364EF4622D294B4E",
"tests": {
"device": true,
"host": false,
"dual": false,
"skip": ["device/cdc_msc_throughput", "device/msc_dual_lun"],
"comment": "MSC writes wedge the uPD720201 host (URBs queued, zero wire activity, bus-15 ctrl xfers time out until the device's URBs are killed); reproduced identically with master firmware - device side armed+BUF and exonerated. MSC reads and usbtest bulk (15.8 MB/s) are fine"
},
"flasher": {
"name": "jlink",
"uid": "000831915224",
"args": "-device R7FA6M5BH"
}
},
{
"name": "ra8m1_ek",
"uid": "797D142D36345030364E1737922E4B4E",
"comment": "USBHS bring-up pending (HS chirp completes digitally but terminations never switch; FS-forced build passed usbtest 30/30). Parked until fixed",
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "001083115236",
"args": "-device R7FA8M1AH"
}
},
{
"name": "stm32f769disco",
"uid": "21002F000F51363531383437",
"variant": [
{ "name": "stm32f769disco", "flags": "" },
{ "name": "stm32f769disco-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
],
"tests": {
"device": true,
"host": false,
"dual": false
},
"flasher": {
"name": "jlink",
"uid": "000778170924",
"args": "-device stm32f769ni"
}
}
]
}