diff options
| -rw-r--r-- | arch/arm/configs/at91x40_defconfig | 48 | ||||
| -rw-r--r-- | arch/arm/mach-at91/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/mach-at91/board-eb01.c | 7 | ||||
| -rw-r--r-- | arch/arm/mach-at91/include/mach/cpu.h | 28 |
4 files changed, 83 insertions, 1 deletions
diff --git a/arch/arm/configs/at91x40_defconfig b/arch/arm/configs/at91x40_defconfig new file mode 100644 index 000000000000..c55e9212fcbb --- /dev/null +++ b/arch/arm/configs/at91x40_defconfig | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | CONFIG_EXPERIMENTAL=y | ||
| 2 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 3 | CONFIG_EMBEDDED=y | ||
| 4 | # CONFIG_HOTPLUG is not set | ||
| 5 | # CONFIG_ELF_CORE is not set | ||
| 6 | # CONFIG_FUTEX is not set | ||
| 7 | # CONFIG_TIMERFD is not set | ||
| 8 | # CONFIG_VM_EVENT_COUNTERS is not set | ||
| 9 | # CONFIG_COMPAT_BRK is not set | ||
| 10 | CONFIG_SLAB=y | ||
| 11 | # CONFIG_LBDAF is not set | ||
| 12 | # CONFIG_BLK_DEV_BSG is not set | ||
| 13 | # CONFIG_IOSCHED_DEADLINE is not set | ||
| 14 | # CONFIG_IOSCHED_CFQ is not set | ||
| 15 | # CONFIG_MMU is not set | ||
| 16 | CONFIG_ARCH_AT91=y | ||
| 17 | CONFIG_ARCH_AT91X40=y | ||
| 18 | CONFIG_MACH_AT91EB01=y | ||
| 19 | CONFIG_AT91_EARLY_USART0=y | ||
| 20 | CONFIG_CPU_ARM7TDMI=y | ||
| 21 | CONFIG_SET_MEM_PARAM=y | ||
| 22 | CONFIG_DRAM_BASE=0x01000000 | ||
| 23 | CONFIG_DRAM_SIZE=0x00400000 | ||
| 24 | CONFIG_FLASH_MEM_BASE=0x01400000 | ||
| 25 | CONFIG_PROCESSOR_ID=0x14000040 | ||
| 26 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
| 27 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
| 28 | CONFIG_BINFMT_FLAT=y | ||
| 29 | # CONFIG_SUSPEND is not set | ||
| 30 | # CONFIG_FW_LOADER is not set | ||
| 31 | CONFIG_MTD=y | ||
| 32 | CONFIG_MTD_PARTITIONS=y | ||
| 33 | CONFIG_MTD_CHAR=y | ||
| 34 | CONFIG_MTD_BLOCK=y | ||
| 35 | CONFIG_MTD_RAM=y | ||
| 36 | CONFIG_MTD_ROM=y | ||
| 37 | CONFIG_BLK_DEV_RAM=y | ||
| 38 | # CONFIG_INPUT is not set | ||
| 39 | # CONFIG_SERIO is not set | ||
| 40 | # CONFIG_VT is not set | ||
| 41 | # CONFIG_DEVKMEM is not set | ||
| 42 | # CONFIG_HW_RANDOM is not set | ||
| 43 | # CONFIG_HWMON is not set | ||
| 44 | # CONFIG_USB_SUPPORT is not set | ||
| 45 | CONFIG_EXT2_FS=y | ||
| 46 | # CONFIG_DNOTIFY is not set | ||
| 47 | CONFIG_ROMFS_FS=y | ||
| 48 | # CONFIG_ENABLE_MUST_CHECK is not set | ||
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 19390231a0e9..2d299bf5d72f 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig | |||
| @@ -83,6 +83,7 @@ config ARCH_AT91CAP9 | |||
| 83 | select CPU_ARM926T | 83 | select CPU_ARM926T |
| 84 | select GENERIC_CLOCKEVENTS | 84 | select GENERIC_CLOCKEVENTS |
| 85 | select HAVE_FB_ATMEL | 85 | select HAVE_FB_ATMEL |
| 86 | select HAVE_NET_MACB | ||
| 86 | 87 | ||
| 87 | config ARCH_AT572D940HF | 88 | config ARCH_AT572D940HF |
| 88 | bool "AT572D940HF" | 89 | bool "AT572D940HF" |
diff --git a/arch/arm/mach-at91/board-eb01.c b/arch/arm/mach-at91/board-eb01.c index 1f9d3cb64c50..d8df59a3426d 100644 --- a/arch/arm/mach-at91/board-eb01.c +++ b/arch/arm/mach-at91/board-eb01.c | |||
| @@ -30,6 +30,11 @@ | |||
| 30 | #include <mach/board.h> | 30 | #include <mach/board.h> |
| 31 | #include "generic.h" | 31 | #include "generic.h" |
| 32 | 32 | ||
| 33 | static void __init at91eb01_init_irq(void) | ||
| 34 | { | ||
| 35 | at91x40_init_interrupts(NULL); | ||
| 36 | } | ||
| 37 | |||
| 33 | static void __init at91eb01_map_io(void) | 38 | static void __init at91eb01_map_io(void) |
| 34 | { | 39 | { |
| 35 | at91x40_initialize(40000000); | 40 | at91x40_initialize(40000000); |
| @@ -38,7 +43,7 @@ static void __init at91eb01_map_io(void) | |||
| 38 | MACHINE_START(AT91EB01, "Atmel AT91 EB01") | 43 | MACHINE_START(AT91EB01, "Atmel AT91 EB01") |
| 39 | /* Maintainer: Greg Ungerer <gerg@snapgear.com> */ | 44 | /* Maintainer: Greg Ungerer <gerg@snapgear.com> */ |
| 40 | .timer = &at91x40_timer, | 45 | .timer = &at91x40_timer, |
| 41 | .init_irq = at91x40_init_interrupts, | 46 | .init_irq = at91eb01_init_irq, |
| 42 | .map_io = at91eb01_map_io, | 47 | .map_io = at91eb01_map_io, |
| 43 | MACHINE_END | 48 | MACHINE_END |
| 44 | 49 | ||
diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h index 3bef931d0b1c..0700f2125305 100644 --- a/arch/arm/mach-at91/include/mach/cpu.h +++ b/arch/arm/mach-at91/include/mach/cpu.h | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #define ARCH_ID_AT91SAM9G45 0x819b05a0 | 27 | #define ARCH_ID_AT91SAM9G45 0x819b05a0 |
| 28 | #define ARCH_ID_AT91SAM9G45MRL 0x819b05a2 /* aka 9G45-ES2 & non ES lots */ | 28 | #define ARCH_ID_AT91SAM9G45MRL 0x819b05a2 /* aka 9G45-ES2 & non ES lots */ |
| 29 | #define ARCH_ID_AT91SAM9G45ES 0x819b05a1 /* 9G45-ES (Engineering Sample) */ | 29 | #define ARCH_ID_AT91SAM9G45ES 0x819b05a1 /* 9G45-ES (Engineering Sample) */ |
| 30 | #define ARCH_ID_AT91SAM9X5 0x819a05a0 | ||
| 30 | #define ARCH_ID_AT91CAP9 0x039A03A0 | 31 | #define ARCH_ID_AT91CAP9 0x039A03A0 |
| 31 | 32 | ||
| 32 | #define ARCH_ID_AT91SAM9XE128 0x329973a0 | 33 | #define ARCH_ID_AT91SAM9XE128 0x329973a0 |
| @@ -55,6 +56,12 @@ static inline unsigned long at91_cpu_fully_identify(void) | |||
| 55 | #define ARCH_EXID_AT91SAM9G46 0x00000003 | 56 | #define ARCH_EXID_AT91SAM9G46 0x00000003 |
| 56 | #define ARCH_EXID_AT91SAM9G45 0x00000004 | 57 | #define ARCH_EXID_AT91SAM9G45 0x00000004 |
| 57 | 58 | ||
| 59 | #define ARCH_EXID_AT91SAM9G15 0x00000000 | ||
| 60 | #define ARCH_EXID_AT91SAM9G35 0x00000001 | ||
| 61 | #define ARCH_EXID_AT91SAM9X35 0x00000002 | ||
| 62 | #define ARCH_EXID_AT91SAM9G25 0x00000003 | ||
| 63 | #define ARCH_EXID_AT91SAM9X25 0x00000004 | ||
| 64 | |||
| 58 | static inline unsigned long at91_exid_identify(void) | 65 | static inline unsigned long at91_exid_identify(void) |
| 59 | { | 66 | { |
| 60 | return at91_sys_read(AT91_DBGU_EXID); | 67 | return at91_sys_read(AT91_DBGU_EXID); |
| @@ -143,6 +150,27 @@ static inline unsigned long at91cap9_rev_identify(void) | |||
| 143 | #define cpu_is_at91sam9m11() (0) | 150 | #define cpu_is_at91sam9m11() (0) |
| 144 | #endif | 151 | #endif |
| 145 | 152 | ||
| 153 | #ifdef CONFIG_ARCH_AT91SAM9X5 | ||
| 154 | #define cpu_is_at91sam9x5() (at91_cpu_identify() == ARCH_ID_AT91SAM9X5) | ||
| 155 | #define cpu_is_at91sam9g15() (cpu_is_at91sam9x5() && \ | ||
| 156 | (at91_exid_identify() == ARCH_EXID_AT91SAM9G15)) | ||
| 157 | #define cpu_is_at91sam9g35() (cpu_is_at91sam9x5() && \ | ||
| 158 | (at91_exid_identify() == ARCH_EXID_AT91SAM9G35)) | ||
| 159 | #define cpu_is_at91sam9x35() (cpu_is_at91sam9x5() && \ | ||
| 160 | (at91_exid_identify() == ARCH_EXID_AT91SAM9X35)) | ||
| 161 | #define cpu_is_at91sam9g25() (cpu_is_at91sam9x5() && \ | ||
| 162 | (at91_exid_identify() == ARCH_EXID_AT91SAM9G25)) | ||
| 163 | #define cpu_is_at91sam9x25() (cpu_is_at91sam9x5() && \ | ||
| 164 | (at91_exid_identify() == ARCH_EXID_AT91SAM9X25)) | ||
| 165 | #else | ||
| 166 | #define cpu_is_at91sam9x5() (0) | ||
| 167 | #define cpu_is_at91sam9g15() (0) | ||
| 168 | #define cpu_is_at91sam9g35() (0) | ||
| 169 | #define cpu_is_at91sam9x35() (0) | ||
| 170 | #define cpu_is_at91sam9g25() (0) | ||
| 171 | #define cpu_is_at91sam9x25() (0) | ||
| 172 | #endif | ||
| 173 | |||
| 146 | #ifdef CONFIG_ARCH_AT91CAP9 | 174 | #ifdef CONFIG_ARCH_AT91CAP9 |
| 147 | #define cpu_is_at91cap9() (at91_cpu_identify() == ARCH_ID_AT91CAP9) | 175 | #define cpu_is_at91cap9() (at91_cpu_identify() == ARCH_ID_AT91CAP9) |
| 148 | #define cpu_is_at91cap9_revB() (at91cap9_rev_identify() == ARCH_REVISION_CAP9_B) | 176 | #define cpu_is_at91cap9_revB() (at91cap9_rev_identify() == ARCH_REVISION_CAP9_B) |
