summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xutil/flash_ec24
1 files changed, 23 insertions, 1 deletions
diff --git a/util/flash_ec b/util/flash_ec
index 296a6189f5..1900ba0876 100755
--- a/util/flash_ec
+++ b/util/flash_ec
@@ -128,6 +128,7 @@ function ec_uart() {
# Servo variables management
case "${BOARD}" in
samus_pd ) MCU="usbpd" ;;
+ twinkie ) DUT_CONTROL_CMD="true" ; MCU="ec" ;;
*) MCU="ec" ;;
esac
@@ -211,6 +212,26 @@ function flash_stm32() {
${STM32MON} -d ${EC_UART} -u -e -w "${IMG}"
}
+function flash_stm32_dfu() {
+ DFU_DEVICE=0483:df11
+ ADDR=0x08000000
+ DFU_UTIL='dfu-util'
+ which $DFU_UTIL &> /dev/null || die \
+ "no dfu-util util found. Did you 'sudo emerge dfu-util'"
+
+ info "Using dfu flasher : ${DFU_UTIL}"
+
+ dev_cnt=$(lsusb -d $DFU_DEVICE | wc -l)
+ if [ $dev_cnt -eq 0 ] ; then
+ die "unable to locate dfu device at $DFU_DEVICE"
+ elif [ $dev_cnt -ne 1 ] ; then
+ die "too many dfu devices (${dev_cnt}). Disconnect all but one."
+ fi
+
+ SIZE=$(wc -c ${IMG} | cut -d' ' -f1)
+ sudo $DFU_UTIL -a 0 -s ${ADDR}:${SIZE} -D "${IMG}"
+}
+
function flash_link() {
OCD_CFG="servo_v2_slower.cfg"
OCD_PATH="${SRC_ROOT}/platform/ec/chip/lm4/openocd"
@@ -264,7 +285,8 @@ save="$(servo_save)"
case "${BOARD}" in
big | discovery | nyan | pit | snow | spring ) flash_stm32 ;;
- fruitpie | zinger | firefly | samus_pd | twinkie) flash_stm32 ;;
+ fruitpie | zinger | firefly | samus_pd ) flash_stm32 ;;
+ twinkie) flash_stm32_dfu ;;
falco | peppy | rambi | samus | squawks ) flash_lm4 ;;
link ) flash_link ;;
*) die "board ${BOARD} not supported" ;;