2009-01-28 01:19:12 +08:00
|
|
|
|
|
|
|
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]
|
|
|
|
|
2009-01-29 04:39:57 +08:00
|
|
|
* Gumstix Overo [3]
|
|
|
|
|
2009-01-29 04:39:58 +08:00
|
|
|
* TI EVM [4]
|
|
|
|
|
2009-01-29 04:39:58 +08:00
|
|
|
* OpenPandora Ltd. Pandora [5]
|
|
|
|
|
2009-01-29 04:40:16 +08:00
|
|
|
* TI/Logic PD Zoom MDK [6]
|
|
|
|
|
2009-05-16 05:48:36 +08:00
|
|
|
* TI/Logic PD Zoom 2 [7]
|
|
|
|
|
2010-12-19 06:43:19 +08:00
|
|
|
* CompuLab Ltd. CM-T35 [8]
|
|
|
|
|
2009-01-28 01:19:12 +08:00
|
|
|
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
|
|
|
|
|
2009-01-29 04:39:57 +08:00
|
|
|
* Gumstix Overo:
|
|
|
|
|
|
|
|
make omap3_overo_config
|
|
|
|
make
|
|
|
|
|
2009-01-29 04:39:58 +08:00
|
|
|
* TI EVM:
|
|
|
|
|
|
|
|
make omap3_evm_config
|
|
|
|
make
|
|
|
|
|
2009-01-29 04:39:58 +08:00
|
|
|
* Pandora:
|
|
|
|
|
|
|
|
make omap3_pandora_config
|
|
|
|
make
|
|
|
|
|
2009-01-29 04:40:16 +08:00
|
|
|
* Zoom MDK:
|
|
|
|
|
|
|
|
make omap3_zoom1_config
|
|
|
|
make
|
|
|
|
|
2009-05-16 05:48:36 +08:00
|
|
|
* Zoom 2:
|
|
|
|
|
|
|
|
make omap3_zoom2_config
|
|
|
|
make
|
|
|
|
|
2010-12-19 06:43:19 +08:00
|
|
|
* CM-T35:
|
|
|
|
|
|
|
|
make cm_t35_config
|
|
|
|
make
|
|
|
|
|
2011-11-05 01:53:44 +08:00
|
|
|
* BlueLYNX-X:
|
|
|
|
|
|
|
|
make omap3_mvblx_config
|
|
|
|
make
|
|
|
|
|
2009-01-28 01:19:12 +08:00
|
|
|
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
|
|
|
|
|
2009-05-16 05:48:36 +08:00
|
|
|
Interfaces
|
|
|
|
==========
|
|
|
|
|
|
|
|
gpio
|
2011-09-28 13:00:26 +08:00
|
|
|
----
|
2009-05-16 05:48:36 +08:00
|
|
|
|
|
|
|
To set a bit :
|
|
|
|
|
2011-09-08 22:48:39 +08:00
|
|
|
if (!gpio_request(N, "")) {
|
|
|
|
gpio_direction_output(N, 0);
|
|
|
|
gpio_set_value(N, 1);
|
2009-05-16 05:48:36 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
To clear a bit :
|
|
|
|
|
2011-09-08 22:48:39 +08:00
|
|
|
if (!gpio_request(N, "")) {
|
|
|
|
gpio_direction_output(N, 0);
|
|
|
|
gpio_set_value(N, 0);
|
2009-05-16 05:48:36 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
To read a bit :
|
|
|
|
|
2011-09-08 22:48:39 +08:00
|
|
|
if (!gpio_request(N, "")) {
|
|
|
|
gpio_direction_input(N);
|
|
|
|
val = gpio_get_value(N);
|
|
|
|
gpio_free(N);
|
2009-05-16 05:48:36 +08:00
|
|
|
}
|
|
|
|
if (val)
|
|
|
|
printf("GPIO N is set\n");
|
|
|
|
else
|
|
|
|
printf("GPIO N is clear\n");
|
|
|
|
|
2011-09-28 13:00:26 +08:00
|
|
|
dma
|
|
|
|
---
|
|
|
|
void omap3_dma_init(void)
|
|
|
|
Init the DMA module
|
|
|
|
int omap3_dma_get_conf_chan(uint32_t chan, struct dma4_chan *config);
|
|
|
|
Read config of the channel
|
|
|
|
int omap3_dma_conf_chan(uint32_t chan, struct dma4_chan *config);
|
|
|
|
Write config to the channel
|
|
|
|
int omap3_dma_conf_transfer(uint32_t chan, uint32_t *src, uint32_t *dst,
|
|
|
|
uint32_t sze)
|
|
|
|
Config source, destination and size of a transfer
|
|
|
|
int omap3_dma_wait_for_transfer(uint32_t chan)
|
|
|
|
Wait for a transfer to end - this hast to be called before a channel
|
|
|
|
or the data the channel transferd are used.
|
|
|
|
int omap3_dma_get_revision(uint32_t *minor, uint32_t *major)
|
|
|
|
Read silicon Revision of the DMA module
|
|
|
|
|
2009-05-16 05:48:36 +08:00
|
|
|
|
2009-01-28 01:19:12 +08:00
|
|
|
Acknowledgements
|
|
|
|
================
|
|
|
|
|
2010-12-19 06:43:19 +08:00
|
|
|
OMAP3 U-Boot is based on U-Boot tar ball [9] for BeagleBoard and EVM done by
|
2009-01-28 01:19:12 +08:00
|
|
|
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/
|
|
|
|
|
2009-01-29 04:39:57 +08:00
|
|
|
[3] Gumstix Overo:
|
|
|
|
|
|
|
|
http://www.gumstix.net/Overo/
|
|
|
|
|
2009-01-29 04:39:58 +08:00
|
|
|
[4] TI EVM:
|
|
|
|
|
|
|
|
http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html
|
|
|
|
|
2009-01-29 04:39:58 +08:00
|
|
|
[5] OpenPandora Ltd. Pandora:
|
|
|
|
|
|
|
|
http://openpandora.org/
|
|
|
|
|
2009-01-29 04:40:16 +08:00
|
|
|
[6] TI/Logic PD Zoom MDK:
|
|
|
|
|
|
|
|
http://www.logicpd.com/products/devkit/ti/zoom_mobile_development_kit
|
|
|
|
|
2009-05-16 05:48:36 +08:00
|
|
|
[7] TI/Logic PD Zoom 2
|
|
|
|
|
|
|
|
http://www.logicpd.com/sites/default/files/1012659A_Zoom_OMAP34x-II_MDP_Brief.pdf
|
2010-12-19 06:43:19 +08:00
|
|
|
|
|
|
|
[8] CompuLab Ltd. CM-T35:
|
|
|
|
|
|
|
|
http://www.compulab.co.il/t3530/html/t3530-cm-datasheet.htm
|
|
|
|
|
|
|
|
[9] TI OMAP3 U-Boot:
|
2009-01-28 01:19:12 +08:00
|
|
|
|
|
|
|
http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz
|