aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/embedded.scm111
-rw-r--r--gnu/packages/patches/openocd-nrf52.patch64
2 files changed, 83 insertions, 92 deletions
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index f99b17614e..91c600353a 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -355,59 +355,66 @@ language.")
(license license:bsd-2)))
(define-public openocd
- ;; FIXME: Use tarball release after nrf52 patch is merged.
- (let ((commit "674141e8a7a6413cb803d90c2a20150260015f81")
- (revision "1"))
- (package
- (name "openocd")
- (version (string-append "0.9.0-" revision "."
- (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.code.sf.net/p/openocd/code.git")
- (commit commit)))
- (sha256
- (base32
- "1i86jp0wawq78d73z8hp7q1pn7lmlvhjjr19f7299h4w40a5jf8j"))
- (file-name (string-append name "-" version "-checkout"))
- (patches
- (search-patches "openocd-nrf52.patch"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("hidapi" ,hidapi)
- ("jimtcl" ,jimtcl)
- ("libftdi" ,libftdi)
- ("libjaylink" ,libjaylink)
- ("libusb-compat" ,libusb-compat)))
- (arguments
- '(#:configure-flags
- (append (list "--disable-werror"
- "--disable-internal-jimtcl"
- "--disable-internal-libjaylink")
- (map (lambda (programmer)
- (string-append "--enable-" programmer))
- '("amtjtagaccel" "armjtagew" "buspirate" "ftdi"
- "gw16012" "jlink" "oocd_trace" "opendous" "osbdm"
- "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi"
- "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink"
- "usbprog" "vsllink" "usb-blaster-2" "usb_blaster"
- "presto" "openjtag")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autoreconf
- (lambda _
- (zero? (system* "autoreconf" "-vfi")))))))
- (home-page "http://openocd.org")
- (synopsis "On-Chip Debugger")
- (description "OpenOCD provides on-chip programming and debugging support
+ (package
+ (name "openocd")
+ (version "0.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/openocd/openocd/"
+ version "/openocd-" version ".tar.gz"))
+ (sha256
+ (base32
+ "09p57y3c2spqx4vjjlz1ljm1lcd0j9q8g76ywxqgn3yc34wv18zd"))
+ ;; FIXME: Remove after nrf52 patch is merged.
+ (patches
+ (search-patches "openocd-nrf52.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("hidapi" ,hidapi)
+ ("jimtcl" ,jimtcl)
+ ("libftdi" ,libftdi)
+ ("libjaylink" ,libjaylink)
+ ("libusb-compat" ,libusb-compat)))
+ (arguments
+ '(#:configure-flags
+ (append (list "--disable-werror"
+ "--enable-sysfsgpio"
+ "--disable-internal-jimtcl"
+ "--disable-internal-libjaylink")
+ (map (lambda (programmer)
+ (string-append "--enable-" programmer))
+ '("amtjtagaccel" "armjtagew" "buspirate" "ftdi"
+ "gw16012" "jlink" "opendous" "osbdm"
+ "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi"
+ "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink"
+ "usbprog" "vsllink" "usb-blaster-2" "usb_blaster"
+ "presto" "openjtag")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'autoreconf
+ (lambda _
+ (zero? (system* "autoreconf" "-vfi"))))
+ (add-after 'autoreconf 'change-udev-group
+ (lambda _
+ (substitute* "contrib/60-openocd.rules"
+ (("plugdev") "dialout"))
+ #t))
+ (add-after 'install 'install-udev-rules
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "contrib/60-openocd.rules"
+ (string-append
+ (assoc-ref outputs "out")
+ "/lib/udev/rules.d/")))))))
+ (home-page "http://openocd.org")
+ (synopsis "On-Chip Debugger")
+ (description "OpenOCD provides on-chip programming and debugging support
with a layered architecture of JTAG interface and TAP support.")
- (license license:gpl2+))))
+ (license license:gpl2+)))
;; The commits for all propeller tools are the latest versions as published
;; here: https://github.com/dbetz/propeller-gcc
diff --git a/gnu/packages/patches/openocd-nrf52.patch b/gnu/packages/patches/openocd-nrf52.patch
index 792575df78..0ec4348cb4 100644
--- a/gnu/packages/patches/openocd-nrf52.patch
+++ b/gnu/packages/patches/openocd-nrf52.patch
@@ -21,19 +21,19 @@ Signed-off-by: Michael Dietz <mjdietzx@gmail.com>
---
diff --git a/src/flash/nor/Makefile.am b/src/flash/nor/Makefile.am
-index c167e8f..b6a2be3 100644
+index 727e4f2..839667c 100644
--- a/src/flash/nor/Makefile.am
+++ b/src/flash/nor/Makefile.am
-@@ -37,6 +37,7 @@ NOR_DRIVERS = \
- niietcm4.c \
- non_cfi.c \
- nrf51.c \
-+ nrf52.c \
- numicro.c \
- ocl.c \
- pic32mx.c \
+@@ -36,6 +36,7 @@ NOR_DRIVERS = \
+ %D%/niietcm4.c \
+ %D%/non_cfi.c \
+ %D%/nrf51.c \
++ %D%/nrf52.c \
+ %D%/numicro.c \
+ %D%/ocl.c \
+ %D%/pic32mx.c \
diff --git a/src/flash/nor/drivers.c b/src/flash/nor/drivers.c
-index 56a5cb2..3e071bd 100644
+index 56a5cb2..071273e 100644
--- a/src/flash/nor/drivers.c
+++ b/src/flash/nor/drivers.c
@@ -48,6 +48,7 @@ extern struct flash_driver mdr_flash;
@@ -48,7 +48,7 @@ index 56a5cb2..3e071bd 100644
&mrvlqspi_flash,
&niietcm4_flash,
&nrf51_flash,
-+ &nrf52_flash,
++ &nrf52_flash,
&numicro_flash,
&ocl_flash,
&pic32mx_flash,
@@ -792,47 +792,31 @@ index 0000000..7f2bd35
+ .protect_check = nrf52_protect_check,
+};
diff --git a/tcl/target/nrf52.cfg b/tcl/target/nrf52.cfg
-index c1cbf1a..a2567ff 100644
+index c1cbf1a..41a22ff 100644
--- a/tcl/target/nrf52.cfg
+++ b/tcl/target/nrf52.cfg
-@@ -5,15 +5,22 @@
- source [find target/swj-dp.tcl]
+@@ -10,6 +10,13 @@ if { [info exists CHIPNAME] } {
+ set _CHIPNAME nrf52
+ }
- if { [info exists CHIPNAME] } {
-- set _CHIPNAME $CHIPNAME
-+ set _CHIPNAME $CHIPNAME
- } else {
-- set _CHIPNAME nrf52
-+ set _CHIPNAME nrf52
-+}
-+
+# Work-area is a space in RAM used for flash programming, by default use 16kB.
+if { [info exists WORKAREASIZE] } {
-+ set _WORKAREASIZE $WORKAREASIZE
++ set _WORKAREASIZE $WORKAREASIZE
+} else {
-+ set _WORKAREASIZE 0x4000
- }
-
++ set _WORKAREASIZE 0x4000
++}
++
if { [info exists CPUTAPID] } {
-- set _CPUTAPID $CPUTAPID
-+ set _CPUTAPID $CPUTAPID
+ set _CPUTAPID $CPUTAPID
} else {
-- set _CPUTAPID 0x2ba01477
-+ set _CPUTAPID 0x2ba01477
- }
-
- swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID
-@@ -21,8 +28,15 @@ swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID
- set _TARGETNAME $_CHIPNAME.cpu
+@@ -22,7 +29,15 @@ set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -chain-position $_TARGETNAME
--adapter_khz 10000
+ adapter_khz 10000
+$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
--if { ![using_hla] } {
-- cortex_m reset_config sysresetreq
-+if {![using_hla]} {
-+ cortex_m reset_config sysresetreq
+ if { ![using_hla] } {
+ cortex_m reset_config sysresetreq
}
+
+flash bank $_CHIPNAME.flash nrf52 0x00000000 0 1 1 $_TARGETNAME