2
2
* Copyright (c) 2013-2020 Arm Limited. All rights reserved.
3
3
* Copyright 2019, Cypress Semiconductor Corporation
4
4
* or a subsidiary of Cypress Semiconductor Corporation.
5
+ * Copyright (c) 2021 Chris Reed
5
6
*
6
7
* SPDX-License-Identifier: Apache-2.0
7
8
*
38
39
#include "target_family.h"
39
40
#include "flash_manager.h"
40
41
#include <string.h>
41
-
42
+ #include "daplink_vendor_commands.h"
42
43
43
44
#ifdef DRAG_N_DROP_SUPPORT
44
45
#include "file_stream.h"
@@ -66,15 +67,15 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
66
67
* response ++ = * request ; // copy Command ID
67
68
68
69
switch (* request ++ ) { // first byte in request is Command ID
69
- case ID_DAP_Vendor0 : {
70
+ case ID_DAP_GetUniqueID : {
70
71
const char * id_str = info_get_unique_id ();
71
72
uint8_t len = strlen (id_str );
72
73
* response ++ = len ;
73
74
memcpy (response , id_str , len );
74
75
num += (len + 1 ); // increment response count by ID length + length byte
75
76
break ;
76
77
}
77
- case ID_DAP_Vendor1 : {
78
+ case ID_DAP_UART_GetLineCoding : {
78
79
// get line coding
79
80
int32_t read_len = sizeof (CDC_LINE_CODING );
80
81
CDC_LINE_CODING cdc_line_coding ;
@@ -83,7 +84,7 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
83
84
num += (read_len + 1 );
84
85
break ;
85
86
}
86
- case ID_DAP_Vendor2 : {
87
+ case ID_DAP_UART_SetConfiguration : {
87
88
// set uart configuration
88
89
CDC_LINE_CODING cdc_line_coding ;
89
90
USBD_CDC_ACM_PortGetLineCoding (& cdc_line_coding );
@@ -97,7 +98,7 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
97
98
num += (sizeof (uint32_t ) << 16 ) | 1 ;
98
99
break ;
99
100
}
100
- case ID_DAP_Vendor3 : {
101
+ case ID_DAP_UART_Read : {
101
102
// uart read
102
103
int32_t read_len = 62 ;
103
104
read_len = uart_read_data (response + 1 , read_len );
@@ -109,7 +110,7 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
109
110
num += (read_len + 1 );
110
111
break ;
111
112
}
112
- case ID_DAP_Vendor4 : {
113
+ case ID_DAP_UART_Write : {
113
114
// uart write
114
115
int32_t write_len = * request ;
115
116
request ++ ;
@@ -122,7 +123,7 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
122
123
case ID_DAP_Vendor5 : break ;
123
124
case ID_DAP_Vendor6 : break ;
124
125
case ID_DAP_Vendor7 : break ;
125
- case ID_DAP_Vendor8 : {
126
+ case ID_DAP_SetUSBTestMode : {
126
127
* response = 1 ;
127
128
if (0 == * request ) {
128
129
main_usb_set_test_mode (false);
@@ -134,7 +135,7 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
134
135
num += (1U << 16 ) | 1U ; // increment request and response count each by 1
135
136
break ;
136
137
}
137
- case ID_DAP_Vendor9 : {
138
+ case ID_DAP_ResetTargetIfNoAutoReset : {
138
139
// reset target
139
140
* response = 1 ;
140
141
if (!config_get_auto_rst ()) {
@@ -144,19 +145,19 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
144
145
break ;
145
146
}
146
147
#ifdef DRAG_N_DROP_SUPPORT
147
- case ID_DAP_Vendor10 : {
148
+ case ID_DAP_MSD_Open : {
148
149
// open mass storage device stream
149
150
* response = stream_open ((stream_type_t )(* request ));
150
151
num += (1 << 16 ) | 1 ;
151
152
break ;
152
153
}
153
- case ID_DAP_Vendor11 : {
154
+ case ID_DAP_MSD_Close : {
154
155
// close mass storage device stream
155
156
* response = stream_close ();
156
157
num += 1 ;
157
158
break ;
158
159
}
159
- case ID_DAP_Vendor12 : {
160
+ case ID_DAP_MSD_Write : {
160
161
// write to mass storage device
161
162
uint32_t write_len = * request ;
162
163
request ++ ;
@@ -166,7 +167,7 @@ uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) {
166
167
break ;
167
168
}
168
169
#endif
169
- case ID_DAP_Vendor13 : {
170
+ case ID_DAP_SelectEraseMode : {
170
171
// switching between chip erase and page erase
171
172
// COMMAND(OUT Packet)
172
173
// BYTE 0 1000 1110 0x8D
0 commit comments