Flashing binaries to DRA7xx factory boards using DFU

Similar documents
Linux U-Boot and Kernel Users Guide

Wunderbar upgrade to Conrad Connect firmware and onboarding manual

USB2CAN User Guide. High quality isolated USB to CAN interface. 1.0v

Lab2 - Bootloader. Conventions. Department of Computer Science and Information Engineering National Taiwan University

MCAM335x Linux User's Guide

Zephyr Kernel Installation & Setup Manual

Pengwyn Documentation

AN80101 Seal USB/CAN Adapter Quick Start

U-Boot and Linux Kernel Debug using CCSv5

Overview for Axxia 5600 and Axxia 6700

REX-RED Community Android 4.3

Linux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.

DS2 Products Auto-Update Tool BSP

Ingenic. Newton Android Development Guide

Parallella Linux - quickstart guide. Antmicro Ltd

Getting Started with the MCU Flashloader

Boot Loader. Bootloader

Operating System. Hanyang University. Hyunmin Yoon Operating System Hanyang University

Cyclone V SoC PCI-Express Root Port Example Design. Application Note

By: Yushi Wang Partners: Shen Yue and Yubing Xu Group 6. How to Setup Pandaboard ES Software Environment for UAV Project

How to Enable Boot from HyperFlash and SD Card

Oxalis Getting Started

PAULA CARRILLO October Processor SDK & PRU-ICSS Industrial software

1. Install a Virtual Machine Download Ubuntu Create a New Virtual Machine Seamless Operation between Windows an Linux...

FIAMMA MCAM335x Linux User's Guide

Hands-on with the Sitara Linux SDK

R. Assiro. WP1- Documentation Booting Petalinux from QSPI on UUB

Z-Stack Linux Gateway Quick Start Guide Version 1.0

Contents. 1 Introduction Features Product Specifications Hardware Specification Software Specification...

Manual to install experimental firmware on a TYTERA MD380

Firmware Test Suite (fwts) Alex Hung BIOS Engineer, Hardware Enablement

Linux as primary Operating System

Embedded. Connected. Aware. SW Delivery Process. February Inforce Computing. Do NOT Copy/Distribute without prior written permission

CROWDCOIN MASTERNODE SETUP COLD WALLET ON WINDOWS WITH LINUX VPS

Tizen TCT User Guide

PDK (Platform Development Kit) Getting Started. Automotive Processors

Developing Environment for Intel Mainstone Board

Manual Install Ubuntu Server From Usb No Cd

ConnectCore 6 Android/Yocto. Getting Started Guide

DEVELOPMENT GUIDE VAB-630. Android BSP v

DEVELOPMENT GUIDE VAB-630. Linux BSP v

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECE 598 Advanced Operating Systems Lecture 2

Intel Stratix 10 SoC FPGA Boot User Guide

DEVELOPMENT GUIDE VAB-820. Android BSP v

WES 237A Project Part 1 Guide

Matrix. Get Started Guide

Intel Stratix 10 SoC FPGA Boot User Guide

Building and Running Inter-Processor Communication (IPC) Examples on the AM572x GP EVM. Sahin Okur Embedded Processor Catalog Applications


Manual Install Ubuntu Server From Usb Drive

OMAP3530 has 256MB NAND flash in PoP (PoP: Package-On-Package implementation for Memory Stacking) configuration.

Customizing the Yocto-Based Linux Distribution for Production

environment) and note down the last "End" sector ( as shown in the below example):

Linuxboot continuous integration

Booting Linux Fast & Fancy. Embedded Linux Conference Europe Cambridge, Robert Schwebel

PICO-i.MX6UL Development Platform for Android Things Quick Start Guide

HPS SoC Boot Guide - Cyclone V SoC Development Kit

User Guide Linux for AT91CAP9-STK Version 1.1. User Guide LINUX FOR AT91CAP9-STK VERSION: 1.1 1/11

Release Notes for QNX Neutrino BSP for Renesas SH7785 SDK 1.0.0#

Automation beyond Testing and Embedded System Validation

Spectrum Digital DRA75x/TDA2x Surround View EVM Kit with 5 Cameras 05/02/2016. Copyright

Raspberry Pi Compute Module

Preliminary. Jetson TX1 BSP flashing guide. Version 2.1. May 2017 AUVIDEA GMBH FIRMWARE INSTALLATION 1. Auvidea GmbH Kellerberg 3 D Denklingen


SCRIV NETWORK COLD WALLET MASTERNODE SETUP GUIDE DETAILED

MCU Bootloader Release Notes

Android System Development Training 4-day session

Cubieboard4 Linux Sdk Guide TF BOOT & TF WRITE EMMC. Website: Support:

Android. Separated Kernel build might break the Android build process. Toolchain

Vision SDK. (v ) Linux User Guide

User. Applications. Operating System. Hardware

RETROPIE INSTALLATION GUIDE

DEVELOPMENT GUIDE VIA VAB-820. Android BSP v

EM210 Burn Linux Image Manual. Catalogue

The following file is used for updating the boot loader: xboot.bin: XSTREAM development platform boot loader image

Enabling DM_Crypt Functionality in SDK release 5.07

Introducing the AM57x Sitara Processors from Texas Instruments

PDK (Platform Development Kit) Getting Started. Automotive Processors 4 th Dec 2017

Implementing Bootloaders on Renesas MCUs

96Boards - TV Platform

Glomation. Embedded Single Board Computer GESBC-3130S User s Manual

Building Tizen Development Environment

10/02/2015 PetaLinux Image with Custom Application

SCM-i.MX 6 Series Yocto Linux User's Guide

Install Windows Update Windows 7 From Usb Iso Image

DRIVER STATION v1.0 UTILITY LOADER Created: 22DEC2008 FIRST DRIVER STATION UTILITY LOADER RE-IMAGE INSTRUCTIONS

RK3036 Kylin Board Hardware Manual V0.1

Mars ZX3 Android manual. Antmicro

BQ Firmware Flash Tool 3.0. User Manual

Introduction to the Itron Riva Dev Kits

SiFive HiFive1 Getting Started Guide. c SiFive, Inc.

ECE 471 Embedded Systems Lecture 16

Lesson 6 Intel Galileo and Edison Prototype Development Platforms. Chapter-8 L06: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Statement of Volatility Dell PowerEdge R730 and R730XD

Making a Bootable Linux USB Flash Drive with the Universal USB Installer.

Manually Mount Usb Flash Drive Ubuntu Server

1. Developement Environment Building

ECE 471 Embedded Systems Lecture 16

Manually Mount Usb Flash Drive Linux Command Line Fedora

Transcription:

Flashing binaries to DRA7xx factory boards using DFU Abstract This application notes provides detailed procedure for flashing the binary images to emmc flash memory using Device Firmware Update (DFU). Generally the MMC/SD boot mode can be used to boot the fresh production board/evm. In case if there is no external MMC/SD card is available as part of production EVM or final product, then this application note will be useful to flash the images to the factory boards using DFU and USB peripheral boot mode of DRA7xx. 1

Introduction The DFU is Device Firmware Update feature used to program the firmware to flash memory devices such as emmc, MMC/SD, etc. The DFU feature is available as part of second stage boot loader (U-Boot) in mainline. The dfu-util tool (version 0.5) executes from Ubuntu host machine is used to program the target resident flash memory devices, which communicates through USB interface with target resident DFU software. The first time assembled or manufactured factory boards/evms do not have any binaries loaded in flash memory devices. In order to boot the EVM, various boot mode are available as shown below. 1) MMC/SD boot mode 2) QSPI boot mode 3) emmc boot mode 4) USB Peripheral boot mode. Generally the MMC/SD boot mode can be used to boot the fresh production. In case if there is no external MMC/SD card is available as part of production EVM or final product, then this application note will be useful to flash the images to the factory boards using USB Peripheral mode and DFU support in single stage bootloader or MLO. Flashing binaries to emmc via DFU is a 2 step procedure where in Step 1: DRA7xx Boot ROM downloads single stage bootloader (MLO) via USB peripheral boot mode from Ubuntu host PC. Ubuntu Host PC Util: Usbboot MLO with DFU DRA7xx ROM Fig 1.0 ROM downloads MLO from Ubuntu Host PC. Step 2: MLO on DRA7xx will download emmc boot image via DFU from Ubunut host. Ubuntu Host PC Util: Dfu-util emmc boot image DRA7xx u-boot Fig 2.0 MLO downloads binaries from Ubuntu Host PC. 2

The figure 3.0 shows the setup, where J6 EVM with SW2 switch set to peripheral USB boot mode connected to Ubuntu Host PC through super speed (SS) USB device cable. From Ubuntu host the usbbboot is used to load the single stage bootloader (MLO+DFU) and dfu-util tool used to flash the boot images to emmc device. [6] Set SW2[7..0] = 0011-1000 emmc boot mode and reset EVM emmc J6 EVM [4] ROM loads SPL to internal RAM, Wait for host commands [1] Apply patch on u-boot repository and build spl/uboot-spl.bin, download usbboot tool and apt-get install dfu-util utility. This step is not required for GLSDK 7.02 release. [2] Run usbboot to load u-bootspl.bin MLO + DFU SW2[7..0] = 00000000 SS USB device cable USB1 SuperSpeed Ubuntu Host PC # usbboot # dfu-util -l [5] Run dfu-util tool to load boot image to emmc using dfu-util tool. [3] Set SW2[7..0] = 0000-0000 and reset EVM Fig-3.0: Setup of flashing emmc from ubuntu-host using USB interface 3

1. Building first stage bootloader with DFU support. Git clone the U-boot repository as per [1] GLSDK Software development User s Guide. Apply the DFU patch from the [3] link on top of GLSDK 7.01 release (3.14 kernel). For GLSDK 7.02 release no need to apply the patch. Run below command # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dra7xx_evm_usbboot_config # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- The spl/u-boot-spl.bin will be created. 1.1 Creating boot image to flash to emmc from Ubuntu host. Create bootable disk image from MMC/SD card 1) Install the GLSDK package and set GLSDK environment variable pointing to GLSDK installation path. # chmod +x ti-glsdk_dra7xx-evm_7_00_00_04_linux-installer.bin #./ti-glsdk_dra7xx-evm_7_00_00_04_linux-installer.bin # export GLSDK="${HOME}/ti-glsdk_dra7xx-evm_7_01_00_03" 2) Insert the MMC/SD card to Ubuntu machine and create MMC/SD bootable card. # sudo ${GLSDK}/bin/mksdboot.sh --device /dev/sdy --sdk ${GLSDK} 3) Create SD card image program it to emmc # dd if=/dev/sdy of=boot.img bs=1m count=<size, 2048 for 2GB card> 2. ROM Downloading u-boot-spl.bin from Ubuntu Host. 1) Download the usbboot host tool from [4] link for loading the first-stage bootloader to target EVM and run below command from Ubuntu host PC. a. # chmod +x usbboot b. #sudo./usbboot S u-boot-spl.bin 3. Setting up EVM and reset the board. 1) Connect the EVM to Ubuntu host machine using USB superspeed device cable. Connect USB device cable to USB1 port (superspeed) of EVM. 2) Set the SYSBOOT setting to peripheral USB boot mode SW2[7..0] = OFF OFF OFF OFF - OFF OFF OFF OFF 4

4. ROM download the u-boot-spl.bin from Ubuntu host. After executing step-3, issue reset to board, the ROM loads u-boot-spl.bin from host into internal RAM and executes. You will observe the below message on host machine. reading ASIC ID CHIP: 5641 rom minor version: 02 IDEN: 0000000000000000000000000000000000000000 MPKH: 0000000000000000000000000000000000000000000000000000000000000000 CRC0: 51d2f9a7 CRC1: 00000000 device is GP sending 2ndstage to target... On Target console you will see console output similar to mentioned below. U-Boot SPL 2014.07-01768-gbb8c815 (Apr 21 2015-12:27:16) DRA722 ES1.0 set_config: high speed config #1: usb_dnload 5. Flashing the boot image to emmc device. Programming the Sdcard image (boot.img) to emmc device 1) From Ubuntu PC, Install dfu-util if not installed on Ubuntu machine #sudo apt-get install dfu-util # sudo dfu-util l The following output will be appear dfu-util 0.5 (C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. (C) 2010-2011 Tormod Volden (DfuSe support) This program is Free Software and has ABSOLUTELY NO WARRANTY dfu-util does currently only support DFU version 1.0 Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=0, name="rawemmc" Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=1, name="mlo.raw" Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=2, name="u-boot.img.raw" Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=3, name="spl-os-args.raw" Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=4, name="spl-os-image.raw" Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=5, name="spl-os-args" Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=6, name="spl-os-image" 5

Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=7, name="u-boot.img" Found DFU: [0403:bd00] devnum=0, cfg=1, intf=0, alt=8, name="uenv.txt" Application Note The dfu-util command list the available number of interfaces with alternate interface for configuration #1. cfg stands for DFU configuration, intf stands for interface number, alt stands for alternate interface with specific name for each alternate interface. 2) Load the boot.img created from section 3. a. # sudo dfu-util D boot.img c 1 i 0 a 0 6. Executing from emmc. 1) Set the SYSBOOT setting to Automotive emmc boot mode a. SW2[7..0] = OFF OFF ON ON - ON OFF OFF OFF 2) Reset the board, the board will boot from emmc. 6

References [1] GLSDK User s Guide http://processors.wiki.ti.com/index.php/dra7xx_glsdk_software_developers_guide [2] DFU User s Guide http://processors.wiki.ti.com/index.php/template:glsdk_dfu#using_dfu_usb_peripheral_boot [3] DFU support in U-boot SPL http://processors.wiki.ti.com/index.php/file:dfu_support_patch_in_singel_stage_bootloader.zip [4] usbboot host utility http://processors.wiki.ti.com/index.php/file:usbboot.zip 7