i.mx USB loader A white paper by Tristan Lelong

Size: px
Start display at page:

Download "i.mx USB loader A white paper by Tristan Lelong"

Transcription

1 i.mx USB loader A white paper by Tristan Lelong Introduction This document aims to explain the serial downloader feature of i.mx SoCs on Linux (available across i.mx family starting with i.mx23). This process can be challenging for newcomers and this whitepaper intends to give a detailed explanation of how to leverage this functionality describing the work happening on both the host and target side. This document will also provide ready-to-use examples as well as typical use cases. These directions apply to the i.mx6q SABRE Lite platform but can be easily adapted to any other hardware design with little to no modification. Serial downloader mode on SoC The i.mx SoC includes a specific boot mode called serial downloader. In this mode, the internal ROM code is able to enumerate over the USB OTG port as a Freescale device in recovery mode and receive commands from an external application. On windows, the Manufacturing tool uses this feature to flash the bootloader and operating system images on the board s internal memory. On Linux, the imx_usb_loader open-source project can be used to achieve a similar goal. Boot modes of IMX The i.mx SoC can boot from various media: internal NOR (WEIM) / NAND (GPMI) serial ROM (I2C / SPI) external emmc / SD card / HDD / SDD Serial Downloader Those boot modes are selected using a value which is flashed in a specific fuse (no modification is allowed afterwards), or using GPIO boot pins otherwise (typically available through boot switches). Please refer to the appropriate i.mx SoC reference manual for more information regarding all available configurations. Serial downloader protocol Your system may be configured to boot on a particular media which may not contain a valid boot image (possible due to a flashing error or memory corruption for instance). In this scenario, it might be hard or impossible to get your device to boot again without having to use a JTAG probe. This is one case where the serial downloader mode becomes particularly handy. When configured correctly, the ROM code will poll for a connection on the USB OTG port (for 32 seconds only, if watchdog is enabled within fuses), and enumerate itself as a "Freescale Semiconductor, Inc" device (VendorID 0x15A2) as

2 soon as a USB host is connected. Once a connection is made on the USB OTG port, the ROM exports 4 HID endpoints described in the table below: Id Type Size Description 1 Control 17 bytes Commands form host to device 2 Control 1025 bytes Data associated with commands 3 Interrupt 5 bytes HAB security configuration 4 Interrupt 65 bytes Target answer The serial downloader protocol (SDP) describes several commands: Read register (0x0101) Write register (0x0202) Write file (0x0404) Error status (0x0505) DCD write (0x0A0A) Jump to address (0x0B0B) We will focus here on the Write file, DCD write, and Jump to address commands since these are the ones responsible for loading and booting the board. For those specific commands, the protocol requires an address (internal / external RAM) and a data count (not used for Jump to address). Boot modes on SABRE Lite The SABRE Lite board exposes 2 boot switches allowing for 4 different boot modes: 00: Boot from fuses: selects the boot media from fuses only 01: Serial downloader 10: Internal boot: load the system from GPIO pin configuration or boot fuses if these are burnt. 11: Reserved In order to use the serial downloader, these boot switches need to be set to 01. Once set up, plug a micro USB cable into the USB OTG connector and run the lsusb command on your host machine:

3 $ lsusb [...] Bus 002 Device 008: ID 15a2:0061 Freescale Semiconductor, Inc. [...] Imx_usb_loader Project Imx_usb_loader The imx_usb_loader project is developed by Boundary Devices and provided under the GPLv3 license and is available as a source package on github: der This program is composed of a single C source file called imx_usb.c. This application will parse various configuration files and generate command packets following the SDP. The communication part relies on libusb to interface with the 4 endpoints exported by the i.mx SoC, therefore imx_usb_loader requires libusb-dev as a dependency. After installing libusb-dev on your system, proceed with the following commands to get and compile imx_usb_loader: $ git clone $ cd imx_usb_loader $ make [edit configuration files] $ sudo./imx_usb To edit configuration files, refer to section 3.2 Configuration files. Upon starting, imx_usb will identify your device using the matching VendorID/ProductID pair, and load the corresponding configuration file which depends on the master configuration file called imx_usb.conf. The application will then parse the specific configuration file to build and send commands to the target. Configuration files The configuration files use a set of commands which maps to the SDP. Some of the provided files are commented and may help understanding the role of these commands. SDP command Read register imx_usb command read

4 Write register Write file Error status DCD write Jump to address modify load N/A dcd jump The configuration file parser will ignore empty lines or comments (the # sign is used to comment a full line). The first valid line of the configuration file should start with the name of the USB board attached - this is used only for debugging purposes and this string can be specified as any identifier (with a maximum of 63 bytes). The second line is a comma separated list of parameters that must describe the board: type: hid / bulk header: old_header [this parameter is optional and is used for i.mx51 and earlier SoCs] packet size: maximum size of data packets (default is 1024) RAM description: up to 8 RAM areas described with <ram start address>,<ram size> Example: # Board ID Sabrelite # Board Description hid,1024,0x ,1g,0x ,0x31000 Commands can be added after the device description - the next section describes the syntax of these commands. RAM initialization dcd command This line should start with the name of the file containing the DCD table, followed by a colon sign and the dcd keyword. When working with u-boot, the DCD table is usually present in the header of the u-boot binary: u-boot.bin:dcd Uploading binary files This line should start with the name of the file to upload to the board, followed by a colon sign, the load keyword, and the target RAM address to load the file into.

5 u-boot.bin:load 0x Jumping to an address This line should start with a file to load and to jump to, and takes one of the following as an argument: header: uses the first IVT header header2: uses the second IVT header nnn: the offset in the file to jump to Since the jump command can load any file, you may use this command to load a bootloader, initialize memory (granted it contains a DCD table such as u-boot for instance), and start execution. u-boot.bin:dcd,jump header Note: The u-boot binary for i.mx SoCs is compiled with an embedded IVT header embedded (sometimes padded) describing the DCD address, the load address, the entry point and several other pieces required by the boot ROM. Typical Usage & examples Automated "factory" flashing Choosing the right technologies to flash a complete system during manufacturing is not always straightforward - for instance, flashing each board with a JTAG can be time consuming. The serial downloader feature can therefore be put to good use and make this process very efficient. Even when fuses are programmed to boot from internal memory (for security reasons), the initial boot can be configured to use the serial downloader to load a single piece of software which will be responsible for flashing the entire device (maybe using a custom u-boot with the appropriate bootcmd for this task). u-boot.flash environment : flash_linux=nand write 0x10A00000 kernel 0x flash_uboot=nand write 0x bootloader 0x40000 bootcmd=run flash_uboot; run flash_linux; reset; mx6_usb_work.conf : # Load the target u-boot u-boot.bin:load 0x # Load the target uimage uimage:load 0x10A00000 # Load and jump on the u-boot flasher u-boot.flash:dcd,jump header

6 Development process The serial downloader mode can also be useful for kernel / bootloader development. As a matter of fact, one just needs to modify the appropriate configuration file to target the output of their builds and the target will automatically boot and download the latest version of the binaries produced with no further action needed other than running the imx_usb tool. This process significantly decreases the testing time required for flashing new binaries to a board, thus increasing overall development productivity. If a board becomes unusable or "bricked", this also becomes an extremely valuable tool as it only relies on the ROM code execution. About Adeneo Embedded Adeneo Embedded provides system integration, design, support and training services to companies seeking world-class expertise in embedded solutions using high-performance architectures. For over 10 years, Adeneo Embedded has helped clients, in all stages of development; create profitable, feature-rich products that incorporate software and hardware solutions based on Android, Embedded Linux, Windows Embedded or Windows Mobile operating systems. Close working partnerships with industry-leading silicon and software vendors allow Adeneo Embedded to apply its experience to a wide range of embedded solutions for the automotive, industrial, medical, multi-media, navigation, networking, mobile and wireless markets. Adeneo Embedded has a global sales and support network backed by engineering offices in North America and Europe.

7 ADENEO EMBEDDED NEWS RELEASE June 14 th, 2012 Further information For more information about Adeneo Embedded competences, products and services around Windows Embedded technologies: visit Adeneo Embedded dedicated web site Adeneo Embedded General sales contact For a local contact in Europe, please contact Jeremy Delicato America, please contact Mike Ruiz jdelicato@adeneo-embedded.com mruiz@adeneo-embedded.com Adeneo Press Contacts Valerie Cote Executive Assistant, Adeneo Embedded (EU) Phone vcote@adeneo-embedded.com Kathleen Wright Office Manager, Adeneo Embedded (USA) Phone +1 (425) kwright@adeneo-embedded.com End

SABRE Lite Development Kit

SABRE Lite Development Kit SABRE Lite Development Kit Freescale i.mx 6Quad ARM Cortex A9 processor at 1GHz per core 1GByte of 64-bit wide DDR3 @ 532MHz UART, USB, Ethernet, CAN, SATA, SD, JTAG, I2C Three Display Ports (RGB, LVDS

More information

Embedded Linux Platform Developer

Embedded Linux Platform Developer Embedded Linux Platform Developer Course description Advanced training program on Embedded Linux platform development with comprehensive coverage on target board bring up, Embedded Linux porting, Linux

More information

Secure Boot on i.mx25, i.mx35, and i.mx51 using HABv3

Secure Boot on i.mx25, i.mx35, and i.mx51 using HABv3 Freescale Semiconductor Application Note Document Number: AN4547 Rev. 0, 10/2012 Secure Boot on i.mx25, i.mx35, and i.mx51 using HABv3 by Freescale Semiconductor, Inc. This application note explains how

More information

SheevaPlug Development Kit README Rev. 1.2

SheevaPlug Development Kit README Rev. 1.2 SheevaPlug Development Kit README Rev. 1.2 Introduction... 3 Flow to use the Software Development Kit packages... 3 Appendix A... 5 GCC cross-compiler... 5 Appendix B... 6 Mini-USB debug driver installation

More information

How to Run the MQX RTOS on Various RAM Memories for i.mx 6SoloX

How to Run the MQX RTOS on Various RAM Memories for i.mx 6SoloX Freescale Semiconductor, Inc. Document Number: AN5127 Application Note Rev. 1, 05/2015 How to Run the MQX RTOS on Various RAM Memories for i.mx 6SoloX 1 Introduction This document describes how to customize

More information

AN10866 LPC1700 secondary USB bootloader

AN10866 LPC1700 secondary USB bootloader Rev. 2 21 September 2010 Application note Document information Info Content Keywords LPC1700, Secondary USB Bootloader, ISP, IAP Abstract This application note describes how to add a custom secondary USB

More information

Pre-tested System-on-Chip Design. Accelerates PLD Development

Pre-tested System-on-Chip Design. Accelerates PLD Development Pre-tested System-on-Chip Design Accelerates PLD Development March 2010 Lattice Semiconductor 5555 Northeast Moore Ct. Hillsboro, Oregon 97124 USA Telephone: (503) 268-8000 www.latticesemi.com 1 Pre-tested

More information

High-Performance, Highly Secure Networking for Industrial and IoT Applications

High-Performance, Highly Secure Networking for Industrial and IoT Applications High-Performance, Highly Secure Networking for Industrial and IoT Applications Table of Contents 2 Introduction 2 Communication Accelerators 3 Enterprise Network Lineage Features 5 Example applications

More information

Embedded Trusted Computing on ARM-based systems

Embedded Trusted Computing on ARM-based systems 1 / 26 Embedded Trusted Computing on ARM-based systems Martin Schramm, M.Eng. 10.04.2014 Agenda 2 of 26 martin.schramm@th-deg.de Embedded computing platforms have become omnipresent intend to alleviate

More information

The care and feeding of Pythons at the Redmond Zoo. (Using Micro Python and pyboard with Windows)

The care and feeding of Pythons at the Redmond Zoo. (Using Micro Python and pyboard with Windows) The care and feeding of Pythons at the Redmond Zoo. (Using Micro Python and pyboard with Windows) Introduction. Pyboard connects to Windows using a standard micro USB cable. It can operate in four different

More information

Yun Shield User Manual VERSION: 1.0. Yun Shield User Manual 1 / 22. www.dragino.com

Yun Shield User Manual VERSION: 1.0. Yun Shield User Manual 1 / 22. www.dragino.com Yun Shield User Manual VERSION: 1.0 Version Description Date 0.1 Initiate 2014-Jun-21 1.0 Release 2014-Jul-08 Yun Shield User Manual 1 / 22 Index: 1 Introduction... 3 1.1 What is Yun Shield... 3 1.2 Specifications...

More information

Programming Flash Microcontrollers through the Controller Area Network (CAN) Interface

Programming Flash Microcontrollers through the Controller Area Network (CAN) Interface Programming Flash Microcontrollers through the Controller Area Network (CAN) Interface Application te Programming Flash Microcontrollers through the Controller Area Network (CAN) Interface Abstract This

More information

Embedded Linux BSP BootCAMP

Embedded Linux BSP BootCAMP Embedded Linux BSP BootCAMP www.aeslab.com www.phytec.in [ Hardware Provider ] www.aeslab.com info@aeslab.com +91-80-41307589 +91-9972039671 Day-1 Training Outlines Day-2 1 st Half: [Get Comfort with ARM

More information

AN10860_1. Contact information. NXP Semiconductors. LPC313x NAND flash data and bad block management

AN10860_1. Contact information. NXP Semiconductors. LPC313x NAND flash data and bad block management Rev. 01 11 August 2009 Application note Document information Info Keywords Abstract Content LPC3130 LPC3131 LPC313x LPC313X LPC3153 LPC3154 LPC3141 LPC3142 LPC31XX LPC31xx Linux kernel Apex boot loader

More information

Secure Boot on i.mx50, i.mx53, and i.mx 6 Series using HABv4

Secure Boot on i.mx50, i.mx53, and i.mx 6 Series using HABv4 Freescale Semiconductor, Inc. Document Number: AN4581 Application Note Rev. 1, 10/2015 Secure Boot on i.mx50, i.mx53, and i.mx 6 Series using HABv4 1. Introduction 1.1. Purpose Executing trusted and authentic

More information

Useful USB Gadgets on Linux

Useful USB Gadgets on Linux Useful USB Gadgets on Linux February, 2012 Gary Bisson Adeneo Embedded Embedded Linux Conference 2012 1 Agenda Introduction to USB USB Gadget API Existing Gadgets Design your own Gadget Demo Conclusion

More information

In-System Programmer USER MANUAL RN-ISP-UM RN-WIFLYCR-UM-.01. www.rovingnetworks.com 1

In-System Programmer USER MANUAL RN-ISP-UM RN-WIFLYCR-UM-.01. www.rovingnetworks.com 1 RN-WIFLYCR-UM-.01 RN-ISP-UM In-System Programmer 2012 Roving Networks. All rights reserved. Version 1.1 1/19/2012 USER MANUAL www.rovingnetworks.com 1 OVERVIEW You use Roving Networks In-System-Programmer

More information

AN10811 Programming SPI flash on EA3131 boards Rev. 01 1 May 2009 Application note Document information Info Content Keywords Abstract

AN10811 Programming SPI flash on EA3131 boards Rev. 01 1 May 2009 Application note Document information Info Content Keywords Abstract Rev. 01 1 May 2009 Application note Document information Info Keywords Abstract Content LPC3130, LPC3131, SPI flash Example for programming SPI flash on EA3131 boards. Revision history Rev Date Description

More information

An Analysis of Wireless Device Implementations on Universal Serial Bus

An Analysis of Wireless Device Implementations on Universal Serial Bus An Analysis of Wireless Device Implementations on Universal Serial Bus 6/3/97 Abstract Universal Serial Bus (USB) is a new personal computer (PC) interconnect that can support simultaneous attachment of

More information

A Design of Video Acquisition and Transmission Based on ARM. Ziqiang Hao a, Hongzuo Li b

A Design of Video Acquisition and Transmission Based on ARM. Ziqiang Hao a, Hongzuo Li b A Design of Video Acquisition and Transmission Based on ARM Ziqiang Hao a, Hongzuo Li b Changchun University of Science & Technology, Changchun, Jilin, China a shuil47@163.com, b lihongzuo@sohu.com Keywords:video

More information

i.mx Trust Architecture Protects assets of multiple stakeholders Guards against sophisticated attacks Assures software measures TM 2

i.mx Trust Architecture Protects assets of multiple stakeholders Guards against sophisticated attacks Assures software measures TM 2 September 2013 i.mx-based products Rich, mobile, end-user, connected platforms Increasingly valuable assets: end-user data, licensed content, access credentials, intellectual property Increasingly threatened:

More information

SBC8600B Single Board Computer

SBC8600B Single Board Computer SBC8600B Single Board Computer 720MHz TI s Sitara AM3359 ARM Cortex-A8 Microprocessor Onboard 512MByte DDR3 SDRAM and 512MByte NAND Flash UARTs, 2*USB Host and 1*OTG, 2*Ethernet, CAN, RS485, LCD/TSP, Audio,

More information

AN3354 Application note

AN3354 Application note Application note STM32F105/107 in-application programming using a USB host 1 Introduction An important requirement for most Flash-memory-based systems is the ability to update firmware installed in the

More information

Standardization with ARM on COM Qseven. Zeljko Loncaric, Marketing engineer congatec

Standardization with ARM on COM Qseven. Zeljko Loncaric, Marketing engineer congatec Standardization with ARM on COM Qseven Zeljko Loncaric, Marketing engineer congatec overview COM concept and ARM positioning ARM vendor and standard decision Freescale ARM COM on Qseven conga-qmx6 mulitmedia

More information

STLinux Software development environment

STLinux Software development environment STLinux Software development environment Development environment The STLinux Development Environment is a comprehensive set of tools and packages for developing Linux-based applications on ST s consumer

More information

Board also Supports MicroBridge

Board also Supports MicroBridge This product is ATmega2560 based Freeduino-Mega with USB Host Interface to Communicate with Android Powered Devices* like Android Phone or Tab using Android Open Accessory API and Development Kit (ADK)

More information

Design Considerations in Adding USB Communications to Embedded Applications

Design Considerations in Adding USB Communications to Embedded Applications Design Considerations in Adding USB Communications to Embedded Applications Designing universal serial bus (USB) communications into an application enables a system to communicate with a variety of USB

More information

APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features

APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features APPLICATION NOTE AT07175: SAM-BA Bootloader for SAM D21 Atmel SAM D21 Introduction Atmel SAM Boot Assistant (Atmel SAM-BA ) allows In-System Programming (ISP) from USB or UART host without any external

More information

Five standard procedures for building the android system. Figure1. Procedures for building android embedded systems

Five standard procedures for building the android system. Figure1. Procedures for building android embedded systems Standard Operating Procedures for Android Embedded Systems Anupama M. Kulkarni, Shang-Yang Chang, Ying-Dar Lin National Chiao Tung University, Hsinchu, Taiwan November 2012 Android is considered to be

More information

ELCE 2013 - Secure Embedded Linux Product (A Success Story)

ELCE 2013 - Secure Embedded Linux Product (A Success Story) ELCE 2013 - Secure Embedded Linux Product (A Success Story) Marcin Bis http://bis-linux.com marcin@bis-linux.com Edinburgh - 2013.10.25 1 / 31 About me Marcin Bis Entrepreneur Embedded Linux: system development,

More information

How To Add A Usb Secondary Ipo Bootloader To An Lpc23Xx Flash Device To A Flash Device

How To Add A Usb Secondary Ipo Bootloader To An Lpc23Xx Flash Device To A Flash Device Rev. 01 16 October 2008 Application note Document information Info Keywords Abstract Content LPC23xx, Secondary ISP Bootloader, Bootloader, USB This application note describes how to add custom USB secondary

More information

SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc. SKP16C62P Tutorial 1 Software Development Process using HEW Renesas Technology America Inc. 1 Overview The following tutorial is a brief introduction on how to develop and debug programs using HEW (Highperformance

More information

MPX28. o UART, SD-CARD, I2C, PWM, Serial Audio, SPI Power management optimized for long battery life 3.3V I/O

MPX28. o UART, SD-CARD, I2C, PWM, Serial Audio, SPI Power management optimized for long battery life 3.3V I/O MPX28 System On Module Processor: Freescale i.mx287, 454 MHz based on ARM926EJ-S RAM: 128MB DDR2-400 SDRAM ROM: 128MB NAND Flash Power supply Single 4.5V to 5.5V Size 33mm SO-DIMM format Temp.-Range 0

More information

Application Development Kit for Android Installation Guide

Application Development Kit for Android Installation Guide Application Development Kit for Android Installation Guide 90001280_B 3/12/2012 2012 Digi International Inc. All rights reserved. Digi, Digi International, the Digi logo, the Digi website, a Digi International

More information

The Advanced JTAG Bridge. Nathan Yawn nathan.yawn@opencores.org 05/12/09

The Advanced JTAG Bridge. Nathan Yawn nathan.yawn@opencores.org 05/12/09 The Advanced JTAG Bridge Nathan Yawn nathan.yawn@opencores.org 05/12/09 Copyright (C) 2008-2009 Nathan Yawn Permission is granted to copy, distribute and/or modify this document under the terms of the

More information

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink Session 1 Assembling and booting a small footprint Linux platform To join the teleconference -------------------------------------------------------

More information

NAND Flash FAQ. Eureka Technology. apn5_87. NAND Flash FAQ

NAND Flash FAQ. Eureka Technology. apn5_87. NAND Flash FAQ What is NAND Flash? What is the major difference between NAND Flash and other Memory? Structural differences between NAND Flash and NOR Flash What does NAND Flash controller do? How to send command to

More information

The embedded Linux quick start guide lab notes

The embedded Linux quick start guide lab notes The embedded Linux quick start guide lab notes Embedded Linux Conference Europe 2010 Date: Tuesday 26th October Location: DeVere University of Arms Hotel, Cambridge Room: Churchill Suite Presenter: Chris

More information

Getting Started Guide with WIZ550web

Getting Started Guide with WIZ550web 1/21 WIZ550web is an embedded Web server module based on WIZnet s W5500 hardwired TCP/IP chip, Users can control & monitor the 16-configurable digital I/O and 4-ADC inputs on module via web pages. WIZ550web

More information

ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654

ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654 ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654 Features ARM Cortex-A8 processor, 800MHz Xilinx Spartan-6 FPGA expands vision processing capabilities Dual MIPI CSI-2 CMOS camera ports,

More information

Quick Start Guide. TWR-MECH Mechatronics Board TOWER SYSTEM

Quick Start Guide. TWR-MECH Mechatronics Board TOWER SYSTEM TWR-MECH Mechatronics Board TOWER SYSTEM Get to Know the Tower Mechatronics Board Primary Connector / Switch MCF52259 Connectors for Up to Eight Servos SW4 (Reset) USB OTG 5V Supply Touch Panel Socket

More information

SBC6245 Single Board Computer

SBC6245 Single Board Computer SBC6245 Single Board Computer 400MHz Atmel AT91SAM9G45 ARM 926EJ-STM Microcontroller On Board 128MB Nand Flash plus 128MB DDR2 SDRAM RS232, RS485, Ethernet, USB Host, LCD, Touch Screen, RTC, Supports for

More information

Universal Flash Storage: Mobilize Your Data

Universal Flash Storage: Mobilize Your Data White Paper Universal Flash Storage: Mobilize Your Data Executive Summary The explosive growth in portable devices over the past decade continues to challenge manufacturers wishing to add memory to their

More information

VoIP Laboratory B How to re flash an IP04

VoIP Laboratory B How to re flash an IP04 VoIP Laboratory B How to re flash an IP04 (cc) Creative Commons Share Alike Non Commercial Attribution 3 This lab guides you through the process of re flashing an IP04. To re flash a unit is useful when

More information

BLE113 DEVELOPMENT KIT

BLE113 DEVELOPMENT KIT BLE113 DEVELOPMENT KIT QUICK START Thursday, 14 March 2013 Version 1.5 Copyright 2000-2013 Bluegiga Technologies Bluegiga Technologies reserves the right to alter the hardware, software, and/or specifications

More information

IRON-HID: Create your own bad USB. Seunghun Han

IRON-HID: Create your own bad USB. Seunghun Han IRON-HID: Create your own bad USB Seunghun Han Who am I? Security researcher at NSR (National Security Research Institute of South Korea) Operating system and firmware developer Author of the book series

More information

8-bit. Application Note. Microcontrollers. AVR282: USB Firmware Upgrade for AT90USB

8-bit. Application Note. Microcontrollers. AVR282: USB Firmware Upgrade for AT90USB AVR282: USB Firmware Upgrade for AT90USB Features Supported by Atmel FLIP program on all Microsoft O/S from Windows 98SE and later FLIP 3.2.1 or greater supports Linux Default on chip USB bootloader In-System

More information

Into The Droid. Gaining Access to Android User Data DEF CON 20

Into The Droid. Gaining Access to Android User Data DEF CON 20 Into The Droid Gaining Access to Android User Data DEF CON 20 Introduction Why this talk is useful Defend access / gain access Device seizure, loss, border crossing, stop and search, espionage... The company

More information

Exploiting USB Devices with Arduino. Greg Ose greg@nullmethod.com Black Hat USA 2011

Exploiting USB Devices with Arduino. Greg Ose greg@nullmethod.com Black Hat USA 2011 Exploiting USB Devices with Arduino Greg Ose greg@nullmethod.com Black Hat USA 2011 Abstract Hardware devices are continually relied upon to maintain a bridge between physical and virtual security. From

More information

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah (DSF) Soft Core Prozessor NIOS II Stand Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de jens_onno.krah@fh-koeln.de NIOS II 1 1 What is Nios II? Altera s Second Generation

More information

Bootloader with AES Encryption

Bootloader with AES Encryption ...the world's most energy friendly microcontrollers Bootloader with AES Encryption AN0060 - Application Note Introduction This application note describes the implementation of a bootloader capable of

More information

SmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface

SmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface Application Note AC372 SmartFusion csoc: Basic Bootloader and Field Upgrade envm Through IAP Interface Table of Contents Introduction................................................ 1 Introduction to Field

More information

ZigBee Technology Overview

ZigBee Technology Overview ZigBee Technology Overview Presented by Silicon Laboratories Shaoxian Luo 1 EM351 & EM357 introduction EM358x Family introduction 2 EM351 & EM357 3 Ember ZigBee Platform Complete, ready for certification

More information

isppac-powr1220at8 I 2 C Hardware Verification Utility User s Guide

isppac-powr1220at8 I 2 C Hardware Verification Utility User s Guide November 2005 Introduction Application Note AN6067 The isppac -POWR1220AT8 device from Lattice is a full-featured second-generation Power Manager chip. As part of its feature set, this device supports

More information

TWR-KV31F120M Sample Code Guide for IAR Board configuration, software, and development tools Rev.0

TWR-KV31F120M Sample Code Guide for IAR Board configuration, software, and development tools Rev.0 TWR-KV31F120M Sample Code Guide for IAR Board configuration, software, and development tools Rev.0 Freescale TWR-KV31F120M Sample Code Guide for IAR KL25_LAB Contents 1 Purpose... 3 2 Getting to know the

More information

Eureka Technology. Understanding SD, SDIO and MMC Interface. by Eureka Technology Inc. May 26th, 2011. Copyright (C) All Rights Reserved

Eureka Technology. Understanding SD, SDIO and MMC Interface. by Eureka Technology Inc. May 26th, 2011. Copyright (C) All Rights Reserved Understanding SD, SDIO and MMC Interface by Eureka Technology Inc. May 26th, 2011 Copyright (C) All Rights Reserved Copyright by Eureka Technology Inc. All Rights Reserved Introduction This white paper

More information

Application Note: AN00141 xcore-xa - Application Development

Application Note: AN00141 xcore-xa - Application Development Application Note: AN00141 xcore-xa - Application Development This application note shows how to create a simple example which targets the XMOS xcore-xa device and demonstrates how to build and run this

More information

ADL User Guide for Open AT V4.10

ADL User Guide for Open AT V4.10 ADL User Guide for Open AT V4.10 Revision: 002 Date: September 2006 ADL User Guide for Open AT V4.10 Revision: 002 Date: Reference: WM_DEV_OAT_UGD_019 Confidential Page: 1 / 220 Document History Index

More information

8051 MICROCONTROLLER COURSE

8051 MICROCONTROLLER COURSE 8051 MICROCONTROLLER COURSE Objective: 1. Familiarization with different types of Microcontroller 2. To know 8051 microcontroller in detail 3. Programming and Interfacing 8051 microcontroller Prerequisites:

More information

Network connectivity controllers

Network connectivity controllers Network connectivity controllers High performance connectivity solutions Factory Automation The hostile environment of many factories can have a significant impact on the life expectancy of PCs, and industrially

More information

Newton2 Developers Guide

Newton2 Developers Guide Newton2 Developers Guide Date: Jan. 2015 Newton2 Developers Guide Release history Date Revision Revision History Jan. 12, 2015 1.0 - First released Disclaimer This documentation is provided for use with

More information

Customizing Boot Media for Linux* Direct Boot

Customizing Boot Media for Linux* Direct Boot White Paper Bruce Liao Platform Application Engineer Intel Corporation Customizing Boot Media for Linux* Direct Boot October 2013 329747-001 Executive Summary This white paper introduces the traditional

More information

Microtronics technologies Mobile: 99707 90092

Microtronics technologies Mobile: 99707 90092 For more Project details visit: http://www.projectsof8051.com/rfid-based-attendance-management-system/ Code Project Title 1500 RFid Based Attendance System Synopsis for RFid Based Attendance System 1.

More information

Learning USB by Doing. John.Hyde@intel.com

Learning USB by Doing. John.Hyde@intel.com Learning USB by Doing. John.Hyde@intel.com The question that I am asked most often is how do I start a USB project? There are many alternate starting points for the design of a USB I/O device and this

More information

Applications Development on the ARM Cortex -M0+ Free On-line Development Tools Presented by William Antunes

Applications Development on the ARM Cortex -M0+ Free On-line Development Tools Presented by William Antunes Applications Development on the ARM Cortex -M0+ Free On-line Development Tools Presented by William Antunes Agenda Cortex M0+ architecture Introduction to Kinetis L Freedom board Arrow Cloud Connect Internet

More information

Block 3 Size 0 KB 0 KB 16KB 32KB. Start Address N/A N/A F4000H F0000H. Start Address FA000H F8000H F8000H F8000H. Block 2 Size 8KB 16KB 16KB 16KB

Block 3 Size 0 KB 0 KB 16KB 32KB. Start Address N/A N/A F4000H F0000H. Start Address FA000H F8000H F8000H F8000H. Block 2 Size 8KB 16KB 16KB 16KB APPLICATION NOTE M16C/26 1.0 Abstract The following article describes using a synchronous serial port and the FoUSB (Flash-over-USB ) Programmer application to program the user flash memory of the M16C/26

More information

WIZ-Embedded WebServer User s Manual (Ver. 1.0)

WIZ-Embedded WebServer User s Manual (Ver. 1.0) [텍스트 입력] WIZ-Embedded WebServer User s Manual (Ver. 1.0) 2007 WIZnet Inc. All Rights Reserved. For more information, visit our website at www.wiznet.co.kr Document History Information Revision Data Description

More information

A DIY Hardware Packet Sniffer

A DIY Hardware Packet Sniffer A DIY Hardware Packet Sniffer Affordable Penetration Testing for the Individual Veronica Swanson: University of California, Irvine CyberSecurity for the Next Generation North American Round, New York 15

More information

DHCP Server Port-Based Address Allocation

DHCP Server Port-Based Address Allocation The feature provides port-based address allocation support on the Cisco IOS Dynamic Host Configuration Protocol (DHCP) server for the Ethernet platform. The DHCP server provides address assignment support

More information

Version 1.0. File System. Network Settings

Version 1.0. File System. Network Settings Factory Default Settings LAN 1 IP Address: 192.168.2.127 Login: root or guest ( telnet guest only) Password: root or guest ( telnet guest only) Serial Console Port: Baud rate: 115200 Data format: 8 Bits,

More information

Video/Cameras, High Bandwidth Data Handling on imx6 Cortex-A9 Single Board Computer

Video/Cameras, High Bandwidth Data Handling on imx6 Cortex-A9 Single Board Computer Video/Cameras, High Bandwidth Data Handling on imx6 Cortex-A9 Single Board Computer The SBC4661 is a powerful 1 GHz Quad Core Cortex-A9 with multiple video ports, quad USB3.0 and dual GigE Ethernet. Using

More information

73S1215F, 73S1217F Device Firmware Upgrade Host Driver/Application Development User s Guide April 27, 2009 Rev. 1.00 UG_12xxF_029

73S1215F, 73S1217F Device Firmware Upgrade Host Driver/Application Development User s Guide April 27, 2009 Rev. 1.00 UG_12xxF_029 Simplifying System Integration TM 73S1215F, 73S1217F Device Firmware Upgrade Host Driver/Application Development User s Guide April 27, 2009 Rev. 1.00 UG_12xxF_029 73S1215, 73S1217F DFU Host Driver/Application

More information

Robust Over-the-Air Firmware Updates Using Program Flash Memory Swap on Kinetis Microcontrollers

Robust Over-the-Air Firmware Updates Using Program Flash Memory Swap on Kinetis Microcontrollers Freescale Semiconductor Document Number:AN4533 Application Note Robust Over-the-Air Firmware Updates Using Program Flash Memory Swap on Kinetis Microcontrollers by: Maclain Lobdell Automotive, Industrial,

More information

Sistemi ad agenti Principi di programmazione di sistema

Sistemi ad agenti Principi di programmazione di sistema Sistemi ad agenti Principi di programmazione di sistema Modulo 6 Why would anyone want to hack or write opensource project for embedded system, when you already have a very powerful and relatively cheap

More information

Pwn Plug Community Edition 1.1 Installation Guide

Pwn Plug Community Edition 1.1 Installation Guide Copyright 2012 Rapid Focus Security, LLC, DBA Pwnie Express. Revision 5.21.2012 Pwn Plug Community Edition 1.1 Installation Guide Contents: Legal stuff Release 1.1 Features Download the installation package

More information

Introducing the Adafruit Bluefruit LE Sniffer

Introducing the Adafruit Bluefruit LE Sniffer Introducing the Adafruit Bluefruit LE Sniffer Created by Kevin Townsend Last updated on 2015-06-25 08:40:07 AM EDT Guide Contents Guide Contents Introduction FTDI Driver Requirements Using the Sniffer

More information

Ways to Use USB in Embedded Systems

Ways to Use USB in Embedded Systems Ways to Use USB in Embedded Systems by Yingbo Hu, R&D Embedded Engineer and Ralph Moore, President of Micro Digital Universal Serial Bus (USB) is a connectivity specification that provides ease of use,

More information

UPS PIco. to be used with. Raspberry Pi B+, A+, B, and A. HAT Compliant. Raspberry Pi is a trademark of the Raspberry Pi Foundation

UPS PIco. to be used with. Raspberry Pi B+, A+, B, and A. HAT Compliant. Raspberry Pi is a trademark of the Raspberry Pi Foundation UPS PIco Uninterruptible Power Supply with Peripherals and I 2 C control Interface to be used with Raspberry Pi B+, A+, B, and A HAT Compliant Raspberry Pi is a trademark of the Raspberry Pi Foundation

More information

SIM900_Custom Application Building Tutorial_Application Note_V1.00

SIM900_Custom Application Building Tutorial_Application Note_V1.00 SIM900_Custom Application Building Tutorial_Application Note_V1.00 Document Title: SIM900 Custom Application Building Tutorial Application Note Version: 1.00 Date: 2010-9-16 Status: Document Control ID:

More information

MCB3101 (Class I) WiRobot Serial Bluetooth Wireless Module User Manual

MCB3101 (Class I) WiRobot Serial Bluetooth Wireless Module User Manual MCB3101 (Class I) WiRobot Serial Bluetooth Wireless Module User Manual Version: 1.0.1 Dec. 2005 Table of Contents I. Introduction 2 II. Operations 2 II.1. Theory of Operation 2 II.2. Configuration (PC-PC

More information

Intro to Intel Galileo - IoT Apps GERARDO CARMONA

Intro to Intel Galileo - IoT Apps GERARDO CARMONA Intro to Intel Galileo - IoT Apps GERARDO CARMONA IRVING LLAMAS Welcome! Campus Party Guadalajara 2015 Introduction In this course we will focus on how to get started with the Intel Galileo Gen 2 development

More information

1 Mi kołaj Z Mik ar ołaj Z zyc arzy ki cki

1 Mi kołaj Z Mik ar ołaj Z zyc arzy ki cki 1 Mikołaj Zarzycki NAND Flash SD Card Connector 256MB, 8bit I/F Push type, Up to 2GB/12.5Mbps USB Connector 1 x Device 2 x HOST, Dual-port LCD Module KEY Battery Holder 128 x 64 dots matrix structure 4

More information

Chapter 1 Hardware and Software Introductions of pcduino

Chapter 1 Hardware and Software Introductions of pcduino Chapter 1 Hardware and Software Introductions of pcduino pcduino is a high performance, cost effective mini PC platform that runs PC like OS such as Ubuntu Linux. It outputs its screen to HDMI enabled

More information

SIP Protocol as a Communication Bus to Control Embedded Devices

SIP Protocol as a Communication Bus to Control Embedded Devices 229 SIP Protocol as a Communication Bus to Control Embedded Devices Ramunas DZINDZALIETA Institute of Mathematics and Informatics Akademijos str. 4, Vilnius Lithuania ramunas.dzindzalieta@gmail.com Abstract.

More information

Bluetooth HID Profile

Bluetooth HID Profile RN-WIFLYCR-UM-.01 RN-HID-UM Bluetooth HID Profile 2012 Roving Networks. All rights reserved. Version 1.0r 1/17/2012 USER MANUAL www.rovingnetworks.com 1 OVERVIEW Roving Networks Bluetooth modules support

More information

Production Flash Programming Best Practices for Kinetis K- and L-series MCUs

Production Flash Programming Best Practices for Kinetis K- and L-series MCUs Freescale Semiconductor Document Number:AN4835 Application Note Rev 1, 05/2014 Production Flash Programming Best Practices for Kinetis K- and L-series MCUs by: Melissa Hunter 1 Introduction This application

More information

Hagenberg Linz Steyr Wels. API Application Programming Interface

Hagenberg Linz Steyr Wels. API Application Programming Interface Hagenberg Linz Steyr Wels API Application Programming Interface Version 1.1 October 2015 FH OÖ Forschungs & Entwicklungs GmbH Franz-Fritsch-Strasse 11 / Top 3 4600 Wels Austria Research Center Hagenberg

More information

Smart Nest Thermostat A Smart Spy in Your Home

Smart Nest Thermostat A Smart Spy in Your Home Smart Nest Thermostat A Smart Spy in Your Home Grant Hernandez, Orlando Arias, Daniel Buentello, and Yier Jin Security in Silicon Laboratory, University of Central Florida Outline IoT Era: Security and

More information

SecureDoc Disk Encryption Cryptographic Engine

SecureDoc Disk Encryption Cryptographic Engine SecureDoc Disk Encryption Cryptographic Engine FIPS 140-2 Non-Proprietary Security Policy Abstract: This document specifies Security Policy enforced by SecureDoc Cryptographic Engine compliant with the

More information

Intel JTAG Debugger Quickstart Guide

Intel JTAG Debugger Quickstart Guide Intel JTAG Debugger Quickstart Guide Intel JTAG Debugger for Windows* OS Document number: 328504-001US Legal Information World Wide Web: http://software.intel.com 1 Welcome to the Intel JTAG Debugger Quickstart

More information

HVP-KV31F120M Quick Start Guide

HVP-KV31F120M Quick Start Guide HVP-KV31F120M Quick Start Guide Freescale Controller Card High Voltage Development Platform Quick Start Guide Get to Know the HVP-KV31F120M USB Mini for Communication, Debugging and Power Supply Isolated

More information

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs AN033101-0412 Abstract This describes how to interface the Dallas 1-Wire bus with Zilog s Z8F1680 Series of MCUs as master devices. The Z8F0880,

More information

Quectel Cellular Engine

Quectel Cellular Engine Cellular Engine GSM FTP AT Commands GSM_FTP_ATC_V1.1 Document Title GSM FTP AT Commands Version 1.1 Date 2010-12-28 Status Document Control ID Release GSM_FTP_ATC_V1.1 General Notes offers this information

More information

Software Prerequisites Linux Ubuntu 12.04 LTS. Estimated completion time: 15min. The goal of this hands-on is to:

Software Prerequisites Linux Ubuntu 12.04 LTS. Estimated completion time: 15min. The goal of this hands-on is to: TRAINING MANUAL Using SAM-BA for Linux on SAMA5D3 Xplained AN-8995 Prerequisites Hardware Prerequisites Atmel SAMA5D3 Xplained USB serial TTL adapter (optional) FTDI TTL-232R-3V3 USB to TTL serial cable

More information

Getting started with Android on the i.mx based COM boards

Getting started with Android on the i.mx based COM boards Getting started with Android Getting started with Android on the i.mx based COM boards Getting started with Android Page 2 Embedded Artists AB Davidshallsgatan 16 SE-211 45 Malmö Sweden http://www.embeddedartists.com.

More information

Use Cases for Target Management Eclipse DSDP-Target Management Project

Use Cases for Target Management Eclipse DSDP-Target Management Project Use Cases for Target Management Eclipse DSDP-Target Management Project Martin Oberhuber, Wind River Systems martin.oberhuber@windriver.com Version 1.1 June 22, 2005 Status: Draft Public Review Use Cases

More information

E-Blocks Easy RFID Bundle

E-Blocks Easy RFID Bundle Page 1 Cover Page Page 2 Flowcode Installing Flowcode Instruction for installing Flowcode can be found inside the installation booklet located inside the Flowcode DVD case. Before starting with the course

More information

C8051F020 Utilization in an Embedded Digital Design Project Course. Daren R. Wilcox Southern Polytechnic State University Marietta, Georgia

C8051F020 Utilization in an Embedded Digital Design Project Course. Daren R. Wilcox Southern Polytechnic State University Marietta, Georgia C8051F020 Utilization in an Embedded Digital Design Project Course Daren R. Wilcox Southern Polytechnic State University Marietta, Georgia Abstract In this paper, the utilization of the C8051F020 in an

More information

TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT

TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT HARDWARE GUIDE This document is part of Turbo Programmer documentation. For Developer Documentation, Applications and Examples, see http:/// PRELIMINARY (C)

More information

Matrix 510/520 User Guide

Matrix 510/520 User Guide Matrix 510/520 User Guide Introduction: Matrix 510/520 are ARM9-based Linux ready industrial computer. The key features are as follow: Matrix 520 Layout 1. ARM920T ARM Thumb Processor with 200MIPS at 180MHz,

More information