Skip to content

Commit b6ade1b

Browse files
authored
Merge pull request #1236 from en-sc/en-sc/from_upstream
Merge up to a168c63 from upstream
2 parents 74d912e + 8c82210 commit b6ade1b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+661
-393
lines changed

configure.ac

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,19 @@ m4_define([USB1_ADAPTERS],
137137
[[ft232r], [Bitbang mode of FT232R based devices], [FT232R]],
138138
[[vsllink], [Versaloon-Link JTAG Programmer], [VSLLINK]],
139139
[[xds110], [TI XDS110 Debug Probe], [XDS110]],
140-
[[cmsis_dap_v2], [CMSIS-DAP v2 Compliant Debugger], [CMSIS_DAP_USB]],
141140
[[osbdm], [OSBDM (JTAG only) Programmer], [OSBDM]],
142141
[[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],
143142
[[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]],
144143
[[rlink], [Raisonance RLink JTAG Programmer], [RLINK]],
145144
[[usbprog], [USBProg JTAG Programmer], [USBPROG]],
146-
[[esp_usb_jtag], [Espressif JTAG Programmer], [ESP_USB_JTAG]]])
145+
[[esp_usb_jtag], [Espressif JTAG Programmer], [ESP_USB_JTAG]],
146+
[[cmsis_dap_v2], [CMSIS-DAP v2 compliant dongle (USB bulk)], [CMSIS_DAP_USB]]])
147+
148+
# Please keep cmsis_dap_v2 the last in USB1_ADAPTERS
149+
# and cmsis_dap the first in HIDAPI_ADAPTERS
147150

148151
m4_define([HIDAPI_ADAPTERS],
149-
[[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP_HID]],
152+
[[[cmsis_dap], [CMSIS-DAP v1 compliant dongle (HID)], [CMSIS_DAP_HID]],
150153
[[nulink], [Nu-Link Programmer], [HLADAPTER_NULINK]]])
151154

152155
m4_define([HIDAPI_USB1_ADAPTERS],
@@ -879,7 +882,7 @@ AS_IF([test "x$use_internal_jimtcl" = "xyes"], [
879882
echo
880883
echo
881884
echo OpenOCD configuration summary
882-
echo --------------------------------------------------
885+
echo ---------------------------------------------------
883886
m4_foreach([adapter], [USB1_ADAPTERS,
884887
HIDAPI_ADAPTERS, HIDAPI_USB1_ADAPTERS, LIBFTDI_ADAPTERS,
885888
LIBFTDI_USB1_ADAPTERS,
@@ -890,7 +893,7 @@ m4_foreach([adapter], [USB1_ADAPTERS,
890893
DUMMY_ADAPTER,
891894
OPTIONAL_LIBRARIES,
892895
COVERAGE],
893-
[s=m4_format(["%-40s"], ADAPTER_DESC([adapter]))
896+
[s=m4_format(["%-41s"], ADAPTER_DESC([adapter]))
894897
AS_CASE([$ADAPTER_VAR([adapter])],
895898
[auto], [
896899
echo "$s"yes '(auto)'

src/flash/nor/rsl10.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,6 @@ static int rsl10_get_probed_chip_if_halted(struct flash_bank *bank, struct rsl10
155155

156156
static int rsl10_protect_check(struct flash_bank *bank)
157157
{
158-
struct rsl10_bank *nbank = bank->driver_priv;
159-
struct rsl10_info *chip = nbank->chip;
160-
161-
assert(chip);
162-
163158
uint32_t status;
164159

165160
int retval = target_read_u32(bank->target, RSL10_FLASH_REG_IF_STATUS, &status);

src/helper/jep106.inc

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
/*
44
* The manufacturer's standard identification code list appears in JEP106.
5-
* Copyright (c) 2024 JEDEC. All rights reserved.
5+
* Copyright (c) 2025 JEDEC. All rights reserved.
66
*
77
* JEP106 is regularly updated. For the current manufacturer's standard
88
* identification code list, please visit the JEDEC website at www.jedec.org .
99
*/
1010

11-
/* This file is aligned to revision JEP106BK September 2024. */
11+
/* This file is aligned to revision JEP106BL February 2025. */
1212

1313
[0][0x01 - 1] = "AMD",
1414
[0][0x02 - 1] = "AMI",
1515
[0][0x03 - 1] = "Fairchild",
16-
[0][0x04 - 1] = "Fujitsu",
16+
[0][0x04 - 1] = "RAMXEED Limited",
1717
[0][0x05 - 1] = "GTE",
1818
[0][0x06 - 1] = "Harris",
1919
[0][0x07 - 1] = "Hitachi",
@@ -1373,7 +1373,7 @@
13731373
[10][0x65 - 1] = "Esperanto Technologies",
13741374
[10][0x66 - 1] = "JinSheng Electronic (Shenzhen) Co Ltd",
13751375
[10][0x67 - 1] = "Shenzhen Shi Bolunshuai Technology",
1376-
[10][0x68 - 1] = "Shanghai Rui Xuan Information Tech",
1376+
[10][0x68 - 1] = "Shanghai Ruixuan Information Tech",
13771377
[10][0x69 - 1] = "Fraunhofer IIS",
13781378
[10][0x6a - 1] = "Kandou Bus SA",
13791379
[10][0x6b - 1] = "Acer",
@@ -1745,7 +1745,7 @@
17451745
[13][0x5f - 1] = "Guangdong OPPO Mobile Telecommunication",
17461746
[13][0x60 - 1] = "Akeana",
17471747
[13][0x61 - 1] = "Lyczar",
1748-
[13][0x62 - 1] = "Shenzhen Qiji Technology Co Ltd",
1748+
[13][0x62 - 1] = "QJTEK",
17491749
[13][0x63 - 1] = "Shenzhen Shangzhaoyuan Technology",
17501750
[13][0x64 - 1] = "Han Stor",
17511751
[13][0x65 - 1] = "China Micro Semicon Co., Ltd.",
@@ -1893,7 +1893,7 @@
18931893
[14][0x75 - 1] = "HOGE Technology Co Ltd",
18941894
[14][0x76 - 1] = "United Micro Technology (Shenzhen) Co",
18951895
[14][0x77 - 1] = "Fabric of Truth Inc",
1896-
[14][0x78 - 1] = "Epitech",
1896+
[14][0x78 - 1] = "Elpitech",
18971897
[14][0x79 - 1] = "Elitestek",
18981898
[14][0x7a - 1] = "Cornelis Networks Inc",
18991899
[14][0x7b - 1] = "WingSemi Technologies Co Ltd",
@@ -1916,7 +1916,7 @@
19161916
[15][0x0e - 1] = "Shenzhen Ranshuo Technology Co Limited",
19171917
[15][0x0f - 1] = "ScaleFlux",
19181918
[15][0x10 - 1] = "XC Memory",
1919-
[15][0x11 - 1] = "Guangzhou Beimu Technology Co., Ltd",
1919+
[15][0x11 - 1] = "Guangzhou Beimu Technology Co Ltd",
19201920
[15][0x12 - 1] = "Rays Semiconductor Nanjing Co Ltd",
19211921
[15][0x13 - 1] = "Milli-Centi Intelligence Technology Jiangsu",
19221922
[15][0x14 - 1] = "Zilia Technologies",
@@ -1925,7 +1925,7 @@
19251925
[15][0x17 - 1] = "Nanjing Houmo Technology Co Ltd",
19261926
[15][0x18 - 1] = "Suzhou Yige Technology Co Ltd",
19271927
[15][0x19 - 1] = "Shenzhen Techwinsemi Technology Co Ltd",
1928-
[15][0x1a - 1] = "Pure Array Technology (Shanghai) Co. Ltd",
1928+
[15][0x1a - 1] = "Pure Array Technology (Shanghai) Co Ltd",
19291929
[15][0x1b - 1] = "Shenzhen Techwinsemi Technology Udstore",
19301930
[15][0x1c - 1] = "RISE MODE",
19311931
[15][0x1d - 1] = "NEWREESTAR",
@@ -2016,4 +2016,37 @@
20162016
[15][0x72 - 1] = "KEYSOM",
20172017
[15][0x73 - 1] = "Shenzhen YYF Info Tech Co Ltd",
20182018
[15][0x74 - 1] = "Sharetronics Data Technology Co Ltd",
2019+
[15][0x75 - 1] = "AptCore Limited",
2020+
[15][0x76 - 1] = "Uchampion Semiconductor Co Ltd",
2021+
[15][0x77 - 1] = "YCT Semiconductor",
2022+
[15][0x78 - 1] = "FADU Inc",
2023+
[15][0x79 - 1] = "Hefei CLT Microelectronics Co LTD",
2024+
[15][0x7a - 1] = "Smart Technologies (BD) Ltd",
2025+
[15][0x7b - 1] = "Zhangdian District Qunyuan Computer Firm",
2026+
[15][0x7c - 1] = "Silicon Xpandas Electronics Co Ltd",
2027+
[15][0x7d - 1] = "PC Components Y Multimedia S",
2028+
[15][0x7e - 1] = "Shenzhen Tanlr Technology Group Co Ltd",
2029+
[16][0x01 - 1] = "Shenzhen JIEQING Technology Co Ltd",
2030+
[16][0x02 - 1] = "Orionix",
2031+
[16][0x03 - 1] = "JoulWatt Technology Co Ltd",
2032+
[16][0x04 - 1] = "Tenstorrent",
2033+
[16][0x05 - 1] = "Unis Flash Memory Technology (Chengdu)",
2034+
[16][0x06 - 1] = "Huatu Stars",
2035+
[16][0x07 - 1] = "Ardor Gaming",
2036+
[16][0x08 - 1] = "QuanZhou KunFang Semiconductor Co Ltd",
2037+
[16][0x09 - 1] = "EIAI PLANET",
2038+
[16][0x0a - 1] = "Ningbo Lingkai Semiconductor Technology Inc",
2039+
[16][0x0b - 1] = "Shenzhen Hancun Technology Co Ltd",
2040+
[16][0x0c - 1] = "Hongkong Manyi Technology Co Limited",
2041+
[16][0x0d - 1] = "Shenzhen Storgon Technology Co Ltd",
2042+
[16][0x0e - 1] = "YUNTU Microelectronics",
2043+
[16][0x0f - 1] = "Essencore",
2044+
[16][0x10 - 1] = "Shenzhen Xingyun Lianchuang Computer Tech",
2045+
[16][0x11 - 1] = "ShenZhen Aoscar Digital Tech Co Ltd",
2046+
[16][0x12 - 1] = "XOC Technologies Inc",
2047+
[16][0x13 - 1] = "BOS Semiconductors",
2048+
[16][0x14 - 1] = "Eliyan Corp",
2049+
[16][0x15 - 1] = "Hangzhou Lishu Technology Co Ltd",
2050+
[16][0x16 - 1] = "Tier IV Inc",
2051+
[16][0x17 - 1] = "Wuhan Xuanluzhe Network Technology Co",
20192052
/* EOF */

src/jtag/drivers/cmsis_dap.c

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,22 @@
3939
#include "cmsis_dap.h"
4040
#include "libusb_helper.h"
4141

42-
static const struct cmsis_dap_backend *const cmsis_dap_backends[] = {
43-
#if BUILD_CMSIS_DAP_USB == 1
44-
&cmsis_dap_usb_backend,
42+
/* Create a dummy backend for 'backend' command if real one does not build */
43+
#if BUILD_CMSIS_DAP_USB == 0
44+
const struct cmsis_dap_backend cmsis_dap_usb_backend = {
45+
.name = "usb_bulk",
46+
};
4547
#endif
4648

47-
#if BUILD_CMSIS_DAP_HID == 1
48-
&cmsis_dap_hid_backend,
49+
#if BUILD_CMSIS_DAP_HID == 0
50+
const struct cmsis_dap_backend cmsis_dap_hid_backend = {
51+
.name = "hid"
52+
};
4953
#endif
54+
55+
static const struct cmsis_dap_backend *const cmsis_dap_backends[] = {
56+
&cmsis_dap_usb_backend,
57+
&cmsis_dap_hid_backend,
5058
};
5159

5260
/* USB Config */
@@ -261,26 +269,32 @@ static int cmsis_dap_open(void)
261269
return ERROR_FAIL;
262270
}
263271

272+
int retval = ERROR_FAIL;
264273
if (cmsis_dap_backend >= 0) {
265274
/* Use forced backend */
266275
backend = cmsis_dap_backends[cmsis_dap_backend];
267-
if (backend->open(dap, cmsis_dap_vid, cmsis_dap_pid, adapter_get_required_serial()) != ERROR_OK)
268-
backend = NULL;
276+
if (backend->open)
277+
retval = backend->open(dap, cmsis_dap_vid, cmsis_dap_pid, adapter_get_required_serial());
278+
else
279+
LOG_ERROR("Requested CMSIS-DAP backend is disabled by configure");
280+
269281
} else {
270282
/* Try all backends */
271283
for (unsigned int i = 0; i < ARRAY_SIZE(cmsis_dap_backends); i++) {
272284
backend = cmsis_dap_backends[i];
273-
if (backend->open(dap, cmsis_dap_vid, cmsis_dap_pid, adapter_get_required_serial()) == ERROR_OK)
285+
if (!backend->open)
286+
continue;
287+
288+
retval = backend->open(dap, cmsis_dap_vid, cmsis_dap_pid, adapter_get_required_serial());
289+
if (retval == ERROR_OK)
274290
break;
275-
else
276-
backend = NULL;
277291
}
278292
}
279293

280-
if (!backend) {
294+
if (retval != ERROR_OK) {
281295
LOG_ERROR("unable to find a matching CMSIS-DAP device");
282296
free(dap);
283-
return ERROR_FAIL;
297+
return retval;
284298
}
285299

286300
dap->backend = backend;
@@ -293,7 +307,8 @@ static int cmsis_dap_open(void)
293307
static void cmsis_dap_close(struct cmsis_dap *dap)
294308
{
295309
if (dap->backend) {
296-
dap->backend->close(dap);
310+
if (dap->backend->close)
311+
dap->backend->close(dap);
297312
dap->backend = NULL;
298313
}
299314

@@ -2192,22 +2207,27 @@ COMMAND_HANDLER(cmsis_dap_handle_vid_pid_command)
21922207

21932208
COMMAND_HANDLER(cmsis_dap_handle_backend_command)
21942209
{
2195-
if (CMD_ARGC == 1) {
2196-
if (strcmp(CMD_ARGV[0], "auto") == 0) {
2197-
cmsis_dap_backend = -1; /* autoselect */
2198-
} else {
2199-
for (unsigned int i = 0; i < ARRAY_SIZE(cmsis_dap_backends); i++) {
2200-
if (strcasecmp(cmsis_dap_backends[i]->name, CMD_ARGV[0]) == 0) {
2210+
if (CMD_ARGC != 1)
2211+
return ERROR_COMMAND_SYNTAX_ERROR;
2212+
2213+
if (strcmp(CMD_ARGV[0], "auto") == 0) {
2214+
cmsis_dap_backend = -1; /* autoselect */
2215+
} else {
2216+
for (unsigned int i = 0; i < ARRAY_SIZE(cmsis_dap_backends); i++) {
2217+
if (strcasecmp(cmsis_dap_backends[i]->name, CMD_ARGV[0]) == 0) {
2218+
if (cmsis_dap_backends[i]->open) {
22012219
cmsis_dap_backend = i;
22022220
return ERROR_OK;
22032221
}
2204-
}
22052222

2206-
command_print(CMD, "invalid backend argument to cmsis-dap backend <backend>");
2207-
return ERROR_COMMAND_ARGUMENT_INVALID;
2223+
command_print(CMD, "Requested cmsis-dap backend %s is disabled by configure",
2224+
cmsis_dap_backends[i]->name);
2225+
return ERROR_NOT_IMPLEMENTED;
2226+
}
22082227
}
2209-
} else {
2210-
return ERROR_COMMAND_SYNTAX_ERROR;
2228+
2229+
command_print(CMD, "invalid argument %s to cmsis-dap backend", CMD_ARGV[0]);
2230+
return ERROR_COMMAND_ARGUMENT_INVALID;
22112231
}
22122232

22132233
return ERROR_OK;

src/jtag/drivers/linuxspidev.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,20 @@ static int spidev_init(void)
302302
return ERROR_JTAG_INIT_FAILED;
303303
}
304304

305+
int ret;
305306
// Set SPI mode.
306-
int ret = ioctl(spi_fd, SPI_IOC_WR_MODE32, &spi_mode);
307+
#ifdef SPI_IOC_WR_MODE32
308+
ret = ioctl(spi_fd, SPI_IOC_WR_MODE32, &spi_mode);
309+
#else
310+
// Linux pre 3.15 does not support MODE32, use 8-bit ioctl
311+
if (spi_mode & ~0xff) {
312+
LOG_ERROR("SPI mode 0x%" PRIx32 ", system permits 8 bits only", spi_mode);
313+
return ERROR_JTAG_INIT_FAILED;
314+
}
315+
316+
uint8_t mode = (uint8_t)spi_mode;
317+
ret = ioctl(spi_fd, SPI_IOC_WR_MODE, &mode);
318+
#endif
307319
if (ret == -1) {
308320
LOG_ERROR("Failed to set SPI mode 0x%" PRIx32, spi_mode);
309321
return ERROR_JTAG_INIT_FAILED;

src/rtos/Makefile.am

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ noinst_LTLIBRARIES += %D%/librtos.la
1111
%D%/rtos_ucos_iii_stackings.c \
1212
%D%/rtos_riot_stackings.c \
1313
%D%/rtos_nuttx_stackings.c \
14-
%D%/FreeRTOS.c \
15-
%D%/ThreadX.c \
16-
%D%/eCos.c \
14+
%D%/freertos.c \
15+
%D%/threadx.c \
16+
%D%/ecos.c \
1717
%D%/linux.c \
1818
%D%/chibios.c \
1919
%D%/chromium-ec.c \
20-
%D%/embKernel.c \
20+
%D%/embkernel.c \
2121
%D%/mqx.c \
22-
%D%/uCOS-III.c \
22+
%D%/ucos_iii.c \
2323
%D%/nuttx.c \
2424
%D%/rtkernel.c \
2525
%D%/hwthread.c \
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)