diff options
| -rw-r--r-- | doc/README.at91-soc | 41 | ||||
| -rw-r--r-- | include/configs/afeb9260.h | 2 | ||||
| -rw-r--r-- | include/configs/at91cap9adk.h | 2 | ||||
| -rw-r--r-- | include/configs/at91rm9200dk.h | 2 | ||||
| -rw-r--r-- | include/configs/at91rm9200ek.h | 2 | ||||
| -rw-r--r-- | include/configs/at91sam9260ek.h | 2 | ||||
| -rw-r--r-- | include/configs/at91sam9261ek.h | 2 | ||||
| -rw-r--r-- | include/configs/at91sam9263ek.h | 2 | ||||
| -rw-r--r-- | include/configs/at91sam9m10g45ek.h | 2 | ||||
| -rw-r--r-- | include/configs/at91sam9rlek.h | 2 | ||||
| -rw-r--r-- | include/configs/cmc_pu2.h | 2 | ||||
| -rw-r--r-- | include/configs/cpu9260.h | 2 | ||||
| -rw-r--r-- | include/configs/cpuat91.h | 2 | ||||
| -rw-r--r-- | include/configs/csb637.h | 2 | ||||
| -rw-r--r-- | include/configs/kb9202.h | 2 | ||||
| -rw-r--r-- | include/configs/m501sk.h | 2 | ||||
| -rw-r--r-- | include/configs/meesc.h | 2 | ||||
| -rw-r--r-- | include/configs/mp2usb.h | 2 | ||||
| -rw-r--r-- | include/configs/pm9261.h | 2 | ||||
| -rw-r--r-- | include/configs/pm9263.h | 2 | ||||
| -rw-r--r-- | include/configs/sbc35_a9g20.h | 2 | ||||
| -rw-r--r-- | include/configs/tny_a9260.h | 2 | 
22 files changed, 83 insertions, 0 deletions
| diff --git a/doc/README.at91-soc b/doc/README.at91-soc new file mode 100644 index 000000000..bed035c88 --- /dev/null +++ b/doc/README.at91-soc @@ -0,0 +1,41 @@ + 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 diff --git a/include/configs/afeb9260.h b/include/configs/afeb9260.h index 58b8c8c39..3b69de877 100644 --- a/include/configs/afeb9260.h +++ b/include/configs/afeb9260.h @@ -26,6 +26,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_MAIN_CLOCK		18429952	/* from 18.432 MHz crystal */  #define CONFIG_SYS_HZ		1000 diff --git a/include/configs/at91cap9adk.h b/include/configs/at91cap9adk.h index 322718f44..4c2782ac2 100644 --- a/include/configs/at91cap9adk.h +++ b/include/configs/at91cap9adk.h @@ -27,6 +27,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */  #define CONFIG_SYS_HZ		1000 diff --git a/include/configs/at91rm9200dk.h b/include/configs/at91rm9200dk.h index 5de70cb4d..d39e8f28a 100644 --- a/include/configs/at91rm9200dk.h +++ b/include/configs/at91rm9200dk.h @@ -25,6 +25,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91C_MAIN_CLOCK	179712000	/* from 18.432 MHz crystal (18432000 / 4 * 39) */  #define AT91C_MASTER_CLOCK	59904000	/* peripheral clock (AT91C_MASTER_CLOCK / 3) */ diff --git a/include/configs/at91rm9200ek.h b/include/configs/at91rm9200ek.h index 47508551f..145c3c37d 100644 --- a/include/configs/at91rm9200ek.h +++ b/include/configs/at91rm9200ek.h @@ -26,6 +26,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  /*   * from 18.432 MHz crystal diff --git a/include/configs/at91sam9260ek.h b/include/configs/at91sam9260ek.h index 050901125..a620d578e 100644 --- a/include/configs/at91sam9260ek.h +++ b/include/configs/at91sam9260ek.h @@ -27,6 +27,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_MAIN_CLOCK		18432000	/* 18.432 MHz crystal */  #define CONFIG_SYS_HZ		1000 diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h index fbf7389b9..832b1cd65 100644 --- a/include/configs/at91sam9261ek.h +++ b/include/configs/at91sam9261ek.h @@ -27,6 +27,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_MAIN_CLOCK		18432000	/* 18.432 MHz crystal */  #define CONFIG_SYS_HZ		1000 diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h index 571351ca7..1d82a1554 100644 --- a/include/configs/at91sam9263ek.h +++ b/include/configs/at91sam9263ek.h @@ -27,6 +27,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_MAIN_CLOCK		16367660	/* 16.367 MHz crystal */  #define CONFIG_SYS_HZ		1000 diff --git a/include/configs/at91sam9m10g45ek.h b/include/configs/at91sam9m10g45ek.h index 06184e78e..50b118fa0 100644 --- a/include/configs/at91sam9m10g45ek.h +++ b/include/configs/at91sam9m10g45ek.h @@ -27,6 +27,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_MAIN_CLOCK		12000000	/* from 12 MHz crystal */  #define CONFIG_SYS_HZ		1000 diff --git a/include/configs/at91sam9rlek.h b/include/configs/at91sam9rlek.h index 6fad75d6b..8db296a8c 100644 --- a/include/configs/at91sam9rlek.h +++ b/include/configs/at91sam9rlek.h @@ -27,6 +27,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */  #define CONFIG_SYS_HZ		1000 diff --git a/include/configs/cmc_pu2.h b/include/configs/cmc_pu2.h index 00d0cec4f..ffe83f091 100644 --- a/include/configs/cmc_pu2.h +++ b/include/configs/cmc_pu2.h @@ -25,6 +25,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91C_MAIN_CLOCK	179712000	/* from 18.432 MHz crystal (18432000 / 4 * 39) */  #define AT91C_MASTER_CLOCK	(AT91C_MAIN_CLOCK/3)	/* peripheral clock */ diff --git a/include/configs/cpu9260.h b/include/configs/cpu9260.h index 4ef8566ea..e967e7cdf 100644 --- a/include/configs/cpu9260.h +++ b/include/configs/cpu9260.h @@ -31,6 +31,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  #define CONFIG_DISPLAY_CPUINFO	1  #define AT91_MAIN_CLOCK		18432000 diff --git a/include/configs/cpuat91.h b/include/configs/cpuat91.h index e872fe9ab..b4fda7673 100644 --- a/include/configs/cpuat91.h +++ b/include/configs/cpuat91.h @@ -26,6 +26,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  #ifdef CONFIG_CPUAT91_RAM  #define CONFIG_SKIP_LOWLEVEL_INIT	1  #define CONFIG_SKIP_RELOCATE_UBOOT	1 diff --git a/include/configs/csb637.h b/include/configs/csb637.h index 689e7f003..efa278099 100644 --- a/include/configs/csb637.h +++ b/include/configs/csb637.h @@ -26,6 +26,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91C_MAIN_CLOCK	184320000	/* from 3.6864 MHz crystal (3686400 * 50) */  #define AT91C_MASTER_CLOCK	46080000	/* (AT91C_MAIN_CLOCK/4)	peripheral clock */ diff --git a/include/configs/kb9202.h b/include/configs/kb9202.h index 3fe88feec..41ec1d52e 100644 --- a/include/configs/kb9202.h +++ b/include/configs/kb9202.h @@ -29,6 +29,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91C_MAIN_CLOCK	180000000	/* from 10 MHz crystal */  #define AT91C_MASTER_CLOCK	60000000	/* peripheral clock (AT91C_MASTER_CLOCK / 3) */ diff --git a/include/configs/m501sk.h b/include/configs/m501sk.h index a28fd27d4..26c2bcb68 100644 --- a/include/configs/m501sk.h +++ b/include/configs/m501sk.h @@ -27,6 +27,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  /* from 18.432 MHz crystal (18432000 / 4 * 39) */  #define AT91C_MAIN_CLOCK	179712000 diff --git a/include/configs/meesc.h b/include/configs/meesc.h index c3255fad6..e5bf5d095 100644 --- a/include/configs/meesc.h +++ b/include/configs/meesc.h @@ -31,6 +31,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* Common stuff */  #define CONFIG_SYS_HZ			1000	/* decrementer freq */  #define CONFIG_MEESC			1	/* Board is esd MEESC */ diff --git a/include/configs/mp2usb.h b/include/configs/mp2usb.h index 31eb1b666..3138b493c 100644 --- a/include/configs/mp2usb.h +++ b/include/configs/mp2usb.h @@ -28,6 +28,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91C_MAIN_CLOCK	179712000	/* from 18.432 MHz crystal (18432000 / 4 * 45) */  #define AT91C_MASTER_CLOCK	(AT91C_MAIN_CLOCK/3)	/* peripheral clock */ diff --git a/include/configs/pm9261.h b/include/configs/pm9261.h index 399d15f9f..26a2fade0 100644 --- a/include/configs/pm9261.h +++ b/include/configs/pm9261.h @@ -28,6 +28,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define AT91_CPU_NAME		"AT91SAM9261" diff --git a/include/configs/pm9263.h b/include/configs/pm9263.h index 0af128037..e55098c5b 100644 --- a/include/configs/pm9263.h +++ b/include/configs/pm9263.h @@ -28,6 +28,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  /* ARM asynchronous clock */  #define CONFIG_DISPLAY_CPUINFO  #define CONFIG_DISPLAY_BOARDINFO diff --git a/include/configs/sbc35_a9g20.h b/include/configs/sbc35_a9g20.h index f4b34775a..7bdc72963 100644 --- a/include/configs/sbc35_a9g20.h +++ b/include/configs/sbc35_a9g20.h @@ -26,6 +26,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  #if defined(CONFIG_SBC35_A9G20_NANDFLASH) || defined(CONFIG_SBC35_A9G20_EEPROM)  #define CONFIG_SBC35_A9G20  #endif diff --git a/include/configs/tny_a9260.h b/include/configs/tny_a9260.h index 4ad081b0b..21475f85b 100644 --- a/include/configs/tny_a9260.h +++ b/include/configs/tny_a9260.h @@ -30,6 +30,8 @@  #ifndef __CONFIG_H  #define __CONFIG_H +#define CONFIG_AT91_LEGACY +  #if defined(CONFIG_TNY_A9260_NANDFLASH) || defined(CONFIG_TNY_A9260_EEPROM)  #define CONFIG_TNY_A9260  #elif defined(CONFIG_TNY_A9G20_NANDFLASH) || defined(CONFIG_TNY_A9G20_EEPROM) |