12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- New C structure AT91 SoC access
- =================================
- The goal
- --------
- Currently the at91 arch uses hundreds of address defines and special
- at91_xxxx_write/read functions to access the SOC.
- The u-boot project perferred method is to access memory mapped hw
- regisister via a c structure.
- e.g. old
- *AT91C_PIOA_IDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
- *AT91C_PIOC_PUDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
- *AT91C_PIOC_PER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
- *AT91C_PIOC_OER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
- *AT91C_PIOC_PIO = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
- at91_sys_write(AT91_RSTC_CR,
- AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
- e.g new
- pin = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
- writel(pin, &pio->pioa.idr);
- writel(pin, &pio->pioa.pudr);
- writel(pin, &pio->pioa.per);
- writel(pin, &pio->pioa.oer);
- writel(pin, &pio->pioa.sodr);
- writel(AT91_RSTC_KEY | AT91_RSTC_CR_PROCRST |
- AT91_RSTC_CR_PERRST, &rstc->cr);
- The method for updating
- ------------------------
- 1. add's the temporary CONFIG_AT91_LEGACY to all at91 board configs
- 2. Display a compile time warning, if the board has not been converted
- 3. add new structures for SoC access
- 4. Convert arch, driver and boards file to new SoC
- 5. remove legacy code, if all boards and drives are ready
- Join AT91 and AT91RM9200 SoC
- ==============================
- Approximately 95 percent of AT91 and AT91RM9200 SoC parts are the same.
- So, we should use the chance, to join both archs togetter.
- To do this follow step needed:
- 1. change Makefile
- @$(MKCONFIG) $(@:_config=) arm arm920t board vendor at91rm9200
- to
- @$(MKCONFIG) $(@:_config=) arm arm920t board vendor at91
- 2. remove CONFIG_AT91_LEGACY in board config
- 3. convert boards file to new SoC access
- 4. convert or change drivers
- To support the joining process, a new SoC dir (at91) has been adding to
- arm920t arch directory. This directory contains files like at91rm9200 dir, but
- uses the new c structure Soc access. The advantage of this is, we don't merge
- old Soc access code and new code while the board are not converted.
- Finally we can delete the whole at91rm9200 dir, if all board support the
- new AT91-SoC access.
|