Learn to Design your own OS booting ARM board

Similar documents
The embedded Linux quick start guide lab notes

SheevaPlug Development Kit README Rev. 1.2

Pwn Plug Community Edition 1.1 Installation Guide

Application Development Kit for Android Installation Guide

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

Buildroot Workshop. Libre Software Meeting Thomas Petazzoni Free Electrons

Our innovation, Your Applications. Your Own Custom Embedded Board in 5 weeks!

DM814x AM387x EZ Software Developers Guide

Building an audio player using the Texas Instruments OMAP-L137

Workshop Intel Galileo Board

Solo / Dual / Quad ARM Cortex-A9 CPU Module

i.mx USB loader A white paper by Tristan Lelong

Sistemi ad agenti Principi di programmazione di sistema

Embedded Linux Platform Developer

SABRE Lite Development Kit

Application Note AN_250. Configuring FT313H Driver for Embedded Linux

Embedded Linux BSP BootCAMP

HOWTO configure Xinu under Virtual Box

SEAGATE BUSINESS NAS ACCESSING THE SHELL. February 1, 2014 by Jeroen Diel IT Nerdbox

HotelTV1. Client Software Update REV A0.6 D October. Web : Mail : support@vestek.com.tr Tel :

STLinux Software development environment

Yun Shield User Manual VERSION: 1.0. Yun Shield User Manual 1 / 22.

Network/IP Camera Set up and Re-programming. Leopard Imaging Inc. Jan, 2013.

Customer Experience. Silicon. Support & Professional Eng. Services. Freescale Provided SW & Solutions

opensuse for ARM On Your Device Sonntag, 21. Oktober 12

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

MediaTek LinkIt Smart 7688 FAQ

The Embedded Linux Quick Start Guide In the Beginning... Embedded Linux Conference Europe 2010

Open Network Install Environment (ONIE) LinuxCon North America 2015

Chapter 1 Hardware and Software Introductions of pcduino

Version 1.0. File System. Network Settings

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

Buildroot for Vortex86EX (2016/04/20)

Embedded Linux Systems

Embedded Linux Systems

Creating a Custom Linux Kernel and Root File System for the TI OMAP3530 Processor

Accessing I2C devices with Digi Embedded Linux 5.2 example on Digi Connect ME 9210

RMLL Hello. thank you for coming

Zynq SATA Storage Extension (Zynq SSE) - NAS. Technical Brief from Missing Link Electronics:

How Do I Upgrade Firmware and Save Configurations on PowerConnect Switches?

VoIP Laboratory B How to re flash an IP04

MBC-SAM9G35 Core Board Overview

HotelTV. Client Software Update REV A0.10 D October. Web : Mail : support@vestek.com.tr Tel :

ARM Processors for Computer-On-Modules. Christian Eder Marketing Manager congatec AG

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

Android Hands-On Labs

Open Network Install Environment

Installing Java (Windows) and Writing your First Program

SBC6245 Single Board Computer

NetPoint Configuration Guide. for thin clients

Technical Note TN_146. Creating Android Images for Application Development

LINUX BOOT TIME OPTIMIZATION FTP SERVER

SBC8600B Single Board Computer

Remote Monitoring Unit SC8100. Monitoring Unit SC8100

Computer Science and Engineering Linux Cisco VPN Client Installation and Setup Guide

Getting started with ARM-Linux

Quick Start Guide. Quick Start Guide. taskit GmbH. for Portux920T EU / SW Portux Mini-PC Portux Panel-PC Panel-Card MoLUX Stamp

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

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Embedded Linux development with Buildroot training 3-day session

DEVELOPMENT GUIDE ALTA DS 2. Android BSP

BIOS Update SOP. Updating BIOS under Windows Mode for Intel Series (PXX/ZXX/X79)... 2

Customizing Boot Media for Linux* Direct Boot

UM1535 User manual. Getting started with SPEAr Linux support package (LSP 3.2.5) Introduction

FOG Guide. IPBRICK International. July 17, 2013

Modifying and Rebuilding Android Kernel and Root Filesystem

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

Running Debian on Inexpensive Network Attached Storage Device

STH SICS Thin Hypervisor Reference Manual Version 0.4

NIVEO Network Attached Storage Series NNAS-D5 NNAS-R4. More information:

BIOS Update Release Notes

Running Debian on Inexpensive Network Attached Storage Device

Installing Virtual Coordinator (VC) in Linux Systems that use RPM (Red Hat, Fedora, CentOS) Document # 15807A1-103 Date: Aug 06, 2012

Cosmic Board for phycore AM335x System on Module and Carrier Board. Application Development User Manual

AVR32737: AVR32 AP7 Linux Getting Started. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

Basic Router and Switch Instructions (Cisco Devices)

Procedure to Create and Duplicate Master LiveUSB Stick

The shortest path to cellular communications: Cellular Development Platform

Raspberry Pi Webserver

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

HP PCIe IO Accelerator For Proliant Rackmount Servers And BladeSystems

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

Building Embedded Systems

Intel Tunnel Mountain Software Development Platform Overview, IHV Tools Update

Updating Your Firmware

Accessing RCS IBM Console in Windows Using Linux Virtual Machine

Creating a Webserver on the Nios development kit Stratix Edition board Enoch Hwang

TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING

HP VMware ESXi 5.0 and Updates Getting Started Guide

DSO138 oscilloscope program upgrade method

Porting Plan 9 to the PowerPC Architecture. Ian Friedman Ajay Surie Adam Wolbach

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

Table of Contents. Overview Features Applications Hardware requirement Card dimensions Software Installation...

Operating Systems (Linux)

Embedded Linux development training 4 days session

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

BKM: Installing Ubuntu OS on the DE2i-150 Board

PBX DIGITAL TELEPHONE EXCHANGE MAINTENANCE GUIDE

Michele Jr De Candia Curriculum Vitae

Transcription:

Learn to Design your own OS booting ARM board by Robert Feranec Schematic & PCB Design Courses Check our website at: http://www.fedevel.com/academy/

About this presentation

Projects Year 2002 Year 2013

What is important when starting a new ARM design? ARM Designs are complex Reference schematics PCB files Documentation Software Community

Selecting components for a board running an operating system Software Compatibility

Tips for ARM Schematic design

PCB Stackup & Impedances

PCB Stackup & Impedances Standard single ended impedance: 50 or 55 Ohms +/-15% AMD Intel 1 Intel 2 Freescale PCIE /85 48/85 /95 /85 HDMI /85 48/85 /100 LVDS /85 48/85 /95 /100 SATA 50/90 /100 USB 48/85 45/90

PCB Stackup & Impedances

DDR3 layout and length matching

T-branch vs. Fly-by

DDR3 read / write leveling

Memory length matching spreadsheet

Memory layout example in Altium Download free imx6 DDR3 Layout example from our open source project called imx6 Rex Go to: http://www.imx6rex.com/

How to setup a machine for ARM code compilation Prepare your machine for SDK installation Install a Software Development Kit Install other things you may need Compile original source codes

How to compile bootloader Freescale make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/lo cal/gcc-4.6.2-glibc-2.13-linaro-multilib- 2011.12/fsl-linaro-toolchain/bin/armnone-linux-gnueabi- distclean make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/lo cal/gcc-4.6.2-glibc-2.13-linaro-multilib- 2011.12/fsl-linaro-toolchain/bin/armnone-linux-gnueabi- mx6q_rex_config make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/lo cal/gcc-4.6.2-glibc-2.13-linaro-multilib- 2011.12/fsl-linaro-toolchain/bin/arm- none-linux-gnueabi- Texas Instruments $ make CROSS_COMPILE=arm-nonelinux-gnueabi- ARCH=arm distclean $ make CROSS_COMPILE=arm-nonelinux-gnueabi- ARCH=arm ti8168_evm_config_spi $ make CROSS_COMPILE=arm-nonelinux-gnueabi- ARCH=arm u-boot.ti

How to modify bootloader Make a copy of the board directory, as shown below. Rename and update files: $cp -R board/freescale/mx6_<reference board name> board/freescale/mx6_<custom board name> Make a copy of the config file. Update: $cp include/configs/mx6_<reference board name>.h include/configs/mx6_<custom board name>.h You should pay attention to the following e.g.: Memories, NAND, Ethernet, Update Makefile

How to modify bootloader

Bootloader compilation example

Bootloader commands Flashing Kernel to NAND dhcp setenv serverip 192.168.0.22 mw.b 0x81000000 0xFF 0x280000 tftp 0x81000000 uimage nand erase 0x00280000 0x00280000 nand write 0x81000000 0x00280000 0x280000 Flashing uboot to SPI via Serial Console mw.b 0x10800000 0xFF 0x80000 loadb sfprobe 3:2 sf erase 0x0 0x80000 sf write 0x10800000 0x0 0x80000 Bootargs setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs ip=dhcp nfsroot=192.168.0.86:/home/fedevel/ltib/root fs,v3,tcp'

How to build a Linux Kernel Freescale make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/lo cal/gcc-4.6.2-glibc-2.13-linaro-multilib- 2011.12/fsl-linaro-toolchain/bin/armnone-linux-gnueabi- distclean make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/lo cal/gcc-4.6.2-glibc-2.13-linaro-multilib- 2011.12/fsl-linaro-toolchain/bin/armnone-linux-gnueabi- imx6_defconfig make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/lo cal/gcc-4.6.2-glibc-2.13-linaro-multilib- 2011.12/fsl-linaro-toolchain/bin/armnone-linux-gnueabi- uimage Texas Instruments $ make CROSS_COMPILE=arm-nonelinux-gnueabi- ARCH=arm distclean $ make CROSS_COMPILE=arm-nonelinux-gnueabi- ARCH=arm ti8168_evm_defconfig $ make CROSS_COMPILE=arm-nonelinux-gnueabi- ARCH=arm uimage

How to prepare a File system

How to prepare a File system wget http://voipac.com/downloads/imx/25/bin/rootfs-nfs-bb-1-17-vmx25-vmx25- vpac3.tar.gz sudo tar xvf rootfs-nfs-bb-1-17-vmx25-vmx25-vpac3.tar.gz sudo gedit rootfs-bb-1-17-final2/etc/inittab change from: ::respawn:/sbin/getty -L ttymxc0 115200 vt100 ::respawn:/sbin/getty -L tty1 115200 to #::respawn:/sbin/getty -L ttymxc0 115200 vt100 ::respawn:/sbin/getty -L ttyo2 115200 //use correct console number: for standard EZSDK board use: ttyo2 then Save and Close Make the image mkfs.jffs2 -lqn e 128 -r rootfs-bb-1-17-final2/ -o /tftpboot/rd-jffs2.bin

Steps to bring your board to life Tip: Mark each board with a sticker and a number Step 1: Visual inspection Step 2: Measure impedance on power rails Step 3: Connect power supply for the very first time Step 4: Check component temperature Step 5: Measure all the on board voltages Step 6: Measure crystals and oscillators Step 7: Upload firmware Step 8: Connect Console

Freescale DDR3 calibration Texas Instruments

Board testing and HW verification

Thank you. Any questions? Contact: robert.feranec@fedevel.com Check our Schematic & PCB Design Courses here: http://www.fedevel.com/academy/