
Summary
=======

This README is about U-Boot support for TI's ARM Cortex-A8 based OMAP3 [1]
family of SoCs. TI's OMAP3 SoC family contains an ARM Cortex-A8. Additionally,
some family members contain a TMS320C64x+ DSP and/or an Imagination SGX 2D/3D
graphics processor and various other standard peripherals.

Currently the following boards are supported:

* OMAP3530 BeagleBoard [2]

* Gumstix Overo [3]

* TI EVM [4]

* OpenPandora Ltd. Pandora [5]

* TI/Logic PD Zoom MDK [6]

* TI/Logic PD Zoom 2 [7]

* CompuLab Ltd. CM-T35 [8]

Toolchain
=========

While ARM Cortex-A8 support ARM v7 instruction set (-march=armv7a) we compile
with -march=armv5 to allow more compilers to work. For U-Boot code this has
no performance impact.

Build
=====

* BeagleBoard:

make omap3_beagle_config
make

* Gumstix Overo:

make omap3_overo_config
make

* TI EVM:

make omap3_evm_config
make

* Pandora:

make omap3_pandora_config
make

* Zoom MDK:

make omap3_zoom1_config
make

* Zoom 2:

make omap3_zoom2_config
make

* CM-T35:

make cm_t35_config
make

Custom commands
===============

To make U-Boot for OMAP3 support NAND device SW or HW ECC calculation, U-Boot
for OMAP3 supports custom user command

nandecc hw/sw

To be compatible with NAND drivers using SW ECC (e.g. kernel code)

nandecc sw

enables SW ECC calculation. HW ECC enabled with

nandecc hw

is typically used to write 2nd stage bootloader (known as 'x-loader') which is
executed by OMAP3's boot rom and therefore has to be written with HW ECC.

For all other commands see

help

Interfaces
==========

gpio

To set a bit :

	if (!gpio_request(N, "")) {
		gpio_direction_output(N, 0);
		gpio_set_value(N, 1);
	}

To clear a bit :

	if (!gpio_request(N, "")) {
		gpio_direction_output(N, 0);
		gpio_set_value(N, 0);
	}

To read a bit :

	if (!gpio_request(N, "")) {
		gpio_direction_input(N);
		val = gpio_get_value(N);
		gpio_free(N);
	}
	if (val)
		printf("GPIO N is set\n");
	else
		printf("GPIO N is clear\n");


Acknowledgements
================

OMAP3 U-Boot is based on U-Boot tar ball [9] for BeagleBoard and EVM done by
several TI employees.

Links
=====

[1] OMAP3:

http://www.ti.com/omap3 (high volume) and
http://www.ti.com/omap35x (broad market)

[2] OMAP3530 BeagleBoard:

http://beagleboard.org/

[3] Gumstix Overo:

http://www.gumstix.net/Overo/

[4] TI EVM:

http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html

[5] OpenPandora Ltd. Pandora:

http://openpandora.org/

[6] TI/Logic PD Zoom MDK:

http://www.logicpd.com/products/devkit/ti/zoom_mobile_development_kit

[7] TI/Logic PD Zoom 2

http://www.logicpd.com/sites/default/files/1012659A_Zoom_OMAP34x-II_MDP_Brief.pdf

[8] CompuLab Ltd. CM-T35:

http://www.compulab.co.il/t3530/html/t3530-cm-datasheet.htm

[9] TI OMAP3 U-Boot:

http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz
