summaryrefslogtreecommitdiff
path: root/release-notes/Colibri_VF_LinuxReleaseNotesV2.x.txt
blob: dc49234e5ef87bc9a9b2ed3bcbde16b34b569fb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
******************************************************
Release Notes:  Linux Image V2.x for Colibri VF50/VF61
******************************************************

Contents:
- U-Boot 2015.04 boot loader
- Linux 4.4.21 LTS kernel
- Angstrom 2015.12/OpenEmbedded jethro/Yocto 2.0 based root file system, using
  LXDE desktop environment

==> Flashing instructions can be found on the Toradex developer article:
http://developer.toradex.com/knowledge-base/flashing-linux-on-vybrid-modules

********************************************************************************
Linux Image V2.6.1 Beta 1 (September 30, 2016)
- U-Boot boot loader:
  - backport patches needed if compiling with GCC 6
  - allow USBC port to use in both roles (device/host)
- Linux kernel:
  - updated to 4.4.21 LTS long term stable Linux kernel
  - bind spidev driver to the standard SPI port by default
  - add rpmsg support along with the example drivers pingpong and tty copied
    from the i.MX 7 BSP (#10772 and #20274)
  - add remoteproc support which allows to load the Cortex-M4 firmware from
    within Linux (optional)
  - enable DMA for SPI (#15694)
  - add fixes useful when using the I2C bus recovery functionality
  - fix restoring of fbdev console after closing X (or any other DRM context)
  - add SoC level definition of DSPI2/3 (disabled by default)
- Linux user-space:
  - improve fw_printenv/setenv concerning /etc/fw_env.config
  - deploy virtio/rpmsg as kernel modules and load them by default
  - add xorg.conf for Vybrid
- OpenEmbedded build system:
  - split meta-toradex into BSP layers meta-toradex-bsp-common and
    meta-toradex-nxp as well as the software layer meta-toradex-demos
  - rename the parent directory from stuff to layers
  - mv from build/out*/deploy to deploy
  - rename TMPDIR from out to tmp
  - deploy qt5 tools into the sdk as part of optional angstrom-qt5-x11-image.bb

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.6.1Beta1_20161001
  - repository linux-toradex branch toradex_vf_4.4
  - repository u-boot-toradex branch 2015.04-toradex

Known Issues:
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- License texts do not get deployed to the root file system.

********************************************************************************
Linux Image V2.6 Beta 2 (June 30, 2016)

- U-Boot boot loader:
  - synchronize/improve memory options
  - net: increase maximum frame size to accommodate VLAN packets
  - update: make set<media>update self contained
  - predefine ramdisk_addr_r for initrd/initramfs
- Linux kernel:
  - updated to 4.4.14 LTS long term stable Linux kernel
  - added driver for Ethernet (L2) switch
  - added display timings for Fusion 7", 10.1" displays
- Linux user-space:
  - trdx-extra.inc: add iperf3 to all images
  - florence: update to latest version 0.5.4, build without sound and drop
    gstreamer 0.10 dependency
  - gpioconfig: fix pkg_postrm
- OpenEmbedded build system:
  - further clean-up update.sh update script
  - angstrom-qt5-x11-image: add a recipe which deploys qt5 and starts a demo

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.6Beta2_20160701
  - repository linux-toradex branch toradex_vf_4.4
  - repository u-boot-toradex branch 2015.04-toradex

Known Issues:
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- License texts do not get deployed to the root file system.
- Currently there is no multi-core communication library/framework available.

********************************************************************************
Linux Image V2.6 Beta 1 (March 31, 2016)

Note:
- A new boot schema using static UBI volumes has been introduced. Therefore
  downgrading is not directly possible. To downgrade a module, the UBI
  partition needs to be cleared manually using "nand erase.part ubi".
- The new DRM driver for the display controller might behave differently than
  the old fbdev based driver. Especially display timings need to be configured
  using the panel-simple.c driver.

- U-Boot boot loader:
  - read kernel and device tree from UBI volumes instead of rootfs
  - increased NAND clock frequency for Colibri VF61
- Linux kernel:
  - updated to 4.4.5 LTS long term stable Linux kernel
  - switched to DRM based driver for the display controller unit (DCU)
    Note: The display kernel parameter video uses a new identifier (LVDS-1
    as opposed to dcufb). Specifying display timings in the device tree is
    currently not possible, custom display timings should be added to the
    driver panel-simple.c.
  - removed support for multi-core communication (MCC)
  - increased NAND clock frequency for Colibri VF61
  - support creation of SPI devices through /sys/bus/spi/drivers/spidev/new_id
  - disable PHY power-down mode due to hardware issues on wakeup
  - enable IP/TCP checksum offloading
  - add IIO based DAC driver
- Linux user-space:
  - use X.org modesetting driver to make use of DRM (instead of fbdev)
  - restart USB after suspend/resume using a systemd service
  - removed Midori browser from LXDE image (development discontinued)
  - drop libmcc and mqxboot since the kernel interfaces have been removed
- OpenEmbedded build system:
  - update OpenEmbedded from fido to jethro:
    - gcc Linaro GCC 5.2-2015.11-2
    - glibc 2.22
    - systemd 226
    - Xorg 1.17.2

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.6Beta1_20160331
  - repository linux-toradex branch toradex_vf_4.4
  - repository u-boot-toradex branch 2015.04-toradex

Known Issues:
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- Standby: Wake-up using UART in DMA mode hangs
- License text do not get deployed to the root file system.
- Currently there is no multi-core communication library/framework available.

********************************************************************************
Linux Image V2.5 (January 6, 2015)
- none, this version is identical to the previous beta version V2.5 Beta 3

********************************************************************************
Linux Image V2.5 Beta 3 (December 15, 2015)
- Linux kernel:
  - enable RTL8192CU driver e.g. for LM006 USB Wi-Fi stick
  - enable PPP and USB ACM support e.g. for Telit 910 modem
  - add multitouch HID and RAWHID support
  - fix CTAR Register access in DSPI driver
  - updated to 4.1.15 LTS long term stable Linux kernel
- Linux user-space:
  - make sure USB RNDIS Gadget is started before networkd
  - use new Toradex feed server as default feed URI
- OpenEmbedded build system:
  - fix memcpy performance improvement to only apply to Linaro glibc
  - remove create_configblock.sh from deployment tarball
  - add rtl8192cu firmware for LM006 USB Wi-Fi adapter
  - add README with dependency and contribution information
  - backport rtl8192cx for latest available firmware

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.5Beta3_20151215
  - repository linux-toradex branch toradex_vf_4.1
  - repository u-boot-toradex branch 2015.04-toradex

Known Issues:
- The feeds are missing non-Thumb entires (some packages are only provided in
  a non-Thumb architecture, e.g. libvorbisdec1 which is required by
  gst-plugins-base-meta). Use the following command to add non-Thumb feeds:
  sed -i 'p; s/ http/2 http/; s/armv7at2hf-vfp/armv7ahf-vfp/' /etc/opkg/*feed.conf
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- Suspend-to-Memory: USB devices on the USB host port get disconnected on resume
- Standby: Wake-up using UART in DMA mode hangs
- Serial console on USB peripheral port is not enabled by default; use this command:
  systemctl enable serial-getty@ttyGS0.service

********************************************************************************
Linux Image V2.5 Beta 2 (November 6, 2015)
- U-Boot boot loader:
  - UBI fastmap fixes backported from Linux
  - add return code for cfgblock commands which allows scripting
  - increase TFTP blocksize for better performance
  - updated NAND flash controller driver to include latest changes and bug fixes
    implemented during code review of the upstream Linux kernel variant of it
  - enabled zero bootdelay check (allows entering U-Boot when bootdelay is 0)
  - increased heap size to avoid out of memory errors attaching UBI partitions
  - implemented L2 cache for Colibri VF61 (no runtime detection; not enabled by
    default)
  - introduced automatic Ethernet aka TFTP update capability
  - fix global timer udelay to use correct clock rate (fixes PHY detection in
    U-Boot if boot delay is 0)
  - added additional environment variables such as board_name and arm
- Linux kernel:
  - updated to 4.1.12 LTS long term stable Linux kernel
  - updated NAND flash controller driver to include latest changes and bug fixes
    implemented during code review of the upstream variant of it
  - fixed PWM default pinmuxing
  - enabled /proc/config.gz support
  - enabled fbcon Logo support
  - automatic USB device/host detection using USBC_DET pin
  - added more USB Gadget drivers such as ECM (ethernet) or mass storage,
    compile all gadget drivers as modules
  - fixed SD card using polling mode instead of relying on card-detect GPIO
  - fixed suspend/resume when using PIT timer as clocksource
  - disabled UART DMA by default for all UARTs due to issues in current
    implementation
  - use pull-down on wakeup-key (avoids immediate wake-up on Iris/Viola)
  - use reset values as L2 cache latencies
  - fixed flickers/unstable backlight GPIO during startup
  - changed Fusion multi touch event reporting to adhere to multitouch slot
    protocol
  - added ARM Performance Monitoring Unit (PMU)
- Linux user-space:
  - updated to latest Angstrom 2015.06/OpenEmbedded fido:
    - glibc 2.22
    - systemd 219
    - Xorg 1.16.1
  - glibc: force memcpy_arm to improve memcpy performance
  - load USB Gadget ConfigFS kernel module by default
- OpenEmbedded build system:
  - local.conf: add Toradex source mirror as pre-mirror
- Update scripts:
  - use space-fixup in UBIFS image (allowing the image to be flashed using DFU)
  - update.sh: delete intermediate files after use
  - improved update.sh to use module type specific folders allowing update of
    different modules with just one update media

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.5Beta2_20151106
  - repository linux-toradex branch toradex_vf_4.1
  - repository u-boot-toradex branch 2015.04-toradex

Known Issues:
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- Suspend-to-Memory: USB devices on the USB host port get disconnected on resume
- Standby: Wake-up using UART in DMA mode hangs
- Serial console on USB peripheral port is not enabled by default; use this command:
  systemctl enable serial-getty@ttyGS0.service

********************************************************************************
Linux Image V2.5 Beta 1 (August 13, 2015)
- U-Boot:
  - Improve TFTP transfer speed by using increased block size
  - Introduce m4boot command which accept a FIT image to boot the secondary
    Cortex-M4 core
  - Pass U-Boot MTD partitions to the kernel by using device tree fix-up
  - Use ARM Global Timer instead of PIT Timer (avoids conflicts with Cortex-M4)
  - Clock and mux Colibri UART_B (UART2) by default
  - Add fdt_fixup variable to make it easier to include scripts which fix-up
    the kernel's device tree (e.g. for evaluation/testing purpose)
  - Set DDR fix property in the kernel's device tree to enable
    Suspend-to-Memory support
- Linux kernel:
  - Update to 4.1.5 LTS long term stable Linux kernel
  - Initial Suspend-to-Memory support using Vybrid's LPSTOP2 low power mode
    ("echo mem > /sys/power/state")
  - Fixed and enhanced suspend/resume functions in various drivers
  - Framebuffer ioctl WAITFORVSYNC which allows to synchronize buffer swap
    on vertical blanking period
  - Support RS485 transceiver on UARTs
  - Updated default configuration: Include all drivers necessary to support
    USB mass storage, add PWM LED, HWMON IIO and PL2303 serial device support
    by default, configure more drivers as modules (e.g. UVC webcam), and
    add some Wi-Fi drivers as module too
- Linux user-space:
  - Update OpenEmbedded from dizzy to fido:
    - glibc 2.21
    - systemd 219
    - Xorg 1.16.3
  - Removed udev-extra-rules (e.g. automount.rules/mount.sh) since the LXDE
    image handles automounting using udisk. Newer systemd variants also start
    udev using MountFlags=slave leading to mountpoints being mounted by the
    udev rules not accessible by other processes.

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.5Beta1_20150813
  - repository linux-toradex branch toradex_vf_4.1
  - repository u-boot-toradex branch 2015.04-toradex

Note:
- Due to flash space constraints we recommend using the console only image on
  Colibri VF50 (e.g. Colibri_VF_LinuxConsoleImageV2.5Beta1_20150813.tar.bz2).
- The kernel requires the device tree from within the root filesystem to
  boot. Board customisation within code are for most use cases not necessary.
  For custom carrier boards it is recommended to create a customised device
  tree file and deploy it in the root filesystem's /boot directory.
  U-Boot reads the device tree according to the following naming scheme:
  => ${soc}-colibri-${fdt_board}.dtb

  Hence, a custom carrier board needs to set the fdt_board variable accordingly
  and would name the device tree files using the SoC prefix depending on the
  supported module type:
  => vf500-colibri-mycarrier.dtb
  => vf610-colibri-mycarrier.dtb

Known Issues:
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- Suspend-to-Memory: USB devices on the USB host port get disconnected on resume
- Standby: Wake-up using UART in DMA mode hangs

********************************************************************************
Linux Image V2.4 Beta 1 (May 18, 2015)
- U-Boot:
  - update to U-Boot 2015.04
  - new standard NAND ECC format which is able to fix up to 32-errors per page
  - enable ONFI detection, allows to retrieve more details about the NAND chip
  - improve NAND read performance by supporting OOB only read
  - improve NAND write performance by removing unnecessary page reads on write
  - add generic Toradex config block handling, print exact product description,
    board revision and serial number to the console
  - create device-tree properties which make board information available from
    within Linux userspace through procfs (/proc/device-tree/serial-number,
    toradex,board-rev and toradex,product-id)
  - add command to restore Toradex config block ("cfgblock create")
  - add "bmode" command which allows to select a specific boot device
  - add display (DCU) support along with some default modes, display the Toradex
    logo at VGA resolution by default
  - add GPIO support through "gpio" command
  - enable USB power for host port explicitly (fixes USB host support on Iris
    and Viola Carrier Board)
- Linux kernel:
  - update to 4.0.2 stable Linux kernel
  - add audio capture support on Colibri VF61 (AC97)
  - use configfs for USB Gadget configuration
  - improve NAND read performance by supporting OOB only read
  - improve NAND write performance by removing unnecessary page reads on write
  - export Vybrid SoC information such as ROM revision and unique ID through
    SoC bus (/sys/devices/soc0/machine, family, soc_id and revision)
- Linux user-space:
  - update OpenEmbedded from daisy to dizzy:
    - glibc 2.20 (instead of eglibc)
    - systemd 2.18
    - Xorg 1.14.7
    - updated various LXDE packages to newer versions
  - use libusbg to configure USB Gadget through configfs, provides a default
    configuration which configures a serial connection using CDC ACM protocol
  - enable a serial console on the tty provided by USB Gadget CDC ACM (ttyGS0
    on module side, typically ttyACM0 on host side)
  - replace full NTP daemon with systemd's NTP client only systemd-timesyncd
  - blacklist USB RNDIS for connman, use systemd-networkd to configure RDNIS
    network interface (new standard IP of the module is 192.168.11.1!)
  - enable BusyBox resize command to resize the terminal on serial console
  - remove e2fsprogs for VF default image (image feature ext2)
  - fix GPIOConfig CPU detection on Colibri VF50 (GPIOConfig V1.3)

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.4Beta1_20150518
  - repository linux-toradex branch toradex_vf_4.0
  - repository u-boot-toradex branch 2015.04-toradex

Note:
- mount point names changed from /media/<block device name> to /media<label>
- The kernel requires now the device tree from within the root filesystem to
  boot. Board customisation within code are for most use cases not necessary.
  For custom carrier boards, it is recommended to create a customised
  device tree file and deploy it in the root filesystems /boot directory.
  U-Boot reads the device tree according to the following name scheme:
  => ${soc}-colibri-${fdt_board}.dtb

  Hence, a custom carrier board needs to set the fdt_board variable accordingly
  and would name the device tree files using the SoC prefix depending on the
  supported module type:
  => vf500-colibri-mycarrier.dtb
  => vf610-colibri-mycarrier.dtb

Known Issues:
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- Downgrade is not possible through "run update" due to NAND ECC layout changes
  refer to the flashing instruction article to flash the module from scratch
- Audio capture does not work due to a bug in the device tree
  http://git.toradex.com/cgit/linux-toradex.git/commit/?h=toradex_vf_4.0-next&id=cc465207c8c1d1c39dd036b851fb8f7e65a5d21b
- USB mass storage not mountable due to missing kernel configuration
  http://git.toradex.com/cgit/linux-toradex.git/commit/?h=toradex_vf_4.0-next&id=afd1ef6b14dd6ba9d2f0d09f99a21c610a2d2c09

********************************************************************************
Linux Image V2.3 Beta 7 (February 03, 2015)
- U-Boot:
  - add update using USB flash drives
  - tolerate up to 12 bit errors on an empty page read
  - accept raw initramfs images (without mkimage)
- Linux kernel:
  - update to 3.18.5 stable Linux kernel
  - add software AC97 SAI driver to communicate with the Wolfson WM9712
    AC97 codec for analogue audio playback and resistive touchscreen support
  - add backlight support with a intermediary PWM duty cycle
  - add FlexCAN device tree nodes (disabled in the eval-v3 device tree)
  - add GPIO default pinmux entries for all default GPIO pins (enables export
    of GPIO's using sysfs for most pins)
  - enable debug access port which is supported by hw-breakpoint/perf framework
  - fix boot freeze due to uninitialised DCU layers (observed on Colibri VF50)
  - fix DSPI driver, use hardware chip select and memory leak
  - fix several bugs in UART driver when using in DMA as well as interrupt mode
  - decrease ADC clock to be within specified range, use different sampling
    settings to avoid issues with temperature sensor
  - improve pixelclock precision by using a higher DCU input clock
  - rename GPIO nodes to start with zero (as in the reference manual)
  - remove wrong touchscreen nodes in common device tree vf-colibri.dtsi
- Linux user-space:
  - add new default alsa.conf

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.3Beta7_20150203
  - repository linux-toradex branch toradex_vf_3.18
  - repository u-boot-toradex branch 2014.10-toradex

Note:
- The kernel requires now the device tree from within the root filesystem to
  boot. Board customisation within code are for most use cases not necessary.
  For custom carrier boards, it is recommended to create a customised
  device tree file and deploy it in the root filesystems /boot directory.
  U-Boot reads the device tree according to the following name scheme:
  => ${soc}-colibri-${fdt_board}.dtb

  Hence, a custom carrier board needs to set the fdt_board variable accordingly
  and would name the device tree files using the SoC prefix depending on the
  supported module type:
  => vf500-colibri-mycarrier.dtb
  => vf610-colibri-mycarrier.dtb

Known Issues:
- If the module does not boot, remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- Downgrade does not work with "run setupdate". For downgrade, use
  mmc rescan && && fatload mmc 0:1 ${loadaddr} flash_mmc.img && source ${loadaddr}
  instead, then the usual "run update"
- Boot from SD-card does not work out of the box, sddtbparm net to be updated:
  setenv sddtbload 'setenv dtbparam; load mmc 0:2 ${fdt_addr_r} \
		${soc}-colibri-${fdt_board}.dtb && \
		"/boot/${soc}-colibri-${fdt_board}.dtb && \
		"setenv dtbparam ${fdt_addr_r}'
- the USB device Ethernet RNDIS functionality is disabled by default

********************************************************************************
Linux Image V2.3 Beta 5 (December 19, 2014)
- U-Boot:
  - set secondary MAC address (for dual Ethernet carrier boards)
  - use Thumb2 instruction set which shrinks U-Boot size by about 25%
  - fix sub-page NAND writes
  - USB host and device support
  - USB host: enable mass storage support
  - USB device: enable DFU support (device firmware upgrade)
  - USB device: use Toradex VID/PID and specify device serial number
  - improve evaluation of reset source
  - switch default console to ttyLP0 (used by mainline kernel)
- Linux kernel:
  - switch to vanilla 3.18 based Linux kernel with device tree capabilities
  - clock handling using the common clock framework. Clocks get enabled only if
    needed which saves power during runtime as well as sleep.
  - new GPIO driver including Pinctrl support for muxing/pin settings
  - ADC support through IIO framework (including reading the temperature sensor)
  - PWM driver using the PWM framework with sysfs API
  - UART driver with DMA support, exported as ttyLPX (was ttymxcX)
  - SD card support including card detect
  - on-module CAN controller support using FlexCAN driver
  - USB peripheral and host support (specified in device tree for now)
  - configurable main clocksource, using ARM Global Timer by default
  - MSCM driver for interrupt routing between Cortex-A5/Cortex-M4
  - Multi-Core Communication support updated for use with virtual IRQ numbers
- Linux user-space:
  - Update mcc-pingpong buildscript to build with the new kernel
  - update X server to 1.14.7
  - /etc/machine-id: ensure it is saved non-volatile

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.3Beta5_20141219
  - repository linux-toradex branch toradex_vf_3.18
  - repository u-boot-toradex branch 2014.10-toradex

Note:
- The kernel requires now the device tree from within the root filesystem to
  boot. Board customisation within code are for most use cases not necessary.
  For custom carrier boards, it is recommended to create a customised
  device tree file and deploy it in the root filesystems /boot directory.
  U-Boot reads the device tree according to the following name scheme:
  => ${soc}-colibri-${fdt_board}.dtb

  Hence, a custom carrier board needs to set the fdt_board variable accordingly
  and would name the device tree files using the SoC prefix depending on the
  supported module type:
  => vf500-colibri-mycarrier.dtb
  => vf610-colibri-mycarrier.dtb

Known Issues:
- If the module does not boot remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1C)
- Analogue audio and Touchscreen are not yet working on the Colibri VF61
- SPI and CAN over SPI (using MCP251x) do not work yet on the new kernel
- the USB device Ethernet RNDIS functionality is disabled by default

********************************************************************************
Linux Image V2.3 Beta 3 (October 31, 2014)
- U-Boot:
  - update to mainline U-Boot 2014.10 with new partition layout
  - upstream NAND flash support: faster transfers due to optimised memcpy
  - improved DDR initialization, according to JEDEC specifications
  - enable caches in U-Boot
  - boot zImage kernel from root file system
  - create environment variable containing SoC type
  - update environment script to also support device tree based kernels
  - use PLL1 as DDR clock for Colibri VF50 (keep PLL2 off)
- Linux kernel:
  - support SMBus block reads (I2C)
  - complete I2C resource tables
  - enable wakealarm feature of SoC RTC to wakeup the system from suspend
  - compile/deploy in zImage format
- Linux user-space:
  - switch to ARMv7 hard-float Thumb2 builds (armv7at2hf-vfp-neon)
  - updated LXDM to 0.5 with proper systemd-logind support
  - removed ConsoleKit session/login manager (superseded by systemd-logind)
  - lxsession shows hibernate button only when kernel support is available
  - various build and dependency fixes for LXDE recipes

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.3Beta3_20141031
  - repository linux-toradex branch colibri_vf
  - repository u-boot-toradex branch 2014.10-toradex

Note:
- We use now zImage instead of uImage kernel image format and moved the kernel
  inside the root filesystem. If you use custom U-Boot scripts, you need to
  alter those scripts accordingly.

Known Issues:
- If the module does not boot remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1)
- Analogue audio is not working on the Colibri VF61
- USB client is not reliable (communication freezes when using RNDIS/g_ether)

********************************************************************************
Linux Image V2.3 Beta 1 (August 4, 2014)
- U-Boot
  - Fix environment offset to match new MTD partition layout
  - Enable external 32 kHz oscillator for more precise RTC
  - Use PLL2 as RAM clock which allows correct frequency for VF61
  - Updated Boot ROM Configuration; boot ROM is now able to skip bad blocks
  - Add CPU/SoC type detection
  - Disable automatic boot when using recovery mode
- Linux kernel:
  - Add support for CAN (configuration CONFIG_CAN_FLEXCAN need to be enabled)
  - Updated default configuration for newer systemd variant, removed DVB-T
    tuners
  - Added/Fixed PWM support by creating a new driver for FlexTimer
  - Colibri VF50: Minimum touch pressure to count as touch is now configurable
    through the parameter "min_pressure"
- Linux user-space
  - Update from oe's dora to daisy
  - Integrate u-boot-fw-utils fw_printenv fw_setenv
  - Remove machine feed URL, as it does not exist
  - Only start xinput-calibrator.service when LXDM is enabled
  - Use X server 1.14.4
  - Disable openssh's use of reverse DNS
  - Add unclutter to hide mouse cursor
  - Disable gvfs samba-client
  - Remove webkit-gtk dependency on video and OpenGL
  - Use libpthread for gnutls
  - Remove gnome-disk-utility

- sources git.toradex.com tag Colibri_VF_LinuxImageV2.3Beta1_20140804
  - repository linux-toradex branch colibri_vf
  - repository u-boot-toradex branch 2014.04-toradex

Known Issues:
- If the module does not boot remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1)
- Analogue audio is not working on the Colibri VF61
- USB client is not reliable (communication freezes when using RNDIS/g_ether)
- The Angstrom-Distribution since switched to using ARM Thumb2 instruction set.
  To use their binary feeds e.g. using the opkg package manager please change in
  /etc/opkg/base-feed.conf et. al. armv7ahf-vfp-neon to armv7at2hf-vfp-neon.
  We consider switching in our next release.

********************************************************************************
Linux Image V2.2 Beta 1 (June 03, 2014)
- U-Boot
  - Update to mainline U-Boot 2014.04 with new partition layout and NAND driver
    which enables hardware ECC.
  - Support new config block layout.
  - Dropped SD card environment support (booting the boot loader from SD card is
    not possible with fused modules)
- Linux kernel:
  - Make use of hardware ECC result when reading from NAND
    (this breaks backward compatibility, reflash of root filesystem needed)
  - Clear pending characters from UART when configuring FIFO. This solves boot
    hang when UART characters are received during startup.
  - Fix global timer length which makes sure kernel time is monotonic increasing
  - Add support for second Ethernet (enable with CONFIG_FEC0)
  - Add support for UART4/UART5 (enable with CONFIG_UART[3|4]_SUPPORT)
  - Support new pin assignment for VF50 V1.1 and newer
  - Use chip select for NAND (required for U-Boot 2014.04)
- Linux user-space
  - Update GPIO config tool to V1.2
  - Add mcc-pingpong demo application for communication with Cortex M4 core

- sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF_LinuxImageV2.2Beta1_20140603

Known Issues:
- If the module does not boot remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1)
- Analogue audio is not working on the Colibri VF61
- SSH password authentication is disabled by default (see PasswordAuthentication
    setting in /etc/ssh/sshd_config)
- Package management is not active (opkg update/opkg install does not work)
- USB client is not reliable (communication freezes when using RNDIS/g_ether)

********************************************************************************
Linux Image V2.1 Beta 3 (March 18, 2014)
- U-Boot
  - Add default VESA VGA vidargs for our now modedb enabled kernel. This allows
    easy specifying an alternate parallel RGB resolution.
- Linux kernel:
  - Allow to configure video resolution through modedb (video=dcufb:..).
  - Add kernel parameters to change RGB clock polarity.
  - Included reworked Fusion multi-touch touchscreen driver.
  - Merged Timesys tag 3.0-vybrid-ts2.13.
  - Support suspend/resume for Micrel PHY.
  - Enable FIFO for UART even when serial console is enabled.
  - Enabled wake-up pins SODIMM 43/45.
  - Fix and enabled SPI support (DSPI1).
  - Platform data for CAN transceiver MCP251x on Evaluation Board.
  - Build AC97 driver as module (supports resistive touch only for now).
  - Add PWM platform data, export PWM channels as PWM LEDs.
- Linux user-space
  - GPIO config tool.
  - Add Cortex M4 utility mqxboot and communication library libmcc.

- sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF_LinuxImageV2.1Beta3_20140318

Known Issues:
- If the module does not boot remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1)
- Analogue audio is not working on the Colibri VF61
- An input on UART_A during bootup can lead to a hang (stuck at "rtc-ds1307 0-0068: hctosys: unable to
  read the hardware clock"). Make sure UART_A is connected before powering up and not written to.

********************************************************************************
Linux Image V2.1 Beta 2 (November 29, 2013)
- U-Boot:
  - Add initial Colibri VF61 support.
  - Implement memory size auto detection.
  - Implement module type (e.g. VF50 vs. VF61) auto detection based on L2 cache availability.
  - Set specific ARM core clock (e.g. 400 vs. 500 MHz) as well as Linux machine id number.
  - Rename configuration to colibri_vf to be universally used for Colibri VF50 as well as VF61.
- Linux kernel:
  - Various ADC resp. VF50 touch improvements/fixes.
  - Implement internal temperature sensor exposed via /sys/class/hwmon/hwmon0/device/temp1_input.
  - Fix VESA VGA display timing.
  - Use 16 bpp framebuffer by default to avoid buffer underruns.
  - Add the following additional display timings for manual activation:
    - 800x480@60 (e.g. EDT ET070080DH6)
    - 800x600@60
    - 1024x600@60 (e.g. TouchRevolution Fusion 10)
    - 1024x768@60
  - Allow for 396 as well as 500 MHz A5 core frequency.
  - Add the Colibri VF61 machine id and its corresponding machine definition.
  - Rename configuration to colibri_vf to be universally used for Colibri VF50 as well as VF61.
  - Enable watchdog configuration.
  - Fix Freescale's magic daisy chain aka select input IOMUX stuff.
  - Fix pixel clock polarity.
- rootfs / oe-core:
  - Use branch 'LinuxImageV2.1' in toradex-bsp-platform.git 
  - Fix recipe to follow the changed khronos headers checksum
  - Rename machine to colibri-vf to be universally used for Colibri VF50 as well as VF61
  - Unify files for use with VF50/VF61 or add VF61 specific ones
  - Don't statically populate /dev. The VFxx console fails on this.
  - Improve the console and qt4e image recipe

- sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF_LinuxImageV2.1Beta2_20131129

Known Issues:
- If the module does not boot remove all displays connected to HSYNC, VSYNC and reset.
  (This has been observed on an Evaluation Board V2.1)
- LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution.
- Resistive touch and analogue audio are not working on a Colibri VF61

********************************************************************************
Linux Image V2.1 Beta 1 (October 22, 2013)
- U-Boot:
  - Fix long standing boot hang issue introduced by Freescale's Vybrid 1.1 silicon.
  - Fix possible uninitialised array member issue in serial number to
      hexadecimal coded decimal conversion routine (e.g. as used for
      /proc/cpuinfo in Linux).
  - Migrate default NAND vs. SD card boot configuration (in-line with Colibri T20)
  - Integrate config block handling
  - Increase the available space for the U-Boot binary to half a megabyte by booting from gfxRAM rather than sysRAM0.
  - Initial support based off Timesys' implementation for Freescale's Vybrid Tower System TWR-VF65GS10:
    - New machine ID.
    - Default UART_A on SCI0.
    - ESDHC2 only.
    - 8-bit NAND.
    - No quad SPI.
    - FEC1 only.
    - Enabled command line editing.
    - PLL5 based RMII clocking (e.g. no external crystal).
    - UART_A, UART_B and UART_C I/O muxing.
- Linux kernel:
  - Hackish USBH_PEN implementation.
  - Setup memory if mem= is not passed to kernel.
  - Enable RTS/CTS on UART_A aka UART0 and UART_B aka UART2.
  - Integrate backlight using both BL_ON GPIO and PWM<A>.
  - Re-worked IOMUX pin muxing.
  - Disable magic SysRq key configuration as this is not only a potential
       security thread but can cause serious trouble if for some reason UART pins
       are left floating and therefore cause unexpected break conditions.
  - Decrease DMA zone size configuration.
  - Enable tmpfs POSIX ACL configuration.
  - Re-enable L2 cache kernel configuration as it is now only enabled if actually present on chip.
  - Implement resistive touch screen driver using ADCs and GPIOs.
  - Add Eon Silicon Solutions manufacturer ID and integrate mxc_nand platform data handling.
  - Disable NAND controller software ECC in order to use hardware ECC.
  - Enable ADC driver as well as debugfs file system.
  - Fix DCU clock rounding, set DCU clock to 150.7 MHz, increase display pin drive strength and
      configure DCU for VESA VGA with a 30 MHz pixel clock
  - Enable CPU idle, NEON, ASRC and printk time.
  - Initial support based off Timesys' implementation for Freescale's Vybrid Tower System TWR-VF65GS10:
    - New machine ID.
    - FEC1 only.
    - ESDHC2 only with card detect interrupt.
    - PLL5 based RMII clocking (e.g. no external crystal).
    - VESA VGA display timing (tested with 5.7" EDT ET057090DHU).
    - Default UART_A on SCI0.
    - UART_A and UART_C I/O muxing.
    - I2C real time clock on carrier board.
    - Early boot console support.
    - 8-bit NAND.
- rootfs / oe-core:
  - OpenEmbedded: layers from dylan
      xserver version 1.14
      gtk+ 2.24.15
      midori 0.5.0
  - NEON and hard float enabled build
  - feed-config: use the new feed armv7ahf-vfp-neon
  - evdev: backport V2.8.1 from dora to get a fix for multitouch events
  - browser: use midori
  - burnflash: script for config block generation
  - systemd-journald: limit journal size
- sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF50_LinuxImageV2.1Beta1_20131022

Known Issues:
- LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution.

********************************************************************************
Notes:
- 115200 baud serial debug console on UARTA aka FFUART (lower X25 on EvalBoards
  resp. X27 on V3.1a depending on JP17/19, X13 on Iris) without any handshake
- user account: root with empty password
- UBIFS flash root file system
- opkg package manager

Working on latest image:
- U-Boot boot loader
  - environment storage in NAND flash
  - Ethernet
  - MMC/SD cards
  - NAND flash
  - RAM size auto detection
  - serial console debug UARTA
  - Toradex Colibri configuration block handling
  - module type auto detection
  - USB storage as host on USB host port
  - USB device firmware upgrade (DFU) as device on USB OTG port
  - framebuffer support
- Linux kernel
  - GPIOlib /sys/class/gpio
  - temperature sensor via hwmon /sys/class/hwmon/hwmon0/temp1_input
  - RTC (Vybrid internal with wakeup support and board level I2C RTC)
  - Ethernet eth0
  - NAND flash MTD/UBI/UBIFS with hardware ECC
  - serial console debug UARTA ttyLP0
  - serial UARTA/UARTB and UARTC up to 921600, including RTS/CTS
  - RS-485
  - I2C via /dev/i2c-X
  - MMC/SD card ESDHC2
  - PWM /sys/class/pwm/
  - Colibri VF61: AC97 analogue audio capture, playback and resistive touch
  - optional SPI (DSPI) via /dev/spidev1.0
  - framebuffer console
  - custom Ethernet MAC address
  - serial number and board revision
  - watchdog
  - USB host port
  - USB webcam
  - USB raw HID device /dev/hidrawX
  - USB device Ethernet RNDIS
  - USB device CDC ACM
  - automatic USB device/host detection aka OTG support
  - analogue inputs (ADC) /sys/bus/iio/devices/
  - analogue outputs (DAC)
  - power management (standby is Stop mode)
  - interrupt router (peripheral gets routed on interrupt request)
  - CAN via MCP2515 on Evaluation Board
  - optional CAN (Vybrid SoC internal FlexCAN)
- Linux user-space
  - graphics (DCU aka parallel RGB)
  - GPIO config tool
  - LXDE

Not working or not tested:
- U-Boot USB keyboard
- Linux kernel
  - IrDA
  - USB audio driver
  - optional parallel camera interface

******************************************************************************
Flashing instruction have been moved to the Toradex developer article:
http://developer.toradex.com/knowledge-base/flashing-linux-on-vybrid-modules

Toradex, October 4, 2016