Dave Embedded Systems ARM Cortex-A9 MPCore User manual

Bora Embedded Linux Kit (BELK)
Quick Start Guide
ARM Cortex-A9 + FPGA CPU Module
Ultra Line

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
<Page intentionally left blank>
March, 2016 2/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
Table of Contents
1 Preface...................................................................................................................................6
1.1 About this manual...........................................................................................................6
1.2 Copyrights/Tra emarks...................................................................................................6
1.3 Stan ar s........................................................................................................................6
1.4 Disclaimers.....................................................................................................................6
1.5 Warranty..........................................................................................................................7
1.6 Technical Support...........................................................................................................7
1.7 Relate ocuments.........................................................................................................8
1.8 Conventions, Abbreviations, Acronyms..........................................................................9
2 Intro uction..........................................................................................................................12
2.1 BORA an BORA Xpress SOMs..................................................................................12
2.2 Embe e Linux...........................................................................................................14
2.3 Xilinx Zynq 7000 SOC..................................................................................................15
2.4 BELK.............................................................................................................................16
2.4.1 Logical structure of BORA/BORAX Embe e Linux Kit (BELK).........................17
2.4.1.1A little bit of history............................................................................................17
2.4.1.2Basic structure of Viva o Design Suite an integration into BELK...................17
2.4.2 Kit Contents...........................................................................................................19
2.4.3 BELK Release Notes.............................................................................................19
2.4.3.1Version 1.0.0.....................................................................................................19
2.4.3.2Version 1.1.0.....................................................................................................19
2.4.3.3Version 2.0.0.....................................................................................................20
2.4.3.4Version 2.1.0.....................................................................................................20
2.4.3.5Version 2.2.0.....................................................................................................20
2.4.3.6Version 3.0.0.....................................................................................................20
2.4.3.7Known limitations..............................................................................................21
2.4.3.8Releases history................................................................................................22
3 Developing Environment......................................................................................................23
3.1 Intro uction...................................................................................................................23
3.2 Software components...................................................................................................25
3.2.1 Xilinx Zynq-7000 evelopment tools.....................................................................25
3.2.1.1Viva o® Design Suite.......................................................................................25
3.2.1.2Xilinx Software Development Kit.......................................................................25
3.2.1.3Zynq application evelopment flow...................................................................26
3.2.2 Toolchain................................................................................................................26
3.2.3 First stage bootloa er (FSBL)...............................................................................27
3.2.4 Secon stage bootloa er: U-Boot.........................................................................27
3.2.5 Kernel....................................................................................................................28
3.2.6 Target root file system...........................................................................................28
3.3 Buil system..................................................................................................................29
3.3.1 Intro uction............................................................................................................29
March, 2016 3/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
3.3.2 Setting up the Zynq evelopment server environment.........................................29
3.3.2.1How BORA/BORAX project files are manage ................................................31
3.3.3 Setting up the Linux evelopment server environment.........................................32
3.3.3.1TFTP Server......................................................................................................32
3.3.3.2NFS Server........................................................................................................32
3.3.3.3Pre-built toolchain.............................................................................................33
3.3.3.4Pre-built root file system....................................................................................33
3.3.3.5U-Boot an Linux git repositories......................................................................34
3.3.3.6RSA key generation..........................................................................................35
3.3.3.7Using the pre-package git archive..................................................................36
3.4 Working with BELK.......................................................................................................37
3.4.1 Up ate from BELK 2.1.0 to BELK 3.0.0................................................................37
3.4.2 Creating an buil ing a Zynq project for BORA/BORAX......................................37
3.4.2.1Comman line base proce ure.......................................................................38
3.4.2.2GUI base proce ure........................................................................................41
3.4.3 Buil ing U-Boot......................................................................................................46
3.4.4 Buil ing Linux kernel.............................................................................................47
3.4.5 Booting the system via NFS..................................................................................48
3.4.6 Buil ing the software components with Yocto.......................................................49
3.4.6.1Prerequisites.....................................................................................................49
3.4.6.2Initializing the buil environment.......................................................................50
3.4.6.3Buil the Yocto image........................................................................................50
3.4.6.4Buil a itional packages.................................................................................51
3.4.7 ConfigID.................................................................................................................51
3.4.7.1Customer's action..............................................................................................52
3.4.7.2ConfigID values.................................................................................................52
3.4.7.3ConfigID har ware implementation on BORA/BORAX....................................53
3.4.7.4ConfigID software implementation on BORA/BORAX......................................53
3.4.8 System boot an recovery via microSD car ........................................................55
3.4.8.1How to create a bootable MicroSD car ...........................................................55
3.4.8.2How to configure the system for SD boot.........................................................58
4 Frequently Aske Questions................................................................................................59
4.1 Q: Where can I foun BORA/BORAX SOM information?............................................59
4.2 Q: I've receive the BELK package. How am I suppose to start working with it?......59
4.3 Q: How can I up ate the BELK version?......................................................................60
4.4 Q: Which software components am I suppose to install to start working with
BORA/BORAX?....................................................................................................................60
4.5 Q: Can you suggest some gui elines for the carrier boar esign?............................60
4.6 Q: Why my cross-compile application oesn't work with the pre-package root file
system provi e with BELK?................................................................................................61
4.7 Q: o you provi e some application notes?.................................................................61
4.8 Q: Can I use BORA/BORAX in an Asymmetric Multi Processing (AMP) configuration?
..............................................................................................................................................61
March, 2016 4/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
4.9 Q: I've just installe the tools on Linux an when I launch the "viva o" comman , the
buil procesess fails. How can I solve this problem?...........................................................62
4.10 Q: How can I configure the BORA/BORAX system to boot from network?...............63
5 Appen ixes...........................................................................................................................65
5.1 U-Boot environment......................................................................................................65
Index of Tables
Tab. 1: Relate ocuments.........................................................................................................9
Tab. 2: Abbreviations an acronyms use in this manual.........................................................10
Illustration Index
Fig. 1: BORA – Powere by Zynq processor............................................................................12
Fig. 2: BORA – Dual ARM Cortex A9 plus FPGA.....................................................................12
Fig. 3: Block iagram of BORA example project.......................................................................38
Fig. 4: Block iagram of BORAX example project....................................................................38
March, 2016 5/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
1 Preface
1.1 About this manual
This manual describes the BORA/BORAX Embedded Linux Kit
(BELK) and serves as a quick uide for start workin with the
development kit.
1.2 Copyrights/Trademarks
Ethernet® is a re istered trademark of XEROX Corporation.
All other products and trademarks mentioned in this manual
are property of their respective owners.
All ri hts reserved. Specifications may chan e any time without
notification.
1.3 Standards
DAVE Embedded Systems is certified to ISO 9001 standards.
1. Disclaimers
DAVE Embedded Systems does not assume any responsibility
for availability, supply and support related to all products
mentioned in this manual that are not strictly part of the
BORA/BORAX CPU modules and the BORAEVB/BORAXEVB
carrier boards.
BORA/BORAX CPU Modules are not desi ned for use in life
support appliances, devices, or systems where malfunctionin
of these products can reasonably be expected to result in
personal injury. DAVE Embedded Systems customers who are
usin or sellin these products for use in such applications do
so at their own risk and a ree to fully indemnify DAVE
Embedded Systems for any dama e resultin from such
improper use or sale.
March, 2016 6/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
1.5 Warranty
BORA/BORAX SOMs and BORAEVB/BORAXEVB are
uaranteed a ainst defects in material and workmanship for
the warranty period from the shipment date. Durin the
warranty period, DAVE Embedded Systems will at its
discretion decide to repair or replace defective products.
Within the warranty period, the repair of products is free of
char e provided that warranty conditions are observed.
The warranty does not apply to defects resultin from improper
or inadequate maintenance or handlin by the customer,
unauthorized modification or misuse, operation outside of the
product’s specifications or improper installation or
maintenance.
DAVE Embedded Systems will not be responsible for any
defects or dama es to other products not supplied by DAVE
Embedded Systems that are caused by a faulty BORA/BORAX
module or BORAEVB/BORAXEVB carrier boards.
1.6 Technical Support
We are committed to makin our products easy to use and will
help customers use our CPU modules in their systems.
Technical support is delivered throu h email for re istered kits
owners. Support requests can be sent to
[email protected]. Software up rades are available for
download in the restricted download area of DAVE Embedded
Systems web site: http://www.dave.eu/reserved-area. An
account is required to access this area.
Please refer to our Web site at
http://www.dave.eu/products/som/xilinx/zynq-XC7Z010-XC7Z02
0_bora and
http://www.dave.eu/products/som/xilinx/zynq-XC7Z015-XC7Z03
0_bora-xpress for the latest product documents, utilities,
drivers, Product Chan e Notices, Board Support Packa es,
Application Notes, mechanical drawin s and additional tools
and software.
March, 2016 7/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
1.7 Related documents
Document Location
DAVE Embedded
Systems Developers
Wiki
http://wiki.dave.eu/index.php/Main
_Page
Zynq- 000 Technical
Reference Manual
http://www.xilinx.com/support/doc
umentation/user_guides/ug585-Zy
nq- 000-TRM.pdf
BORA main page on
DAVE Embedded
Systems Developers
Wiki
http://wiki.dave.eu/index.php/Cate
gory:Bora
BORA Xpress main page
on DAVE Embedded
Systems Developers
Wiki
http://wiki.dave.eu/index.php/Cate
gory:BoraX
BORA Hardware Manual http://www.dave.eu/sites/default/fi
les/files/bora-hm.pdf
BORAX Hardware
description
http://wiki.dave.eu/index.php/Cate
gory:BoraX#Hardware
BORAEVB page on DAVE
Embedded Systems
Developers Wiki
http://wiki.dave.eu/index.php/Bora
EVB
BORAXEVB page on
DAVE Embedded
Systems Developers
Wiki
http://wiki.dave.eu/index.php/Bora
XEVB
BORA integration guide
on DAVE Embedded
Systems Developers
Wiki
http://wiki.dave.eu/index.php/Inte
gration_guide_%28Bora%29
Vivado Design Suite User
Guide: Embedded
Processor Hardware
Design
http://www.xilinx.com/support/doc
umentation/sw_manuals/xilinx201
3_2/ug898-vivado-embedded-desi
gn.pdf
March, 2016 8/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
Document Location
Zynq- 000 All
Programmable SoC:
Concepts, Tools, and
Techniques (CTT)
http://www.xilinx.com/support/doc
umentation/sw_manuals/xilinx14_
6/ug8 3-zynq-ctt.pdf
Zynq- 000 All
Programmable SoC
Software Developers
Guide
http://www.xilinx.com/support/doc
umentation/user_guides/ug821-zy
nq- 000-swdev.pdf
Building Embedded Linux
Systems By Karim
Yaghmour.
This book covers all matters
involved in developing software
for embedded systems.
Training and Docs
sections of Free Electrons
website.
Brief but still exhaustive overview
of the Linux and Embedded Linux
world
Tab. 1: Related documents
1.8 Conventions, Abbreviations, Acronyms
Abbreviation Definition
BTN Button
BELK BORA Embedded Linux Kit
EMAC Ethernet Media Access Controller
GPI General purpose input
GPIO General purpose input and output
GPO General purpose output
PCB Printed circuit board
PL Zynq Programmable Logic
PS Zynq Processing System
PSU Power supply unit
RTC Real time clock
SOC System-on-chip
SOM System-on-module
March, 2016 9/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
Abbreviation Definition
WDT Watchdog
Tab. 2: Abbreviations and acronyms used in this manual
March, 2016 10/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
Revision History
Version Date Notes
1.0.0 July 2013 First release
1.0.1 September 2013 Minor fixes
1.0.2 September 2013 Added rfs info
Added bit-to-bin script info
Released with BELK 1.0.0
1.0.3 November 2013 Updated info for Vivado 2013.3
Minor fixes
1.0.4 November 2013 Minor fixes
Added Vivado FAQ
1.0.5 November 2013 Fixed toolchain and rfs infos
Added toolchain and rfs FAQs
Added Appendixes section
Minor fixes
1.0.6 April 2014 Minor fixes
Added instructions for booting
from SD
Updated for BELK 2.0.0 release
1.0. July 2014 Fixed toolchain information
1.0.8 September 2015 Updated for BELK 2.2.0 release
1.0.9 March 2016 Updated for BELK 3.0.0 release
March, 2016 11/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
2 Introduction
2.1 BORA and BORA Xpress SOMs
BORA is the new top-class
Dual Cortex-A9 + FPGA CPU
module by DAVE Embedded
Systems, based on the
recent Xilinx Zynq XC7Z0xx
application processor.
Thanks to BORA, customers
are oin to save time and
resources by usin a
compact solution that
includes both a CPU and
an FPGA, avoidin
complexities on the carrier
PCB.
The use of this processor
enables extensive system-level differentiation of new
applications in many industry fields, where hi h performances
and extremely compact
form factor (85mm x
50mm) are key factors.
Smarter system desi ns
are made possible,
followin the trends in
functionalities and
interfaces of the new,
state-of-the-art
embedded products.
BORA/BORAX offers
reat computational
power, thanks to the rich
set of peripherals, the
Dual Cortex-A9 and the
Artix-7 FPGA to ether
with a lar e set of hi h-speed I/Os (up to 5GHz).
March, 2016 12/66
Fig. 1: BORA – Powered by Zynq
processor
Fig. 2: BORA – Dual ARM Cortex A9
plus FPGA

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
BORA/BORAX enables desi ners to create ru ed products
suitable for harsh mechanical and thermal environments,
allowin the development of the most advanced and robust
products.
Thanks to the ti ht inte ration between the ARM-based
processin system and the on-chip pro rammable lo ic,
desi ners are free to add virtually any peripheral or create
custom accelerators that extend system performance and
better match specific application requirements.
BORA/BORAX is desi ned and manufactured accordin to
DAVE Embedded Systems Ultra Line specifications, in order
to uarantee premium quality and technical value for
customers who require top performances and flexibility.
BORA/BORAX is suitable for hi h-end applications such as
medical instrumentation, advanced communication systems,
critical real-time operations and safety applications.
For further information on BORA/BORAX, please refer to the
SOMs Hardware Manuals.
March, 2016 13/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
2.2 Embedded Linux
When we talk in eneral about Embedded Linux1, we refer to
an embedded system runnin Linux operatin system. As the
reader probably knows, Linux was first developed on the PC
platform, based on the famous x86 architecture. Typical
embedded systems usin an operatin system (O.S. for short),
are equipped with much li hter software. Recent hardware
advances made these systems so powerful that now they can
run a complex O.S. such as Linux. This choice has several
benefits:
●the developer can count on a reliable and efficient
software, developed and maintained by a lar e
community all over the world
●the software is open-source, so developers have
access to the whole source code
●since Linux runs on many different platforms (x86,
PowerPC, ARM, SuperH, MIPS etc.), applications are
portable by definition
●there are a lot of open-source applications runnin on
top of Linux that can easily be inte rated in the
embedded system
●last but not least, there are no license fees.
The typical Embedded Linux system is composed of:
●the bootloader – this software is run by the processor
after exitin the reset state. It performs basic
hardware initialization, retrieves the Linux kernel
ima e (for example from a remote server via the TFTP
protocol) and launches it by passin the proper
ar uments (command line and ta s)
●the Linux kernel
●the root file system – this file system is mounted
(which means "made available", "attached") by the
kernel durin the boot process on the root (“/”)
1 An exhaustive escription of this topic is beyon the scope of this ocument. We recommen rea ing
specific ocuments, eg Buil ing Embe e Linux Systems By Karim Yaghmour.
March, 2016 14/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
directory
The typical developin environment for an Embedded Linux
system is composed of a host machine and a tar et machine.
The host is used by the developer to compile the code that will
run on the tar et. In our case the tar et is obviously the
BORA/BORAX module, while the host is assumed to be a PC
runnin the Linux operatin system. The Linux kernel runnin
on the tar et can mount the root file system from different
physical media. For example, durin the software development,
we stron ly recommend usin a directory exported via NFS by
the host for this purpose; however, for system deployed to the
field, the root file system is usually stored into a flash device.
2.3 Xilinx Zynq 7000 SOC
The Zynq™-7000 family SOCs inte rate a feature-rich dual-core
ARM® Cortex™-A9 based processin system (PS) and Xilinx
pro rammable lo ic (PL) in a sin le device. The ARM
Cortex-A9 CPUs are the heart of the PS, while the PL provides
a rich architecture of user-confi urable capabilities. The PS and
PL can be ti htly or loosely coupled usin multiple interfaces
and other si nals that have a combined total of over 3,000
connections. This enables the desi ner to effectively inte rate
user-created hardware accelerators and other functions in the
PL lo ic that are accessible to the processors and can also
access memory resources in the PS. Zynq customers are able to
differentiate their product in hardware by customizin their
applications usin PL.
In contrast with “typical” SOCs, where developers have to deal
just with one main component (the CPU), Zynq SOC adds some
complexity, since both the PS part and the PL part must be
mana ed. Therefore, some knowled e of FPGAs and how they
work would be valuable. However, the desi n process for
Zynq-based systems is PS-centric: the processors in the PS
always boot first, allowin a software centric approach for PL
confi uration. The PL can be confi ured as part of the boot
process or confi ured at some point in the future. Additionally,
the PL can be completely reconfi ured or used with partial,
dynamic reconfi uration (PR). This latter capability is
analo ous to the dynamic loadin and unloadin of software
March, 2016 15/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
modules. The PL confi uration data is referred to as a
bitstream.
The addition of hardware pro rammability to the hardware and
software interface imposes new requirements on desi n flows.
Please refer to section 3.2.1 for an introduction to the Xilinx
Zynq 7000 development tools (Vivado® Desi n Suite and Xilinx
Software Development Kit).
2. BELK
BORA/BORAX Embedded Linux Kit (BELK for short) provides
all the necessary components required to set up the developin
environment for:
●confi urin the system (PS and PL) at hardware level
●build the first-sta e bootloader (FSBL)
●buildin the second sta e bootloader (U-Boot)
●buildin and runnin Linux operatin system on
BORA/BORAX-based systems
●buildin Linux applications that will run on the tar et
DAVE Embedded Systems provides all the customization
required (in particular at bootloader and Linux kernel levels) to
enable customers use the standard Zynq-7000 development
tools for buildin all the firmware/software components that
will run on the tar et system.
March, 2016 16/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
2.4.1 Logical structure of BORA/BORAX Embedded Linux Kit
(BELK)
To understand the structure of BELK, it is necessary to
describe the basic or anization of Xilinx Vivado Desi n
Suite/Xilinx SDK and to recall briefly the recent history of
development tools provided by Xilinx.
2. .1.1 A little bit of history
At the time of this writin (October 2013) Xilinx is mi ratin
from mature ISE 14.x Desi n Suite - that should be the last
series of this suite - to the new Vivado environment. Both are
composed by several pro rams and some of these are in
common. From the eneral standpoint, the main difference
between ISE and Vivado - even if ISE does support Zynq - is the
latter has been expressively conceived to support newer SOC
architectures such as Zynq, besides traditional FPGAs. Thus,
adoptin Vivado as the default environment for BELK would
seem the natural choice. However, the mi ration process
mentioned above has just be un and the majority of application
notes and reference desi ns released by Xilinx still refers to
ISE suite. Plus Vivado is still a little bit " reen" and several bu
fixes and improvements are introduced by every new release.
Since BORA was presented in 2013 and because this product
addresses lon lon evity markets such as industrial and
biomedical, DAVE Embedded Systems chose to build BELK
upon Vivado, that certainly represents today the future of
Xilinx development environments.
2. .1.2 Basic structure of Vivado Design Suite and integration
into BELK
Vivado/SDK2 can be viewed as a collection of pro rams
required to deal with all of the development aspects related to
Xilinx components (software runnin on ARM cores, FPGA
fabric verification and pro rammin , power estimation etc.).
2 The Software Development Kit (SDK) is the Xilinx Integrate Design Environment for creating embe e
applications on Zynq™-7000 All Programmable SoCs. SDK is the first application IDE to eliver true
homogeneous an heterogeneous multi-processor esign an ebug, it is optionally inclu e with the Viva o
Design Suite or ISE Design Suite, or available as a separate free ownloa for application evelopers.
March, 2016 17/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
These include strictly FPGA-related tools such as Floorplanner
and pure-software development tools such as SDK. The
ambitious objective is to provide a complete, user friendly,
inte rated environment that allows software developers to deal
with FPGA development even if they are not familiar with this
technolo y, by hidin a lot of its complexities3. As usual this
ease of use comes at the expense of control and flexibility. This
could not be acceptable in many cases where en ineers need to
control and customize many aspects of the project to
implement what is required by system specifications. For this
reason BELK has been built around Vivado but some deviations
from the default development approach su ested by Xilinx
have been introduced, in order to push the modularization and
the maintainability of the projects to the maximum extent.
More details about this can be found in chapter 3 on pa e 23.
3 Nevertheless, FPGA evelopers will fin all the tra itional tools that allow complete control of FPGA fabric.
March, 2016 18/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
2.4.2 Kit Contents
The followin table lists the BELK components
Component Description
BORA/BORAX SOM
BORAEVB/BORAXEVB Carrier
board
AC/DC Single Output Wall Mount
adapter
Output: +12V – 2.0 A
MicroSDHC card with SD adapter
and USB adapter
2.4.3 BELK Release Notes
2. .3.1 Version 1.0.0
First official release
2. .3.2 Version 1.1.0
Updates:
1. Switched to Vivado 2013.3
2. Added application note "AMP on BORA"
March, 2016 19/66

B E L K u i c k S t a r t G u i d e v . 1 . 0 . 9
2. .3.3 Version 2.0.0
Updates:
1. Added support for the BORAEVB carrier board
2. Updated drivers support (please refer to Section 2.4.3.8)
2. .3. Version 2.1.0
Updates:
1. Fix and performance improvement on u-boot network interface
2. Fix SD card hotplu issue in Linux
3. First Yocto Daisy (1.6) BSP Release (please refer to section
3.4.6)
2. .3.5 Version 2.2.0
Updates:
1. Switched to Vivado 2014.4
2. Added “board part” for the BORA SOM, which includes all the
settin s of the Zynq PS for BORA, allowin users to mana e
projects from the Vivado GUI (and not only usin the CLI).
Please refer to section 3.4.2.2
3. Added Confi ID (please refer to section 3.4.7)
4. Updated U-Boot and Linux versions
2. .3.6 Version 3.0.0
Updates:
1. Added support for BORA Xpress SOM
2. Updated U-Boot and Linux versions
March, 2016 20/66
Other manuals for ARM Cortex-A9 MPCore
1
Table of contents
Other Dave Embedded Systems Computer Hardware manuals

Dave Embedded Systems
Dave Embedded Systems ARM Cortex-A9 MPCore User manual

Dave Embedded Systems
Dave Embedded Systems diDo User manual

Dave Embedded Systems
Dave Embedded Systems AXEL LITE User manual

Dave Embedded Systems
Dave Embedded Systems AXEL ULTRA User manual

Dave Embedded Systems
Dave Embedded Systems AXEL ULTRA User manual