[yocto] [meta-zephyr][morty][PATCH] arduino-101: Support for flashing via USB
Juro Bystricky
juro.bystricky at intel.com
Sun Feb 12 11:11:03 PST 2017
Implement a class allowing flashing Arduino-101 using dfu-util.
User needs to have dfu-utils installed on the host machine.
All tree cores supported (x86, ARM, ARC)
Sample usage:
$ MACHINE=arduino-101 bitbake xxx
$ MACHINE=arduino-101 bitbake xxx -c flash_usb
Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
---
classes/zephyr-flash-dfu.bbclass | 34 ++++++++++++++++++++++++++++++++++
conf/machine/arduino-101-sss.conf | 1 +
conf/machine/arduino-101.conf | 1 +
3 files changed, 36 insertions(+)
create mode 100644 classes/zephyr-flash-dfu.bbclass
diff --git a/classes/zephyr-flash-dfu.bbclass b/classes/zephyr-flash-dfu.bbclass
new file mode 100644
index 0000000..2d82281
--- /dev/null
+++ b/classes/zephyr-flash-dfu.bbclass
@@ -0,0 +1,34 @@
+
+python do_flash_usb() {
+ import subprocess
+ return_code = subprocess.call("which dfu-util", shell=True)
+ if return_code != 0:
+ bb.error("ERROR: dfu_util binary not in PATH")
+ sys.exit(1)
+
+ board = d.getVar('BOARD',True)
+ bb.warn("Attempting to flash board: %s" % board)
+
+ if board == 'arduino_101_sss':
+ iface = 'sensor_core'
+ elif board == 'arduino_101':
+ iface = 'x86_app'
+ elif board == 'arduino_101_ble':
+ iface = 'ble_core'
+ else:
+ bb.error(" Unsupported board %s" % board)
+ sys.exit(2)
+
+ image = "%s/%s.elf" % (d.getVar('DEPLOY_DIR_IMAGE', True), d.getVar('PN', True))
+ statement = 'dfu-util -v -a ' + iface + ' -d 8087:0aba -D ' + image.replace('elf','bin')
+ bb.note("command: %s" % statement)
+ return_code = subprocess.call(statement, shell=True)
+ if return_code != 0:
+ bb.error("Error flashig the device [%d], reset needed?" % return_code)
+ else:
+ bb.warn("Success (return code %d)" % return_code)
+}
+
+addtask do_flash_usb
+
+do_flash_usb[nostamp] = "1"
diff --git a/conf/machine/arduino-101-sss.conf b/conf/machine/arduino-101-sss.conf
index cab5a3f..14b9861 100644
--- a/conf/machine/arduino-101-sss.conf
+++ b/conf/machine/arduino-101-sss.conf
@@ -16,3 +16,4 @@ PREFERRED_VERSION_binutils-cross-${TARGET_ARCH} = "2.26+gitarc"
PREFERRED_VERSION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "2.26+gitarc"
TARGET_LINK_HASH_STYLE = ""
+ZEPHYR_INHERIT_CLASSES += "zephyr-flash-dfu"
diff --git a/conf/machine/arduino-101.conf b/conf/machine/arduino-101.conf
index 543a41e..b38c320 100644
--- a/conf/machine/arduino-101.conf
+++ b/conf/machine/arduino-101.conf
@@ -8,3 +8,4 @@ require conf/machine/include/tune-iamcu.inc
TUNE_PKGARCH_arduino-101 = "iamcu"
TARGET_LINK_HASH_STYLE = ""
+ZEPHYR_INHERIT_CLASSES += "zephyr-flash-dfu"
--
2.7.4
More information about the yocto
mailing list