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_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
