summaryrefslogtreecommitdiff
path: root/release-notes/Colibri_VF_LinuxReleaseNotesV2.x.txt
blob: b333db129c66f2d01c579ed034d8bc0a7b350ed9 (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
******************************************************
Release Notes:  Linux Image V2.x for Colibri VF50/VF61
******************************************************

Contents:
- U-Boot 2014.10 boot loader
- Linux 3.18.5 kernel
- Angstrom/OpenEmbedded/Yocto 2014.06/daisy/1.6 based root file system, using
  LXDE desktop environment

==> Flashing instructions can be found at the very bottom of this release notes

********************************************************************************
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 resitive 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 uninizialized 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 precission 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}'
********************************************************************************
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

********************************************************************************
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 UART0 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
- Linux host used for update preparation requires proper 32-bit execution environment (e.g. install ia32-libs on 64-bit Ubuntu) and awk (e.g. install gawk on Ubuntu)

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 DFU
- Linux kernel
  - GPIOlib /sys/class/gpio
  - PWM /sys/class/pwm/
  - temperature sensor /sys/bus/iio/devices/iio\:device0/in_temp_input
  - RTC (Vybrid internal without wakeup support and board level I2C RTC)
  - Ethernet eth0
  - NAND flash MTD UBIFS with hardware ECC
  - serial console debug UARTA (ttyLP0)
  - serial UARTA/UARTB and UARTC up to 921600, including RTS/CTS
  - I2C via /dev/i2c-X
  - MMC/SD card ESDHC2
  - framebuffer console
  - custom Ethernet MAC address
  - serial number and board revision
  - USB host port
  - USB raw HID device /dev/hidrawX
  - USB device Ethernet RNDIS
  - USB device CDCACM
  - analogue inputs /sys/bus/iio/devices/
  - power management (standby is Stop mode)
  - interrupt router (peripheral gets routed on interrupt request)
  - watchdog
  - optional CAN (Vybrid SoC internal)
- Linux user-space
  - graphics (DCU aka parallel RGB)
  - Midori browser
  - GPIO config tool
  - LXDE
  - Cortex M4 utility mqxboot
  - communication library libmcc

Not working or not tested:
- U-Boot boot loader
  - USB keyboard
  - framebuffer support
- Linux kernel
  - USB audio driver
  - USB webcam
  - automatic USB device/host detection aka OTG support
  - IrDA
  - optional parallel camera interface
  - RS-422/485
  - SPI (DSPI)
  - Colibri VF61:
    - analogue audio (early version available on git)
    - resistive touch (early version available on git)

******************************************************************************
NAND Boot: Colibri VF50 V1.0a and V1.1a, Colibri VF61 V1.0b and V1.1b (Sample)
******************************************************************************

If the boot loader in NAND got corrupted UART/SD card boot as described further
down can be used as a means of recovery.

Initial Preparation:
- download and extract Colibri_VF_LinuxImageVx.yz.tar.bz2 package with root
  permissions
- use any VFAT formatted SD, uSD card or USB flash drive with at least 100 MB
  of free space
- optionally format the SD or uSD card using the format_sd.sh script
  (warning: everything on the SD card will be erased!)
- run update.sh script with optional -o argument pointing to mount point of
  above mentioned SD card or USB flash drive
- insert prepared SD card into SD card/MMC SDIO-socket (X15/X10 on Iris)

Flash NAND:
- EvalBoard V3.1a
  - 115200 baud serial debug console on UART_A
    (lower X25 resp. X27 depending on JP17/19) without any handshake
- Iris V1.1a
  - 115200 baud serial debug console on UART_A
    (X13) without any handshake
- apply power or reset
- hit any key to stop auto booting
- use 'run setupdate' commands
  (for old U-Boot versions 'mmc part 0 ; fatload mmc 0:1 $loadaddr flash_mmc.img ;source $loadaddr')
- use 'run update' command

Boot from NAND:
- EvalBoard V3.1a/V3.2a or Iris V1.1a
- above given update command should automatically perform a soft re-boot upon
  successful completion
- optionally power cycle
- upon first boot post-install scripts are run which take some time

********************************************************************
UART Boot: Colibri VF50 V1.1a and Colibri VF61 V1.1b (Sample, fused)
********************************************************************

If the boot loader in NAND got corrupted this can be used as a means of recovery.

For detailed description, see also:
http://developer.toradex.com/knowledge-base/vfxx-recovery-mode

For initial Preparation, refer to NAND Boot above.
- If you have a 32-bit Linux host, replace vf_flash/imx_uart with its 32-bit
  version vf_flash/imx_uart.m32 i.e. sudo mv vf_flash/imx_uart
  vf_flash/imx_uart.m64; sudo ln -s vf_uart.m32 vf_flash/imx_uart
- For config block recovery, run the ./create_configblock.sh script to
  generate a configblock.bin file before creating the SD card

Connect UART_A:
- On EvalBoard V3.1a, use on-board FTDI (bridge RTS/CTS on module side, X11 5/6)
- On EvalBoard V3.2a, use on-board FTDI (do not bridge RTS/CTS!)
- On Iris, use RS232 adapter with RTS/CTS support

Enter recovery mode:
- Turn the module off
- On EvalBoard V3.1a, press the recovery button
- On Iris, short pin 1-2 of JP1 on Iris for recovery
- Turn the module on

Boot using UART:
- Use update.sh -d /dev/ttyUSB0
- When RTS/CTS is shortened on module side, disable RTS/CTS on PC side by using
  argument -n

Flash NAND:
- EvalBoard V3.1a/V3.2a
  - 115200 baud serial debug console on UART_A
    (lower X25 resp. X27 depending on JP17/19) without any handshake
- Iris V1.1a
  - 115200 baud serial debug console on UART_A
    (X13) without any handshake
- hit enter to verify the U-Boot command prompt
- Use 'run setupdate' command to load update commands from SD card
  - Migrating from images before V2.2: use 'run migrate_v2.1b3' to migrate
    config block to new flash layout.
  - To re-create boot configuration block: use 'run create_bcb' to re-create
    the boot configuration block. Then, use 'run update_configblock' to flash
    the config block again.
    Finally, use 'run update' command to update the boot loader, kernel and
    root file system.

Note: After UART recovery, the module is resetted automatically, however when
resetting, the module enters recovery mode again. One need to power cycle the
module to start the flashed image.

Note: This also works for non-fused modules. However, the jumper X11-37 need to
be removed. The reason is that non-fused modules determine the UART for serial
loader from SO-DIMM 105 (X11-37) and SO-DIMM 101 (X22-9), which both need to
be low in order to boot from UART0.

***************************************************************************
SD Card Boot: Colibri VF50 V1.0a and Colibri VF61 V1.0b (Sample, non-fused)
***************************************************************************

If the boot loader in NAND got corrupted this can also be used as a means of recovery.

Initial Preparation:
- EvalBoard V3.1a
  - select SD boot bootstrap option
    - pull the following X8 pins down aka to ground with 1 k ohm resistors: 23 and 33
    - pull the following X8 pins up aka to 3.3 volt with 1 k ohm resistors: 21, 27, 34 and 44
- download and extract Colibri_VF_LinuxImageVx.yz.tar.bz2 package with root permissions

Flash SD Card:
- use any SD resp. uSD card of at least 100 MB capacity
- format and flash SD resp. uSD card using format_sd.sh script giving -d argument pointing to
    device file of SD card and -f argument (warning everything will be erased)

Boot from SD Card:
- EvalBoard V3.1a
  - insert SD card into SD card/MMC SDIO-socket (X15)
- apply power
- upon first boot post-install scripts are run which takes around 2 minutes, please be patient

Toradex, February 03, 2015