Merge branch 'elf_reloc'
[platform/kernel/u-boot.git] / doc / README.omap3
1
2 Summary
3 =======
4
5 This README is about U-Boot support for TI's ARM Cortex-A8 based OMAP3 [1]
6 family of SoCs. TI's OMAP3 SoC family contains an ARM Cortex-A8. Additionally,
7 some family members contain a TMS320C64x+ DSP and/or an Imagination SGX 2D/3D
8 graphics processor and various other standard peripherals.
9
10 Currently the following boards are supported:
11
12 * OMAP3530 BeagleBoard [2]
13
14 * Gumstix Overo [3]
15
16 * TI EVM [4]
17
18 * OpenPandora Ltd. Pandora [5]
19
20 * TI/Logic PD Zoom MDK [6]
21
22 * TI/Logic PD Zoom 2 [7]
23
24 Toolchain
25 =========
26
27 While ARM Cortex-A8 support ARM v7 instruction set (-march=armv7a) we compile
28 with -march=armv5 to allow more compilers to work. For U-Boot code this has
29 no performance impact.
30
31 Build
32 =====
33
34 * BeagleBoard:
35
36 make omap3_beagle_config
37 make
38
39 * Gumstix Overo:
40
41 make omap3_overo_config
42 make
43
44 * TI EVM:
45
46 make omap3_evm_config
47 make
48
49 * Pandora:
50
51 make omap3_pandora_config
52 make
53
54 * Zoom MDK:
55
56 make omap3_zoom1_config
57 make
58
59 * Zoom 2:
60
61 make omap3_zoom2_config
62 make
63
64 Custom commands
65 ===============
66
67 To make U-Boot for OMAP3 support NAND device SW or HW ECC calculation, U-Boot
68 for OMAP3 supports custom user command
69
70 nandecc hw/sw
71
72 To be compatible with NAND drivers using SW ECC (e.g. kernel code)
73
74 nandecc sw
75
76 enables SW ECC calculation. HW ECC enabled with
77
78 nandecc hw
79
80 is typically used to write 2nd stage bootloader (known as 'x-loader') which is
81 executed by OMAP3's boot rom and therefore has to be written with HW ECC.
82
83 For all other commands see
84
85 help
86
87 Interfaces
88 ==========
89
90 gpio
91
92 To set a bit :
93
94         if (!omap_request_gpio(N)) {
95                 omap_set_gpio_direction(N, 0);
96                 omap_set_gpio_dataout(N, 1);
97         }
98
99 To clear a bit :
100
101         if (!omap_request_gpio(N)) {
102                 omap_set_gpio_direction(N, 0);
103                 omap_set_gpio_dataout(N, 0);
104         }
105
106 To read a bit :
107
108         if (!omap_request_gpio(N)) {
109                 omap_set_gpio_direction(N, 1);
110                 val = omap_get_gpio_datain(N);
111                 omap_free_gpio(N);
112         }
113         if (val)
114                 printf("GPIO N is set\n");
115         else
116                 printf("GPIO N is clear\n");
117
118
119 Acknowledgements
120 ================
121
122 OMAP3 U-Boot is based on U-Boot tar ball [8] for BeagleBoard and EVM done by
123 several TI employees.
124
125 Links
126 =====
127
128 [1] OMAP3:
129
130 http://www.ti.com/omap3 (high volume) and
131 http://www.ti.com/omap35x (broad market)
132
133 [2] OMAP3530 BeagleBoard:
134
135 http://beagleboard.org/
136
137 [3] Gumstix Overo:
138
139 http://www.gumstix.net/Overo/
140
141 [4] TI EVM:
142
143 http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html
144
145 [5] OpenPandora Ltd. Pandora:
146
147 http://openpandora.org/
148
149 [6] TI/Logic PD Zoom MDK:
150
151 http://www.logicpd.com/products/devkit/ti/zoom_mobile_development_kit
152
153 [7] TI/Logic PD Zoom 2
154
155 http://www.logicpd.com/sites/default/files/1012659A_Zoom_OMAP34x-II_MDP_Brief.pdf
156 [8] TI OMAP3 U-Boot:
157
158 http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz