Difference between revisions of "Bora Embedded Linux Kit (BELK)"

From DAVE Developer's Wiki
Jump to: navigation, search
(Logical structure of Bora Embedded Linux Kit (BELK))
(Order codes)
(21 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
{{Applies To Bora}}
 
{{Applies To Bora}}
 
{{InfoBoxBottom}}
 
{{InfoBoxBottom}}
 +
 +
{{ImportantMessage|text='''For BELK 3.0.2 or older, the boot process was based on the FSBL+second-stage bootloader (U-Boot) combination. From BELK 4.0.0 on, the boot process is based on the first-stage bootloader (U-Boot SPL)+second-stage bootloader (U-Boot) combination.'''
 +
}}
 +
  
 
==Introduction==
 
==Introduction==
Line 8: Line 12:
  
 
Bora Embedded Linux Kit (BELK for short) provides all the necessary components required to set up the developing environment for:
 
Bora Embedded Linux Kit (BELK for short) provides all the necessary components required to set up the developing environment for:
* configuring the system (PS and PL) at hardware level
+
* building the first-stage bootloader:
* build the first-stage bootloader (FSBL)
+
** FSBL for BELK 3.0.2 or older
* building the second stage bootloader (U-Boot)
+
** U-boot SPL for BELK 4.0.0 or newer
 +
* building the second-stage bootloader (U-Boot)
 
* building and running Linux operating system on Bora-based systems
 
* building and running Linux operating system on Bora-based systems
* building Linux applications that will run on the target
+
* building Linux applications that will run on the target.
  
'''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 building all the firmware/software components that will run on the target system.
+
'''DAVE Embedded Systems''' provides all the customization required (in particular at bootloader and Linux kernel levels) to enable customers to use the standard Zynq-7000 development tools for building all the firmware/software components that will run on the target system.
  
 +
==Kit content==
  
==Logical structure of Bora Embedded Linux Kit (BELK)==
+
{| class="wikitable" style="margin: auto;"
Please refer to [[Logical_structure_of_Bora_and_BoraX_Embedded_Linux_Kits_(BELK/BXELK)|this page]].
 
 
 
==Kit Contents==
 
 
 
{| class="wikitable"  
 
 
|-
 
|-
 
!Component
 
!Component
Line 28: Line 29:
 
!Notes
 
!Notes
 
|-
 
|-
|style="text-align: center;" | [[File:Bora5-small.jpg|60px]]
+
| style="text-align: center;" | [[File:Bora5-small.jpg|60px]]
|[[:Category:Bora|BORA]] SOM<br>CPU: Xilinx Zynx 7000
+
|[[:Category:Bora|Bora]] SOM (p/n DBRF5110C1R)
|Please refer to [[Hardware Manual (Bora) | Bora Hardware Manual]]
+
*SoC: Xilinx XC7Z030 (866Mhz, Speed "-3", Tj 0-100°C)
 +
*SDRAM: 1 GB DDR3
 +
*NOR: bootable SPI flash 16 MB
 +
*NAND: 1GB (SLC)
 +
|
 +
* For more details, please refer to the[[Hardware Manual (Bora) | Bora Hardware Manual]]
 +
* By default, ARM cores frequency is set to 667 MHz and the [[Creating and building example Vivado project (BELK/BXELK)|example Vivado project]] is implemented for a "-1" device. This choice makes the software released with the kit compatible with possible variants based on different SoM models. In this regard, see also the [[#Order codes|order codes section]].
 
|-
 
|-
|style="text-align: center;" | [[File:Boraevb-02.png|80px]]
+
| style="text-align: center;" | [[File:Boraevb-02.png|80px]]
 
|BORA Carrier board
 
|BORA Carrier board
|Please refer to [[BoraEVB | BoraEVB]] page
+
|Se also the[[BoraEVB | BoraEVB]] page
 
|-
 
|-
|style="text-align: center;" | [[File:Alimentatore.jpg|40px]]
+
| style="text-align: center;" | [[File:Alimentatore.jpg|40px]]
 
|AC/DC Single Output Wall Mount adapter<br>Output: +12V – 2.0 A
 
|AC/DC Single Output Wall Mount adapter<br>Output: +12V – 2.0 A
 
|Please refer to Belk Quick Start Guide
 
|Please refer to Belk Quick Start Guide
 
|-
 
|-
|style="text-align: center;" | [[File:ProdSDC-MBLY-thumb.png|50px]]
+
| style="text-align: center;" | [[File:ProdSDC-MBLY-thumb.png|50px]]
 
|MicroSDHC card with SD adapter and USB adapter
 
|MicroSDHC card with SD adapter and USB adapter
 
|Please refer to Belk Quick Start Guide
 
|Please refer to Belk Quick Start Guide
Line 46: Line 53:
 
|}
 
|}
  
== BELK software components ==
+
===Order codes===
 
+
{| class="wikitable" style="margin: auto;"
'''DAVE Embedded Systems''' adds to the latest Linux BSP from Xilinx the customization required to support the Bora platform, in particular at bootloader and linux kernel levels.
+
|+
 
+
!Order code
The following table reports the BELK releases information.
 
{| class="wikitable"
 
!
 
!colspan="6" | BELK version
 
|-
 
|Release number
 
|1.0.0
 
|1.1.0
 
|2.0.0
 
|2.1.0
 
|2.2.0
 
|3.0.0
 
|-
 
|Status
 
|Released
 
|Released
 
|Released
 
|Released
 
|Released
 
|Released
 
|-
 
|Release date
 
|July 2013
 
|November 2013
 
|May 2014
 
|August 2014
 
|September 2015
 
|March 2016
 
|-
 
|'''Release notes'''
 
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK 1.0.0 | Ver 1.0.0]]
 
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK 1.1.0 | Ver 1.1.0]]
 
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK 2.0.0 | Ver 2.0.0]]
 
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK 2.1.0 | Ver 2.1.0]]
 
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK 2.2.0 | Ver 2.2.0]]
 
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK 3.0.0 | Ver 3.0.0]]
 
|-
 
|SOM PCB version
 
|CS020313A
 
|CS020313A
 
|CS020313B
 
|CS020313B
 
|CS020313B
 
|CS020313C
 
|--
 
|Supported carrier boards
 
|[[BoraEVB-Lite]]
 
|[[BoraEVB-Lite]]
 
|[[BoraEVB]]
 
|[[BoraEVB]]
 
|[[BoraEVB]]
 
|[[BoraEVB]]<br>
 
|-
 
|U-Boot version
 
|2013.04-belk-1.0.0
 
|2013.04-belk-1.1.0
 
|2013.04-belk-2.0.0
 
|2013.04-belk-2.1.0
 
|2014.07-belk-2.2.0
 
|2014.07-belk-3.0.0
 
|-
 
|Linux version
 
|3.9.0-bora-1.0.0
 
|3.9.0-bora-1.1.0
 
|3.9.0-bora-2.0.0
 
|3.9.0-bora-2.1.0
 
|3.17.0-bora-2.2.0
 
|3.17.0-bora-3.0.0
 
|-
 
|Drivers
 
|valign="top" | -
 
|valign="top" | -
 
|valign="top" | Gigabit Eth #0<br>UART<br>NOR<br>NAND<br>SD/MMC<br>USB Host/Device<br>RTC<br>CAN<br>I2C
 
|valign="top" | Gigabit Eth #0<br>UART<br>NOR<br>NAND<br>SD/MMC<br>USB Host/Device<br>RTC<br>CAN<br>I2C
 
|valign="top" | Gigabit Eth #0<br>UART<br>NOR<br>NAND<br>SD/MMC<br>USB Host/Device<br>RTC<br>CAN<br>I2C<br>[[ConfigID_and_UniqueID | ConfigID]]
 
|valign="top" | Gigabit Eth #0<br>UART<br>NOR<br>NAND<br>SD/MMC<br>USB Host/Device<br>RTC<br>CAN<br>I2C<br>[[ConfigID_and_UniqueID | ConfigID]]
 
|-
 
|Vivado version
 
|valign="top" | 2013.2
 
|valign="top" | 2013.3
 
|valign="top" | 2013.3
 
|valign="top" | 2013.3
 
|valign="top" | 2014.4
 
|valign="top" | 2014.4
 
|-
 
|Build System
 
|valign="top" | -
 
|valign="top" | -
 
|valign="top" | -
 
|valign="top" | Yocto Daisy (1.6)
 
|valign="top" | Yocto Daisy (1.6)
 
|valign="top" | Yocto Daisy (1.6)
 
|-
 
|}
 
 
 
 
 
=== How to update BELK ===
 
 
 
{{ImportantMessage|text=It's recommended to use the latest available BELK version. Please refer to [[Bora_Embedded_Linux_Kit_(BELK)#Release_notes | Release notes]] for further information.}}
 
 
 
==== Updating git repositories ====
 
 
 
In BELK, the following source trees are clones of '''DAVE Embedded Systems''' public git repositories:
 
 
 
{| class="wikitable"  
 
|-
 
!| Component
 
!GIT Remote
 
|-
 
|Vivado project
 
|git@git.dave.eu:dave/bora/bora.git
 
|-
 
|Linux
 
|git@git.dave.eu:dave/bora/linux-xlnx.git
 
|-
 
|U-Boot
 
|git@git.dave.eu:dave/bora/u-boot-xlnx.git
 
|-
 
|}
 
 
 
This means that these components can be kept in sync and up to date with '''DAVE Embedded Systems''' repositories.
 
 
 
==== RSA key generation ====
 
 
 
Please follow the procedure reported below to generate the RSA ssh key:
 
 
 
* select your username (ad es. username@myhost.com)
 
* start your Linux development server machine
 
* start a shell session
 
* make sure the '''ssh''' client components are installed
 
* enter the .ssh subdirectory into your home directory: <code>cd ~/.ssh/</code>
 
* launch the following command: <br><pre>ssh-keygen -t rsa -C "username@myhost.com" -f username@myhost.com</pre>
 
* this command creates the files <code>~/.ssh/username@myhost.com</code> ('''private key''') and <code>~/.ssh/username@myhost.com.pub</code> ('''public key''')
 
* edit your <code>~/.ssh/config</code> adding the following lines:
 
 
 
<pre>
 
Host git.dave.eu
 
    User git
 
    Hostname git.dave.eu
 
    PreferredAuthentications publickey
 
    IdentityFile ~/.ssh/username@myhost.com
 
</pre>
 
 
 
Please send the public key file to the following email support addresses:
 
 
 
* [mailto:support-bora@dave.eu support-bora@dave.eu]
 
 
 
with the request for the creation of a new public git account associated to your username. The support team will enable the account and send you a confirmation as soon as possible.
 
 
 
==== Updating the repositories from BELK 2.1.0 ====
 
 
 
{{ImportantMessage|text=To '''update the repositories from BELK 2.1.0''', the following commands should be used:}}
 
 
 
<pre>
 
git fetch origin
 
git checkout -b <new_branch_name> origin/bora
 
</pre>
 
 
 
==== Synchronizing the repositories ====
 
 
 
When the account is enabled, you can synchronize a source tree entering the repository directory and launching the <code>git fetch</code> command. Please note that <code>git fetch</code> doesn't merge the commits on the current branch. To do that, you should run the <code>git merge</code> command or replace the ''fetch-merge'' process with a single <code>git pull</code> command. Please note that the recommended method is the ''fetch-merge'' process. For further information on Git, please refer to [http://git-scm.com/documentation Git Documentation].
 
 
 
=== Release notes ===
 
 
 
==== BELK 3.0.0 ====
 
 
 
Updates:
 
# Added support for BORA Xpress SOM
 
# Updated U-Boot and Linux versions
 
 
 
===== Known Limitations =====
 
 
 
{| class="wikitable"  
 
|-
 
!Issue
 
!Description
 
|-
 
| Yocto ubi-utils command line
 
| Some Yocto ubi-utils command line are in non standard format. For ''ubimkvol'' and ''ubirmvol'' the UBI device must be the last argument (e.g. ubimkvol -m -N belk /dev/ubi0)
 
|-
 
|External DDR3 bank
 
|The DDR3 SDRAM bank on the BoraEVB is not supported in this BELK version.
 
|-
 
|ETH1 interface
 
|The additional Gigabit Ethernet interface (ETH1) is not supported in this BELK version.
 
|-
 
|RTC
 
|Date/time retention is limited to about 4 hours.
 
|-
 
|}
 
 
 
==== BELK 2.2.0 ====
 
 
 
Updates:
 
# Switched to Vivado 2014.4
 
# Added “board part” for the BORA SOM, which includes all the settings of the Zynq PS for BORA, allowing users to manage projects from the Vivado GUI (and not only using the CLI).
 
# Added [[ConfigID_and_UniqueID | ConfigID]]
 
# Updated U-Boot and Linux versions
 
 
 
===== Known Limitations =====
 
 
 
{| class="wikitable"
 
|-
 
!Issue
 
 
!Description
 
!Description
 
|-
 
|-
| Kernel command line
+
|BELK-L-S
| User should remove '''mem=xxx''' from kernel command line to avoid system hang during boot. This is fixed in current u-boot default environment
+
|This code refers to the default configuration detailed above
|-
 
| Yocto ubi-utils command line
 
| Some Yocto ubi-utils command line are in non standard format. For ''ubimkvol'' and ''ubirmvol'' the UBI device must be the last argument (e.g. ubimkvol -m -N belk /dev/ubi0)
 
|-
 
|External DDR3 bank
 
|The DDR3 SDRAM bank on the BoraEVB is not supported in this BELK version.
 
|-
 
|ETH1 interface
 
|The additional Gigabit Ethernet interface (ETH1) is not supported in this BELK version.
 
|-
 
|RTC
 
|Date/time retention is limited to about 4 hours.
 
|-
 
|u-boot default environment
 
|Default u-boot environment has a syntax error on ''sdboot'' command. This is already fixed in <code>bora-next</code> branch, release <code>belk-2.2.1-rc1</code>, available on u-boot repository.
 
 
|-
 
|-
 +
|BELK-L-S-D
 +
|This variant is like BELK-L-S, except the SOM, which is DBRD4110I2R.
 
|}
 
|}
  
==== BELK 2.1.0 ====
+
==Logical structure of Bora Embedded Linux Kit (BELK)==
 +
Please refer to [[Logical_structure_of_Bora_and_BoraX_Embedded_Linux_Kits_(BELK/BXELK)|this page]].
  
Updates:
+
== BELK software components ==
# Fix and performance improvement on u-boot network interface
+
Please refer to [[BELK/BXELK_software_components|this page]].
# Fix SD card hotplug issue in Linux
 
# First [[Building_the_software_components_via_Yocto_(BELK)|Yocto Daisy (1.6) BSP Release]]
 
 
 
===== Known Limitations =====
 
 
 
{| class="wikitable"
 
|-
 
!Issue
 
!Description
 
|-
 
| ETH0 interface
 
| Primary Gigabit Ethernet Interface (ETH0) is not working correctly at 10Mbps<br>
 
|-
 
| Kernel command line
 
| User should remove '''mem=xxx''' from kernel command line to avoid system hang during boot
 
|-
 
| Yocto ubi-utils command line
 
| Some Yocto ubi-utils command line are in non standard format. For ''ubimkvol'' and ''ubirmvol'' the UBI device must be the last argument (e.g. ubimkvol -m -N belk /dev/ubi0)
 
|-
 
|External DDR3 bank
 
|The DDR3 SDRAM bank on the BoraEVB is not supported in this BELK version.
 
|-
 
|ETH1 interface
 
|The additional Gigabit Ethernet interface (ETH1) is not supported in this BELK version.
 
|-
 
|RTC
 
|Date/time retention is limited to about 4 hours.
 
|-
 
|}
 
 
 
==== BELK 2.0.0 ====
 
 
 
Updates:
 
# Added support for the BoraEVB carrier board
 
# Updated supported drivers list (please refer to [[Bora_Embedded_Linux_Kit_(BELK)#BELK_software_components | BELK_software_components]])
 
 
 
===== Known Limitations =====
 
 
 
The following table reports the known limitations of this BELK release:
 
 
 
{| class="wikitable"
 
|-
 
!Issue
 
!Description
 
|-
 
|External DDR3 bank
 
|The DDR3 SDRAM bank on the BoraEVB is not supported in this BELK version.
 
|-
 
|ETH1 interface
 
|The additional Gigabit Ethernet interface (ETH1) is not supported in this BELK version.
 
|-
 
|RTC
 
|Date/time retention is limited to about 4 hours.
 
|-
 
|}
 
 
 
==== BELK 1.1.0 ====
 
 
 
Updates:
 
# Switched to Vivado 2013.3
 
# Added application note "AMP on Bora"
 
 
 
==== BELK 1.0.0 ====
 
  
First official release
+
==Quick start guide==
 +
Please refer to [[BELK/BXELK_Quick_Start_Guide|this page]].
 +
==Physical devices mapping==
 +
Please refer to [[Physical_devices_mapping_(BELK/BXELK)|this page]].
 +
==Advanced topics==
 +
===Debugging with Eclipse===
 +
Please refer to [[Debugging with Eclipse (MVM)|this page]].
 +
===ConfigID feature===
 +
Please refer to [[ConfigID_management_(BELK/BXELK)|this page]].
  
 
== Related Documents ==
 
== Related Documents ==
Line 351: Line 87:
 
* [[BoraEVB-Lite | BoraEVB-Lite]]
 
* [[BoraEVB-Lite | BoraEVB-Lite]]
 
* [[BoraEVB | BORAEVB]]
 
* [[BoraEVB | BORAEVB]]
* [[BELK Quick Start Guide]]
+
* [[BELK/BXELK Quick Start Guide]]
* [[Application_Notes_(Bora) | Application Notes]]
 
 
* [[FAQs_(Bora) | BORA FAQs]]
 
* [[FAQs_(Bora) | BORA FAQs]]

Revision as of 13:20, 15 December 2020

Info Box
Bora5-small.jpg Applies to Bora


200px-Emblem-important.svg.png

For BELK 3.0.2 or older, the boot process was based on the FSBL+second-stage bootloader (U-Boot) combination. From BELK 4.0.0 on, the boot process is based on the first-stage bootloader (U-Boot SPL)+second-stage bootloader (U-Boot) combination.


Introduction[edit | edit source]

Belk 01.png

Bora Embedded Linux Kit (BELK for short) provides all the necessary components required to set up the developing environment for:

  • building the first-stage bootloader:
    • FSBL for BELK 3.0.2 or older
    • U-boot SPL for BELK 4.0.0 or newer
  • building the second-stage bootloader (U-Boot)
  • building and running Linux operating system on Bora-based systems
  • building Linux applications that will run on the target.

DAVE Embedded Systems provides all the customization required (in particular at bootloader and Linux kernel levels) to enable customers to use the standard Zynq-7000 development tools for building all the firmware/software components that will run on the target system.

Kit content[edit | edit source]

Component Description Notes
Bora5-small.jpg Bora SOM (p/n DBRF5110C1R)
  • SoC: Xilinx XC7Z030 (866Mhz, Speed "-3", Tj 0-100°C)
  • SDRAM: 1 GB DDR3
  • NOR: bootable SPI flash 16 MB
  • NAND: 1GB (SLC)
  • For more details, please refer to the Bora Hardware Manual
  • By default, ARM cores frequency is set to 667 MHz and the example Vivado project is implemented for a "-1" device. This choice makes the software released with the kit compatible with possible variants based on different SoM models. In this regard, see also the order codes section.
Boraevb-02.png BORA Carrier board Se also the BoraEVB page
Alimentatore.jpg AC/DC Single Output Wall Mount adapter
Output: +12V – 2.0 A
Please refer to Belk Quick Start Guide
ProdSDC-MBLY-thumb.png MicroSDHC card with SD adapter and USB adapter Please refer to Belk Quick Start Guide

Order codes[edit | edit source]

Order code Description
BELK-L-S This code refers to the default configuration detailed above
BELK-L-S-D This variant is like BELK-L-S, except the SOM, which is DBRD4110I2R.

Logical structure of Bora Embedded Linux Kit (BELK)[edit | edit source]

Please refer to this page.

BELK software components[edit | edit source]

Please refer to this page.

Quick start guide[edit | edit source]

Please refer to this page.

Physical devices mapping[edit | edit source]

Please refer to this page.

Advanced topics[edit | edit source]

Debugging with Eclipse[edit | edit source]

Please refer to this page.

ConfigID feature[edit | edit source]

Please refer to this page.

Related Documents[edit | edit source]