SDV04 Embedded Linux Kit (SDVX)
- 1 Introduction
- 2 Kit Contents
- 3 Additional documentation
- 4 SDVX software components
- 5 Quick start guide
- 5.1 Kit registration
- 5.2 Target setup and first boot
- 5.3 Host setup
- 5.4 Target configuration for the development stage (net_nfs)
- 5.5 Target configuration for standalone boot
- 5.6 How to update the RFS on SD card
- 5.7 Developing the software for the target
- 5.8 Accessing hardware peripherals
- 6 Advanced topics
Introduction[edit | edit source]
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:
- hardware platform ( SDV04) - optionally SDV03 platform can be requested
- development host released in the form of Managed Virtual Machine, tailored for Yocto-based distribution
- technical documentation (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. 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]
|Axel Lite SOM
CPU: Freescale i.MX6
SDRAM: 1 GB DDR3
NOR: bootable SPI flash 16 MB
|Please refer to Axel Lite Hardware Manual|
|Axel ULite SOM
CPU: Freescale i.MX6UL
SDRAM: 512MB DDR3
NOR: bootable SPI flash 16 MB
|Please refer to Axel ULite Hardware Manual|
|SDV04 Carrier board||Please refer to SDV04 page|
|SDV03 Carrier board||Please refer to SDV03 page|
|AC/DC Single Output Wall Mount adapter
Output: +12V – 2.0 A
|Please refer to SDVX Quick start guide|
|DB9 Male Serial port adapter||Please refer to SDVX Quick start guide|
|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.
|Release date||September 2018||October 2018||February 2019|
|Release notes||Ver 1.0.0||Ver 1.0.1||Ver 1.0.4|
|PCB version||SDV04 CS073817
|SOM PCB version||Axel Lite: CS335013C
|Axel Lite: CS335013C
|Axel Lite: CS335013C|
|Supported carrier boards||SDV04||SDV03 SDV04||SDV03 SDV04|
|Drivers||SPI NOR Flash (boot)
UART debug (2-wire)
Touch screen controller
|SPI NOR Flash (boot)
UART debug (2-wire)
Touch screen controller
|SPI NOR Flash (boot)|
UART debug (2-wire)
Touch screen controller
|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|
|Graphic libraries||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)|
|Android||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:
|In order to boot Linux from SD card files, the binary files must be renamed as follows:
|Image||SDVX version 1.0.4|
|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|
|U-Boot||u-boot (NOR)||u-boot (NAND)||u-boot (eMMC)|
|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:
Most of the storage space is occupied by three partitions:
- Linux kernel and DTB binary images
- SDVX virtual machine image in OFV format (MVM basic version)
- 7-zip Windows executable file
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]
|It's recommended to use the latest available SDVX version. Please refer to Release notes for further information.|
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.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]
|Customers are strongly recommended to register their kits. Registration grants access to reserved material such as source code and additional documentation.
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.
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 <firstname.lastname@example.org> [ 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 <email@example.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 <firstname.lastname@example.org> [ 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: 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:~#
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.
|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:
- 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
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:
where the target is ul for sdvx-ul or lite for sdvx-lite
dvdk@ubuntu-xenial:~$ sdvx-qtcreator ul Starting QtCreator for sdvx-ul
|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
SDVX UL[edit | edit source]
If the target device is sdvx-ul, the command line arguments are
Moreover, if one intends to build Qml application for the sdvx-ul board, it is necessary to start the Qml application with
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