2009-09-02 12:34:35 -05:00
|
|
|
# Atheros AR71xx MIPS 24Kc SoC.
|
|
|
|
# tested on PB44 refererence board
|
|
|
|
|
2010-03-15 10:41:30 -05:00
|
|
|
adapter_nsrst_delay 100
|
2009-09-02 12:34:35 -05:00
|
|
|
jtag_ntrst_delay 100
|
|
|
|
|
|
|
|
reset_config trst_and_srst
|
|
|
|
|
|
|
|
set CHIPNAME ar71xx
|
|
|
|
|
|
|
|
jtag newtap $CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id 1
|
|
|
|
|
2015-05-21 11:12:39 -05:00
|
|
|
set _TARGETNAME $CHIPNAME.cpu
|
|
|
|
target create $_TARGETNAME mips_m4k -endian big -chain-position $_TARGETNAME
|
2009-09-02 12:34:35 -05:00
|
|
|
|
2015-05-21 11:12:39 -05:00
|
|
|
$_TARGETNAME configure -event reset-halt-post {
|
2009-09-02 12:34:35 -05:00
|
|
|
#setup PLL to lowest common denominator 300/300/150 setting
|
2010-12-18 11:22:53 -06:00
|
|
|
mww 0xb8050000 0x000f40a3 ;# reset val + CPU:3 DDR:3 AHB:0
|
|
|
|
mww 0xb8050000 0x800f40a3 ;# send to PLL
|
2009-09-02 12:34:35 -05:00
|
|
|
|
|
|
|
#next command will reset for PLL changes to take effect
|
2010-12-18 11:22:53 -06:00
|
|
|
mww 0xb8050008 3 ;# set reset_switch and clock_switch (resets SoC)
|
2009-09-04 00:14:32 -05:00
|
|
|
}
|
2009-09-02 12:34:35 -05:00
|
|
|
|
2015-05-21 11:12:39 -05:00
|
|
|
$_TARGETNAME configure -event reset-init {
|
2009-09-04 00:14:32 -05:00
|
|
|
#complete pll initialization
|
2010-12-18 11:22:53 -06:00
|
|
|
mww 0xb8050000 0x800f0080 ;# set sw_update bit
|
|
|
|
mww 0xb8050008 0 ;# clear reset_switch bit
|
|
|
|
mww 0xb8050000 0x800f00e8 ;# clr pwrdwn & bypass
|
|
|
|
mww 0xb8050008 1 ;# set clock_switch bit
|
|
|
|
sleep 1 ;# wait for lock
|
2009-09-21 13:48:22 -05:00
|
|
|
|
2009-09-02 12:34:35 -05:00
|
|
|
# Setup DDR config and flash mapping
|
2010-12-18 11:22:53 -06:00
|
|
|
mww 0xb8000000 0xefbc8cd0 ;# DDR cfg cdl val (rst: 0x5bfc8d0)
|
|
|
|
mww 0xb8000004 0x8e7156a2 ;# DDR cfg2 cdl val (rst: 0x80d106a8)
|
|
|
|
|
|
|
|
mww 0xb8000010 8 ;# force precharge all banks
|
|
|
|
mww 0xb8000010 1 ;# force EMRS update cycle
|
|
|
|
mww 0xb800000c 0 ;# clr ext. mode register
|
|
|
|
mww 0xb8000010 2 ;# force auto refresh all banks
|
|
|
|
mww 0xb8000010 8 ;# force precharge all banks
|
|
|
|
mww 0xb8000008 0x31 ;# set DDR mode value CAS=3
|
|
|
|
mww 0xb8000010 1 ;# force EMRS update cycle
|
|
|
|
mww 0xb8000014 0x461b ;# DDR refresh value
|
|
|
|
mww 0xb8000018 0xffff ;# DDR Read Data This Cycle value (16bit: 0xffff)
|
|
|
|
mww 0xb800001c 0x7 ;# delay added to the DQS line (normal = 7)
|
2009-09-02 12:34:35 -05:00
|
|
|
mww 0xb8000020 0
|
|
|
|
mww 0xb8000024 0
|
|
|
|
mww 0xb8000028 0
|
2009-09-21 13:48:22 -05:00
|
|
|
}
|
2009-09-02 12:34:35 -05:00
|
|
|
|
|
|
|
# setup working area somewhere in RAM
|
2015-05-21 11:12:39 -05:00
|
|
|
$_TARGETNAME configure -work-area-phys 0xa0600000 -work-area-size 0x20000
|
2009-09-02 12:34:35 -05:00
|
|
|
|
|
|
|
# serial SPI capable flash
|
|
|
|
# flash bank <driver> <base> <size> <chip_width> <bus_width>
|
|
|
|
|