| #!/bin/bash |
| |
| if [ -z ${ZEPHYR_SDK_INSTALL_DIR} ]; |
| then |
| echo "ZEPHYR_SDK_INSTLL_DIR is not set. Unable to continue" |
| exit 1 |
| fi |
| |
| OPENOCD_ROOT=$ZEPHYR_SDK_INSTALL_DIR/sysroots/i686-pokysdk-linux/usr/ |
| OPENOCD=$OPENOCD_ROOT/bin/openocd |
| OPENOCD_SCRIPT=$OPENOCD_ROOT/share/openocd/scripts |
| |
| if [ $# -eq 1 ]; then |
| if [ "$1" != "rom" ]; then |
| echo "Unexpected command." |
| echo "Only valid option is: rom" |
| exit 1 |
| fi |
| |
| echo "About to flash Zephyr comptaible ROM" |
| |
| $OPENOCD -s ${OPENOCD_SCRIPT} \ |
| -f ${ZEPHYR_BASE}/boards/arduino_101/support/restore.cfg \ |
| -c 'init' \ |
| -c 'targets' \ |
| -c 'reset halt' \ |
| -c 'load_image quark_se_rom.bin 0xffffe000 bin' \ |
| -c 'verify_image quark_se_rom.bin 0xffffe000 bin' \ |
| -c 'reset run' \ |
| -c "shutdown" |
| |
| else |
| |
| if [ ! -r "A101_OS.bin" ]; then |
| echo "Unable to find the A101_OS.bin file." |
| exit 1 |
| fi |
| |
| if [ ! -r "A101_BOOT.bin" ]; then |
| echo "Unable to find the A101_BOOT.bin file." |
| exit 1 |
| fi |
| |
| echo "About to flash the OS and BOOT binaries" |
| |
| |
| # restore ROM one image, and ARC + x86 from another image |
| $OPENOCD -s ${OPENOCD_SCRIPT} \ |
| -f ${ZEPHYR_BASE}/boards/arduino_101/support/restore.cfg \ |
| -c 'init' \ |
| -c 'targets' \ |
| -c 'reset halt' \ |
| -c "load_image A101_OS.bin 0x40000000 bin" \ |
| -c "verify_image A101_OS.bin 0x40000000 bin" \ |
| -c "load_image A101_BOOT.bin 0xffffe000 bin" \ |
| -c "verify_image A101_BOOT.bin 0xffffe000 bin" \ |
| -c "shutdown" |
| |
| fi |
| |
| echo "" |
| echo "Flashing done" |