Open main menu

DAVE Developer's Wiki β

Changes

AXEL ULite and SBC Lynx Embedded Linux Kit (XUELK)

3,062 bytes added, 15:50, 16 August 2019
XUELK 2.0.1/2.0.2/2.0.3
{| class="wikitable"
!
!colspan="46" | XUELK version
|-
|Release number
|1.1.0
|1.1.3
|1.2.0
|2.0.1/2.0.2/2.0.3
|-
|Release type
|Minor
|Minor
|Minor
|Major
|-
|Status
|Beta
|Released
|Released
|Released
|Released
|November 2016
|March 2017
|May 2017
|Sep 2017
|-
|Release notes
|[[#XUELK 1.1.0|1.1.0]]
|[[#XUELK 1.1.3|1.1.3]]
|[[#XUELK 1.2.0|1.2.0]]
|[[#XUELK 2.0.1/2.0.2/2.0.3|2.0.1/2.0.2/2.0.3]]
|-
|PCB version
SBC Lynx CS214515B<br>
(AXELULite CS184015) [1]
|SBC Lynx CS214515A<br>
SBC Lynx CS214515B<br>
(AXELULite CS184015)<br>
(AXELULite CS184015A) [1]
|SBC Lynx CS214515A<br>
SBC Lynx CS214515B<br>
(AXELULite CS184015)<br>
(AXELULite CS184015A) [1]
|-
|[[ConfigID_and_UniqueIDConfigID_(XUELK)|ConfigIDs]] (core/interfaces)
|0x00000008/0x0000000E
|0x00000008/0x0000000E<br>
0x00000013/NA [2]<br>
(0x0000000B/0x00000010) [1]
|0x00000008/0x0000000E<br>
0x0000000C/NA<br>
0x00000013/0x0000002D [3]<br>
0x00000013/0x0000002E [3]<br>
0x00000013/0x0000002F [3]<br>
0x00000013/0x00000030 [3]<br>
(0x0000000B/0x00000010) [1]<br>
(0x00000014/0x00000010) [1]
|0x00000008/0x0000000E<br>
0x0000000C/NA<br>
0x00000013/0x0000002D [3]<br>
0x00000013/0x0000002E [3]<br>
0x00000013/0x0000002F [3]<br>
0x00000013/0x00000030 [3]<br>
(0x0000000B/0x00000010) [1]<br>
(0x00000014/0x00000010) [1]
|-
|[[Managed_Virtual_Machine_(MVM)|MVM]] version
Virtual Box 5.1.10<br/>
Vagrant 1.8.7
|xuelk-1.2.0, tested with:<br/>
Virtual Box 5.1.10<br/>
Vagrant 1.8.7
|xuelk-2.0.0, tested with:<br/>
Virtual Box 5.1.28<br/>
Vagrant 2.0.0
|-
|U-Boot version/release
|U-Boot 2015.04/xuelk-1.1.0
|U-Boot 2015.04/xuelk-1.1.3
|U-Boot 2015.04/xuelk-1.2.1
|U-Boot 2016.03/xuelk-2.0.3
|-
|Linux version/release
|Linux 3.14.52/xuelk-1.1.0
|Linux 3.14.52/xuelk-1.1.3
|Linux 3.14.52/xuelk-1.2.1
|Linux 4.1.15/xuelk-2.0.3
|-
|Drivers
CAN<br/>
DWM<br/>
LCD<br/>
|valign="top"|UART<br/>
Ethernet<br/>
SD/MMC<br/>
USB Host<br/>
USB OTG<br/>
NOR Flash<br/>
NAND Flash<br/>
ADC<br/>
RTC<br/>
CAN<br/>
DWM (WLAN/BT)<br/>
LCD<br/>
|valign="top"|UART<br/>
Ethernet<br/>
SD/MMC<br/>
USB Host<br/>
USB OTG<br/>
NOR Flash<br/>
NAND Flash<br/>
ADC<br/>
RTC<br/>
CAN<br/>
DWM (WLAN/BT)<br/>
LCD<br/>
|-
|3.14.52_1.1.0_ga
|3.14.52_1.1.0_ga
|3.14.52_1.1.0_ga
|4.1.15-2.0.0_ga
|-
|Xenomai version
|
| 2.6.5
| 2.6.5
|
|-
|Build System
|Yocto Fido (1.8)
|Yocto Fido (1.8)
|Yocto Fido (1.8)
|Yocto Krogoth (2.1)
|-
|}
[1] Not included in the kit
[2] Carrier Board 0x00000013 (SBC Lynx CS214515B) uses same dtb file as 0x0000000C [3] Carrier Board 0x0000002D/2E/2F/30 have its own device tree file for different peripherals mapping
====Downloadable binary images====
A summary of images with a brief description can be found into the table below:
{{ImportantMessage|text=In For [[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#XUELK_software_components|XUELK releases]] 1.1.3 and older, in order to boot Linux from SD card files, '''the binary files must be renamed''' as follows:
*bootscript: <code>boot.scr</code>
*Linux kernel: <code>uImage</code>
*Device tree: <code>imx6ul-lynx-som000c.dtb</code> The default U-boot file <code>u-bootBoot enviroment variables assume in fact that these names are used.imx</code> must be stored into first raw sector of the SD card using <code>dd</code> command}}
{| class="wikitable"
|-
! rowspan=2|Image !! colspan=46|XUELK version
|-
|style="text-align: center" |1.0.0 || style="text-align: center" |1.1.0 || style="text-align: center" |1.1.3 || style="text-align: center" |1.1.3-xenomai|| style="text-align: center" |1.2.0 || style="text-align: center" |2.0.3
|-
| bootscript || [[mirror:lynx/xuelk-1.0.0/xuelk-1.0.0_boot.scr|boot.scr]] || [[mirror:lynx/xuelk-1.1.0/xuelk-1.1.0_boot.scr|boot.scr]] || colspan=2 style="text-align: center" |[[mirror:lynx/xuelk-1.1.3/xuelk-1.1.3_boot.scr|boot.scr]]|| [[mirror:lynx/xuelk-1.2.0/boot.scr|boot.scr]]|| [[mirror:lynx/xuelk-2.0.3/boot.scr|boot.scr]]
|-
| U-Boot || [[mirror:lynx/xuelk-1.0.0/xuelk-1.0.0_mx6ul_lynx_u-boot.imx|u-boot.imx]] || [[mirror:lynx/xuelk-1.1.0/xuelk-1.1.0_mx6ul_lynx_u-boot.imx|u-boot.imx]] || colspan=2 style="text-align: center" |[[mirror:lynx/xuelk-1.1.3/xuelk-1.1.2_mx6ul_lynx_u-boot.imx|u-boot.imx]] || [[mirror:lynx/xuelk-1.2.0/xuelk-1.2.1_mx6ul_lynx_u-boot.imx|u-boot.imx]] || [[mirror:lynx/xuelk-2.0.3/xuelk-2.0.3_mx6ul_lynx_u-boot.imx|u-boot.imx]]
|-
| Linux kernel || [[mirror:lynx/xuelk-1.0.0/xuelk-1.0.0_uImage|uImage]] || [[mirror:lynx/xuelk-1.1.0/xuelk-1.1.0_uImage|uImage]] || [[mirror:lynx/xuelk-1.1.3/xuelk-1.1.3_uImage|uImage]] || [[mirror:lynx/xuelk-1.1.3/xuelk-1.1.3-xeno1_uImage|xeno_uImage]] || [[mirror:lynx/xuelk-1.2.0/xuelk-1.2.1_uImage|uImage]] || [[mirror:lynx/xuelk-2.0.3/xuelk-2.0.3_uImage|uImage]]
|-
| Device tree || [[mirror:lynx/xuelk-1.0.0/xuelk-1.0.0_imx6ul-lynx-som000c.dtb|imx6ul-lynx-som000c.dtb]] || [[mirror:lynx/xuelk-1.1.0/xuelk-1.1.0_imx6ul-lynx-som000c.dtb|imx6ul-lynx-som000c.dtb]] || style="text-align: center" |[[mirror:lynx/xuelk-1.1.3/xuelk-1.1.3_imx6ul-lynx-som000c.dtb|imx6ul-lynx-som000c.dtb]] ||[[mirror:lynx/xuelk-1.1.3/xuelk-1.1.3-xeno1_imx6ul-lynx-som000c.dtb|xeno_imx6ul-lynx-som000c.dtb]] || [[mirror:lynx/xuelk-1.2.0/xuelk-1.2.1_imx6ul-lynx-som000c.dtb|imx6ul-lynx-som000c.dtb]]<br>[[mirror:lynx/xuelk-1.2.0/xuelk-1.2.1_imx6ul-lynx-som0013-cb002f.dtb|imx6ul-lynx-som0013-cb002f.dtb]] || [[mirror:lynx/xuelk-2.0.3/xuelk-2.0.3_imx6ul-lynx-som000c.dtb|imx6ul-lynx-som000c.dtb]]<br>[[mirror:lynx/xuelk-2.0.3/xuelk-2.0.3_imx6ul-lynx-som0013-cb002f.dtb|imx6ul-lynx-som0013-cb002f.dtb]]
|-
| Root file system || [[mirror:lynx/xuelk-1.0.0/xuelk-1.0.0_lynx-image-gui-sbc-lynx.tar.bz2|gui-sbc-lynx]] || [[mirror:lynx/xuelk-1.1.0/xuelk-1.1.0_lynx-image-gui-sbc-lynx.tar.bz2|gui-sbc-lynx]] <br>[[mirror:lynx/xuelk-1.1.0/xuelk-1.1.0_lynx-image-networking-sbc-lynx.tar.bz2|networking-sbc-lynx]] || [[mirror:lynx/xuelk-1.1.3/xuelk-1.1.3_lynx-image-networking-sbc-lynx.tar.bz2|networking-sbc-lynx]] || [[mirror:lynx/xuelk-1.1.3/xuelk-1.1.3_lynx-image-networking-sbc-lynx-xeno.tar.bz2|networking-sbc-lynx-xeno]] || [[mirror:lynx/xuelk-1.2.0/xuelk-1.2.0_lynx-image-networking-sbc-lynx.tar.bz2|networking-sbc-lynx]] || [[mirror:lynx/xuelk-2.0.1/xuelk-2.0.1_lynx-image-networking-sbc-lynx.tar.bz2|networking-sbc-lynx]]
|}
It is worth remembering that the microSD card is [[Booting_options_(SBC_Lynx)|bootable]], because U-Boot image is stored at address 0x400. However, even if U-Boot is run from the microSD card, '''the environment is retrieved from NOR flash'''.
====How to create a bootable microSD card====
The following script can be used Please refer to create a bootable microSD cardthis [[How_to_create_a_bootable_microSD_card_(XUELK)|this page]]. Is has been tested with 16 GB microSD cards. In case you have a different size, you'll need to change the <code>sfdisk</code> parameters accordingly. The resulting card is partitioned as depicted in the previous section.<pre>#!/bin/bash
if [[ -z $1 || -z $2 || -z $3 || -z $4 ]]then echo "$0 Usage:" echo " $0 <device> <u-boot.imx> <binaries directory> <rootfs tar.bz2>" echo " Example: $0 /dev/sdc u-boot.imx binaries/ rootfs.tar.bz2" exitfi=== XUELK updates ===
if {{ImportantMessage|text=It's recommended to use the latest available XUELK version. Please refer to [ "$(whoami)" != "root" [#Release notes | Release notes]]then echo "you must be root to run this script!" exitfifor further information.}}
if ! XUELK updating process consists of updating the [[ -b $1 Managed_Virtual_Machine_(MVM)|Managed Virtual Machine]]then echo "$1 it is not a valid block device!" exitfibased on. The procedure is described [[Managed_Virtual_Machine_(MVM)#Updating_MVM|here]].
Please note that this process '''implicitly updates git source code repositories of U-Boot and/or Linux kernel'''. Thus '''it is strongly recommended to create new local branches if ! [[ -e $2 ]]then echo "Incorrect u-bootyou need to modify source code'''.imx location!" exitfi
if ! [[ -d $3 ]]then echo "Incorrect Binaries location!" exitfi==== Updating git repositories ====
if ! [[ -f $4 ]]then echo "Incorrect rootfs location!" exitfiIn XUELK, the following source trees are clones of '''DAVE Embedded Systems''' public git repositories:
DRIVE{| class=$1if [[ "$DRIVE" == *wikitable"mmcblk"* ]]then|- echo "You're using a mmc device, I need to fix partition names"!| Component PART="p"!GIT Remoteelse!XUELK Installation Directory PART=""|-fi|LinuxUBOOT=$|git@git.dave.eu:lynx/linux-2.6-imx.git|/home/dvdk/lynx/linux|-|U-Boot|git@git.dave.eu:lynx/u-boot-imx.git|/home/dvdk/lynx/u-boot|-|Yocto BSP|git@git.dave.eu:lynx/lynx-bsp.git|/home/dvdk/lynx/lynx-bspBINARIES=$3|-RFS=$4|}
echo "All data on "$DRIVE" now will This means that these components can be destroyed! Continue? [y/n]"read ansif ! [ $ans == kept in sync and up to date with 'y' ]then exitfi'DAVE Embedded Systems''' repositories.
echo "[Partitioning $1...]"=== Release notes ===
dd if==== XUELK 2.0.1/dev2.0.2/zero of2.0.3 ==$DRIVE bs=1024 count=1024
SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`==== Notes 2.0.3 =====
echo DISK SIZE - $SIZE bytes* Add support for ISSI SPI NOR flash
CYLINDERS=`echo $SIZE/255/63/512 | bc`==== Notes 2.0.2 =====
{ echo 10,1380,0x0c,* echo 1390,,83,-} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVEsudo partprobeUpdate Yocto BSP to latest Krogoth to fix WPA2 key replay security bug (for more details see [http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?h=krogoth&id=54e3f82bd77203c3d578e26c86506e6ef5c27000])
echo "[Making filesystems===== Notes 2.0.1 =====Major update on XUELK 1.2.]"0:mkfs* BSP update to NXP 4.vfat -F 32 -n BOOT "$DRIVE$PART"1 #> /dev/nullmkfs.ext3 15-L ROOTFS "$DRIVE$PART"2 #> /dev/null.0.0_ga* Minor fixes for Wifi and BT
echo "[Copying files...]"===== Known issues and limitations =====
binaries_dir=${BINARIES%/}mount "$DRIVE$PART"1 /mntcp -av --no-preserve=ownership $binaries_dir/* /mnt/umount "$DRIVE$PART"1The following table reports the known limitations of this XUELK release:
echo "[Extracting rfs (this may take a while...)]"
mount "$DRIVE$PART"2 /mnt
tar jxf $RFS -C /mnt > /dev/null
chmod 755 /mnt
umount "$DRIVE$PART"2
echo {| class="[Programming uwikitable" |-!Limitations!Description|-|USB OTG Current Limit|USB OTG current limit is set at 75mA in Host mode|-boot.imx]"dd if=$UBOOT of=$DRIVE bs=1k seek=1|Low Power Idle not supported|Low Power Idle is not supported in this release|}
echo "[Done]"</pre>==== XUELK 1.2.0 ====
Here is an example that shows how to use this script to program a bootable microSD card, containing the binaries delivered along with the XUELK 1.1.3.===== Notes =====
=== Minor update on XUELK updates ===1.1.3:* add CPU temperature for thermal thresholds settings* add rf kill support for Bluetooth on device tree* add [[ConfigID and UniqueID|ConfigID]] support for different hardware configurations: SOM_ConfigID and CB_ConfigID* minor fixes and enhancement
{{ImportantMessage|text=It's recommended to use the latest available XUELK version. Please refer to [[#Release notes | Release notes]] for further information.}}==== Known issues and limitations =====
The following table reports the known limitations of this XUELK updating process consists of updating the [[Managed_Virtual_Machine_(MVM)|Managed Virtual Machine]] it is based on. The procedure is described [[Managed_Virtual_Machine_(MVM)#Updating_MVM|here]].release:
Please note that this process '''implicitly updates git source code repositories of U-Boot and/or Linux kernel'''. Thus '''it is strongly recommended to create new local branches if you need to modify source code'''.
{| class=== Release notes ==="wikitable" |-!Issue!Description|-|USB OTG Current Limit|USB OTG current limit is set at 75mA in Host mode|-|Low Power Idle not supported|Low Power Idle is not supported in this release|-|Bridged network configuration without DHCP server|See [[VirtualBox_Network_Configuration#LXDE|this section]].|}
==== XUELK 1.1.3 ====
This chapter describes how to quickly start working with the XUELK kit. The following paragraphs will guide you through the setup and installation procedures.
===Kit registration===
{{ImportantMessage|text='''Customers are strongly recommended to register their kits'''. Registration grants access to reserved material such as source code and additional documentation.}} To register the kit, please send an email to [mailto:support-lynx@dave.eu support-lynx@lynx.eu], [[Development_Kits_Identification_Codes|providing the kit P/N and S/N]].
Please register your development kit by sending an email If you also wish to access git repositories containing source code, please follow the procedure described [[mailto:support-lynx@dave.eu support-lynx@dave.euAccessing_DAVE_Embedded_Systems_restricted_git_repositories|here]], providing the kit P/N and CODE.}}
===Target setup and first boot===
This section describes how to quick start SBC Lynx board delivered along with XUELK kit(see also the following image):
*connect a TTL/USB serial cable to J42 connector; J42 pinout is:
** 1: TX data
* change dir to the ext3 SD card partition
* delete previous files and extract new files from tarball archive as described [[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)#Update_rfs_on_target|here]]
===Developing the software for the target===
Please refer to [[Developing the software for the target (XUELK)|this page]].
==Physical devices mapping==
8,186
edits