Diva Embedded Linux Kit (DIVELK for short) provides all the necessary components required to set up the developing environment to:
* build the bootloader (U-Boot)
* build and run Linux operating system on Diva-based systems
* build Linux applications that will run on the target.
The main kit components are:
* hardware platform composed by Diva system-on-module (SOM for short) and carrier board. Supported carrier boards are:
** DivaEVB-Lite standalone
** DivaEVB-Lite plugged on Dacu carrier board
* Development virtual machine containing:
** Toolchain
** U-Boot bootloader sources
** Linux kernel sources
** Build system
** Pre-built root file systems
* Technical documentation such hardware manuals, mechanical drawings, reference schematics, application notes etc.
The documents related to the software issues help the user to quickly start configuring the bootloader and the operating system, by hiding most of the complexity of the underlying hardware. For more details about Diva hardware characteristics, please refer to the Diva Hardware Manual. An account for the reserved area of [http://www.dave.eu '''DAVE Embedded Systems''' website] is required to access the kit contents.
|Please refer to [[Software Manual Diva_Embedded_Linux_Kit_(DivaDIVELK) #Target_setup_and_first_boot | Diva Software ManualFirst boot]]|-|} == DIVELK software components == '''DAVE Embedded Systems''' adds to the latest AMSDK from Texas Instruments the customization required to support the DIVA platform. For this reason most of the documentation provided by TI remains valid for the DIVELK development kit. However, some customization is required, in particular at bootloader and linux kernel levels. The following table shows how DIVELK releases are related to <b>AMSDK</b> or <b>Processor SDK</b> releases.{| class="wikitable" !! colspan="6" | DIVELK version|-|Release number|1.0.0|2.0.0|2.1.0|2.2.0|3.0.0|4.0.2|-|Status|Released|Released|Released|Released|Released|Released|-|Release date|June 2013|October 2014|June 2015|October 2015|June 2017|May 2019|-|'''Release notes'''|[[Diva_Embedded_Linux_Kit_(DIVELK)#DIVELK_1.0.0 | Ver 1.0.0]]|[[Diva_Embedded_Linux_Kit_(DIVELK)#DIVELK_2.0.0 | Ver 2.0.0]]|[[Diva_Embedded_Linux_Kit_(DIVELK)#DIVELK_2.1.0 | Ver 2.1.0]]|[[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|CS133012A|CS133012C|CS133012C|CS133012C|CS133012C |CS133012C |-|Supported carrier boards|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]|[[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]]|-|U-Boot version|2012.10-divelk-1.0.0|2013.10-divelk-2.0.0|2013.10-divelk-2.1.0|2013.10-divelk-2.2.0|2015.07-divelk-3.0.0 |2017.01-divelk-4.0.2 |-|Linux version|3.2.0-divelk-1.0.0|3.12.10-divelk-2.0.0|3.12.10-divelk-2.1.0|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 05.06.00.00|AMSDK 07.00.00.00|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 Dylan (1.4)|Yocto Dylan (1.4)|Yocto Fido (1.8) |Yocto Morty (2.2)|-|Graphic libraries|Qt 4.8.4|Qt 4.8.4<br>Qt 5.x|Qt 4.8.4<br>Qt 5.3|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==== All binary images for DIVELK are hosted on [[mirror:diva|DAVE Embedded System mirror server]]. There you can find a sub directory for each version of this development kit. A summary of images with a brief description can be found into the table below: {{ImportantMessage|text=In order to boot Linux from SD card files, '''the binary files must be renamed''' as follows:U-boot 1st stage <code>MLO</code> U-boot file <code>u-boot.img</code>}} {| class="wikitable"|-! Image !! colspan="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="4" style="text-align: center" | Ampire 800 x 480 7" LVDS 262K colors (RGB666)|-| Touchscreen || colspan="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" exitfi if [ "$(whoami)" != "root" ]then echo "you must be root to run this script!" exitfi if ! [[ -b $1 ]]then echo "$1 is not a valid block device!" exitfi if ! [[ -d $2 ]]then echo "Incorrect Binaries location!" exitfi if ! [[ -f $3 ]]then echo "Incorrect rootfs location!" exitfi DRIVE=$1if [[ "$DRIVE" == *"mmcblk"* ]]then echo "You're using a mmc device, I need to fix partition names" PART="p"else PART=""fiBINARIES=$2RFS=$3 echo "All data on "$DRIVE" now will be destroyed! Continue? [y/n]"read ansif ! [ $ans == 'y' ]then exitfi 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) sfdisksfdisk --help | grep -- -H if [ "$?" -eq "0" ]then { echo 10,1380,0x0c,* echo 1390,,83,- } | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVEelse{ echo 10,4086M,0x0c,* echo 4096M,,83,-} | sfdisk $DRIVEfi partprobe echo "[Making filesystems...]"mkfs.vfat -F 32 -n BOOT "$DRIVE$PART"1 #> /dev/nullmkfs.ext3 -L ROOTFS "$DRIVE$PART"2 #> /dev/null echo "[Copying files...]" binaries_dir=${BINARIES%/}mount "$DRIVE$PART"1 /mntcp -av --no-preserve=ownership $binaries_dir/* /mnt/umount "$DRIVE$PART"1 echo "[Extracting rfs (this may take a while...)]"mount "$DRIVE$PART"2 /mnttar jxf $RFS -C /mnt > /dev/nullchmod 755 /mntumount "$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 [[Diva_Embedded_Linux_Kit_(DIVELK)#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.|-|} === DIVELK 3.0.0 === * Release date: June 2017* Status: Released* Processor SDK version: 02.00.02* Supported carrier boards: DIVAEVB-Lite, Dacu, SBC-DIVA ==== Notes ==== * Major update release to TI Processor SDK* Updated kernel and u-boot according to TI Processor SDK* Qt 5.5 support on top of Weston* DIVELK Virtual Machine with updated cross-toolchain ([[Managed_Virtual_Machine_(MVM)|MVM]] generated) ==== 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.|-|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.0wget https://mirror.dave.eu/diva/divelk-3.0.0/update/environment-setup.patchpatch < 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.0dvdk@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.patchResolving mirror.dave.eu (mirror.dave.eu)... 79.143.179.155Connecting to mirror.dave.eu (mirror.dave.eu)|79.143.179.155|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 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.patchpatching file environment-setup-cortexa8hf-vfp-neon-linux-gnueabi dvdk@vagrant-ubuntu-trusty-64:~/diva/sdk/divelk-3.0.0$ </pre> === DIVELK older releases === For DIVELK older releases information, please click on Expand here below (on the right) <div class="mw-collapsible mw-collapsed"> '''N.B.''' '''Customers who want to update from DIVELK 1.0.0 to DIVELK 2.x.x can send an email to [mailto:support-diva@dave.eu support-diva@dave.eu]'''. === DIVELK 2.2.0 === * Release date: October 2015* Status: Released* AMSDK version: 07.00.00.00* Supported carrier boards: DIVAEVB-Lite, Dacu, SBC-DIVA ==== Notes ==== {{ImportantMessage|text=It's highly recommended to read the [[ConfigID_and_UniqueID]] page.}}* Maintenance release* Bug fixes* Added support for SBC-DIVA* Updated kernel and u-boot versions ==== 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|Yocto|ADT|The Yocto ADT plugin for Eclipse doesn't work|-|0003|Linux|Audio|Codec on the DACU board doesn't work out-of-the-box. A software patch is required, please contact [mailto:support-diva@dave.eu support-diva@dave.eu] for information on how to enable the audio codec.