|  |  | 
|  | 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] | 
|  |  | 
|  | 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 | 
|  |  | 
|  | 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 (!omap_request_gpio(N)) { | 
|  | omap_set_gpio_direction(N, 0); | 
|  | omap_set_gpio_dataout(N, 1); | 
|  | } | 
|  |  | 
|  | To clear a bit : | 
|  |  | 
|  | if (!omap_request_gpio(N)) { | 
|  | omap_set_gpio_direction(N, 0); | 
|  | omap_set_gpio_dataout(N, 0); | 
|  | } | 
|  |  | 
|  | To read a bit : | 
|  |  | 
|  | if (!omap_request_gpio(N)) { | 
|  | omap_set_gpio_direction(N, 1); | 
|  | val = omap_get_gpio_datain(N); | 
|  | omap_free_gpio(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 [8] 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] TI OMAP3 U-Boot: | 
|  |  | 
|  | http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz |