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
|
************************************************
Release Notes: Linux Image V2.x for Colibri T20
************************************************
Contents:
- U-Boot 2011.06 boot loader
- Linux 3.1.10 kernel, based on NVIDIA's Linux for Tegra (L4T) release 16-r2
- OpenEmbedded oe-core 2012.10 based root file system, using LXDE desktop environment
Licensing:
- proprietary multimedia codecs included for evaluation purpose only
- customer required to obtain proper re-distribution license
********************************************************************************
Linux Image V2.0 (March 07, 2013)
- U-Boot:
- no changes
- Linux kernel:
- no changes
- rootfs / oe-core:
- fix new Toradex CI
- add Toradex Bookmarks to Firefox
- configure terminal app in file manager
- add audio file associations
- add dos file system tools
- add setxkbmap package
- sources git.toradex.com tag T20_LinuxImageV2.0_20130305
Known Issues:
- LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution, comments with timings for other resolutions provided
- some windows have garbled titlebar, e.g. lxterminal
- lxappearance is segfaulting upon start
- LP1 suspend might fail due to pending USB interrupts
- LP1 suspend might hang due to display controller issue
********************************************************************************
Linux Image V2.0 Beta 2 (January 29, 2013)
- U-Boot:
- code clean-up
- Linux kernel:
- fix high speed UARTs, i.e. clocks could not be set for certain baudrates
- added thermal throttling, i.e. CPU freq. is reduced when CPU gets hot
- mcp251x: add BERR counter functionality, courtesy of Mitja Spes
- fix GMI_WR_N on SODIMM pin 93 RDnWR
- fbcon: logo: allow easy integration of a custom Linux boot logo
- code clean-up
- oe-core:
- use latest u-boot and Linux kernel
- use latest GPIOConfig, unified with Colibri-T30
- burnflash: genext3fs.sh use -F mount option to work around language option
- use a unified recipe for the Linux kernel
- use new Toradex CI
- sources git.toradex.com tag T20_LinuxImageV2.0Beta2_20130129
Known Issues:
- LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution, comments with timings for other resolutions provided
- some windows have garbled titlebar, e.g. lxterminal
- lxappearance is segfaulting upon start
- LP1 suspend might fail due to pending USB interrupts
- LP1 suspend might hang due to display controller issue
********************************************************************************
Linux Image V2.0 Beta 1 (December 18, 2012)
- U-Boot:
- SD boot fix
- add enterrcm command to allow manually entering recovery mode
- fix NVIDIA partition table parsing
- fix Ethernet detection fault
- Linux kernel:
- added one wire platform data (conditional, CONFIG_W1_MASTER_TEGRA must be enabled)
- implement analog input AD0 aka ANALOG_IN0 as voltage_now and AD1 aka ANALOG_IN1 as temp value (see /sys/class/power_supply/colibri_t20-analog_inputs)
- unified Ethernet initialisation
- GPIO keys implementation
- USB OTG support
- USB gadget using Android function stack
- USB full speed limiting (see usb_high_speed kernel command line argument)
- USB device now reports 2 mA VBUS draw
- revise Ethernet MAC address assignment: should now use MAC from EEPROM if set and further handles up to two instances of custom user MACs (2nd one with a 0x100000 offset), this way customer does not have to put EEPROM on a secondary Ethernet on carrier board and still gets a valid official MAC address from us (e.g. analogous to how we do it on our Protea carrier board)
- fix VESA VGA graphics aka too much TuxTM issue
- using full PMIC power off which decreases power consumption but reset won't force a re-boot anymore
- implement Video-DAC power save for Iris
- LP1 suspend support (Colibri T20 512 MB on Iris draws around 180 mW)
- re-worked function tri-stating
- irq 68 nobody cared workaround
- oe-core:
- L4T release 16-r2 userspace binaries
- update procedure: use loader.nb0 as the target binary, add .bat file for flashing from Windows, improved parameter checks,
- configure RNDIS with Androids USB gadget
- dropbear: disable reverse DNS lookups, prevents timeout if no DNS Server is available
- add gstreamer plugins, nvvidconv Nvidia colorspace conversion, mp3 helpers
- xinput-calibrator: make the menu entry behaviour equal to the one time calibration on first boot
- added firmware for Ralink WiFi chipsets, e.g. WL250N USB WiFi stick from Ambicom
- add the rootfs builddate to /etc/issue -> Welcome banner
- add license information generated from oe-core and merge this with the Nvidia licenses in the common folder /usr/share/common-licenses
- kernel recipe: remove all fiddling with the defconfig, compile the kernel as it is in git
- header files for OpenGL, EGL, OpenMAX: taken from www.khronos.org
- firefox: set develper.toradex.com as the homepage
- sources git.toradex.com tag T20_LinuxImageV2.0Beta1_20121218
Known Issues:
- LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution, comments with timings for other resolutions provided
- some windows have garbled titlebar, e.g. lxterminal
- lxappearance is segfaulting upon start
- LP1 suspend might fail due to pending USB interrupts
- LP1 suspend might hang due to display controller issue
********************************************************************************
Linux Image V2.0 Alpha 2 (October 19, 2012)
- update to L4T R16, !!!THIS REQUIRED TO CHANGE THE CALLING CONVENTION TO HARD FLOAT!!!
- U-Boot:
- use a generic approach to get the MTD partitions to ease changes to the partition layout
(Initial partition table parsing courtesy of Mitja Špes from LXNAV)
- increase kernel partition size to 8 MB
- move the init output from the framebuffer console to the serial output
- Linux kernel:
- implement analog input AD0 aka ANALOG_IN0 as voltage_now and AD1 aka ANALOG_IN1 as temp value. See /sys/class/power_supply/colibri_t20-analog_inputs.
- PWM B, PWM C, PWM D now accessible from userspace, /sys/class/leds/
- IPv6 enabled
- USB audio enabled
- PWM backlight fixed
- oe-core:
- updated the different meta-layers
- change machine configuration to use hard float
- change OpenGL ES nvsamples to use hard float and not using pre-compiled shaders
- sources git.toradex.com tag T20_LinuxImageV2.0Alpha2_20121019
Known Issues:
- LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution, comments with timings for other resolutions provided
- some gstreamer plugins, notably mp3decoding, h264encoding not working
- some windows have garbled titlebar, e.g. lxterminal
- lxappearance is segfaulting upon start
- USB OTG port, not working
- SD card boot copies only 4 MB from kernel (see further below for workaround)
Calling Convention hard float:
The way floats are passed in subroutine calls can be either in processor registers or
in the floating point coprocessor registers.
The processor register approach is used when gcc is called with -mfloat-abi=softfp or -mfloat-abi=soft
The FPU register approach is used when gcc is called with -mfloat-abi=hard
These two methods are not compatible with each other, all programs and libraries must be compiled
either with softfp/soft or with hard.
Thus all code used with Alpha2 must be recompiled. If you start a program which uses soft calling
convention you will get a 'No such file or directory' error, despite that the file exists and has executable permissions.
********************************************************************************
Linux Image V2.0 Alpha 1 (August 9, 2012)
- migrated from Vibrante 1.1 to L4T R15
- migrated from OpenEmbedded classic to OpenEmbedded core
- power management (frequency and voltage scaling) enabled
- touch calibration applied after boot, missing configuration triggers calibrator launch
- USB high speed activated by default, change if your baseboard only supports low and full speed
- sources git.toradex.com tag T20_LinuxImageV2.0Alpha1_20120808
Known Issues:
- sometimes postinsts script not executed at first boot resulting in no icons and no fonts on graphical screen
workaround: manually execute /etc/init.d/run-postinsts
- LVDS aka TFTLCD resolution hardcoded in kernel to VESA VGA resolution
- some gstreamer plugins, notably mp3 not working
- X server needs ugly hack not to segfault, some regions are not redrawn nicely when hoovered over by mouse
- some windows have garbled titlebar, e.g. lxterminal
- Firefox not yet working and thus not included
********************************************************************************
Notes:
- 115200 baud serial debug console on UARTA aka FFUART (lower X25 on EvalBoards, X13 on Iris) without any handshake
- user account: root with empty password
- YAFFS2 flash root file system
- opkg package manager
- HDMI aka DVI-D: not all pixel clock frequencies allow for HDMI audio
- CRT: The T20 internal video DAC output is unsupported by NVIDIA's L4T Linux SW stack
- Linux host used for recovery mode flashing requires proper 32-bit execution environment (e.g. install ia32-libs on 64-bit Ubuntu)
Working:
- U-Boot boot loader
- environment storage in NAND flash or on MMC/SD card
- Ethernet
- MMC/SD cards
- NAND flash with NVIDIA partition table parsing
- RAM size auto detection
- serial console debug UARTA
- Toradex Colibri configuration block handling
- USB storage as host
- TFTLCD framebuffer support
- Linux kernel
- GPIOlib /sys/class/gpio
- temperature sensor /sys/bus/i2c/devices/4-004c
- RTC (Tegra internal, PMIC and board level I2C RTC)
- Ethernet eth0
- NAND flash MTD YAFFS2
- serial console debug UARTA
- high speed serial UARTB and UARTD
- I2C via /dev/i2c-X
- MMC/SD card, optional 8-bit SDHCI
- PWM LEDs /sys/class/leds/
- HDMI SPDIF audio
- AC97 audio capture, playback and touch
- SPI via /dev/spidev3.0
- GMI with multiplexed nPWE and RDnWR
- framebuffer console
- custom Ethernet MAC Address
- serial number and board revision
- watchdog
- USB host port
- USB audio driver
- USB webcam
- USB raw HID device /dev/hidrawX
- USB device Ethernet RNDIS, provided by Android gadget
- automatic USB device/host detection aka OTG support
- analog input AD0, AD1 /sys/class/power_supply/colibri_t20-analog_inputs
- suspend LP1
- DVFS power management
- Linux user-space
- graphics (LVDS-1 aka TFTLCD and HDMI-1 aka DVI-D)
- tegrastats
- Firefox
- Gstreamer video playback, dual full HD video decode
- GPIO config tool
- LXDE
- tegrastats-gtk, CPU information visible in graphical environment
Not working or not tested:
- U-Boot USB keyboard
- Adobe Flash not provided by L4T (and probably never will)
- opkg package feeds seem to not be usable
*****************************************************************************************************************************************************************************************
NAND Boot: Colibri T20 256MB V1.1b (Sample), Colibri T20 512MB V1.1c (Sample), Colibri T20 256MB V1.2a, Colibri T20 512MB V1.2a, Colibri T20 256MB IT V1.2a or Colibri T20 512MB IT V1.2a
*****************************************************************************************************************************************************************************************
Initial Preparation:
- download and extract T20_LinuxImageVx.yz.tar.bz2 package
Flash NAND:
- EvalBoard V3.1a
- connect USB B (X29) or USB micro A/B (X30) to development workstation using regular or micro USB cable
- the jumper JP2 must be open
- press and hold recovery mode switch (SW9) during power up
- Iris V1.1a
- connect USB micro A/B (X12) to development workstation using regular micro USB cable
- short pin 1-2 of JP1 on Iris for RECOVERY
(other carrier boards see http://developer.toradex.com/knowledge-base/colibri-recovery-mode)
- make sure that the carrier board supports USB high speed
- Iris & EvalBoard V3.1a OK, for other carrier boards see http://developer.toradex.com/knowledge-base/usb-2.0-high-speed-%28480mbps%29 )
- apply power or reset
- run update.sh script
- use -r 512 option for 512 MB RAM modules
- use -v V1_1 option for V1.1b or V1.1c modules
Boot from NAND:
- EvalBoard V3.1a
- do no longer press SW9
- Iris V1.1a
- do no longer short any pins of JP1
- power cycle
- upon first boot post-install scripts are run which takes around 2 minutes, please be patient
*******************************************************************************************************************************************************************************************************************************************************************
SD Card Boot: Colibri T20 256MB V1.1b (Sample), Colibri T20 512MB V1.1c (Sample), Colibri T20 256MB V1.2a, Colibri T20 512MB V1.2a, Colibri T20 256MB IT V1.2a or Colibri T20 512MB IT V1.2a on Colibri Evaluation Board V3.1a or Iris Pico ITX Carrier Board V1.1a
*******************************************************************************************************************************************************************************************************************************************************************
Initial Preparation:
- EvalBoard V3.1a
- ground the following user extension (X3) pins to select the SD boot bootstrap option: A6, B6, C5 and C6
- insert SD card into SD card/MMC SDIO-socket (X15)
- Iris V1.1a
- populate 100 ohm resistors R109, R111, R112 and R113 close to micro SD card holder (X10, see bottom assembly drawing fig.7 page 21 of Iris data sheet)
- populate boot mode header (JP1)
- insert micro SD card into micro SD card holder (X10)
- download and extract T20_LinuxImageVx.yz.tar.bz2 package
Flash SD Card:
- EvalBoard V3.1a
- connect USB B (X29) or USB micro A/B (X30) to development workstation using regular or micro USB cable
- the jumper JP2 must be open
- press and hold recovery mode switch (SW9) during power up
- Iris V1.1a
- connect USB micro A/B (X12) to development workstation using regular micro USB cable
- short all 3 pins of JP1 for RECOVERY and SD_BOOT
- apply power or reset
- run update.sh script with -b hsmmc option
- use -r 512 option for 512 MB RAM modules
- use -v V1_1 option for V1.1b or V1.1c modules
Boot from SD Card:
- EvalBoard V3.1a
- do no longer press SW9
- Iris V1.1a
- short pin 2-3 of JP1 for SD_BOOT
- power cycle
- upon first boot post-install scripts are run which takes around 2 minutes, please be patient
Toradex, May 11, 2013
|