Changes

Jump to: navigation, search

Diva Embedded Linux Kit (DIVELK)

8,679 bytes added, 10:42, 11 June 2019
Target configuration for the development stage (net_nfs)
!Notes
|-
|style="text-align: center;" | [[File:Diva-400.png|60px]]
|Diva SOM<br>CPU: TI AM3359<br>SDRAM: 512 MB DDR3<br>NOR: bootable SPI flash 32 MB<br>NAND: 1GB
|Please refer to [[Hardware Manual (Diva) | Diva Hardware Manual]]
|-
|style="text-align: center;" | [[File:Divaevb-divelk 01.png|40px]]
|Diva-EVB-Lite Carrier board
|Please refer to [[DivaEVB-Lite | DivaEVB-Lite]] page
|-
|style="text-align: center;" | [[File:Dacu-top-view.png|80px]]
|Dacu Carrier board
|Please refer to [[Dacu | Dacu]] page
|-
|style="text-align: center;" | [[File:Display.jpg|60px]]
|Ampire AM-800480STMQW<br>7” 800x480 LCD display<br>LVDS interface
|Please refer to [[Diva_Embedded_Linux_Kit_(DIVELK)#Target_setup_and_first_boot | First boot]]
|-
|style="text-align: center;" | [[File:Alimentatore.jpg|40px]]
|AC/DC Single Output Wall Mount adapter<br>Output: +12V – 2.0 A
|Please refer to [[Diva_Embedded_Linux_Kit_(DIVELK)#Target_setup_and_first_boot | First boot]]
|-
|style="text-align: center;" | [[File:Cavetto-seriale2.jpg|50px]]
|DB9 Male Serial port adapter
|Please refer to [[Diva_Embedded_Linux_Kit_(DIVELK)#Target_setup_and_first_boot | First boot]]
|-
|style="text-align: center;" | [[File:ProdSDC-MBLY-thumb.png|50px]]
|MicroSDHC card with SD adapter and USB adapter
|Please refer to [[Diva_Embedded_Linux_Kit_(DIVELK)#Target_setup_and_first_boot | First boot]]
{| class="wikitable"
!
!colspan="56" | DIVELK version
|-
|Release number
|2.2.0
|3.0.0
|4.0.2
|-
|Status
|Released
|Released
|Released
|October 2015
|June 2017
|May 2019
|-
|'''Release notes'''
|[[Diva_Embedded_Linux_Kit_(DIVELK)#DIVELK_2.2.0 | Ver 2.2.0]]
|[[Diva_Embedded_Linux_Kit_(DIVELK)#DIVELK_3.0.0 | Ver 3.0.0]]
|[[Diva_Embedded_Linux_Kit_(DIVELK)#DIVELK_4.0.2 | Ver 4.0.2]]
|-
|SOM PCB version
|CS133012C
|CS133012C
|CS133012C
|CS133012C
|-
|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]
|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]
|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]<br>[[:Category:SBC-DIVA | SBC-DIVA]]
|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]<br>[[:Category:SBC-DIVA | SBC-DIVA]]
|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]<br>[[:Category:SBC-DIVA | SBC-DIVA]]
|2013.10-divelk-2.2.0
|2015.07-divelk-3.0.0
|2017.01-divelk-4.0.2
|-
|Linux version
|3.12.10-divelk-2.2.0
|4.1.18-divelk-3.0.0(LTS)
|4.9.28-divelk-4.0.2(LTS)
|-
|Drivers
|valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>
Audio (ALSA)
|valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>Audio (ALSA)<br>USB OTG<br>CAN(*)<br>ADC|valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>Audio (ALSA)<br>USB OTG<br>CAN(*)<br>ADC<br>Splash screen in u-boot<br>[[ConfigID_and_UniqueID | ConfigID]]|valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>Audio (ALSA)<br>USB OTG<br>CAN(*)<br>ADC<br>Splash screen in u-boot<br>[[ConfigID_and_UniqueID | ConfigID]]|valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>Audio (ALSA)<br>USB OTG<br>CAN(*)<br>ADC<br>Splash screen in u-boot<br>[[ConfigID_and_UniqueID | ConfigID]]| valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>Audio (ALSA)<br>USB OTG<br>CAN (*)<br>ADC<br>Splash screen in u-boot<br>[[ConfigID_and_UniqueID | ConfigID]]
|-
|TI
|AMSDK 07.00.00.00
|AMSDK 07.00.00.00
|Processor SDK 02.00.02 |Processor SDK 04.00.00
|-
|Build System
|Yocto Dylan (1.4)
|Yocto Fido (1.8)
|Yocto Morty (2.2)
|-
|Graphic libraries
|Qt 4.8.4<br>Qt 5.3
|Qt 5.5
|Qt 5.7.1
|-
|}
 
'''(*) CAN''' support is limited to CAN driver and dtb configuration: '''ONLY''' SBCD Eval Kit has CAN PHY installed on board. DIVELK Evaluation Kit has to be properly hardware modified for providing ''Physical'' access to external CAN bus interface
====Downloadable binary images====
{| class="wikitable"
|-
! Image !! colspan=5"2" |DIVELK version 3.0.0||colspan="2" |DIVELK version 4.0.2
|-
| Platform || DIVELK || SBCD || DIVELK || SBCD
|-
| Carrier Board [[ConfigID_and_UniqueID | ConfigID]]|| 0001 || 0002|| 0001 || 0002
|-
| LCD panel || colspan=2 "4" style="text-align: center" | Ampire 800 x 480 7" LVDS 262K colors (RGB666)
|-
| Touchscreen || colspan=2 "4" style="text-align: center" | resistive
|-
| bootscript || colspan="2 " style="text-align: center" |[[mirror:diva/divelk-3.0.0/boot.scr|boot.scr]]||colspan="2" style="text-align: center" |[[mirror:diva/divelk-4.0.2/boot.scr|boot.scr]]
|-
| U-Boot || colspan="2 " style="text-align: center" |[[mirror:diva/divelk-3.0.0/divelk-3.0.0_diva_MLO|u-boot (MLO)]]<br>[[mirror:diva/divelk-3.0.0/divelk-3.0.0_diva_spiboot_MLO.byteswap|u-boot SPI (MLO)]]<br>[[mirror:diva/divelk-3.0.0/divelk-3.0.0_diva_spiboot_u-boot.img|u-boot SPI]]<br>[[mirror:diva/divelk-3.0.0/divelk-3.0.0_diva_nandboot_MLO|u-boot NAND (MLO)]]<br>[[mirror:diva/divelk-3.0.0/divelk-3.0.0_diva_nandboot_u-boot.img|u-boot NAND]]<br>||colspan="2" style="text-align: center" |[[mirror:diva/divelk-4.0.2/divelk-4.0.2_diva_MLO|u-boot (MLO)]]<br>[[mirror:diva/divelk-4.0.2/divelk-4.0.2_diva_spiboot_MLO.byteswap|u-boot SPI (MLO)]]<br>[[mirror:diva/divelk-4.0.2/divelk-4.0.2_diva_spiboot_u-boot.img|u-boot SPI]]<br>[[mirror:diva/divelk-4.0.2/divelk-4.0.2_diva_nandboot_MLO|u-boot NAND (MLO)]]<br>[[mirror:diva/divelk-4.0.2/divelk-4.0.2_diva_nandboot_u-boot.img|u-boot NAND]]<br>
|-
| Linux kernel || colspan="2 " style="text-align: center" |[[mirror:diva/divelk-3.0.0/divelk-3.0.0_uImage|uImage]]|| colspan="2" style="text-align: center" |[[mirror:diva/divelk-4.0.2/divelk-4.0.2_uImage|uImage]]
|-
| kernel modules || colspan="2" style="text-align: center" |[[mirror:diva/divelk-3.0.0/divelk-3.0.0_modules.tar.gz|modules]]|| colspan="2" style="text-align: center" |[[mirror:diva/divelk-4.0.2/divelk-4.0.2_modules.tar.gz|modules]]|-| Device tree || [[mirror:diva/divelk-3.0.0/divelk-3.0.0_am335x-divelk.dtb|am335x-divelk.dtb]] || [[mirror:diva/divelk-3.0.0/divelk-3.0.0_am335x-sbcd.dtb|am335x-sbcd.dtb]]|| [[mirror:diva/divelk-4.0.2/divelk-4.0.2_am335x-divelk.dtb|am335x-divelk.dtb]] || [[mirror:diva/divelk-4.0.2/divelk-4.0.2_am335x-sbcd.dtb|am335x-sbcd.dtb]]
|}
 
=== DIVELK microSD Layout ===
The microSD card provided with DIVELK is partitioned as shown in the following image:
 
 
[[File:DIVELK-uSD-partitioning.png|thumb|center|300px|microSD card partitioning]]
 
Most of storage space is occupied by two partitions:
*a <code>FAT32</code> partition (<code>mmcblk0p1</code>) containing:
**U-Boot <code>bootscript</code>
**Linux kernel and DTB binary images
**DIVELK virtual machine image in OFV format ([[Managed_Virtual_Machine_(MVM)|MVM]] basic version)
**7-zip Windows executable file
*an <code>ext3</code> partition (<code>mmcblk0p2</code>) containing the root file system for the target.
 
<code>bootscript</code> and root file system are used to boot the target as described in [[#Target_setup_and_first_boot|this section]].
 
It is worth remembering that the microSD card is bootable, because U-Boot image files ('''MLO''' and '''u-boot.img''') and kernel image ('''uImage''') are present into first FAT32 partition: filename '''MUST''' be the one written before.
 
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====
For creating a bootable microSD card, simply follows the following steps:
* create two partition: first partition FAT32 and a second partition ext3
* mark as "bootable" the first partition (using for example <code>gparted</code> on VM)
* copy MLO, u-boot.img and boot.scr on FAT32 partition
** copy kernel and dtb on the same partition
** all files can be retrieved from [[Diva_Embedded_Linux_Kit_(DIVELK)#Downloadable_binary_images|here]]
* extract rfs on ext3 partition
 
Alternatively, it is also possible to create a bootable sd using this script:
<pre>
#!/bin/bash
 
if [[ -z $1 || -z $2 || -z $3 ]]
then
echo "$0 Usage:"
echo " $0 <device> <binaries directory> <rootfs tar.bz2>"
echo " Example: $0 /dev/sdc binaries/ rootfs.tar.bz2"
exit
fi
 
if [ "$(whoami)" != "root" ]
then
echo "you must be root to run this script!"
exit
fi
 
if ! [[ -b $1 ]]
then
echo "$1 is not a valid block device!"
exit
fi
 
if ! [[ -d $2 ]]
then
echo "Incorrect Binaries location!"
exit
fi
 
if ! [[ -f $3 ]]
then
echo "Incorrect rootfs location!"
exit
fi
 
DRIVE=$1
if [[ "$DRIVE" == *"mmcblk"* ]]
then
echo "You're using a mmc device, I need to fix partition names"
PART="p"
else
PART=""
fi
BINARIES=$2
RFS=$3
 
echo "All data on "$DRIVE" now will be destroyed! Continue? [y/n]"
read ans
if ! [ $ans == 'y' ]
then
exit
fi
 
echo "[Partitioning $1...]"
 
dd if=/dev/zero of=$DRIVE bs=1024 count=1024
 
SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
 
echo DISK SIZE - $SIZE bytes
 
CYLINDERS=`echo $SIZE/255/63/512 | bc`
 
# check if we're running an old (e.g. 2.20.x) or new (e.g. 2.24.x) sfdisk
sfdisk --help | grep -- -H
 
if [ "$?" -eq "0" ]
then
{
echo 10,1380,0x0c,*
echo 1390,,83,-
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
else
{
echo 10,4086M,0x0c,*
echo 4096M,,83,-
} | sfdisk $DRIVE
fi
 
partprobe
 
 
echo "[Making filesystems...]"
mkfs.vfat -F 32 -n BOOT "$DRIVE$PART"1 #> /dev/null
mkfs.ext3 -L ROOTFS "$DRIVE$PART"2 #> /dev/null
 
echo "[Copying files...]"
 
binaries_dir=${BINARIES%/}
mount "$DRIVE$PART"1 /mnt
cp -av --no-preserve=ownership $binaries_dir/* /mnt/
umount "$DRIVE$PART"1
 
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 "[Done]"
</pre>
 
To use this script, simply copy its content to a mksd.sh file.
 
Then, run:
<pre>
chmod a+x mksd.sh
</pre>
to give executable permissions to the file.
 
Once this has been done, insert a 16gb microsd card and run:
 
<pre>
./mksd /dev/sdX binaries-folder rootfs.tar.bz2
</pre>
The script will partition the sd card and copy the binaries and rootfs to the correct partition on the sd card.
The operation will take few minutes.
=== DIVELK Updates ===
{{ImportantMessage|text=It's recommended to use the latest available DIVELK version. Customer who want to update to the latest DIVELK release can send an email to [mailto:support-diva@dave.eu support-diva@dave.eu]. Please refer to [[Software_Manual_Diva_Embedded_Linux_Kit_(DivaDIVELK)#Release notes Release_notes| Release notes]] for further information.}} {{ImportantMessage|text='''N.B.''' '''Customers who want to update from DIVELK 2.x.x to DIVELK 3.0.0 or DIVELK 4.0.x must install new DIVELK VM'''.}}
== Release notes ==
=== DIVELK 4.0.2 ===
 
* Release date: May 2019
* Status: Released
* Processor SDK version: 04.00.00
* Supported carrier boards: DIVAEVB-Lite, Dacu, SBC-DIVA
** added support for NOR ISSI SPI
 
==== Notes ====
* Fix of manual reset for the gigabit ethernet phy eht1 for SBCD boards.
 
==== Known limitations ====
{| class="wikitable"
|-
!Issue #
!Component
!Subsystem
!Description
|-
|0001
|Linux
|USB
|USB0, when configured as OTG, requires loading of the gadget module for detecting devices (and entering host mode)
|-
|0002
|Linux
|Audio
|Codec on the DACU board does not supported anymore.
|-
|}
'''N.B.''' '''Customers who want to update from DIVELK 2.x.x to DIVELK 3.0.0 must install new DIVELK VM'''.
=== DIVELK 3.0.0 ===
* Updated kernel and u-boot according to TI Processor SDK
* Qt 5.5 support on top of Weston
* New DIVELK Virtual Machine with updated cross-toolchain ([[Managed_Virtual_Machine_(MVM)|MVM]] generated)
==== Known limitations ====
|Audio
|Codec on the DACU board does not supported anymore.
|-
|0003
|MVM
|Toolchain
|Support for C++ application cross-building failure
|-
|}
 
===== C++ cross-building patch =====
For issue <code>003</code>, please apply the following patch:
 
<pre>
cd diva/sdk/divelk-3.0.0
wget https://mirror.dave.eu/diva/divelk-3.0.0/update/environment-setup.patch
patch < environment-setup.patch
</pre>
 
The output should be something like:
 
<pre class="board-terminal">
dvdk@vagrant-ubuntu-trusty-64:~$ cd diva/sdk/divelk-3.0.0
dvdk@vagrant-ubuntu-trusty-64:~/diva/sdk/divelk-3.0.0$ wget https://mirror.dave.eu/diva/divelk-3.0.0/update/environment-setup.patch
--2018-12-18 08:37:49-- https://mirror.dave.eu/diva/divelk-3.0.0/update/environment-setup.patch
Resolving mirror.dave.eu (mirror.dave.eu)... 79.143.179.155
Connecting to mirror.dave.eu (mirror.dave.eu)|79.143.179.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1225 (1.2K) [text/x-diff]
Saving to: ‘environment-setup.patch’
 
100%[======================================>] 1,225 --.-K/s in 0s
 
2018-12-18 08:37:49 (64.4 MB/s) - ‘environment-setup.patch’ saved [1225/1225]
 
dvdk@vagrant-ubuntu-trusty-64:~/diva/sdk/divelk-3.0.0$ patch < environment-setup.patch
patching file environment-setup-cortexa8hf-vfp-neon-linux-gnueabi
dvdk@vagrant-ubuntu-trusty-64:~/diva/sdk/divelk-3.0.0$
</pre>
=== DIVELK older releases ===
|-
|}
 
=== DIVELK 2.1.0 ===
|-
|}
 
 
=== DIVELK 2.0.0 ===
===Target setup and first boot===
This section describes how to quick start DIVA board delivered along with DIVELK kit:
*connect the provided TTL/DB9 serial cable adapter to J24 J25 pin-strip connector on DACU connector as shown on picture below*insert microSD card in the DACU slot J34*optionally connect the system to Ethernet LAN by plugging cable into connector J7
*on host side start your favorite terminal that will be used to interact with the target's serial console; communication parameters are 115200-8-N-1
*optionally connect the system to Ethernet LAN by plugging cable into connector J16
*connect the provided 12V power supply to JP2 DACU connector
*insert microSD card in the DACU slot J34
{{ImportantMessage|text=Either version of MVM is installed, it provides the tools required to build [[Building_U-Boot_(DIVELK)|U-boot]] and [[Building_Linux_kernel_(DIVELK)|Linux kernel]]. It does not include the tools required to run Yocto build system instead.}}
 
 
DIVELK MVM can be downloaded [https://cloud.dave.eu/ws-reserved-area-divelk/DIVELK-3.0.0 here]. For accessing <b><i>DIVELK Reserved area</i></b> please contact our [mailto:sales@dave.eu sales department]
===Target configuration for the development stage (<code>net_nfs</code>)===
 
{{ImportantMessage|text=The default DIVELK Virtual Machine network configuration is using NAT: this allows to accessing external network (i.e. Internet) using the host computer's networking connection.
For software development using <code>net_nfs</code> with tftp/nfs protocols, please configure your VM network interface in ''Bridge mode'' (see below)}}
 
During the development stage, the target is usually connected via Ethernet LAN to the host machine and is configured to:
*retrieve binary images (i.e. Linux kernel) via TFTP protocol
*mount the development root file system via NFS protocol. This root file system is physically in the file system of the host machine as depicted [[Deploying_Embedded_Linux_Systems#The_development_environment|here]].An example of ''Bridge mode'' configuration for DIVELK can be found [[Booting_the_system_via_NFS_(DIVELK) | here]]
In DAVE Embedded Systems development kits, this configuration is generally denoted as <code>net_nfs</code>. U-Boot bootloader supports this configuration. Some U-Boot environment variables are needed to set it up. They are detailed [[Booting_Linux_Kernel#Configuration_net_nfs|here]].
For more details about TFTP and NFS servers on host side, please refer to this [[Setting_up_tftp_and_nfs|page]].
 
===Target configuration for standalone boot===
Please refer to [[Standalone_boot_(DIVELK)|this page]].
===Developing the software for the target===
Please refer to [[Developing the software for the target (DIVELK)|this page]].
==Advanced topics==
===Debugging with Eclipse===
Please refer to [[Debugging with Eclipse (MVM)|this page]].
8,154
edits

Navigation menu