forked from auracaster/openocd
This adds general support for JTAG adapters based on the WCH CH347T and CH347F chips. The CH347T must be configured in mode 3 to provide both UART and JTAG interfaces. The CH347F exposes UART and JTAG directly. Similar to FTDI FT2232-based devices, the CH347T/F can be used for simultaneous UART and JTAG communication. The ch347 driver code is based on: https://github.com/WCHSoftGroup/ch347 Bug fixes and adjustments were made to align the code with OpenOCD style and ensure compatibility. The driver was integrated into the OpenOCD build system. The USB packet format was identified using public GitHub sources and documented here: https://www.easydevkits.com/wch-ch347-jtag-interface/ Change-Id: I5fca9dd015111e4410fea029611fdeedbb228fdb Signed-off-by: EasyDevKits <info@easydevkits.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7937 Tested-by: jenkins Reviewed-by: ZhiYuanNJ <871238103@qq.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
147 lines
5.0 KiB
Plaintext
147 lines
5.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-or-later OR GFDL-1.2-no-invariants-or-later
|
|
|
|
# Link: https://www.easydevkits.com
|
|
# PCB: ESP32-WROVER-E WCH JTAG DevKit v0.1
|
|
# Chip: CH347T in mode 3 (UART+JTAG mode)
|
|
# Product id of 0x55dd is only valid if the chip is started in mode 3
|
|
# These are the other product ids: mode 0 = 0x55da, mode 1 = 0x55db, mode 2 = 0x55dc
|
|
# The similar chip CH347F has no modes and always product id 0x55de
|
|
|
|
Bus 001 Device 013: ID 1a86:55dd QinHeng Electronics EasyDevKit
|
|
Device Descriptor:
|
|
bLength 18
|
|
bDescriptorType 1
|
|
bcdUSB 2.00
|
|
bDeviceClass 0
|
|
bDeviceSubClass 0
|
|
bDeviceProtocol 0
|
|
bMaxPacketSize0 64
|
|
idVendor 0x1a86 QinHeng Electronics
|
|
idProduct 0x55dd
|
|
bcdDevice 4.41
|
|
iManufacturer 1 EasyDevKits
|
|
iProduct 2 EasyDevKit
|
|
iSerial 3 ACBACJGAAB
|
|
bNumConfigurations 1
|
|
Configuration Descriptor:
|
|
bLength 9
|
|
bDescriptorType 2
|
|
wTotalLength 0x0062
|
|
bNumInterfaces 3
|
|
bConfigurationValue 1
|
|
iConfiguration 0
|
|
bmAttributes 0x80
|
|
(Bus Powered)
|
|
MaxPower 500mA
|
|
Interface Association:
|
|
bLength 8
|
|
bDescriptorType 11
|
|
bFirstInterface 0
|
|
bInterfaceCount 2
|
|
bFunctionClass 2 Communications
|
|
bFunctionSubClass 2 Abstract (modem)
|
|
bFunctionProtocol 1 AT-commands (v.25ter)
|
|
iFunction 0
|
|
Interface Descriptor:
|
|
bLength 9
|
|
bDescriptorType 4
|
|
bInterfaceNumber 0
|
|
bAlternateSetting 0
|
|
bNumEndpoints 1
|
|
bInterfaceClass 2 Communications
|
|
bInterfaceSubClass 2 Abstract (modem)
|
|
bInterfaceProtocol 1 AT-commands (v.25ter)
|
|
iInterface 0
|
|
CDC Header:
|
|
bcdCDC 1.10
|
|
CDC Call Management:
|
|
bmCapabilities 0x00
|
|
bDataInterface 1
|
|
CDC ACM:
|
|
bmCapabilities 0x02
|
|
line coding and serial state
|
|
CDC Union:
|
|
bMasterInterface 0
|
|
bSlaveInterface 1
|
|
Endpoint Descriptor:
|
|
bLength 7
|
|
bDescriptorType 5
|
|
bEndpointAddress 0x83 EP 3 IN
|
|
bmAttributes 3
|
|
Transfer Type Interrupt
|
|
Synch Type None
|
|
Usage Type Data
|
|
wMaxPacketSize 0x0040 1x 64 bytes
|
|
bInterval 1
|
|
Interface Descriptor:
|
|
bLength 9
|
|
bDescriptorType 4
|
|
bInterfaceNumber 1
|
|
bAlternateSetting 0
|
|
bNumEndpoints 2
|
|
bInterfaceClass 10 CDC Data
|
|
bInterfaceSubClass 0
|
|
bInterfaceProtocol 0
|
|
iInterface 0
|
|
Endpoint Descriptor:
|
|
bLength 7
|
|
bDescriptorType 5
|
|
bEndpointAddress 0x04 EP 4 OUT
|
|
bmAttributes 2
|
|
Transfer Type Bulk
|
|
Synch Type None
|
|
Usage Type Data
|
|
wMaxPacketSize 0x0200 1x 512 bytes
|
|
bInterval 0
|
|
Endpoint Descriptor:
|
|
bLength 7
|
|
bDescriptorType 5
|
|
bEndpointAddress 0x84 EP 4 IN
|
|
bmAttributes 2
|
|
Transfer Type Bulk
|
|
Synch Type None
|
|
Usage Type Data
|
|
wMaxPacketSize 0x0200 1x 512 bytes
|
|
bInterval 0
|
|
Interface Descriptor:
|
|
bLength 9
|
|
bDescriptorType 4
|
|
bInterfaceNumber 2
|
|
bAlternateSetting 0
|
|
bNumEndpoints 2
|
|
bInterfaceClass 255 Vendor Specific Class
|
|
bInterfaceSubClass 0
|
|
bInterfaceProtocol 0
|
|
iInterface 0
|
|
Endpoint Descriptor:
|
|
bLength 7
|
|
bDescriptorType 5
|
|
bEndpointAddress 0x06 EP 6 OUT
|
|
bmAttributes 2
|
|
Transfer Type Bulk
|
|
Synch Type None
|
|
Usage Type Data
|
|
wMaxPacketSize 0x0200 1x 512 bytes
|
|
bInterval 0
|
|
Endpoint Descriptor:
|
|
bLength 7
|
|
bDescriptorType 5
|
|
bEndpointAddress 0x86 EP 6 IN
|
|
bmAttributes 2
|
|
Transfer Type Bulk
|
|
Synch Type None
|
|
Usage Type Data
|
|
wMaxPacketSize 0x0200 1x 512 bytes
|
|
bInterval 0
|
|
Device Qualifier (for other device speed):
|
|
bLength 10
|
|
bDescriptorType 6
|
|
bcdUSB 2.00
|
|
bDeviceClass 255 Vendor Specific Class
|
|
bDeviceSubClass 0
|
|
bDeviceProtocol 255
|
|
bMaxPacketSize0 64
|
|
bNumConfigurations 1
|
|
Device Status: 0x0000
|
|
(Bus Powered)
|