summaryrefslogtreecommitdiff
path: root/TI_OMAP4_Kernel_Release_Notes_L24.x.txt
blob: 8126f918587b2e85c382aad86297f7ef844ea64c (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
27 September 2010


1.  Introduction
----------------
This document accompanies OMAP(TM) Software Release L24.10 based on Linux 2.6.35
on OMAP4430 SDP, Blaze and Panda boards. The document specifies details about:
	- downloading the source code and building the images
	- supported features
	- defects fixed and defects existing in the release.

2. Release Summary
------------------
This is a release of the Linux Baseport for OMAP4430. It supports the
OMAP4 SDP, Blaze and Panda boards. The kernel is based on Linux version 2.6.35
from open source. U-boot is based on open-source version v2010-09

NOTE that the Kernel for SDP, Blaze and Panda boards is the same. However the
bootloaders for Panda are in separate GITs compared to the ones for SDP and Blaze. 
L24.10 onwards the same bootloader codebase will support all the boards.

2.1 Bootloaders for SDP, Blaze, and Panda boards
The u-boot source can be obtained via GIT from:
  http://dev.omapzoom.org/?p=bootloader/u-boot.git;a=shortlog;h=refs/heads/omap_upstream

The x-loader source can be obtained via GIT from:
  http://dev.omapzoom.org/?p=bootloader/x-loader.git;a=shortlog;h=refs/heads/omap4_dev

2.3 Kernel for all boards (SDP, Blaze, Panda)
The kernel source can be obtained via GIT from:
  http://dev.omapzoom.org/?p=integration/kernel-omap4.git;a=shortlog;h=refs/heads/L24.10

Components that are supported in the release:
   X-loader, U-Boot, OS Kernel (SMP), Phoenix power IC, UART, GP Timer, GPIO, Watchdog,
   Neon, I2C, MMC/SD/eMMC, Ethernet, RTC,
   SDMA (including descriptor loading), Keypad, Touch screen, McSPI, McBSP, Mentor USB,
   Phoenix General Purpose ADC, Battery Charging, Power Management Frameworks,
   Sensors (Proximity, Accelerometer, Ambient Light, Temperature, Digital Compass,Pressure)
   LED (PWM and GPIO), EHCI, OHCI.
   Audio (Phoenix Audio IC, ABE, AESS),
   Display driver (TAAL based), Basic display (DSS2 migration, FB dev), Tiler memory manager.
   WLAN support
   FM/Bluetooth support


3.  Instructions
----------------

3.1 Board setup

Please refer to the OMAP4430 SDP guide for instructions on setting up the OMAP4
board.

3.2 Compiling Images

While building u-boot and x-loader, please note the difference in config files used for
SDP/Blaze versus Panda. For building the kernel, the config file is same for all boards.

3.2.1 Compiling U-boot

Set the environment variable PATH such that cross compile binaries point to the
needed tool chain. Refer to section 5 for tool chain information.

To select the default configuration for U-Boot type:
    For SDP and Blaze boards:
	# make CROSS_COMPILE=arm-none-linux-gnueabi- omap4_sdp4430_config
    For Panda boards:
	# make CROSS_COMPILE=arm-none-linux-gnueabi- omap4_panda_config

To build the U-Boot image type:
	# make CROSS_COMPILE=arm-none-linux-gnueabi-


3.2.2 Compiling X-loader (for booting from external/removable MMC/SD)

Set the environment variable PATH such that cross compile binaries point to the
needed tool chain. Refer to section 5 for tool chain information.

Please note that the restriction requiring x-loader to be in the same directory
as u-boot has been removed. Now x-loader can be built independently. You need
not even have a u-boot directory to build x-loader.

To select the default configuration for X-loader type:
    For ES1.0 SDP and Blaze boards:
	# make CROSS_COMPILE=arm-none-linux-gnueabi- omap4430sdp_MPU_600MHz_config
    For ES2.0 SDP and Blaze boards:
	# make CROSS_COMPILE=arm-none-linux-gnueabi- omap4430sdp_config
    For ES1.0 Panda boards:
	# make CROSS_COMPILE=arm-none-linux-gnueabi- omap4430panda_MPU_600MHz_config
    For ES2.0 Panda boards:
	# make CROSS_COMPILE=arm-none-linux-gnueabi- omap4430panda_config

To build the X-loader image type:
	# make ift CROSS_COMPILE=arm-none-linux-gnueabi-

The above step will create a MLO image, which can be copied into the
MMC/SD card for booting via MMC/SD.

For booting from eMMC flash this MLO at sector 0x100(Address: 0x20000).
See section 3.3.2 for detailed instructions for flashing and booting
from eMMC.

3.2.4 Compiling the Kernel

Set the environment variable PATH such that cross-compile binaries point to the
needed tool chain. Refer to section 5 for tool chain information.

The default configuration file for OMAP 4430 is present at
arch/arm/configs/omap_4430sdp_defconfig.

To work with the default configuration file, run following commands:
	# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
					omap_4430sdp_defconfig

For booting the kernel on OMAP4430 ES1.0, additionally enable CONFIG_OMAP4_ES1 in
the kernel config.

Build kernel with:
	# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

NOTE:	The above steps will create arch/arm/boot/uImage in the kernel directory
	which is the binary used for booting.


3.3 Flashing and Booting

3.3.1 Booting from removable MMC

Use the MLO (ref: section 3.2.2) and u-boot.bin (ref: section 3.2.1) binaries
and follow the instructions at http://elinux.org/BeagleBoard#MMC.2FSD_boot
to boot the board from removable MMC.

Set the board switch settings as follows to boot the board from removable MMC:
	S9 - 1-off, 2-on, 3-on, 4-on
	S8 - 1-off, 2-on, 3-off, 4-on, 5-on, 6-on, 7-on, 8-on

3.3.2 Flashing and booting from eMMC

Follow the instructions below to save x-loader and u-boot binaries to eMMC and
subsequently boot from eMMC.

Get the x-loader and u-boot binaries (that you want to flash to eMMC) into RAM
using one of the following options.

Option 1:
Use a debugger or OMAPFlasher tool to download x-loader (with configuration
header, e.g. MLO) as well as u-boot.bin into SDRAM and run u-boot from SDRAM.

Option 2:
Boot via a removable MMC card following the instructions in section 3.3.1. 
After booting from removable MMC, copy the MLO and u-boot.bin from the MMC
to RAM using the following u-boot commands:
1.	MMC initialization
		mmc rescan <device>
2.	FAT read
		fatload mmc <device> <dest-addr> <file>
3.	raw write
		mmc write <device> <src-addr> <dest-sector> <num-sectors>
Device numbers:
External SD/MMC card => MMC 1 => device = 0
eMMC				 => MMC 2 => device = 1
Number of bytes per sector: 512
All parameters should be in hex

Example flashing sequence:
	OMAP4430 SDP # mmc rescan 0
	OMAP4430 SDP # fatls mmc 0
	OMAP4430 SDP # fatload mmc 0 80000000 MLO
				reading mlo
	20104 bytes read
	OMAP4430 SDP # mmc write 1 80000000 0x100 0x28
	OMAP4430 SDP # fatload mmc 0 80000000 u-boot.bin
	reading u-boot.bin
	146652 bytes read
	OMAP4430 SDP # mmc write 1 80000000 0x400 0x11F

Please note that 0x28 above is the number of sectors in 20104
rounded up => RU(20104/512)
Similarly 0x11F is number of sectors in 146652 bytes rounded up.

Set the board switch settings as follows to boot the board from eMMC:
	S9 - 1-off, 2-on, 3-on, 4-on
	S8 - 1-on, 2-on, 3-on, 4-on, 5-on, 6-off, 7-on, 8-on

3.3.3 Using Filesystem from eMMC

Use fdisk to create an ext2 partition (/dev/mmcblk0p2) in eMMC leaving 2MB of space
at the top.

Use the following commands to flash the filesystem to eMMC partition
1) Bootup with a known good kernel and filesystem from RAM
2) Use a filesystem which has USB Gadget filestorage module g_filestorage.ko
3) Connect the usb cable from the board to the PC
4) Load the USB filestorage gadget module as:
insmod g_filestorage.ko file=/dev/mmcblk0p2 stall=0 removable=1
5) When the USB drive enumerates on the Linux PC, mount the drive
6) Add ext2 filesystem to the mounted drive
7) sync and then mount the drive.
8) Add the following in bootargs "root=/dev/mmcblk0p2 rw rootdelay=1" to be able
to use the eMMC based FS as rootfs.

3.3.4 Bootargs

If your board has 1GB memory, add "mem=1G" in the bootargs. Most OMAP4430
ES2.0 SDP and Blaze boards have 1GB RAM. OMAP4 ES1.0 boards have 512 MB RAM.

Since UART3 is used as the console on OMAP4 Wakeup board, you need to set
'console=ttyO2,115200n8' in the bootargs

While using a filesystem from MMC/SD/eMMC, you may use params such as:
'root=/dev/mmcblk1p2 rw rootdelay=1'. The rootdelay is required because
removable cards may take a few seconds to be detected.

On SDP and Blaze boards, eMMC block device will always be available
at /dev/mmcblk0 while removable MMC/SD block device will be available at
/dev/mmcblk1.

While using a filesystem via NFS, you may use params such as:
'root=/dev/nfs rw nfsroot=&lt;serverip&gt;:&lt;mount-partition&gt;,nolock'

Refer to section 3.4.2 for display related bootargs options

For detailed list and explaination of the various boot parameters, please refer
http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch09.pdf


3.3.5 Saving environment variables in u-boot

The 'saveenv' command in u-boot saves the environment variables in eMMC
on OMAP4 SDP and Blaze boards. This is not supported on Panda boards as
eMMC is not available on Panda boards.

On SDP and Blaze, the environment variables  are stored on a RAW partition
of size 128KB on eMMC starting from sector 0x700 to sector 0x7FF. 

3.4 Using FB and V4L2 Display driver

For details please refer to:
http://omappedia.org/wiki/Bootargs_for_enabling_display

Write Back usage guide is available at:
http://omappedia.org/wiki/Write_Back_pipeline_usage_guide

3.5 Enabling Power Management Features

All PM features are enabled by default in OMAP4 kernel configuration
(omap_4430sdp_defconfig).
 
Note that PM features on OMAP4430 ES1.0 are not supported and hence 
all PM features are disabled once CONFIG_OMAP4_ES1 is selected.

3.5.1 CPU Hotplug

To hotplug out CPU1 use the following command

echo 0 > /sys/devices/system/cpu/cpu1/online

To bring back CPU1 online use the following command

echo 1 > /sys/devices/system/cpu/cpu1/online

Note that CPU0 cannot be offlined due to hardware limitation.
Currenlty CPU1 transitions to CSWR state when offlined. This can
only be verified using OBS signals.

3.5.2 CPUIdle

To test cpuidle, it's necessary that CPU1 is hotplugged out.
Use the below command to hotplug out CPU1
echo 0 >  /sys/devices/system/cpu/cpu1/online

Once CPU1 is hotplugged out, OBS signals can be used to
verify MPU/CPU0/CPU1 transtitions.

Currently only sleep state of MPU CSWR is supported.

3.5.3 System Suspend

To test system suspend, use the following command

echo mem > /sys/power/state

Use OBS signals to verify MPU/CPU0/CPU1 transitions.

Currently only sleep state of MPU CSWR is supported.

Please use a ramdisk inorder to test system suspend feature

3.6 Using Audio Driver

Include the asound.conf file in /etc directory in your FS. It maps the different
audio devices 

Usage:
aplay -D mm file.wav
aplay -D tones file.wav
aplay -D vx file.wav
aplay -D hd_audio file.wav



4. Features
-----------

4.1 New Features

- Power management to achieve Core CSWR.
- Mainline version of u-boot.
- SDP, Blaze and Panda supported in the same codebase of x-loader and u-boot.

4.2 Supported Features

- Boot-loader:
	X-loader with MMC/eMMC/SD support
	U-boot with USB, MMC/eMMC/SD and Ethernet support

- OS Kernel
	OS Kernel (SMP)
	Phoenix power IC,
	UART,
	GP Timer,
	GPIO,
	Watchdog,
	NEON,
	I2C,
	MMC/SD/eMMC ,
	Ethernet,
	RTC,
	SDMA (including descriptor loading),
	Keypad,
	Touch screen,
	McSPI,
	McBSP,
	Mentor USB,
	EHCI,
	OHCI,
	Phoenix General Purpose ADC,
	Battery Charging.
	Proximity sensor
	Accelerometer sensor
	Ambient Light sensor
	Temperature sensor
	Digital Compass
	Pressure Sensor
	LED (PWM and GPIO)

- Power Management Frameworks
	- Clock framework
	- Clockdomain framework
	- Powerdomain framework
	- Regulator framework
	- CPUidle with support upto MPU CSWR
	- System wide suspend with support upto MPU CSWR
	- CPU1 hotplug with support upto CPU1 CSWR

NOTE:
	- Power management (CONFIG_PM) is enabled by default for OMAP4430 ES2.0, 
	  while it is disabled for OMAP4430 ES1.0.
	- Most of the unused clocks are now disabled in bootloader.

- Audio
	Audio playback to Phoenix Hand-free, Head set output devices.
	HDMI audio playback
	Audio record through Phoenix analog MIC input.
	Simultaneous audio playback and capture.
	Audio Playback to Phoenix Earphone
	Audio Playback using Tones port
	ALSA controls for ABE mixers
	Add McPDM power management support

- Video
	Display driver
		- FBdev and V4L2 API support
		- Primary and Secondary DSI and HDMI displays
		- Simultaneous rendering on all 3 displays
		- Blanking of display after inactivity timer
		- Suspend and Resume on all the displays
			- Primary LCD
			- Secondary LCD
			- HDMI
			- Pico DLP
		- Tiler memory manager
		- Write-Back
		- Interlacing support


- WLAN

- FM/Bluetooth

4.3 Postponed Features

-none

4.4 Future Planned Features

Refer to Program schedule.

4.5 Defects Fixed in This Release

OMAPS00219723	MMC: sometimes the order of detection of eMMC and external SD card is wrong
OMAPS00221981	eMMC device shall be stable at /dev/mmcblk0
OMAPS00219502	IRQ 93 - I2C ISR not correctly handled
OMAPS00218080	PT: Robustness: EXT2-fs (mmcblk1p1): error: ext2_lookup is generated after certain number of iterations
OMAPS00214020	ethernet doesn't get configured with L24.4 kernel
OMAPS00215563	Not able to wakeup from suspend state
OMAPS00216039	L24x: Tick suppression won't work because of the LOCAL A9 timer aren't wakeup capable
OMAPS00216037	L24x: CPUx comes out of low power mode when there is an enevt om CPUy
OMAPS00220851	DMA test case failures - Descriptor loading and SMP
OMAPS00219141	u-boot net root path is too short
OMAPS00221839	MUSB (OTG) in Host mode: enumeration failure if USB device connected before blaze boot
OMAPS00215668	MUSB driver in device mode has problems with unaligned DMA.
OMAPS00221528	MUSB Host :- Fix the default DMA mapping of control transfer buffers
OMAPS00221512	USB: MUSB Host: Data transfers (Write to USB disk) fails with FAT errors
OMAPS00213825	Kernel crash when many processes have been scheduled
OMAPS00216449	Problems are seen with NFS when 'tcp' option is not specified in bootargs.
OMAPS00214020	ethernet doesn't get configured with L24.4 kernel
OMAPS00223050	White screen on  HDMI TV
OMAPS00223633	Display: DSI 250 ms timeout following PM Suspend
OMAPS00219789	V4L2 error observed when rendering frames from Video decode testcases
OMAPS00222749	With VSTAB enabled, 1080p preview fails.
OMAPS00222908	OMAPFB is not working with TILER buffer on L24.9
 


4.6 Open Defects

OMAPS00215651	MUSB driver in host mode has problems with unaligned DMA
OMAPS00217993	Display on Primary LCD does not wakeup when USB is active
OMAPS00218029	PT_PPM: Low USB-MS throughputs metrics for write operations
OMAPS00220506	omap-serial driver is unstable during bluetooth file transfer stress testing.
OMAPS00221541	UART trasfers fails at 3.5Mbps baudrate with DMA mode.
OMAPS00222079	MMC corruption on reading when ADMA is used
OMAPS00222347	[PT][Endurance] Transfer: PTLv1.3.8: Dxfer failed after some  iterations
OMAPS00222789	At random times, booting is not completed and the SDP hangs.
OMAPS00222925	USB Host - Chapter 9 control,in out test case failure
OMAPS00222943	Key press cannot wakeup system
OMAPS00213906	180 degree rotation of yuv format shows a bluish tinge
OMAPS00220581	L_JPEGDEC_FUNCTIONAL_001: multiple dark lines are seen when image is displayed
OMAPS00220816	PicoDLP shows a junk buffer at the bottom of the frame
OMAPS00221067	omaplfb relies on the FB2OFB definition, which is not defined by the headers of the Ubuntu kernel headers
OMAPS00223203	Writeback color conversion and upscaling is not working
OMAPS00223301	Sync Lost is observed when hdmi settings change is done through sysfs
OMAPS00223435	Display unblank takes to much time ~10 sec.
OMAPS00223490	Upscaling 512*612 resolution to 1080p for formats  RGB/NV12/YUV fails
OMAPS00223493	Support for 4/8/12/18 bpp mode is not working for framebuffer
OMAPS00224153	HPD with DVI is not working properly
OMAPS00224263	HDMI hotplug detection doesn't work consistently in some TVs
OMAPS00224600	FB not resizing based on the HDMI timing update
OMAPS00224611	DSI errors are seen while system wide suspend and resume

4.7 Open Change Requests
None

4.8 Rejected Defects

OMAPS00221558	HSMMC : Copying same file twice on MMC and when run "cmp" will throw error
OMAPS00218323	PT_Adhoc:Audio Playback of a file stored in SD card, Terminal hangs while SD is removed.
OMAPS00221850	UST OTG ( as HOST): CDC-ACM class issue
OMAPS00224344	Add support for horizontal flip in DSS driver
OMAPS00219829	PT_PPM: AV Playback: FPS numbers for Video Playback via HDMI are below validation criteria
OMAPS00222915	HDMI driver must not periodically wake up the system to enable ESD chip detecting plug insertion
 

4.9 Postponed Defects

OMAPS00221726	PT_PPM: Low USB-MS throughputs metrics for read operations
OMAPS00216446	Disabling "auto update" on DSI would impact the V4l2 drivers that have the ISRs hooked up for FRAMEDONE already.


4.10 Limitations

1) MAC address reading from ethernet EEPROM is not supported.


5. Tool Chain
-------------
The toolchain used to build the code can be obtained from CodeSourcery at the
following URL:
	http://www.codesourcery.com/sgpp/lite/arm/portal/release1293

The tool chain version is Sourcery G++ Lite 2010q1-202 for ARM GNU/Linux.

--------------------------------------------------------------------------------

OMAP(TM) is a Trademark of Texas Instruments Incorporated
Innovator(TM) is a Trademark of Texas Instruments Incorporated
Code Composer Studio(TM) is a Trademark of Texas Instruments Incorporated
DSP/BIOS(TM) is a Trademark of Texas Instruments Incorporated

All other trademarks are the property of the respective owner.