Skip to content

Commit f176c6d

Browse files
Ampere OpenOCD 2020.12.11 (v1.0.0)
1 parent c748a92 commit f176c6d

File tree

215 files changed

+11774
-2006
lines changed

Some content is hidden

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

215 files changed

+11774
-2006
lines changed

.github/workflows/snapshot.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
# Copyright (C) 2020 by Tarek BOUCHKATI <[email protected]>
4+
5+
on: push
6+
7+
name: OpenOCD Snapshot
8+
9+
jobs:
10+
package:
11+
runs-on: [ubuntu-18.04]
12+
env:
13+
DL_DIR: ../downloads
14+
BUILD_DIR: ../build
15+
steps:
16+
- name: Install needed packages
17+
run: sudo apt-get install autotools-dev autoconf automake libtool pkg-config cmake texinfo texlive g++-mingw-w64-i686
18+
- uses: actions/checkout@v1
19+
- run: ./bootstrap
20+
- name: Prepare libusb1
21+
env:
22+
LIBUSB1_VER: 1.0.23
23+
run: |
24+
mkdir -p $DL_DIR && cd $DL_DIR
25+
wget "https://github.com/libusb/libusb/releases/download/v${LIBUSB1_VER}/libusb-${LIBUSB1_VER}.tar.bz2"
26+
tar -xjf libusb-${LIBUSB1_VER}.tar.bz2
27+
echo "LIBUSB1_SRC=$PWD/libusb-${LIBUSB1_VER}" >> $GITHUB_ENV
28+
- name: Prepare hidapi
29+
env:
30+
HIDAPI_VER: 0.9.0
31+
run: |
32+
mkdir -p $DL_DIR && cd $DL_DIR
33+
wget "https://github.com/libusb/hidapi/archive/hidapi-${HIDAPI_VER}.tar.gz"
34+
tar -xzf hidapi-${HIDAPI_VER}.tar.gz
35+
cd hidapi-hidapi-${HIDAPI_VER}
36+
./bootstrap
37+
echo "HIDAPI_SRC=$PWD" >> $GITHUB_ENV
38+
- name: Prepare libftdi
39+
env:
40+
LIBFTDI_VER: 1.4
41+
run: |
42+
mkdir -p $DL_DIR && cd $DL_DIR
43+
wget "http://www.intra2net.com/en/developer/libftdi/download/libftdi1-${LIBFTDI_VER}.tar.bz2"
44+
tar -xjf libftdi1-${LIBFTDI_VER}.tar.bz2
45+
echo "LIBFTDI_SRC=$PWD/libftdi1-${LIBFTDI_VER}" >> $GITHUB_ENV
46+
- name: Prepare capstone
47+
env:
48+
CAPSTONE_VER: 4.0.2
49+
run: |
50+
mkdir -p $DL_DIR && cd $DL_DIR
51+
CAPSTONE_NAME=${CAPSTONE_VER}
52+
CAPSTONE_FOLDER=capstone-${CAPSTONE_VER}
53+
wget "https://github.com/aquynh/capstone/archive/${CAPSTONE_VER}.tar.gz"
54+
tar -xzf ${CAPSTONE_VER}.tar.gz
55+
echo "CAPSTONE_SRC=$PWD/capstone-${CAPSTONE_VER}" >> $GITHUB_ENV
56+
- name: Package OpenOCD for windows
57+
env:
58+
MAKE_JOBS: 2
59+
HOST: i686-w64-mingw32
60+
LIBUSB1_CONFIG: --enable-shared --enable-static
61+
HIDAPI_CONFIG: --enable-shared --disable-static --disable-testgui
62+
LIBFTDI_CONFIG: "-DCMAKE_TOOLCHAIN_FILE='${{ env.LIBFTDI_SRC }}/cmake/Toolchain-i686-w64-mingw32.cmake' -DBUILD_TESTS:BOOL=off -DFTDIPP:BOOL=off -DPYTHON_BINDINGS:BOOL=off -DEXAMPLES:BOOL=off -DDOCUMENTATION:BOOL=off -DFTDI_EEPROM:BOOL=off"
63+
CAPSTONE_CONFIG: "CAPSTONE_BUILD_CORE_ONLY=yes CAPSTONE_STATIC=yes CAPSTONE_SHARED=no"
64+
run: |
65+
# set snapshot tag
66+
OPENOCD_TAG="`git tag --points-at HEAD`"
67+
[ -z $OPENOCD_TAG ] && OPENOCD_TAG="`git rev-parse --short HEAD`"
68+
# set env and call cross-build.sh
69+
export OPENOCD_TAG=$OPENOCD_TAG
70+
export OPENOCD_SRC=$PWD
71+
export OPENOCD_CONFIG=""
72+
mkdir -p $BUILD_DIR && cd $BUILD_DIR
73+
bash $OPENOCD_SRC/contrib/cross-build.sh $HOST
74+
# add missing dlls
75+
cd $HOST-root/usr
76+
cp `$HOST-gcc --print-file-name=libwinpthread-1.dll` ./bin/
77+
cp `$HOST-gcc --print-file-name=libgcc_s_sjlj-1.dll` ./bin/
78+
# prepare the artifact
79+
ARTIFACT="openocd-${OPENOCD_TAG}-${HOST}.tar.gz"
80+
tar -czf $ARTIFACT *
81+
echo "ARTIFACT_NAME=$ARTIFACT" >> $GITHUB_ENV
82+
echo "ARTIFACT_PATH=$PWD/$ARTIFACT" >> $GITHUB_ENV
83+
- name: Publish OpenOCD packaged for windows
84+
uses: actions/upload-artifact@v1
85+
with:
86+
name: ${{ env.ARTIFACT_NAME }}
87+
path: ${{ env.ARTIFACT_PATH }}
88+
- name: Get the upload URL for a release
89+
id: get_release
90+
if: startsWith(github.ref, 'refs/tags/')
91+
uses: bruceadams/[email protected]
92+
env:
93+
GITHUB_TOKEN: ${{ github.token }}
94+
- name: Release OpenOCD packaged for windows
95+
if: startsWith(github.ref, 'refs/tags/')
96+
uses: actions/upload-release-asset@v1
97+
env:
98+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
99+
with:
100+
upload_url: ${{ steps.get_release.outputs.upload_url }}
101+
asset_path: ${{ env.ARTIFACT_PATH }}
102+
asset_name: ${{ env.ARTIFACT_NAME }}
103+
asset_content_type: application/gzip

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
url = https://repo.or.cz/git2cl.git
44
[submodule "jimtcl"]
55
path = jimtcl
6-
url = https://repo.or.cz/jimtcl.git
6+
url = https://github.com/msteveb/jimtcl.git
77
[submodule "src/jtag/drivers/libjaylink"]
88
path = src/jtag/drivers/libjaylink
99
url = https://repo.or.cz/libjaylink.git

configure.ac

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ AC_PREREQ(2.64)
22
AC_INIT([openocd], [0.10.0+dev],
33
[OpenOCD Mailing List <[email protected]>])
44
AC_CONFIG_SRCDIR([src/openocd.c])
5+
AC_CONFIG_AUX_DIR([.])
56

67
m4_include([config_subdir.m4])dnl
78

@@ -43,6 +44,7 @@ AC_TYPE_LONG_LONG_INT
4344

4445
AC_SEARCH_LIBS([ioperm], [ioperm])
4546
AC_SEARCH_LIBS([dlopen], [dl])
47+
AC_SEARCH_LIBS([openpty], [util])
4648

4749
AC_CHECK_HEADERS([sys/socket.h])
4850
AC_CHECK_HEADERS([elf.h])
@@ -117,6 +119,7 @@ m4_define([USB1_ADAPTERS],
117119
[[ft232r], [Bitbang mode of FT232R based devices], [FT232R]],
118120
[[vsllink], [Versaloon-Link JTAG Programmer], [VSLLINK]],
119121
[[xds110], [TI XDS110 Debug Probe], [XDS110]],
122+
[[cmsis_dap_v2], [CMSIS-DAP v2 Compliant Debugger], [CMSIS_DAP_USB]],
120123
[[osbdm], [OSBDM (JTAG only) Programmer], [OSBDM]],
121124
[[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],
122125
[[aice], [Andes JTAG Programmer], [AICE]]])
@@ -127,7 +130,7 @@ m4_define([USB0_ADAPTERS],
127130
[[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]]])
128131

129132
m4_define([HIDAPI_ADAPTERS],
130-
[[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP]],
133+
[[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP_HID]],
131134
[[nulink], [Nu-Link Programmer], [HLADAPTER_NULINK]]])
132135

133136
m4_define([HIDAPI_USB1_ADAPTERS],
@@ -677,7 +680,11 @@ for hidapi_lib in hidapi hidapi-hidraw hidapi-libusb; do
677680
])
678681
done
679682

680-
PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [use_libftdi=yes], [
683+
PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [
684+
use_libftdi=yes
685+
PKG_CHECK_EXISTS([libftdi1 >= 1.5],
686+
[AC_DEFINE([HAVE_LIBFTDI_TCIOFLUSH], [1], [Define if your libftdi has ftdi_tcioflush()])])
687+
], [
681688
PKG_CHECK_MODULES([LIBFTDI], [libftdi], [use_libftdi=yes], [use_libftdi=no])
682689
])
683690

@@ -836,6 +843,7 @@ AS_IF([test "x${gcc_wextra}" = "xyes"], [
836843
GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
837844
GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
838845
GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
846+
GCC_WARNINGS="${GCC_WARNINGS} -Wpointer-arith"
839847
])
840848
AS_IF([test "x${gcc_werror}" = "xyes"], [
841849
GCC_WARNINGS="${GCC_WARNINGS} -Werror"

contrib/60-openocd.rules

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="660", GROUP="plugdev",
167167

168168
# Keil Software, Inc. ULink
169169
ATTRS{idVendor}=="c251", ATTRS{idProduct}=="2710", MODE="660", GROUP="plugdev", TAG+="uaccess"
170+
ATTRS{idVendor}=="c251", ATTRS{idProduct}=="2750", MODE="660", GROUP="plugdev", TAG+="uaccess"
170171

171172
# CMSIS-DAP compatible adapters
172173
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"

contrib/cross-build.sh

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
# paths refer to the build file system.
1515
#
1616
# This script is probably more useful as a reference than as a complete build
17-
# tool but for some configurations it may be usable as-is. It only cross-
18-
# builds libusb-1.0, hidapi and libftdi from source, but the script can be
17+
# tool but for some configurations it may be usable as-is. It only cross-builds
18+
# libusb-1.0, hidapi, libftdi and capstone from source, but the script can be
1919
# extended to build other prerequisites in a similar manner.
2020
#
2121
# Usage:
@@ -39,17 +39,20 @@ WORK_DIR=$PWD
3939
: ${LIBUSB1_SRC:=/path/to/libusb1}
4040
: ${HIDAPI_SRC:=/path/to/hidapi}
4141
: ${LIBFTDI_SRC:=/path/to/libftdi}
42+
: ${CAPSTONE_SRC:=/path/to/capstone}
4243

4344
OPENOCD_SRC=`readlink -m $OPENOCD_SRC`
4445
LIBUSB1_SRC=`readlink -m $LIBUSB1_SRC`
4546
HIDAPI_SRC=`readlink -m $HIDAPI_SRC`
4647
LIBFTDI_SRC=`readlink -m $LIBFTDI_SRC`
48+
CAPSTONE_SRC=`readlink -m $CAPSTONE_SRC`
4749

4850
HOST_TRIPLET=$1
4951
BUILD_DIR=$WORK_DIR/$HOST_TRIPLET-build
5052
LIBUSB1_BUILD_DIR=$BUILD_DIR/libusb1
5153
HIDAPI_BUILD_DIR=$BUILD_DIR/hidapi
5254
LIBFTDI_BUILD_DIR=$BUILD_DIR/libftdi
55+
CAPSTONE_BUILD_DIR=$BUILD_DIR/capstone
5356
OPENOCD_BUILD_DIR=$BUILD_DIR/openocd
5457

5558
## Root of host file tree
@@ -129,6 +132,26 @@ if [ -d $LIBFTDI_SRC ] ; then
129132
make install DESTDIR=$SYSROOT
130133
fi
131134

135+
# capstone build & install into sysroot
136+
if [ -d $CAPSTONE_SRC ] ; then
137+
mkdir -p $CAPSTONE_BUILD_DIR
138+
cd $CAPSTONE_BUILD_DIR
139+
cp -r $CAPSTONE_SRC/* .
140+
make install DESTDIR=$SYSROOT PREFIX=$PREFIX \
141+
CROSS="${HOST_TRIPLET}-" \
142+
$CAPSTONE_CONFIG
143+
# fix the generated capstone.pc
144+
CAPSTONE_PC_FILE=${SYSROOT}${PREFIX}/lib/pkgconfig/capstone.pc
145+
sed -i '/^libdir=/d' $CAPSTONE_PC_FILE
146+
sed -i '/^includedir=/d' $CAPSTONE_PC_FILE
147+
sed -i '/^archive=/d' $CAPSTONE_PC_FILE
148+
sed -i '1s;^;prefix=/usr \
149+
exec_prefix=${prefix} \
150+
libdir=${exec_prefix}/lib \
151+
includedir=${prefix}/include\n\n;' $CAPSTONE_PC_FILE
152+
fi
153+
154+
132155
# OpenOCD build & install into sysroot
133156
mkdir -p $OPENOCD_BUILD_DIR
134157
cd $OPENOCD_BUILD_DIR
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
BIN2C = ../../../../src/helper/bin2char.sh
2+
3+
SRCS=stmqspi_erase_check.S stmqspi_crc32.S stmqspi_read.S stmqspi_write.S \
4+
stmoctospi_erase_check.S stmoctospi_crc32.S stmoctospi_read.S stmoctospi_write.S
5+
OBJS=$(patsubst %.S,%.inc,$(SRCS))
6+
7+
CROSS_COMPILE ?= arm-none-eabi-
8+
9+
CC=$(CROSS_COMPILE)gcc
10+
OBJCOPY=$(CROSS_COMPILE)objcopy
11+
OBJDUMP=$(CROSS_COMPILE)objdump
12+
LD=$(CROSS_COMPILE)ld
13+
14+
all: $(OBJS)
15+
16+
%.o: %.S Makefile
17+
$(CC) -Wall -Werror -Wa,-adhlmn -o $@ -c $< > $(@:.o=.lst)
18+
@enscript -Easm -T 4 -G -o - $(@:.o=.lst) | ps2pdf - $(@:.o=.pdf) || true
19+
20+
%.elf: %.o
21+
$(LD) -s -defsym=_start=0 -o $@ $<
22+
23+
%.bin: %.elf
24+
$(OBJCOPY) -S -O binary $< $@
25+
26+
%.inc: %.bin
27+
$(BIN2C) < $< > $@
28+
29+
clean:
30+
-rm -f *.o *.elf *.lst *.pdf *.bin *.inc
31+
32+
.PHONY: all clean
33+
34+
.INTERMEDIATE: $(patsubst %.S,%.o,$(SRCS)) $(patsubst %.S,%.elf,$(SRCS)) $(patsubst %.S,%.bin,$(SRCS))

0 commit comments

Comments
 (0)