me
/
guix
Archived
1
0
Fork 0

gnu: openocd: Update to 0.10.0

* gnu/packages/embedded.scm (openocd): Update to 0.10.0.
[arguments] <configure-flags>: Add "--enable-sysfsgpio" flag.
Remove "--enable-oocd_trace" flag.
[arguments] <phases>: Add phase "change-udev-group".
Add phase "install-udev-rules".
* gnu/packages/patches/openocd-nrf52.patch: Modify to apply on 0.10.0.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
master
Theodoros Foradis 2017-09-26 21:46:43 +03:00 committed by Ludovic Courtès
parent 2da8865a70
commit ea1aa4525e
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 83 additions and 92 deletions

View File

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

View File

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