[ARM] 3960/1: AT91: Final SAM9 intergration patches.
This patch includes a number of small changes for integrating the AT91SAM9261 and AT91SAM0260 support. * Can only select support for one AT91 processor at a time. * Remove most of the remaining static memory mapping for the AT91RM9200. * Reserve 1Mb of memory below the IO for mapping the internal SRAM and any custom board-specific devices (ie, FPGA). * The SAM9260 has more serial ports, so increase the maximum to 7. * Define the standard chipselect addresses, and define other addresses relative to those. * CLOCK_TICK_RATE is different on the SAM926x's. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
d481f86449
commit
05043d0804
6 changed files with 29 additions and 40 deletions
|
@ -2,7 +2,8 @@ if ARCH_AT91
|
|||
|
||||
menu "Atmel AT91 System-on-Chip"
|
||||
|
||||
comment "Atmel AT91 Processors"
|
||||
choice
|
||||
prompt "Atmel AT91 Processor"
|
||||
|
||||
config ARCH_AT91RM9200
|
||||
bool "AT91RM9200"
|
||||
|
@ -13,6 +14,8 @@ config ARCH_AT91SAM9260
|
|||
config ARCH_AT91SAM9261
|
||||
bool "AT91SAM9261"
|
||||
|
||||
endchoice
|
||||
|
||||
# ----------------------------------------------------------
|
||||
|
||||
if ARCH_AT91RM9200
|
||||
|
@ -33,7 +36,6 @@ config ARCH_AT91RM9200DK
|
|||
Select this if you are using Atmel's AT91RM9200-DK Development board.
|
||||
(Discontinued)
|
||||
|
||||
|
||||
config MACH_AT91RM9200EK
|
||||
bool "Atmel AT91RM9200-EK Evaluation Kit"
|
||||
depends on ARCH_AT91RM9200
|
||||
|
|
|
@ -10,7 +10,7 @@ obj- :=
|
|||
obj-$(CONFIG_PM) += pm.o
|
||||
|
||||
# CPU-specific support
|
||||
obj-$(CONFIG_ARCH_AT91RM9200) += at91rm9200.o at91rm9200_time.o at91rm9200_devices.c
|
||||
obj-$(CONFIG_ARCH_AT91RM9200) += at91rm9200.o at91rm9200_time.o at91rm9200_devices.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9260) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o
|
||||
obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261.o at91sam926x_time.o at91sam9261_devices.o
|
||||
|
||||
|
|
|
@ -27,33 +27,13 @@ static struct map_desc at91rm9200_io_desc[] __initdata = {
|
|||
.pfn = __phys_to_pfn(AT91_BASE_SYS),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = AT91_VA_BASE_SPI,
|
||||
.pfn = __phys_to_pfn(AT91RM9200_BASE_SPI),
|
||||
.length = SZ_16K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = AT91_VA_BASE_EMAC,
|
||||
.pfn = __phys_to_pfn(AT91RM9200_BASE_EMAC),
|
||||
.length = SZ_16K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = AT91_VA_BASE_TWI,
|
||||
.pfn = __phys_to_pfn(AT91RM9200_BASE_TWI),
|
||||
.length = SZ_16K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = AT91_VA_BASE_MCI,
|
||||
.pfn = __phys_to_pfn(AT91RM9200_BASE_MCI),
|
||||
.length = SZ_16K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = AT91_VA_BASE_UDP,
|
||||
.pfn = __phys_to_pfn(AT91RM9200_BASE_UDP),
|
||||
.length = SZ_16K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = AT91_SRAM_VIRT_BASE,
|
||||
.virtual = AT91_IO_VIRT_BASE - AT91RM9200_SRAM_SIZE,
|
||||
.pfn = __phys_to_pfn(AT91RM9200_SRAM_BASE),
|
||||
.length = AT91RM9200_SRAM_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
|
|
|
@ -42,29 +42,27 @@
|
|||
* Virtual to Physical Address mapping for IO devices.
|
||||
*/
|
||||
#define AT91_VA_BASE_SYS AT91_IO_P2V(AT91_BASE_SYS)
|
||||
#define AT91_VA_BASE_SPI AT91_IO_P2V(AT91RM9200_BASE_SPI)
|
||||
#define AT91_VA_BASE_EMAC AT91_IO_P2V(AT91RM9200_BASE_EMAC)
|
||||
#define AT91_VA_BASE_TWI AT91_IO_P2V(AT91RM9200_BASE_TWI)
|
||||
#define AT91_VA_BASE_MCI AT91_IO_P2V(AT91RM9200_BASE_MCI)
|
||||
#define AT91_VA_BASE_UDP AT91_IO_P2V(AT91RM9200_BASE_UDP)
|
||||
|
||||
/* Internal SRAM is mapped below the IO devices */
|
||||
#define AT91_SRAM_VIRT_BASE (AT91_IO_VIRT_BASE - AT91RM9200_SRAM_SIZE)
|
||||
#define AT91_SRAM_MAX SZ_1M
|
||||
#define AT91_VIRT_BASE (AT91_IO_VIRT_BASE - AT91_SRAM_MAX)
|
||||
|
||||
/* Serial ports */
|
||||
#define ATMEL_MAX_UART 5 /* 4 USART3's and one DBGU port */
|
||||
#define ATMEL_MAX_UART 7 /* 6 USART3's and one DBGU port (SAM9260) */
|
||||
|
||||
/* FLASH */
|
||||
#define AT91_FLASH_BASE 0x10000000 /* NCS0: Flash physical base address */
|
||||
/* External Memory Map */
|
||||
#define AT91_CHIPSELECT_0 0x10000000
|
||||
#define AT91_CHIPSELECT_1 0x20000000
|
||||
#define AT91_CHIPSELECT_2 0x30000000
|
||||
#define AT91_CHIPSELECT_3 0x40000000
|
||||
#define AT91_CHIPSELECT_4 0x50000000
|
||||
#define AT91_CHIPSELECT_5 0x60000000
|
||||
#define AT91_CHIPSELECT_6 0x70000000
|
||||
#define AT91_CHIPSELECT_7 0x80000000
|
||||
|
||||
/* SDRAM */
|
||||
#define AT91_SDRAM_BASE 0x20000000 /* NCS1: SDRAM physical base address */
|
||||
|
||||
/* SmartMedia */
|
||||
#define AT91_SMARTMEDIA_BASE 0x40000000 /* NCS3: Smartmedia physical base address */
|
||||
|
||||
/* Compact Flash */
|
||||
#define AT91_CF_BASE 0x50000000 /* NCS4-NCS6: Compact Flash physical base address */
|
||||
#define AT91_SDRAM_BASE AT91_CHIPSELECT_1
|
||||
|
||||
/* Clocks */
|
||||
#define AT91_SLOW_CLOCK 32768 /* slow clock */
|
||||
|
|
|
@ -23,6 +23,15 @@
|
|||
|
||||
#include <asm/hardware.h>
|
||||
|
||||
#if defined(CONFIG_ARCH_AT91RM9200)
|
||||
|
||||
#define CLOCK_TICK_RATE (AT91_SLOW_CLOCK)
|
||||
|
||||
#elif defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9261)
|
||||
|
||||
#define AT91SAM9_MASTER_CLOCK 99300000
|
||||
#define CLOCK_TICK_RATE (AT91SAM9_MASTER_CLOCK/16)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -21,6 +21,6 @@
|
|||
#ifndef __ASM_ARCH_VMALLOC_H
|
||||
#define __ASM_ARCH_VMALLOC_H
|
||||
|
||||
#define VMALLOC_END (AT91_SRAM_VIRT_BASE & PGDIR_MASK)
|
||||
#define VMALLOC_END (AT91_VIRT_BASE & PGDIR_MASK)
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue