From 07f800d57aea284c79688602ad11e55c6b3c9aae Mon Sep 17 00:00:00 2001 From: schneider Date: Sun, 29 Jan 2017 22:54:44 +0100 Subject: [PATCH] fix(dfu): Use original HackRF DFU tools --- firmware/README | 6 ++-- firmware/hackrf-common.cmake | 11 ++++-- firmware/tools/make-dfu.py | 70 ------------------------------------ 3 files changed, 12 insertions(+), 75 deletions(-) delete mode 100755 firmware/tools/make-dfu.py diff --git a/firmware/README b/firmware/README index 45b5aae5b..29f2746d1 100644 --- a/firmware/README +++ b/firmware/README @@ -27,10 +27,12 @@ To build and install a standard firmware image for HackRF One: $ cd hackrf_usb $ mkdir build $ cd build -$ cmake .. -DBOARD=RAD1O +$ cmake .. -DBOARD=HACKRF_ONE $ make $ hackrf_spiflash -w hackrf_usb.bin +If you have a Jawbreaker, use -DBOARD=JAWBREAKER instead. +If you have a rad1o, use -DBOARD=RAD1O instead. For loading firmware into RAM with DFU you will also need: @@ -43,4 +45,4 @@ after the 3V3 LED illuminates. A .dfu file is built by default when building firmware. Alternatively you can load a known good .dfu file from a release package with: -$ dfu-util --device 1fc9:000c --alt 0 --download hackrf_usb_ram.dfu +$ dfu-util --device 1fc9:000c --alt 0 --download hackrf_usb.dfu diff --git a/firmware/hackrf-common.cmake b/firmware/hackrf-common.cmake index 1d58e9ea2..667d2dd34 100644 --- a/firmware/hackrf-common.cmake +++ b/firmware/hackrf-common.cmake @@ -196,9 +196,14 @@ macro(DeclareTargets) ) add_custom_target( - ${PROJECT_NAME}.dfu ALL - DEPENDS ${PROJECT_NAME}.bin - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../tools/make-dfu.py ${PROJECT_NAME}.bin ${PROJECT_NAME}.dfu + ${PROJECT_NAME}.dfu ${DFU_ALL} + DEPENDS ${PROJECT_NAME}_dfu.bin + COMMAND rm -f _tmp.dfu _header.bin + COMMAND cp ${PROJECT_NAME}_dfu.bin _tmp.dfu + COMMAND ${DFU_COMMAND} + COMMAND python ../../dfu.py ${PROJECT_NAME} + COMMAND cat _header.bin _tmp.dfu >${PROJECT_NAME}.dfu + COMMAND rm -f _tmp.dfu _header.bin ) add_custom_target( diff --git a/firmware/tools/make-dfu.py b/firmware/tools/make-dfu.py deleted file mode 100755 index 81e1540e4..000000000 --- a/firmware/tools/make-dfu.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python2 -# vim: set ts=4 sw=4 tw=0 et pm=: -import struct -import sys -import os.path -import getopt -import zlib - -options, remainder = getopt.getopt(sys.argv[1:], 'p:v:d:S:v', ['pid=', - 'vid=', - 'did=', - 'spec=', - 'verbose', - ]) - -pid = 0x000c -vid = 0x1fc9 -did = 0 -spec = 0x0100 -verbose = False - -for opt, arg in options: - if opt in ('-p', '--pid'): - pid = int(arg) - if opt in ('-v', '--vid'): - vid = int(arg) - if opt in ('-d', '--did'): - did = int(arg) - if opt in ('-S', '--spec'): - spec = int(arg) - elif opt in ('-v', '--verbose'): - verbose = True - -if len(remainder)<1: - in_file = "/dev/stdin" -else: - in_file = remainder[0] - -if len(remainder)<2: - out = open("/dev/stdout","wb") -else: - out = open(remainder[1],"wb") - -# ref. NXP UM10503 Table 24 (Boot image header description) -header = "" -header += struct.pack ('