]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - doc/README.at91-soc
ml300: remove support for broken, orphaned board
[karo-tx-uboot.git] / doc / README.at91-soc
1  New C structure AT91 SoC access
2 =================================
3
4 The goal
5 --------
6
7 Currently the at91 arch uses hundreds of address defines and special
8 at91_xxxx_write/read functions to access the SOC.
9 The u-boot project perferred method is to access memory mapped hw
10 regisister via a c structure.
11
12 e.g. old
13
14         *AT91C_PIOA_IDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
15         *AT91C_PIOC_PUDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
16         *AT91C_PIOC_PER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
17         *AT91C_PIOC_OER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
18         *AT91C_PIOC_PIO = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
19
20         at91_sys_write(AT91_RSTC_CR,
21                 AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
22
23 e.g new
24         pin = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
25         writel(pin, &pio->pioa.idr);
26         writel(pin, &pio->pioa.pudr);
27         writel(pin, &pio->pioa.per);
28         writel(pin, &pio->pioa.oer);
29         writel(pin, &pio->pioa.sodr);
30
31         writel(AT91_RSTC_KEY | AT91_RSTC_CR_PROCRST |
32                 AT91_RSTC_CR_PERRST, &rstc->cr);
33
34 The method for updating
35 ------------------------
36
37 1. add's the temporary CONFIG_AT91_LEGACY to all at91 board configs
38 2. Display a compile time warning, if the board has not been converted
39 3. add new structures for SoC access
40 4. Convert arch, driver and boards file to new SoC
41 5. remove legacy code, if all boards and drives are ready
42
43  Join AT91 and AT91RM9200 SoC
44 ==============================
45
46 Approximately 95 percent of AT91 and AT91RM9200 SoC parts are the same.
47 So, we should use the chance, to join both archs togetter.
48
49 To do this follow step needed:
50
51 1. change Makefile
52         @$(MKCONFIG) $(@:_config=) arm arm920t board vendor at91rm9200
53   to
54         @$(MKCONFIG) $(@:_config=) arm arm920t board vendor at91
55 2. remove CONFIG_AT91_LEGACY in board config
56 3. convert boards file to new SoC access
57 4. convert or change drivers
58
59 To support the joining process, a new SoC dir (at91) has been adding to
60 arm920t arch directory. This directory contains files like at91rm9200 dir, but
61 uses the new c structure Soc access. The advantage of this is, we don't merge
62 old Soc access code and new code while the board are not converted.
63 Finally we can delete the whole at91rm9200 dir, if all board support the
64 new AT91-SoC access.