2022-06-12 16:48:05 -05:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
|
2011-02-21 11:59:50 -06:00
|
|
|
#
|
|
|
|
# Copyright 2010 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
|
|
|
|
#
|
|
|
|
# under GPLv2 Only
|
|
|
|
#
|
|
|
|
# This is for the "at91rm9200-ek" eval board.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# It has atmel at91rm9200 chip.
|
|
|
|
source [find target/at91rm9200.cfg]
|
|
|
|
|
|
|
|
reset_config trst_and_srst
|
|
|
|
|
|
|
|
$_TARGETNAME configure -event gdb-attach { reset init }
|
|
|
|
$_TARGETNAME configure -event reset-init { at91rm9200_ek_init }
|
|
|
|
|
|
|
|
## flash bank <name> <driver> <base> <size> <chip_width> <bus_width> <target>
|
|
|
|
set _FLASHNAME $_CHIPNAME.flash
|
|
|
|
flash bank $_FLASHNAME cfi 0x10000000 0x00800000 2 2 $_TARGETNAME
|
|
|
|
|
2011-05-05 03:02:21 -05:00
|
|
|
# The chip may run @ 32khz, so set a really low JTAG speed
|
2019-08-23 08:51:00 -05:00
|
|
|
adapter speed 8
|
2011-02-21 11:59:50 -06:00
|
|
|
|
|
|
|
proc at91rm9200_ek_init { } {
|
|
|
|
# Try to run at 1khz... Yea, that slow!
|
|
|
|
# Chip is really running @ 32khz
|
2019-08-23 08:51:00 -05:00
|
|
|
adapter speed 8
|
2011-02-21 11:59:50 -06:00
|
|
|
|
|
|
|
mww 0xfffffc64 0xffffffff
|
|
|
|
## disable all clocks but system clock
|
|
|
|
mww 0xfffffc04 0xfffffffe
|
|
|
|
## disable all clocks to pioa and piob
|
|
|
|
mww 0xfffffc14 0xffffffc3
|
|
|
|
## master clock = slow cpu = slow
|
|
|
|
## (means the CPU is running at 32khz!)
|
|
|
|
mww 0xfffffc30 0
|
|
|
|
## main osc enable
|
|
|
|
mww 0xfffffc20 0x0000ff01
|
|
|
|
## MC_PUP
|
|
|
|
mww 0xFFFFFF50 0x00000000
|
|
|
|
## MC_PUER: Memory controller protection unit disable
|
|
|
|
mww 0xFFFFFF54 0x00000000
|
|
|
|
## EBI_CFGR
|
|
|
|
mww 0xFFFFFF64 0x00000000
|
|
|
|
## SMC2_CSR[0]: 16bit, 2 TDF, 4 WS
|
|
|
|
mww 0xFFFFFF70 0x00003284
|
|
|
|
|
|
|
|
## Init Clocks
|
|
|
|
## CKGR_PLLAR
|
|
|
|
mww 0xFFFFFC28 0x2000BF05
|
|
|
|
## PLLAR: 179,712000 MHz for PCK
|
|
|
|
mww 0xFFFFFC28 0x20263E04
|
|
|
|
sleep 100
|
|
|
|
## PMC_MCKR
|
|
|
|
mww 0xFFFFFC30 0x00000100
|
|
|
|
sleep 100
|
|
|
|
## ;MCKR : PCK/3 = MCK Master Clock = 59,904000MHz from PLLA
|
|
|
|
mww 0xFFFFFC30 0x00000202
|
|
|
|
sleep 100
|
|
|
|
|
|
|
|
#========================================
|
|
|
|
# CPU now runs at 180mhz
|
|
|
|
# SYS runs at 60mhz.
|
2019-08-23 08:51:00 -05:00
|
|
|
adapter speed 40000
|
2011-02-21 11:59:50 -06:00
|
|
|
#========================================
|
|
|
|
|
|
|
|
## Init SDRAM
|
|
|
|
## PIOC_ASR: Configure PIOC as peripheral (D16/D31)
|
|
|
|
mww 0xFFFFF870 0xFFFF0000
|
|
|
|
## PIOC_BSR:
|
|
|
|
mww 0xFFFFF874 0x00000000
|
|
|
|
## PIOC_PDR:
|
|
|
|
mww 0xFFFFF804 0xFFFF0000
|
|
|
|
## EBI_CSA : CS1=SDRAM
|
|
|
|
mww 0xFFFFFF60 0x00000002
|
|
|
|
## EBI_CFGR:
|
|
|
|
mww 0xFFFFFF64 0x00000000
|
|
|
|
## SDRC_CR :
|
|
|
|
mww 0xFFFFFF98 0x2188c155
|
|
|
|
## SDRC_MR : Precharge All
|
|
|
|
mww 0xFFFFFF90 0x00000002
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## SDRC_MR : Refresh
|
|
|
|
mww 0xFFFFFF90 0x00000004
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## SDRC_MR : Load Mode Register
|
|
|
|
mww 0xFFFFFF90 0x00000003
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000080 0x00000000
|
|
|
|
## SDRC_TR : Write refresh rate
|
|
|
|
mww 0xFFFFFF94 0x000002E0
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
## SDRC_MR : Normal Mode
|
|
|
|
mww 0xFFFFFF90 0x00000000
|
|
|
|
## access SDRAM
|
|
|
|
mww 0x20000000 0x00000000
|
|
|
|
}
|