mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-03 18:01:41 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 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
 | 
						|
 | 
						|
2013-10-30 Andreas Bießmann <andreas.devel@googlemail.com>:
 | 
						|
 | 
						|
The goal is almost reached, we could remove the CONFIG_AT91_LEGACY switch but
 | 
						|
remain the CONFIG_ATMEL_LEGACY switch until the GPIO disaster is fixed. The
 | 
						|
AT91 spi driver has also some CONFIG_ATMEL_LEGACY stuff left, so another point
 | 
						|
to fix until this README can be removed.
 |