SDV04 Embedded Linux Kit (SDVX)

From DAVE Developer's Wiki
Jump to: navigation, search
Info Box
SDVX.png Applies to SDVX

Introduction[edit | edit source]

SDV04 with AxelLite SOM
SDV04 with AxelULite SOM

SDVX Embedded Linux Kit 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 SDV03 and SDV04 carrier board
  • build and debug applications that will be executed on top of Yocto-based Linux distribution running on the target.

The main kit components are:

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. Reading of the Managed Virtual Machine documentation is strongly recommended, as it plays a major role in the SDVX organization.

For more details about SDV04 hardware characteristics, please refer to the SDV04 Hardware Manual. An account for the reserved area of DAVE Embedded Systems website is required to access the kit contents.

Kit Contents[edit | edit source]

Component Description Notes
Axel-lite 06.jpg Axel Lite SOM
CPU: Freescale i.MX6
SDRAM: 1 GB DDR3
NOR: bootable SPI flash 16 MB
NAND: 1GB
Please refer to Axel Lite Hardware Manual
AXEL ULite-top.png Axel ULite SOM
CPU: Freescale i.MX6UL
SDRAM: 512MB DDR3
NOR: bootable SPI flash 16 MB
NAND: 1GB
Please refer to Axel ULite Hardware Manual
SDV04.png SDV04 Carrier board Please refer to SDV04 page
SDV03.png SDV03 Carrier board Please refer to SDV03 page
Alimentatore.jpg AC/DC Single Output Wall Mount adapter
Output: +12V – 2.0 A
Please refer to SDVX Quick start guide
Cavetto-seriale2.jpg DB9 Male Serial port adapter Please refer to SDVX Quick start guide
ProdSDC-MBLY-thumb.png MicroSDHC card with SD adapter and USB adapter Please refer to SDVX Quick start guide

Additional documentation[edit | edit source]

SDVX documentation is provided on Wiki product pages. The most important documents are listed below:

SDVX software components[edit | edit source]

DAVE Embedded Systems adds to the latest Linux BSP from NXP/Freescale the customization required to support the Axel platform. For this reason most of the documentation provided by NXP/Freescale remains valid for the SDVX development kit. However, some customization is required, in particular at bootloader and linux kernel levels.

The following table reports the SDVX releases information.

SDVX version
Release number 1.0.0 1.0.1 1.0.4 1.0.5
Release type Major Minor Minor Minor
Status Released Released Released Released
Release date September 2018 October 2018 February 2019 March2020
Release notes Ver 1.0.0 Ver 1.0.1 Ver 1.0.4 Ver 1.0.5
PCB version SDV04 CS073817
SDV03 CS041718
SDV04 CS073817
SDV03 CS041718
SDV04 CS073817
SDV04 CS073817A
SDV03 CS041718
SDV03 CS041718A
SDV04 CS073817
SDV04 CS073817A
SDV04 CS073817B
SDV03 CS041718
SDV03 CS041718A
SDV05 CS114119
SOM PCB version Axel Lite: CS335013C
Axel ULite:CS184015B
Axel Lite: CS335013C
Axel ULite:CS184015B
Axel Lite: CS335013C
Axel ULite:CS184015B
Axel Lite: CS335013C
Axel ULite:CS184015B
Supported carrier boards SDV04 SDV03 SDV04 SDV03 SDV04 SDV03 SDV04 SDV05
U-Boot version 2016.03-sdvx-1.0.0 2016.03-sdvx-1.0.1 2016.03-sdvx-1.0.2 2016.03-sdvx-1.0.5
Linux version 4.1.15-sdvx-1.0.0 4.1.15-sdvx-1.0.1 4.1.15-sdvx-1.0.4 4.1.15-sdvx-1.0.5
Drivers SPI NOR Flash (boot)
UART debug (2-wire)
USB Host
USB OTG
SD/MMC1
eMMC/SD2
Touch screen controller
EMAC
LVDS0
NAND
RTC
I2C
SPI
ConfigID
Splash screen
SPI NOR Flash (boot)
UART debug (2-wire)
USB Host
USB OTG
SD/MMC1
eMMC/SD2
Touch screen controller
EMAC
LVDS0
NAND
RTC
RTC(M41T83)
I2C
SPI
Bluetooth(NINA B112)
ConfigID
Splash screen
SPI NOR Flash (boot)
UART debug (2-wire)
USB Host
USB OTG
SD/MMC1
eMMC/SD2
Touch screen controller
EMAC
LVDS0
NAND
RTC
RTC(M41T83)
I2C
SPI
Bluetooth(NINA B112)
ConfigID
Splash screen
Wifi USB
SPI NOR Flash (boot)
UART debug (2-wire)
USB Host
USB OTG
SD/MMC1
eMMC/SD2
Touch screen controller
EMAC
LVDS0
NAND
RTC
RTC(M41T83)
I2C
SPI
Bluetooth(NINA B112)
ConfigID
Splash screen
Wifi USB
NXP/Freescale BSP version L4.1.15-1.2.0-GA L4.1.15-1.2.0-GA L4.1.15-1.2.0-GA L4.1.15-1.2.0-GA
Graphic libraries Qt 5.9.2 Qt 5.9.2 Qt 5.9.2 Qt 5.9.2
Build System Yocto Krogoth (2.1) Yocto Krogoth (2.1) Yocto Krogoth (2.1) Yocto Krogoth (2.1)
Android Marshmallow 6.0.1 Marshmallow 6.0.1 Marshmallow 6.0.1 Marshmallow 6.0.1

Downloadable binary images[edit | edit source]

All binary images for SDVX are hosted on 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:


200px-Emblem-important.svg.png

In order to boot Linux from SD card files, the binary files must be renamed as follows:

  • bootscript: boot.scr

U-boot file u-boot.imx must be stored into first raw sector of the SD card using dd command

Image SDVX version 1.0.4
Platform SDV04 SDV03
Carrier Board ConfigID 0042 0044 0043 0045 004a
LCD panel FutureLabs 1024x600 7" Innolux 1280x800 10.1" Innolux 1280x800 10.1" FutureLabs 1024x600 7" Ampire AM-800480STMQW-TA0
Touchscreen capacitive resistive
bootscript boot.scr
U-Boot u-boot (NOR) u-boot (NAND) u-boot (eMMC)
Linux kernel uImage uImage
Device tree (UL processor) imx6ul-axelulite-cb0042.dtb imx6ul-axelulite-cb0044.dtb
Device tree (DualLite processor) imx6dl-sfczg-cb0043.dtb imx6dl-sfczg-cb0045.dtb imx6dl-sdv03-cb004a.dtb

SDVX microSD Layout[edit | edit source]

The microSD card provided with SDVX is partitioned as shown in the following image:


microSD partition table


Most of the storage space is occupied by three partitions:

  • a FAT32 partition (mmcblk0p1) containing:
    • U-Boot bootscript
    • Linux kernel and DTB binary images
    • SDVX virtual machine image in OFV format (MVM basic version)
    • 7-zip Windows executable file
  • two ext4 partition (mmcblk0p2 and mmcblk0p3) containing the root file system for the target.

bootscript and root file system are used to boot the target as described in this section.

How to create a bootable microSD card[edit | edit source]

Please refer to this page.

SDVX updates[edit | edit source]

200px-Emblem-important.svg.png

It's recommended to use the latest available SDVX version. Please refer to Release notes for further information.

SDVX updating process consists of updating the Managed Virtual Machine it is based on. The procedure is described 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 you need to modify source code.

Release notes[edit | edit source]

SDVX 1.0.5[edit | edit source]

  • Add support for SDV05
  • Add CDC/ACM driver

SDVX 1.0.4[edit | edit source]

  • Add support for RTL8188CUS and RTL8188EUS wifi USB key (client and AP mode)
Known issues and limitations[edit | edit source]

SDVX 1.0.1[edit | edit source]

  • Add support for SDV03
Known issues and limitations[edit | edit source]

SDVX 1.0.0[edit | edit source]

  • First official release
Known issues and limitations[edit | edit source]

Quick start guide[edit | edit source]

This chapter describes how to start working with the SDVX kit quickly. The following paragraphs will guide you through the setup and installation procedures.

Kit registration[edit | edit source]

200px-Emblem-important.svg.png

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 [1], providing the kit P/N and S/N.

If you also wish to access git repositories containing source code, please follow the procedure described here.

Target setup and first boot[edit | edit source]

This section describes how to quickly start the SDV04 board delivered along with SDVX kit (see also the following image):

  • Connect a serial cable between the J8 connector on the SDV04 board and PC COM port through a null-modem (https://en.wikipedia.org/wiki/Null_modem) cable (not provided)
  • on the 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 the cable into connector J10
  • connect the 12V power supply to the J35 connector; J16 pinout is:
    • 1: GND
    • 2: VIN
  • insert microSD card in the slot J13.
Target setup for first boot for AxelLite SOM
Target setup for first boot for AxelULite SOM

Once power is applied to the target, the U-Boot bootloader will be fetched from the flash internal storage (NOR/NAND/eMMC depending on order code) and executed. Boot messages will be printed out to the serial console. Redundant U-Boot environment is stored in the flash as well, as depicted in the following image.

By default, U-Boot is configured to retrieve Linux kernel image stored in the microSD card. In turn, Linux kernel shall mount the correct root file system from the microSD card depending on the version of the board one is using. For the lite version, the root file system is stored in the mmcblk0p2 partition, while the ul uses the mmcblk0p3 partition. At the end of the boot process, Linux shell shall be available on the serial console.

The following dump shows the typical messages printed out to the console during the bootstrap process.


U-Boot 2016.03-sdvx-1.0.0 (Aug 28 2018 - 15:32:50 +0200), Build: jenkins-SDVX_U-Boot-3

CPU:   Freescale i.MX6UL rev1.2 528 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 42C
Reset cause: POR
Environment: SPI Flash
I2C:   ready
DRAM:  512 MiB
Relocating to 9ff1b000, new gd at 9ef0aeb8, sp at 9ef0ae90
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
NAND:  2048 MiB
MMC:   FSL_SDHC: 0
SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Display: DSAM-07X0ETX07TG1I05 (1024x600)
Video: 1024x600x18
SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0xa00000, size 0x400000
SF: 4194304 bytes @ 0xa00000 Read: OK
In:    serial
Out:   serial
Err:   serial
switch to partitions #0, OK
mmc0 is current device (SD)
SOM ConfigID#: 0000001d
SOM UniqueID#: ea9b89dd:1d2b49d4
CB ConfigID#: 00000042
CB UniqueID#: 00000000:00000000
Board: MX6UL AXEL ULite rev.A on SFCZG
Net:   FEC0
Warning: FEC0 (eth0) using random MAC address - a2:20:c3:63:83:81

Normal Boot
Hit any key to stop autoboot:  0
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
       scanning usb for ethernet devices... 0 Ethernet Device(s) found

USB device 0: unknown device
** Bad device usb 0 **
switch to partitions #0, OK
mmc0 is current device (SD)
reading boot.scr
1215 bytes read in 21 ms (55.7 KiB/s)
Running bootscript from mmc ...
## Executing script at 80800000
bootscript generated with command "mkimage -A ARM -T script -C none -n SDVX -d bootscript.txt boot.scr"
Booting SDVX via mmcboot with sdvx-1.0.0_ul_imx6ul-axelulite-cb0042.dtb as device tree
reading sdvx-1.0.0_ul_uImage
7104400 bytes read in 522 ms (13 MiB/s)
reading sdvx-1.0.0_ul_imx6ul-axelulite-cb0042.dtb
33503 bytes read in 41 ms (797.9 KiB/s)
FDT: override 'som_uniqueid' with 'ea9b89dd:1d2b49d4'
FDT: override 'cb_uniqueid' with '00000000:00000000'
## Booting kernel from Legacy Image at 80800000 ...
   Image Name:   Linux-4.1.15-sdvx-1.0.0
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    7104336 Bytes = 6.8 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Loading Kernel Image ... OK
   reserving fdt memory region: addr=83000000 size=9000
   Using Device Tree in place at 83000000, end 8300bfff
Modify /soc/aips-bus@02000000/bee@02044000:status disabled
ft_system_setup for mx6

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.1.15-sdvx-1.0.0 (jenkins@linuxserver2) (gcc version 5.3.0 (GCC) ) #1 SMP PREEMPT Tue Aug 28 15:50:02 CEST 2018
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: AxelULite on SFCZG
[    0.000000] cma: Reserved 64 MiB at 0x9c000000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PERCPU: Embedded 12 pages/cpu @9bbb2000 s17420 r8192 d23540 u49152
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: root=/dev/mmcblk0p3 rootwait rw console=ttymxc0,115200 vmalloc=400M mtdparts=gpmi-nand:-(nand-ubi);spi0.0:1M(spi-uboot),256k(spi-env1),256k(spi-env2),512k(spi-dtb),8M(spi-kernel),4M(spi-splash),-(spi-free)
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 440404K/524288K available (8735K kernel code, 559K rwdata, 3312K rodata, 440K init, 445K bss, 18348K reserved, 65536K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xa0800000 - 0xff000000   (1512 MB)
[    0.000000]     lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)
[    0.000000]     pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
[    0.000000]     modules : 0x7f000000 - 0x7fe00000   (  14 MB)
[    0.000000]       .text : 0x80008000 - 0x80bcbff0   (12048 kB)
[    0.000000]       .init : 0x80bcc000 - 0x80c3a000   ( 440 kB)
[    0.000000]       .data : 0x80c3a000 - 0x80cc5e28   ( 560 kB)
[    0.000000]        .bss : 0x80cc8000 - 0x80d37630   ( 446 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Additional per-CPU info printed with stalls.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] mxc_clocksource_init 24000000
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000016] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000058] clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.002492] Console: colour dummy device 80x30
[    0.002533] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.002566] pid_max: default: 32768 minimum: 301
[    0.002792] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.002825] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.004190] Initializing cgroup subsys net_cls
[    0.004278] CPU: Testing write buffer coherency: ok
[    0.004768] CPU0: update cpu_capacity 1024
[    0.004803] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.004920] Setting up static identity map for 0x80008280 - 0x800082d8
[    0.048912] Brought up 1 CPUs
[    0.048952] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.048971] CPU: All CPU(s) started in SVC mode.
[    0.050112] devtmpfs: initialized
[    0.066822] device-tree: Duplicate name in lcdif@021c8000, renamed to "display#1"
[    0.071139] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.072067] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.077359] pinctrl core: initialized pinctrl subsystem
[    0.080132] NET: Registered protocol family 16
[    0.098254] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.120897] cpuidle: using governor ladder
[    0.150959] cpuidle: using governor menu
[    0.199164] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.199200] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.203648] imx6ul-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
[    0.268580] mxs-dma 1804000.dma-apbh: initialized
[    0.276246] SCSI subsystem initialized
[    0.277665] usbcore: registered new interface driver usbfs
[    0.277865] usbcore: registered new interface driver hub
[    0.278091] usbcore: registered new device driver usb
[    0.280789] i2c i2c-0: IMX I2C adapter registered
[    0.280837] i2c i2c-0: can't use DMA
[    0.282342] i2c i2c-1: IMX I2C adapter registered
[    0.282387] i2c i2c-1: can't use DMA
[    0.283726] i2c i2c-3: IMX I2C adapter registered
[    0.283772] i2c i2c-3: can't use DMA
[    0.284067] Linux video capture interface: v2.00
[    0.284281] pps_core: LinuxPPS API ver. 1 registered
[    0.284303] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.284411] PTP clock support registered
[    0.287361] MIPI CSI2 driver module loaded
[    0.288011] Advanced Linux Sound Architecture Driver Initialized.
[    0.290254] Bluetooth: Core ver 2.20
[    0.290381] NET: Registered protocol family 31
[    0.290407] Bluetooth: HCI device and connection manager initialized
[    0.290451] Bluetooth: HCI socket layer initialized
[    0.290486] Bluetooth: L2CAP socket layer initialized
[    0.290601] Bluetooth: SCO socket layer initialized
[    0.293416] Switched to clocksource mxc_timer1
[    0.321057] NET: Registered protocol family 2
[    0.322664] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.322800] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.322959] TCP: Hash tables configured (established 4096 bind 4096)
[    0.323091] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.323152] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.323689] NET: Registered protocol family 1
[    0.324435] RPC: Registered named UNIX socket transport module.
[    0.324468] RPC: Registered udp transport module.
[    0.324489] RPC: Registered tcp transport module.
[    0.324508] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.327846] imx rpmsg driver is registered.
[    0.329926] Bus freq driver module loaded
[    0.332150] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.349275] VFS: Disk quotas dquot_6.6.0
[    0.349751] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.355493] NFS: Registering the id_resolver key type
[    0.355608] Key type id_resolver registered
[    0.355631] Key type id_legacy registered
[    0.355840] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.357735] fuse init (API version 7.23)
[    0.369482] io scheduler noop registered
[    0.369539] io scheduler deadline registered
[    0.370023] io scheduler cfq registered (default)
[    0.371169] imx-weim 21b8000.weim: Driver registered.
[    0.384501] imx-sdma 20ec000.sdma: no event needs to be remapped
[    0.384717] imx-sdma 20ec000.sdma: loaded firmware 3.3
[    0.392096] imx-sdma 20ec000.sdma: initialized
[    0.394658] pfuze100-regulator 0-0008: Full layer: 1, Metal layer: 1
[    0.395323] pfuze100-regulator 0-0008: FAB: 0, FIN: 0
[    0.395354] pfuze100-regulator 0-0008: pfuze3000 found.
[    0.415501] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 21, base_baud = 5000000) is a IMX
[    1.088668] console [ttymxc0] enabled
[    1.094434] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 227, base_baud = 5000000) is a IMX
[    1.108556] imx sema4 driver is registered.
[    1.112948] [drm] Initialized drm 1.1.0 20060810
[    1.118981] [drm] Initialized vivante 1.0.0 20120216 on minor 0
[    1.151457] brd: module loaded
[    1.168521] loop: module loaded
[    1.188380] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x48
[    1.194839] nand: Micron MT29F16G08ABABAWP
[    1.198980] nand: 2048 MiB, SLC, erase size: 512 KiB, page size: 4096, OOB size: 224
[    1.207751] gpmi-nand 1806000.gpmi-nand: enable the asynchronous EDO mode 4
[    1.214838] Scanning device for bad blocks
[    1.495349] random: nonblocking pool is initialized
[    1.662491] 1 cmdlinepart partitions found on MTD device gpmi-nand
[    1.668764] Creating 1 MTD partitions on "gpmi-nand":
[    1.673913] 0x000000000000-0x000080000000 : "nand-ubi"
[    1.683577] gpmi-nand 1806000.gpmi-nand: driver registered.
[    1.692893] spi_imx 2008000.ecspi: probed
[    1.699404] tun: Universal TUN/TAP device driver, 1.6
[    1.704706] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    1.711455] CAN device driver interface
[    1.718755] 2188000.ethernet supply phy not found, using dummy regulator
[    1.726992] pps pps0: new PPS source ptp0
[    1.732274] libphy: fec_enet_mii_bus: probed
[    1.739854] fec 2188000.ethernet eth0: registered PHC device 0
[    1.747668] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[    1.755510] usbcore: registered new interface driver pegasus
[    1.761415] usbcore: registered new interface driver rtl8150
[    1.767502] usbcore: registered new interface driver r8152
[    1.773240] usbcore: registered new interface driver asix
[    1.778988] usbcore: registered new interface driver ax88179_178a
[    1.785402] usbcore: registered new interface driver cdc_ether
[    1.791426] usbcore: registered new interface driver dm9601
[    1.797253] usbcore: registered new interface driver sr9700
[    1.803080] usbcore: registered new interface driver CoreChips
[    1.809224] usbcore: registered new interface driver smsc75xx
[    1.815276] usbcore: registered new interface driver smsc95xx
[    1.821218] usbcore: registered new interface driver net1080
[    1.827128] usbcore: registered new interface driver plusb
[    1.832800] usbcore: registered new interface driver cdc_subset
[    1.838966] usbcore: registered new interface driver zaurus
[    1.844795] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[    1.852527] usbcore: registered new interface driver cdc_ncm
[    1.858307] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.864976] ehci-mxc: Freescale On-Chip EHCI Host driver
[    1.870846] usbcore: registered new interface driver usb-storage
[    1.877405] usbcore: registered new interface driver usbserial
[    1.883493] usbcore: registered new interface driver usbserial_generic
[    1.890177] usbserial: USB Serial support registered for generic
[    1.896430] usbcore: registered new interface driver ftdi_sio
[    1.902349] usbserial: USB Serial support registered for FTDI USB Serial Device
[    1.909914] usbcore: registered new interface driver pl2303
[    1.915692] usbserial: USB Serial support registered for pl2303
[    1.921820] usbcore: registered new interface driver usb_ehset_test
[    1.930995] 2184800.usbmisc supply vbus-wakeup not found, using dummy regulator
[    1.944259] ci_hdrc ci_hdrc.0: EHCI Host Controller
[    1.949257] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    1.973510] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    1.981349] hub 1-0:1.0: USB hub found
[    1.985409] hub 1-0:1.0: 1 port detected
[    1.995335] ci_hdrc ci_hdrc.1: EHCI Host Controller
[    2.000334] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2
[    2.023516] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[    2.031353] hub 2-0:1.0: USB hub found
[    2.035431] hub 2-0:1.0: 1 port detected
[    2.042108] mousedev: PS/2 mouse device common for all mice
[    2.141958] input: eGalax_Touch_ScreenAllPoint as /devices/virtual/input/input0
[    2.155087] snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc0
[    2.164263] i2c /dev entries driver
[    2.170378] backlight supply power not found, using dummy regulator
[    2.178176] MIPI DSI driver module loaded
[    2.182697] MIPI DSI driver module loaded
[    2.192037] 21c8000.lcdif supply lcd not found, using dummy regulator
[    2.306198] mxsfb 21c8000.lcdif: failed to find mxc display driver
[    2.339366] Console: switching to colour frame buffer device 128x37
[    3.383447] mxsfb 21c8000.lcdif: initialized
[    3.389802] IR NEC protocol handler initialized
[    3.394465] IR RC5(x/sz) protocol handler initialized
[    3.399559] IR RC6 protocol handler initialized
[    3.404175] IR JVC protocol handler initialized
[    3.408745] IR Sony protocol handler initialized
[    3.413438] IR SANYO protocol handler initialized
[    3.418182] IR Sharp protocol handler initialized
[    3.422923] IR MCE Keyboard/mouse protocol handler initialized
[    3.428836] IR XMP protocol handler initialized
[    3.436526] pxp-v4l2 pxp_v4l2: initialized
[    3.444969] imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)
[    3.451194] Bluetooth: HCI UART driver ver 2.3
[    3.455858] Bluetooth: HCI UART protocol H4 registered
[    3.461032] Bluetooth: HCI UART protocol BCSP registered
[    3.466475] Bluetooth: HCI UART protocol LL registered
[    3.471642] Bluetooth: HCI UART protocol ATH3K registered
[    3.477410] usbcore: registered new interface driver bcm203x
[    3.483305] usbcore: registered new interface driver btusb
[    3.489097] usbcore: registered new interface driver ath3k
[    3.495438] sdhci: Secure Digital Host Controller Interface driver
[    3.501653] sdhci: Copyright(c) Pierre Ossman
[    3.506121] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.513748] /soc/aips-bus@02100000/usdhc@02190000: voltage-ranges unspecified
[    3.520979] sdhci-esdhc-imx 2190000.usdhc: Got CD GPIO
[    3.527234] sdhci-esdhc-imx 2190000.usdhc: No vmmc regulator found
[    3.533560] sdhci-esdhc-imx 2190000.usdhc: No vqmmc regulator found
[    3.584940] mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
[    3.606876] usbcore: registered new interface driver usbhid
[    3.612559] usbhid: USB HID core driver
[    3.639131] fsl-asrc 2034000.asrc: driver registered
[    3.654075] NET: Registered protocol family 26
[    3.658608] Netfilter messages via NETLINK v0.30.
[    3.663620] nfnl_acct: registering with nfnetlink.
[    3.668653] nf_conntrack version 0.5.0 (7905 buckets, 31620 max)
[    3.676430] nf_tables: (c) 2007-2009 Patrick McHardy <kaber@trash.net>
[    3.684372] xt_time: kernel timezone is -0000
[    3.689852] ip_tables: (C) 2000-2006 Netfilter Core Team
[    3.695631] arp_tables: (C) 2002 David S. Miller
[    3.700376] mmc0: host does not support reading read-only switch, assuming write-enable
[    3.710284] NET: Registered protocol family 10
[    3.720779] sit: IPv6 over IPv4 tunneling driver
[    3.726791] mmc0: new high speed SDHC card at address 1234
[    3.735062] NET: Registered protocol family 17
[    3.739598] can: controller area network core (rev 20120528 abi 9)
[    3.746034] mmcblk0: mmc0:1234 SA16G 14.4 GiB
[    3.752203] NET: Registered protocol family 29
[    3.757077]  mmcblk0: p1 p2 p3 p4
[    3.761021] can: raw protocol (rev 20120528)
[    3.767867] can: broadcast manager protocol (rev 20120528 t)
[    3.773813] can: netlink gateway (rev 20130117) max_hops=1
[    3.780024] Bluetooth: RFCOMM TTY layer initialized
[    3.785236] Bluetooth: RFCOMM socket layer initialized
[    3.790452] Bluetooth: RFCOMM ver 1.11
[    3.794402] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.799745] Bluetooth: BNEP filters: protocol multicast
[    3.805071] Bluetooth: BNEP socket layer initialized
[    3.810081] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    3.816190] Bluetooth: HIDP socket layer initialized
[    3.821318] 8021q: 802.1Q VLAN Support v1.8
[    3.826333] Key type dns_resolver registered
[    3.860273] imx_thermal 2000000.aips-bus:tempmon: Industrial CPU temperature grade - max:105C critical:100C passive:95C
[    3.873194] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 00:00:22 UTC (22)
[    3.902591] SWBST: disabling
[    3.906162] reg-1v8: disabling
[    3.909252] reg-3v3: disabling
[    3.912659] ALSA device list:
[    3.915845]   No soundcards found.
[    3.929297] EXT3-fs (mmcblk0p3): error: couldn't mount because of unsupported optional features (240)
[    3.939986] EXT2-fs (mmcblk0p3): error: couldn't mount because of unsupported optional features (244)
[    4.620918] EXT4-fs (mmcblk0p3): recovery complete
[    4.798010] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
[    4.806349] VFS: Mounted root (ext4 filesystem) on device 179:3.
[    4.820707] devtmpfs: mounted
[    4.824887] Freeing unused kernel memory: 440K (80bcc000 - 80c3a000)
INIT: version 2.88 booting
Starting udev
[    5.899435] udevd[106]: starting version 3.1.5
[    6.367318] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
bootlogd: cannot allocate pseudo tty: No such file or directory
ALSA: Restoring mixer settings...
/usr/sbin/alsactl: load_state:1735: No soundcards found...
Wed Aug 29 12:43:40 UTC 2018
INIT: Entering runlevel: 5
Configuring network interfaces... [    8.454052] fec 2188000.ethernet eth0: Freescale FEC PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=2188000.ethernet:03, irq=-1)
[    8.493647] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc (v1.24.1) started
Sending discover...
Sending discover...
Sending discover...
No lease, forking to background
done.
Starting system message bus: dbus.
Starting Dropbear SSH server: dropbear.
Starting rpcbind daemon...done.
starting statd: done
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting atd: OK
exportfs: can't open /etc/exports for reading
NFS daemon support not enabled in kernel
Starting system log daemon...0
Starting kernel log daemon...0
Starting internet superserver: xinetd.
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon                       [fail]
Starting Telephony daemon
Starting Linux NFC daemon
Starting crond: OK
Starting tcf-agent: OK

Freescale i.MX Release Distro 4.1.15-2.0.1 sdvx-ul /dev/ttymxc0

sdvx-ul login: root
root@sdvx-ul:~#

Boot mode[edit | edit source]

Please find more information here about the selected boot device.

Host setup[edit | edit source]

As stated previously, SDVX host tools are based on a Managed Virtual Machine. As indicated here, microSD card delivered along with SDVX kit includes the basic version of MVM that is the default option.

Please follow the procedure described here to install the MVM.

It is also worth remembering that access to git repositories is required to download target source code. To enable it, please refer to this page.


200px-Emblem-important.svg.png

The MVM provides the tools required to build U-boot and Linux kernel. It does not include the tools required to run Yocto build system instead.

Target configuration for the development stage (net_nfs)[edit | edit source]

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 here.

In DAVE Embedded Systems development kits, this configuration is generally denoted as net_nfs. U-Boot bootloader supports this configuration. Some U-Boot environment variables are needed to set it up. They are detailed here.

For more details about TFTP and NFS servers on the host side, please refer to this page.

Target configuration for standalone boot[edit | edit source]

Please refer to this page.

How to update the RFS on SD card[edit | edit source]

RFS update on SD card consists on expanding the new tarball compressed file on SD card ext4 partition. It is possible, for example, to perform this operation using one of the following processes:

  • directly on the target
  • using a Linux PC (or the SDVX VM)

The ext4 partition will depend on your target device, for sdvx-lite is the mmcblk0p2, while for the sdvx-ul the partition is mmcblk0p3. This partition needs to be:

  • erased
  • written with new rfs files

Update rfs on target[edit | edit source]

  • start SDVX SDVX via NFS. See how to boot from NFS here
  • change directory to the ext4 partition into the filesystem: typically /run/media/mmcblk0p2
root@sdvx-lite:~# cd /run/media/mmcblk0p2
root@sdvx-lite:/run/media/mmcblk0p2# 
  • delete all previous files
root@sdvx-lite:/run/media/mmcblk0p2# rm -r *
  • extract new rfs files from tarball archive previously copied into NFS directory (the following command assumes that sdvx-1.0.0 rfs has been already copied inside the virtual machine directory /home/dvdk/sdvx/rfs-lite/sdvx/home/root
root@sdvx-lite:/run/media/mmcblk0p2# tar jxvpf /home/dvdk/sdvx/rfs-lite/sdvx/home/root/sdvx-1.0.0-dave-image-devel-sdvx-lite.tar.bz2

Update rfs on a Linux PC[edit | edit source]

  • insert the SD card and check its mount point
  • change dir to the ext4 SD card partition
  • delete previous files and extract new files from tarball archive as described here

Developing the software for the target[edit | edit source]

Please refer to this page.

Accessing hardware peripherals[edit | edit source]

Please refer to this page.

Advanced topics[edit | edit source]

Debugging with Eclipse[edit | edit source]

Please refer to this page.

Getting Started With QT Creator[edit | edit source]

The MVM virtual machine provided with the kit has already installed the QtCreator configured and ready to build an example application.

To build your first application, start the QtCreator from the command line with the following command:

sdvx-qtcreator [target]

where the target is ul for sdvx-ul or lite for sdvx-lite

dvdk@ubuntu-xenial:~$ sdvx-qtcreator ul
Starting QtCreator for sdvx-ul


200px-Emblem-important.svg.png

It is important to start QtCreator with the above script each time you close it

This command will take care of sourcing the correct environment for the target device. After that, one can follow this guide to compile and debug the Qt application example. You should probably want to change the ip-address of your kit as explained here

SDVX Lite[edit | edit source]

If the target device is sdvx-lite, the command line arguments are

-platform eglfs

SDVX UL[edit | edit source]

If the target device is sdvx-ul, the command line arguments are

-platform linuxfb

Moreover, if one intends to build Qml application for the sdvx-ul board, it is necessary to start the Qml application with

export QMLSCENE_DEVICE=softwarecontext

For example, to start the Qt5 Cinematic Experience application that is installed inside the devel RFS it is necessary to run:

root@sdvx-ul:~# export QMLSCENE_DEVICE=softwarecontext
root@sdvx-ul:~# Qt5_CinematicExperience -platform linuxfb
libpng warning: iCCP: known incorrect sRGB profile