at91: add at91sam9263 chip register definition

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Patrice Vilchez <patrice.vilchez@atmel.com>
This commit is contained in:
Jean-Christophe PLAGNIOL-VILLARD 2011-04-09 06:07:41 +02:00 committed by Øyvind Harboe
parent ba71e8c521
commit d6027ca6a8
3 changed files with 238 additions and 4 deletions

View File

@ -0,0 +1,113 @@
#
# Peripheral identifiers/interrupts.
#
set AT91_ID_FIQ 0 ;# Advanced Interrupt Controller (FIQ)
set AT91_ID_SYS 1 ;# System Peripherals
set AT91SAM9263_ID_PIOA 2 ;# Parallel IO Controller A
set AT91SAM9263_ID_PIOB 3 ;# Parallel IO Controller B
set AT91SAM9263_ID_PIOCDE 4 ;# Parallel IO Controller C, D and E
set AT91SAM9263_ID_US0 7 ;# USART 0
set AT91SAM9263_ID_US1 8 ;# USART 1
set AT91SAM9263_ID_US2 9 ;# USART 2
set AT91SAM9263_ID_MCI0 10 ;# Multimedia Card Interface 0
set AT91SAM9263_ID_MCI1 11 ;# Multimedia Card Interface 1
set AT91SAM9263_ID_CAN 12 ;# CAN
set AT91SAM9263_ID_TWI 13 ;# Two-Wire Interface
set AT91SAM9263_ID_SPI0 14 ;# Serial Peripheral Interface 0
set AT91SAM9263_ID_SPI1 15 ;# Serial Peripheral Interface 1
set AT91SAM9263_ID_SSC0 16 ;# Serial Synchronous Controller 0
set AT91SAM9263_ID_SSC1 17 ;# Serial Synchronous Controller 1
set AT91SAM9263_ID_AC97C 18 ;# AC97 Controller
set AT91SAM9263_ID_TCB 19 ;# Timer Counter 0, 1 and 2
set AT91SAM9263_ID_PWMC 20 ;# Pulse Width Modulation Controller
set AT91SAM9263_ID_EMAC 21 ;# Ethernet
set AT91SAM9263_ID_2DGE 23 ;# 2D Graphic Engine
set AT91SAM9263_ID_UDP 24 ;# USB Device Port
set AT91SAM9263_ID_ISI 25 ;# Image Sensor Interface
set AT91SAM9263_ID_LCDC 26 ;# LCD Controller
set AT91SAM9263_ID_DMA 27 ;# DMA Controller
set AT91SAM9263_ID_UHP 29 ;# USB Host port
set AT91SAM9263_ID_IRQ0 30 ;# Advanced Interrupt Controller (IRQ0)
set AT91SAM9263_ID_IRQ1 31 ;# Advanced Interrupt Controller (IRQ1)
#
# User Peripheral physical base addresses.
#
set AT91SAM9263_BASE_UDP 0xfff78000
set AT91SAM9263_BASE_TCB0 0xfff7c000
set AT91SAM9263_BASE_TC0 0xfff7c000
set AT91SAM9263_BASE_TC1 0xfff7c040
set AT91SAM9263_BASE_TC2 0xfff7c080
set AT91SAM9263_BASE_MCI0 0xfff80000
set AT91SAM9263_BASE_MCI1 0xfff84000
set AT91SAM9263_BASE_TWI 0xfff88000
set AT91SAM9263_BASE_US0 0xfff8c000
set AT91SAM9263_BASE_US1 0xfff90000
set AT91SAM9263_BASE_US2 0xfff94000
set AT91SAM9263_BASE_SSC0 0xfff98000
set AT91SAM9263_BASE_SSC1 0xfff9c000
set AT91SAM9263_BASE_AC97C 0xfffa0000
set AT91SAM9263_BASE_SPI0 0xfffa4000
set AT91SAM9263_BASE_SPI1 0xfffa8000
set AT91SAM9263_BASE_CAN 0xfffac000
set AT91SAM9263_BASE_PWMC 0xfffb8000
set AT91SAM9263_BASE_EMAC 0xfffbc000
set AT91SAM9263_BASE_ISI 0xfffc4000
set AT91SAM9263_BASE_2DGE 0xfffc8000
set AT91_BASE_SYS 0xffffe000
#
# System Peripherals (offset from AT91_BASE_SYS)
#
set AT91_ECC0 0xffffe000
set AT91_SDRAMC0 0xffffe200
set AT91_SMC0 0xffffe400
set AT91_ECC1 0xffffe600
set AT91_SDRAMC1 0xffffe800
set AT91_SMC1 0xffffea00
set AT91_MATRIX 0xffffec00
set AT91_CCFG 0xffffed10
set AT91_DBGU 0xffffee00
set AT91_AIC 0xfffff000
set AT91_PIOA 0xfffff200
set AT91_PIOB 0xfffff400
set AT91_PIOC 0xfffff600
set AT91_PIOD 0xfffff800
set AT91_PIOE 0xfffffa00
set AT91_PMC 0xfffffc00
set AT91_RSTC 0xfffffd00
set AT91_SHDWC 0xfffffd10
set AT91_RTT0 0xfffffd20
set AT91_PIT 0xfffffd30
set AT91_WDT 0xfffffd40
set AT91_RTT1 0xfffffd50
set AT91_GPBR 0xfffffd60
set AT91_USART0 $AT91SAM9263_BASE_US0
set AT91_USART1 $AT91SAM9263_BASE_US1
set AT91_USART2 $AT91SAM9263_BASE_US2
set AT91_SMC $AT91_SMC0
set AT91_SDRAMC $AT91_SDRAMC0
#
# Internal Memory.
#
set AT91SAM9263_SRAM0_BASE 0x00300000 ;# Internal SRAM 0 base address
set AT91SAM9263_SRAM0_SIZE 0x00014000 ;# Internal SRAM 0 size (80Kb)
set AT91SAM9263_ROM_BASE 0x00400000 ;# Internal ROM base address
set AT91SAM9263_ROM_SIZE 0x00020000 ;# Internal ROM size (128Kb)
set AT91SAM9263_SRAM1_BASE 0x00500000 ;# Internal SRAM 1 base address
set AT91SAM9263_SRAM1_SIZE 0x00004000 ;# Internal SRAM 1 size (16Kb)
set AT91SAM9263_LCDC_BASE 0x00700000 ;# LCD Controller
set AT91SAM9263_DMAC_BASE 0x00800000 ;# DMA Controller
set AT91SAM9263_UHP_BASE 0x00a00000 ;# USB Host controller
#
# Cpu Name
#
set AT91_CPU_NAME "AT91SAM9263"

View File

@ -0,0 +1,112 @@
set AT91_MATRIX_MCFG0 [expr ($AT91_MATRIX + 0x00)] ;# Master Configuration Register 0
set AT91_MATRIX_MCFG1 [expr ($AT91_MATRIX + 0x04)] ;# Master Configuration Register 1
set AT91_MATRIX_MCFG2 [expr ($AT91_MATRIX + 0x08)] ;# Master Configuration Register 2
set AT91_MATRIX_MCFG3 [expr ($AT91_MATRIX + 0x0C)] ;# Master Configuration Register 3
set AT91_MATRIX_MCFG4 [expr ($AT91_MATRIX + 0x10)] ;# Master Configuration Register 4
set AT91_MATRIX_MCFG5 [expr ($AT91_MATRIX + 0x14)] ;# Master Configuration Register 5
set AT91_MATRIX_MCFG6 [expr ($AT91_MATRIX + 0x18)] ;# Master Configuration Register 6
set AT91_MATRIX_MCFG7 [expr ($AT91_MATRIX + 0x1C)] ;# Master Configuration Register 7
set AT91_MATRIX_MCFG8 [expr ($AT91_MATRIX + 0x20)] ;# Master Configuration Register 8
set AT91_MATRIX_ULBT [expr (7 << 0) ;# Undefined Length Burst Type
set AT91_MATRIX_ULBT_INFINITE [expr (0 << 0)]
set AT91_MATRIX_ULBT_SINGLE [expr (1 << 0)]
set AT91_MATRIX_ULBT_FOUR [expr (2 << 0)]
set AT91_MATRIX_ULBT_EIGHT [expr (3 << 0)]
set AT91_MATRIX_ULBT_SIXTEEN [expr (4 << 0)]
set AT91_MATRIX_SCFG0 [expr ($AT91_MATRIX + 0x40)] ;# Slave Configuration Register 0
set AT91_MATRIX_SCFG1 [expr ($AT91_MATRIX + 0x44)] ;# Slave Configuration Register 1
set AT91_MATRIX_SCFG2 [expr ($AT91_MATRIX + 0x48)] ;# Slave Configuration Register 2
set AT91_MATRIX_SCFG3 [expr ($AT91_MATRIX + 0x4C)] ;# Slave Configuration Register 3
set AT91_MATRIX_SCFG4 [expr ($AT91_MATRIX + 0x50)] ;# Slave Configuration Register 4
set AT91_MATRIX_SCFG5 [expr ($AT91_MATRIX + 0x54)] ;# Slave Configuration Register 5
set AT91_MATRIX_SCFG6 [expr ($AT91_MATRIX + 0x58)] ;# Slave Configuration Register 6
set AT91_MATRIX_SCFG7 [expr ($AT91_MATRIX + 0x5C)] ;# Slave Configuration Register 7
set AT91_MATRIX_SLOT_CYCLE [expr (0xff << 0)] ;# Maximum Number of Allowed Cycles for a Burst
set AT91_MATRIX_DEFMSTR_TYPE [expr (3 << 16)] ;# Default Master Type
set AT91_MATRIX_DEFMSTR_TYPE_NONE [expr (0 << 16)]
set AT91_MATRIX_DEFMSTR_TYPE_LAST [expr (1 << 16)]
set AT91_MATRIX_DEFMSTR_TYPE_FIXED [expr (2 << 16)]
set AT91_MATRIX_FIXED_DEFMSTR [expr (0xf << 18)] ;# Fixed Index of Default Master
set AT91_MATRIX_ARBT [expr (3 << 24)] ;# Arbitration Type
set AT91_MATRIX_ARBT_ROUND_ROBIN [expr (0 << 24)]
set AT91_MATRIX_ARBT_FIXED_PRIORITY [expr (1 << 24)]
set AT91_MATRIX_PRAS0 [expr ($AT91_MATRIX + 0x80)] ;# Priority Register A for Slave 0
set AT91_MATRIX_PRBS0 [expr ($AT91_MATRIX + 0x84)] ;# Priority Register B for Slave 0
set AT91_MATRIX_PRAS1 [expr ($AT91_MATRIX + 0x88)] ;# Priority Register A for Slave 1
set AT91_MATRIX_PRBS1 [expr ($AT91_MATRIX + 0x8C)] ;# Priority Register B for Slave 1
set AT91_MATRIX_PRAS2 [expr ($AT91_MATRIX + 0x90)] ;# Priority Register A for Slave 2
set AT91_MATRIX_PRBS2 [expr ($AT91_MATRIX + 0x94)] ;# Priority Register B for Slave 2
set AT91_MATRIX_PRAS3 [expr ($AT91_MATRIX + 0x98)] ;# Priority Register A for Slave 3
set AT91_MATRIX_PRBS3 [expr ($AT91_MATRIX + 0x9C)] ;# Priority Register B for Slave 3
set AT91_MATRIX_PRAS4 [expr ($AT91_MATRIX + 0xA0)] ;# Priority Register A for Slave 4
set AT91_MATRIX_PRBS4 [expr ($AT91_MATRIX + 0xA4)] ;# Priority Register B for Slave 4
set AT91_MATRIX_PRAS5 [expr ($AT91_MATRIX + 0xA8)] ;# Priority Register A for Slave 5
set AT91_MATRIX_PRBS5 [expr ($AT91_MATRIX + 0xAC)] ;# Priority Register B for Slave 5
set AT91_MATRIX_PRAS6 [expr ($AT91_MATRIX + 0xB0)] ;# Priority Register A for Slave 6
set AT91_MATRIX_PRBS6 [expr ($AT91_MATRIX + 0xB4)] ;# Priority Register B for Slave 6
set AT91_MATRIX_PRAS7 [expr ($AT91_MATRIX + 0xB8)] ;# Priority Register A for Slave 7
set AT91_MATRIX_PRBS7 [expr ($AT91_MATRIX + 0xBC)] ;# Priority Register B for Slave 7
set AT91_MATRIX_M0PR [expr (3 << 0)] ;# Master 0 Priority
set AT91_MATRIX_M1PR [expr (3 << 4)] ;# Master 1 Priority
set AT91_MATRIX_M2PR [expr (3 << 8)] ;# Master 2 Priority
set AT91_MATRIX_M3PR [expr (3 << 12)] ;# Master 3 Priority
set AT91_MATRIX_M4PR [expr (3 << 16)] ;# Master 4 Priority
set AT91_MATRIX_M5PR [expr (3 << 20)] ;# Master 5 Priority
set AT91_MATRIX_M6PR [expr (3 << 24)] ;# Master 6 Priority
set AT91_MATRIX_M7PR [expr (3 << 28)] ;# Master 7 Priority
set AT91_MATRIX_M8PR [expr (3 << 0)] ;# Master 8 Priority (in Register B)
set AT91_MATRIX_MRCR [expr ($AT91_MATRIX + 0x100)] ;# Master Remap Control Register
set AT91_MATRIX_RCB0 [expr (1 << 0)] ;# Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master)
set AT91_MATRIX_RCB1 [expr (1 << 1)] ;# Remap Command for AHB Master 1 (ARM926EJ-S Data Master)
set AT91_MATRIX_RCB2 [expr (1 << 2)]
set AT91_MATRIX_RCB3 [expr (1 << 3)]
set AT91_MATRIX_RCB4 [expr (1 << 4)]
set AT91_MATRIX_RCB5 [expr (1 << 5)]
set AT91_MATRIX_RCB6 [expr (1 << 6)]
set AT91_MATRIX_RCB7 [expr (1 << 7)]
set AT91_MATRIX_RCB8 [expr (1 << 8)]
set AT91_MATRIX_TCMR [expr ($AT91_MATRIX + 0x114)] ;# TCM Configuration Register
set AT91_MATRIX_ITCM_SIZE [expr (0xf << 0)] ;# Size of ITCM enabled memory block
set AT91_MATRIX_ITCM_0 [expr (0 << 0)]
set AT91_MATRIX_ITCM_16 [expr (5 << 0)]
set AT91_MATRIX_ITCM_32 [expr (6 << 0)]
set AT91_MATRIX_DTCM_SIZE [expr (0xf << 4)] ;# Size of DTCM enabled memory block
set AT91_MATRIX_DTCM_0 [expr (0 << 4)]
set AT91_MATRIX_DTCM_16 [expr (5 << 4)]
set AT91_MATRIX_DTCM_32 [expr (6 << 4)]
set AT91_MATRIX_EBI0CSA [expr ($AT91_MATRIX + 0x120)] ;# EBI0 Chip Select Assignment Register
set AT91_MATRIX_EBI0_CS1A [expr (1 << 1)] ;# Chip Select 1 Assignment
set AT91_MATRIX_EBI0_CS1A_SMC [expr (0 << 1)]
set AT91_MATRIX_EBI0_CS1A_SDRAMC [expr (1 << 1)]
set AT91_MATRIX_EBI0_CS3A [expr (1 << 3)] ;# Chip Select 3 Assignmen
set AT91_MATRIX_EBI0_CS3A_SMC [expr (0 << 3)]
set AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA [expr (1 << 3)]
set AT91_MATRIX_EBI0_CS4A [expr (1 << 4)] ;# Chip Select 4 Assignment
set AT91_MATRIX_EBI0_CS4A_SMC [expr (0 << 4)]
set AT91_MATRIX_EBI0_CS4A_SMC_CF1 [expr (1 << 4)]
set AT91_MATRIX_EBI0_CS5A [expr (1 << 5)] ;# Chip Select 5 Assignment
set AT91_MATRIX_EBI0_CS5A_SMC [expr (0 << 5)]
set AT91_MATRIX_EBI0_CS5A_SMC_CF2 [expr (1 << 5)]
set AT91_MATRIX_EBI0_DBPUC [expr (1 << 8)] ;# Data Bus Pull-up Configuration
set AT91_MATRIX_EBI0_VDDIOMSEL [expr (1 << 16)] ;# Memory voltage selection
set AT91_MATRIX_EBI0_VDDIOMSEL_1_8V [expr (0 << 16)]
set AT91_MATRIX_EBI0_VDDIOMSEL_3_3V [expr (1 << 16)]
set AT91_MATRIX_EBI1CSA [expr ($AT91_MATRIX + 0x124)] ;# EBI1 Chip Select Assignment Register
set AT91_MATRIX_EBI1_CS1A [expr (1 << 1)] ;# Chip Select 1 Assignment
set AT91_MATRIX_EBI1_CS1A_SMC [expr (0 << 1)]
set AT91_MATRIX_EBI1_CS1A_SDRAMC [expr (1 << 1)]
set AT91_MATRIX_EBI1_CS2A [expr (1 << 3)] ;# Chip Select 3 Assignment
set AT91_MATRIX_EBI1_CS2A_SMC [expr (0 << 3)]
set AT91_MATRIX_EBI1_CS2A_SMC_SMARTMEDIA [expr (1 << 3)]
set AT91_MATRIX_EBI1_DBPUC [expr (1 << 8)] ;# Data Bus Pull-up Configuration
set AT91_MATRIX_EBI1_VDDIOMSEL [expr (1 << 16)] ;# Memory voltage selection
set AT91_MATRIX_EBI1_VDDIOMSEL_1_8V [expr (0 << 16)]
set AT91_MATRIX_EBI1_VDDIOMSEL_3_3V [expr (1 << 16)]

View File

@ -54,10 +54,19 @@ proc at91sam9_reset_init { config } {
set rstc_mr_val [expr ($rstc_mr_val | $::AT91_RSTC_URSTEN)]
mww $::AT91_RSTC_MR $rstc_mr_val ;# user reset enable
set pdr_addr [expr ($::AT91_PIOC + $::PIO_PDR)]
mww $pdr_addr 0xffff0000 ;# define PDC[31:16] as DATA[31:16]
set pudr_addr [expr ($::AT91_PIOC + $::PIO_PUDR)]
mww $pudr_addr 0xffff0000 ;# no pull-up for D[31:16]
if { [info exists config(sdram_piod) ] } {
set pdr_addr [expr ($::AT91_PIOD + $::PIO_PDR)]
set pudr_addr [expr ($::AT91_PIOD + $::PIO_PUDR)]
set asr_addr [expr ($::AT91_PIOD + $::PIO_ASR)]
mww $pdr_addr 0xffff0000 ;# define PDC[31:16] as DATA[31:16]
mww $pudr_addr 0xffff0000 ;# no pull-up for D[31:16]
mww $asr_addr 0xffff0000
} else {
set pdr_addr [expr ($::AT91_PIOC + $::PIO_PDR)]
set pudr_addr [expr ($::AT91_PIOC + $::PIO_PUDR)]
mww $pdr_addr 0xffff0000 ;# define PDC[31:16] as DATA[31:16]
mww $pudr_addr 0xffff0000 ;# no pull-up for D[31:16]
}
mww $config(matrix_ebicsa_addr) $config(matrix_ebicsa_val)
mww $::AT91_SDRAMC_MR $::AT91_SDRAMC_MODE_NORMAL ;# SDRAMC_MR Mode register