summary refs log tree commit diff
path: root/gnu/packages/embedded.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/embedded.scm')
-rw-r--r--gnu/packages/embedded.scm221
1 files changed, 118 insertions, 103 deletions
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index f388c11c3d..6e951e70a0 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020, 2021 Simon South <simon@simonsouth.net>
 ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -294,9 +295,9 @@ usable on embedded products.")
            (origin-patches (package-source gcc-7))
            (search-patches "gcc-7-cross-environment-variables.patch")))))
       (native-inputs
-       `(("flex" ,flex)
-         ("isl" ,isl-0.18)
-         ,@(alist-delete "isl" (package-native-inputs xgcc))))
+       (modify-inputs (package-native-inputs xgcc)
+         (delete "isl")
+         (prepend flex isl-0.18)))
       (arguments
        (substitute-keyword-arguments (package-arguments xgcc)
          ((#:phases phases)
@@ -516,12 +517,9 @@ languages are C and C++.")
                 "0ndyfh51hiqyv2yscpj6qd091w7myxxjid3a6rx8f6k233vy826q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (home-page "https://repo.or.cz/w/libjaylink.git")
     (synopsis "Library to interface Segger J-Link devices")
     (description "libjaylink is a shared library written in C to access
@@ -559,7 +557,7 @@ SEGGER J-Link and compatible devices.")
          )))
     (native-inputs
      ;; For tests.
-     `(("inetutils" ,inetutils)))       ; for hostname
+     (list inetutils))       ; for hostname
     (home-page "http://jim.tcl.tk/index.html")
     (synopsis "Small footprint Tcl implementation")
     (description "Jim is a small footprint implementation of the Tcl programming
@@ -567,73 +565,72 @@ language.")
     (license license:bsd-2)))
 
 (define-public openocd
-  (let ((commit "9a877a83a1c8b1f105cdc0de46c5cbc4d9e8799e")
-        (revision "0"))
-    (package
-      (name "openocd")
-      (version (string-append "0.10.0-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.code.sf.net/p/openocd/code")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1q536cp80v2bcy6xwk08f1r2ljyw13jchx3a1z7d3ni3vqql7rc6"))))
-      (build-system gnu-build-system)
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("which" ,base:which)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)))
-      (inputs
-       `(("hidapi" ,hidapi)
-         ("jimtcl" ,jimtcl)
-         ("libftdi" ,libftdi)
-         ("libjaylink" ,libjaylink)
-         ("libusb-compat" ,libusb-compat)))
-      (arguments
-       '(#:configure-flags
-         (append (list "LIBS=-lutil"
-                       "--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
-           (replace 'bootstrap
-             (lambda _
-               (patch-shebang "bootstrap")
-               (invoke "./bootstrap" "nosubmodule")))
-           (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/"))
-               #t)))))
-      (home-page "http://openocd.org")
-      (synopsis "On-Chip Debugger")
-      (description "OpenOCD provides on-chip programming and debugging support
+  (package
+    (name "openocd")
+    (version "0.11.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.code.sf.net/p/openocd/code")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0qi4sixwvw1i7c64sy221fsjs82qf3asmdk86g74ds2jjm3f8pzp"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list autoconf
+           automake
+           libtool
+           base:which
+           pkg-config
+           texinfo))
+    (inputs
+     (list hidapi jimtcl libftdi libjaylink libusb-compat))
+    (arguments
+     '(#:configure-flags
+       (append (list "LIBS=-lutil"
+                     "--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" "rshim" "ft232r" "xds110"
+                      "cmsis-dap-v2" "nulink" "kitprog" "jtag_dpi"
+                      "bcm2835gpio" "imx_gpio" "ep93xx" "at91rm9200"
+                      "sysfsgpio" "xlnx-pcie-xvc")))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           (lambda _
+             ;; Make build reproducible.
+             (substitute* "src/Makefile.am"
+               (("-DPKGBLDDATE=") "-DDISABLED_PKGBLDDATE="))
+             (patch-shebang "bootstrap")
+             (invoke "./bootstrap" "nosubmodule")))
+         (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/"))
+             #t)))))
+    (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 stable versions published at
 ;; https://github.com/propellerinc/propgcc in the release_1_0.  According to
@@ -698,8 +695,8 @@ with a layered architecture of JTAG interface and TAP support.")
                   (origin-patches (package-source gcc-6))
                   (search-patches "gcc-cross-environment-variables.patch")))))
       (native-inputs
-       `(("flex" ,flex)
-         ,@(package-native-inputs xgcc)))
+       (modify-inputs (package-native-inputs xgcc)
+         (prepend flex)))
       ;; All headers and cross libraries of the propeller toolchain are
       ;; installed under the "propeller-elf" prefix.
       (native-search-paths
@@ -807,9 +804,7 @@ with a layered architecture of JTAG interface and TAP support.")
              (lambda* (#:key make-flags #:allow-other-keys)
                (apply invoke "make" "install-includes" make-flags))))))
       (native-inputs
-       `(("propeller-gcc" ,propeller-gcc)
-         ("propeller-binutils" ,propeller-binutils)
-         ("perl" ,perl)))
+       (list propeller-gcc propeller-binutils perl))
       (home-page "https://github.com/parallaxinc/propgcc")
       (synopsis "C library for the Parallax Propeller")
       (description "This is a C library for the Parallax Propeller
@@ -901,8 +896,7 @@ code.")
              (lambda _ (chdir "loader") #t))
            (delete 'configure))))
       (native-inputs
-       `(("openspin" ,openspin)
-         ("propeller-toolchain" ,propeller-toolchain)))
+       (list openspin propeller-toolchain))
       (home-page "https://github.com/parallaxinc/propgcc")
       (synopsis "Loader for Parallax Propeller micro-controllers")
       (description "This package provides the tool @code{propeller-load} to
@@ -947,9 +941,7 @@ upload binaries to a Parallax Propeller micro-controller.")
                          '("testlex" "spin2cpp" "fastspin")))
              #t)))))
     (native-inputs
-     `(("bison" ,bison)
-       ("propeller-load" ,propeller-load)
-       ("propeller-toolchain" ,propeller-toolchain)))
+     (list bison propeller-load propeller-toolchain))
     (home-page "https://github.com/totalspectrum/spin2cpp")
     (synopsis "Convert Spin code to C, C++, or PASM code")
     (description "This is a set of tools for converting the Spin language for
@@ -1089,8 +1081,8 @@ the Raspberry Pi chip.")
                  (search-patches "gcc-6-fix-buffer-size.patch"
                                  "gcc-6-fix-isl-includes.patch"))))
       (native-inputs
-        `(("flex" ,flex)
-          ,@(package-native-inputs xgcc)))
+        (modify-inputs (package-native-inputs xgcc)
+          (prepend flex)))
       (synopsis "GCC for VC4")
       (description "This package provides @code{gcc} for VideoCore IV,
 the Raspberry Pi chip."))))
@@ -1111,12 +1103,9 @@ the Raspberry Pi chip."))))
             "1rypfb96k2szqgygp3jnwg2zq9kwmfz0460dsahn3r2vkzml8wn7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libftdi" ,libftdi)
-       ("python" ,python)))
+     (list libftdi python))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("swig" ,swig)
-       ("which" ,base:which)))
+     (list pkg-config swig base:which))
     (arguments
      `(#:tests? #f ; No tests exist.
        #:parallel-build? #f  ; Would be buggy.
@@ -1256,7 +1245,7 @@ SPI, I2C, JTAG.")
              #t))
          (delete 'configure))))
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (synopsis "Freecalypso host tools")
     (description "This package provides some tools for debugging FreeCalypso phones and the FreeCalypso FCDEV3B dev board.
 
@@ -1350,6 +1339,36 @@ these identified regions.
     (home-page "https://www.freecalypso.org/")
     (license license:public-domain)))
 
+(define-public stcgal
+  (package
+    (name "stcgal")
+    (version "1.6")
+    (source (origin
+              ;; Neither the unit tests nor the "doc" subdirectory referred to
+              ;; by stcgal's setup.py is present in the source distribution on
+              ;; PyPI, so we fetch directly from the project's git repository
+              ;; instead.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/grigorig/stcgal")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1d10qxyghz66zp7iqpm8q8rfv9jz9n609gxmfcav1lssmf1dlyk3"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-pyserial python-pyusb python-tqdm))
+    (native-inputs
+     ;; For tests.
+     (list python-pyyaml))
+    (home-page "https://github.com/grigorig/stcgal")
+    (synopsis "Programmer for STC 8051-compatible microcontrollers")
+    (description "stcgal is a command-line flash-programming tool for STC
+MCU's line of Intel 8051-compatible microcontrollers, including those in the
+STC89, STC90, STC10, STC11, STC12, STC15 and STC8 series.")
+    (license license:expat)))
+
 (define-public stlink
   (package
     (name "stlink")
@@ -1375,7 +1394,7 @@ these identified regions.
          (list (string-append "-DSTLINK_UDEV_RULES_DIR=" udev-rules)
                (string-append "-DSTLINK_MODPROBED_DIR=" modprobe)))))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (synopsis "Programmer for STM32 Discovery boards")
     (description "This package provides a firmware programmer for the STM32
 Discovery boards.  It supports two versions of the chip: ST-LINK/V1 (on
@@ -1400,10 +1419,8 @@ raw USB commands.")
         (base32
          "0ql6ij1hrj2ir5wkxm96zgig5qwvfwa75w77wh2y13w6b9cqcr4b"))))
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-configobj" ,python-configobj)
-       ("python-pykwalify" ,python-pykwalify)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-colorama python-configobj python-pykwalify
+           python-pyyaml))
     (build-system python-build-system)
     (home-page "https://github.com/zephyrproject-rtos/west")
     (synopsis "Zephyr RTOS Project meta-tool")
@@ -1443,7 +1460,7 @@ debugging them, and more.")
                                  config-destination)
                #t))))))
     (inputs
-     `(("mosquitto" ,mosquitto)))
+     (list mosquitto))
     (native-inputs
      `(("automake" ,automake)
        ("autoconf" ,autoconf)
@@ -1495,8 +1512,7 @@ handling communication with eBUS devices connected to a 2-wire bus system
               (string-append (assoc-ref outputs "out") "/share/man"))
              #t)))))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (home-page "http://mazsola.iit.uni-miskolc.hu/ucsim/")
     (synopsis "Simulators for various microcontroller families")
     (description "μCsim is a collection of software simulators for
@@ -1586,8 +1602,7 @@ families, plus many of their variants.")
                     (("from IPython.*") ""))))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-prettytable" ,python-prettytable)))
+     (list python-cryptography python-prettytable))
     (home-page "https://github.com/PSPReverse/psptool")
     (synopsis "Tool for dealing with AMD binary blobs")
     (description "PSPTool is a tool for dealing with AMD binary blobs")