This commit is contained in:
TriForceX
2019-09-25 20:51:37 -03:00
commit 6203ff3e7c
11215 changed files with 428258 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
From 3bef159779c8fd39a070ec5c8191e18ba2efa79d Mon Sep 17 00:00:00 2001
From: Claudio Laurita <claudio.laurita@integrazionetotale.it>
Date: Sun, 30 Nov 2014 18:21:58 +0100
Subject: [PATCH 2/2] Fix jimtcl auto configuration to force static library
only. jimtcl ignores a --disable-shared option if a previous --enable-shared
option was given. This breaks openocd compilation if shared was the preferred
option in buildroot project.
Signed-off-by: Claudio Laurita <claudio.laurita@integrazionetotale.it>
--- a/jimtcl/auto.def
+++ b/jimtcl/auto.def
@@ -194,12 +194,8 @@
msg-result "Enabling references"
define JIM_REFERENCES
}
-if {[opt-bool shared with-jim-shared]} {
- msg-result "Building shared library"
-} else {
- msg-result "Building static library"
- define JIM_STATICLIB
-}
+msg-result "Building static library"
+define JIM_STATICLIB
define LIBSOEXT [format [get-define SH_SOEXTVER] [format %.2f [expr {[get-define JIM_VERSION] / 100.0}]]]
define JIM_INSTALL [opt-bool install-jim]
define JIM_DOCS [opt-bool docs]

View File

@@ -0,0 +1,26 @@
From 11ea78c4d253bb90296e2dd8c3f7fbf59ba397b6 Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Thu, 17 Aug 2017 06:30:31 +0200
Subject: [PATCH] configure: enable build on uclinux
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index c680bda7..1a7980a0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -327,7 +327,7 @@ AC_ARG_ENABLE([sysfsgpio],
[build_sysfsgpio=$enableval], [build_sysfsgpio=no])
AS_CASE([$host_os],
- [linux*], [],
+ [linux*|uclinux*], [],
[
AS_IF([test "x$build_sysfsgpio" = "xyes"], [
AC_MSG_ERROR([sysfsgpio is only available on linux])
--
2.11.0

View File

@@ -0,0 +1,50 @@
From 3a223ca3ebc7ac24d7726a0cd58e5695bc813657 Mon Sep 17 00:00:00 2001
From: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Date: Sat, 13 Jan 2018 21:00:47 +0100
Subject: [PATCH] CVE-2018-5704: Prevent some forms of Cross Protocol Scripting
attacks
OpenOCD can be targeted by a Cross Protocol Scripting attack from
a web browser running malicious code, such as the following PoC:
var x = new XMLHttpRequest();
x.open("POST", "http://127.0.0.1:4444", true);
x.send("exec xcalc\r\n");
This mitigation should provide some protection from browser-based
attacks and is based on the corresponding fix in Redis:
https://github.com/antirez/redis/blob/8075572207b5aebb1385c4f233f5302544439325/src/networking.c#L1758
Upstream-status: Under review: http://openocd.zylin.com/#/c/4335/
Change-Id: Ia96ebe19b74b5805dc228bf7364c7971a90a4581
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reported-by: Josef Gajdusek <atx@atx.name>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
src/server/startup.tcl | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/server/startup.tcl b/src/server/startup.tcl
index 64ace407..dd1b31e4 100644
--- a/src/server/startup.tcl
+++ b/src/server/startup.tcl
@@ -8,3 +8,14 @@ proc ocd_gdb_restart {target_id} {
# one target
reset halt
}
+
+proc prevent_cps {} {
+ echo "Possible SECURITY ATTACK detected."
+ echo "It looks like somebody is sending POST or Host: commands to OpenOCD."
+ echo "This is likely due to an attacker attempting to use Cross Protocol Scripting"
+ echo "to compromise your OpenOCD instance. Connection aborted."
+ exit
+}
+
+proc POST {args} { prevent_cps }
+proc Host: {args} { prevent_cps }
--
2.11.0

217
package/openocd/Config.in Normal file
View File

@@ -0,0 +1,217 @@
config BR2_PACKAGE_OPENOCD
bool "openocd"
help
OpenOCD - Open On-Chip Debugger
http://openocd.sourceforge.net/
if BR2_PACKAGE_OPENOCD
comment "Adapters"
config BR2_PACKAGE_OPENOCD_CMSIS_DAP
bool "CMSIS-DAP compliant debuggers"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
depends on BR2_PACKAGE_HAS_UDEV # hidapi
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # hidapi
select BR2_PACKAGE_LIBUSB
select BR2_PACKAGE_HIDAPI
help
Enable support for CMSIS-DAP compliant debuggers (i.e
Atmel/Microchip EDBG, etc.)
config BR2_PACKAGE_OPENOCD_FTDI
bool "MPSSE mode of FTDI based devices"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the MPSSE mode of FTDI
(FT2xxx/FT4xxx) based devices (default is auto)
config BR2_PACKAGE_OPENOCD_STLINK
bool "ST-Link JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the ST-Link JTAG
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_TI_ICDI
bool "TI ICDI JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the TI ICDI JTAG
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_ULINK
bool "Keil ULINK JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the Keil ULINK JTAG
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_UBLASTER2
bool "Altera USB-Blaster II Compatible"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the Altera USB-Blaster
II Compatible (default is auto)
config BR2_PACKAGE_OPENOCD_JLINK
bool "Segger J-Link JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Segger J-Link JTAG Programmer and clone such as Atmel
SAM-ICE
config BR2_PACKAGE_OPENOCD_OSDBM
bool "OSDBM JTAG (only) Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the OSBDM (JTAG only)
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_OPENDOUS
bool "eStick/opendous JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the eStick/opendous JTAG
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_AICE
bool "Andes JTAG Programmer"
depends on BR2_USE_MMU # use fork()
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
select BR2_PACKAGE_LIBUSB
help
Enable building support for the Andes JTAG
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_VSLLINK
bool "Versaloon-Link JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
select BR2_PACKAGE_LIBUSB
select BR2_PACKAGE_LIBUSB_COMPAT
help
Enable building support for the Versaloon-Link JTAG
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_USBPROG
bool "USBProg JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
select BR2_PACKAGE_LIBUSB
select BR2_PACKAGE_LIBUSB_COMPAT
help
Enable building support for the USBProg JTAG
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_RLINK
bool "Raisonance RLink JTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
select BR2_PACKAGE_LIBUSB
select BR2_PACKAGE_LIBUSB_COMPAT
help
Enable building support for the Raisonance RLink
JTAG Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_ARMEW
bool "Olimex ARM-JTAG-EW Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
select BR2_PACKAGE_LIBUSB
select BR2_PACKAGE_LIBUSB_COMPAT
help
Enable building support for the Olimex ARM-JTAG-EW
Programmer (default is auto)
config BR2_PACKAGE_OPENOCD_PARPORT
bool "pc parallel port driver"
help
Enable building the pc parallel port driver
config BR2_PACKAGE_OPENOCD_VPI
bool "JTAG VPI"
help
Enable building support for JTAG VPI
config BR2_PACKAGE_OPENOCD_UBLASTER
bool "Altera USB-Blaster"
depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb
select BR2_PACKAGE_LIBFTDI1
help
Enable building support for the Altera USB-Blaster
using the libftdi driver, opensource alternate of
FTD2XX
config BR2_PACKAGE_OPENOCD_AMTJT
bool "Amontec JTAG-Accelerator"
help
Enable building the Amontec JTAG-Accelerator driver
if BR2_arm
config BR2_PACKAGE_OPENOCD_EP93XX
bool "EP93xx based SBCs"
help
Enable building support for EP93xx based SBCs
config BR2_PACKAGE_OPENOCD_AT91RM
bool "AT91RM9200 based SBCs"
help
Enable building support for AT91RM9200 based SBCs
config BR2_PACKAGE_OPENOCD_BCM2835
bool "bitbanging on BCM2835"
help
Enable building support for bitbanging on BCM2835
(as found in Raspberry Pi)
endif # BR2_arm
config BR2_PACKAGE_OPENOCD_GW16012
bool "Gateworks GW16012 JTAG Programmer"
help
Enable building support for the Gateworks GW16012
JTAG Programmer
config BR2_PACKAGE_OPENOCD_PRESTO
bool "ASIX Presto Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb
select BR2_PACKAGE_LIBFTDI1
help
Enable building support for ASIX Presto Programmer
using the libftdi driver
config BR2_PACKAGE_OPENOCD_OPENJTAG
bool "OpenJTAG Programmer"
depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb
select BR2_PACKAGE_LIBFTDI1
select BR2_PACKAGE_LIBUSB
select BR2_PACKAGE_LIBUSB_COMPAT # needs usb.h
help
Enable building support for the OpenJTAG Programmer
with ftdi driver
config BR2_PACKAGE_OPENOCD_BUSPIRATE
bool "Buspirate"
help
Enable building support for the Buspirate
config BR2_PACKAGE_OPENOCD_SYSFS
bool "programming via sysfs gpios"
help
Enable building support for programming driven via
sysfs gpios.
# Many adapters need libusb or libusb-compat, which require threads,
# but we don't want to duplicate this comment for all adapters that
# select libusb or libusb-compat.
comment "many openocd adapters needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
endif # BR2_PACKAGE_OPENOCD

View File

@@ -0,0 +1,6 @@
config BR2_PACKAGE_HOST_OPENOCD
bool "host openocd"
help
OpenOCD - Open On-Chip Debugger
http://openocd.org/

View File

@@ -0,0 +1,4 @@
# From http://sourceforge.net/projects/openocd/files/openocd/0.10.0/
sha1 3245d43d60a1a93f8b0f6b1ce20b53e38cab7a4a openocd-0.10.0.tar.bz2
md5 b412bdef0481a3859c6585eb69f6f6ba openocd-0.10.0.tar.bz2
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING

126
package/openocd/openocd.mk Normal file
View File

@@ -0,0 +1,126 @@
################################################################################
#
# openocd
#
################################################################################
OPENOCD_VERSION = 0.10.0
OPENOCD_SOURCE = openocd-$(OPENOCD_VERSION).tar.bz2
OPENOCD_SITE = http://sourceforge.net/projects/openocd/files/openocd/$(OPENOCD_VERSION)
OPENOCD_LICENSE = GPL-2.0+
OPENOCD_LICENSE_FILES = COPYING
# 0002-configure-enable-build-on-uclinux.patch patches configure.ac
OPENOCD_AUTORECONF = YES
# The bundled jimtcl really wants to find a existing $CXX, so feed it
# false when we do not have one.
OPENOCD_CONF_ENV = \
$(if $(BR2_INSTALL_LIBSTDCPP),,CXX=false) \
CFLAGS="$(TARGET_CFLAGS) -std=gnu99"
OPENOCD_CONF_OPTS = \
--oldincludedir=$(STAGING_DIR)/usr/include \
--includedir=$(STAGING_DIR)/usr/include \
--disable-doxygen-html \
--with-jim-shared=no \
--disable-shared \
--enable-dummy \
--disable-werror
# Rely on the Config.in options of each individual adapter selecting
# the dependencies they need.
OPENOCD_DEPENDENCIES = \
host-pkgconf \
$(if $(BR2_PACKAGE_LIBFTDI1),libftdi1) \
$(if $(BR2_PACKAGE_LIBUSB),libusb) \
$(if $(BR2_PACKAGE_LIBUSB_COMPAT),libusb-compat) \
$(if $(BR2_PACKAGE_LIBHID),libhid) \
$(if $(BR2_PACKAGE_HIDAPI),hidapi)
# Adapters
OPENOCD_CONF_OPTS += \
$(if $(BR2_PACKAGE_OPENOCD_FTDI),--enable-ftdi,--disable-ftdi) \
$(if $(BR2_PACKAGE_OPENOCD_STLINK),--enable-stlink,--disable-stlink) \
$(if $(BR2_PACKAGE_OPENOCD_TI_ICDI),--enable-ti-icdi,--disable-ti-icdi) \
$(if $(BR2_PACKAGE_OPENOCD_ULINK),--enable-ulink,--disable-ulink) \
$(if $(BR2_PACKAGE_OPENOCD_UBLASTER2),--enable-usb-blaster-2,--disable-usb-blaster-2) \
$(if $(BR2_PACKAGE_OPENOCD_JLINK),--enable-jlink,--disable-jlink) \
$(if $(BR2_PACKAGE_OPENOCD_OSDBM),--enable-osbdm,--disable-osbdm) \
$(if $(BR2_PACKAGE_OPENOCD_OPENDOUS),--enable-opendous,--disable-opendous) \
$(if $(BR2_PACKAGE_OPENOCD_AICE),--enable-aice,--disable-aice) \
$(if $(BR2_PACKAGE_OPENOCD_VSLLINK),--enable-vsllink,--disable-vsllink) \
$(if $(BR2_PACKAGE_OPENOCD_USBPROG),--enable-usbprog,--disable-usbprog) \
$(if $(BR2_PACKAGE_OPENOCD_RLINK),--enable-rlink,--disable-rlink) \
$(if $(BR2_PACKAGE_OPENOCD_ARMEW),--enable-armjtagew,--disable-armjtagew) \
$(if $(BR2_PACKAGE_OPENOCD_CMSIS_DAP),--enable-cmsis-dap,--disable-cmsis-dap) \
$(if $(BR2_PACKAGE_OPENOCD_PARPORT),--enable-parport,--disable-parport) \
$(if $(BR2_PACKAGE_OPENOCD_VPI),--enable-jtag_vpi,--disable-jtag_vpi) \
$(if $(BR2_PACKAGE_OPENOCD_UBLASTER),--enable-usb-blaster,--disable-usb-blaster) \
$(if $(BR2_PACKAGE_OPENOCD_AMTJT),--enable-amtjtagaccel,--disable-amjtagaccel) \
$(if $(BR2_PACKAGE_OPENOCD_ZY1000_MASTER),--enable-zy1000-master,--disable-zy1000-master) \
$(if $(BR2_PACKAGE_OPENOCD_ZY1000),--enable-zy1000,--disable-zy1000) \
$(if $(BR2_PACKAGE_OPENOCD_EP93XX),--enable-ep93xx,--disable-ep93xx) \
$(if $(BR2_PACKAGE_OPENOCD_AT91RM),--enable-at91rm9200,--disable-at91rm9200) \
$(if $(BR2_PACKAGE_OPENOCD_BCM2835),--enable-bcm2835gpio,--disable-bcm2835gpio) \
$(if $(BR2_PACKAGE_OPENOCD_GW16012),--enable-gw16012,--disable-gw16012) \
$(if $(BR2_PACKAGE_OPENOCD_PRESTO),--enable-presto,--disable-presto) \
$(if $(BR2_PACKAGE_OPENOCD_OPENJTAG),--enable-openjtag,--disable-openjtag) \
$(if $(BR2_PACKAGE_OPENOCD_BUSPIRATE),--enable-buspirate,--disable-buspirate) \
$(if $(BR2_PACKAGE_OPENOCD_SYSFS),--enable-sysfsgpio,--disable-sysfsgpio)
# Enable all configuration options for host build.
#
# Note that deprecated options have been removed. CMSIS_DAP needs
# hidapi (currently not included in buildroot) and zy1000 stuff fails
# to build, so they've been removed too.
#
HOST_OPENOCD_CONF_OPTS = \
--enable-ftdi \
--enable-stlink \
--enable-ti-icdi \
--enable-ulink \
--enable-usb-blaster-2 \
--enable-jlink \
--enable-osbdm \
--enable-opendous \
--enable-aice \
--enable-vsllink \
--enable-usbprog \
--enable-rlink \
--enable-armjtagew \
--enable-parport \
--enable-jtag_vpi \
--enable-usb-blaster \
--enable-amtjtagaccel \
--enable-gw16012 \
--enable-presto \
--enable-openjtag \
--enable-buspirate \
--enable-sysfsgpio \
--oldincludedir=$(HOST_DIR)/include \
--includedir=$(HOST_DIR)/include \
--disable-doxygen-html \
--with-jim-shared=no \
--disable-shared \
--enable-dummy \
--disable-werror
HOST_OPENOCD_DEPENDENCIES = host-libftdi host-libusb host-libusb-compat
# Avoid documentation rebuild. On PowerPC64(le), we patch the
# configure script. Due to this, the version.texi files gets
# regenerated, and then since it has a newer date than openocd.info,
# openocd build system rebuilds the documentation. Unfortunately, this
# documentation rebuild fails on old machines. We work around this by
# faking the date of the generated version.texi file, to make the
# build system believe the documentation doesn't need to be
# regenerated.
define OPENOCD_FIX_VERSION_TEXI
touch -r $(@D)/doc/openocd.info $(@D)/doc/version.texi
endef
OPENOCD_POST_BUILD_HOOKS += OPENOCD_FIX_VERSION_TEXI
HOST_OPENOCD_POST_BUILD_HOOKS += OPENOCD_FIX_VERSION_TEXI
$(eval $(autotools-package))
$(eval $(host-autotools-package))