rt-thread/bsp/hpmicro/hpm6300evk/board/debug_scripts/openocd/boards/hpm6300evk.cfg

254 lines
8.1 KiB
INI

# Copyright 2021 hpmicro
# SPDX-License-Identifier: BSD-3-Clause
flash bank xpi0 hpm_xpi 0x80000000 0x1000000 1 1 $_TARGET0 0xF3040000
proc init_clock {} {
$::_TARGET0 riscv dmi_write 0x39 0xF4002000
$::_TARGET0 riscv dmi_write 0x3C 0x1
$::_TARGET0 riscv dmi_write 0x39 0xF4002000
$::_TARGET0 riscv dmi_write 0x3C 0x2
$::_TARGET0 riscv dmi_write 0x39 0xF4000800
$::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
$::_TARGET0 riscv dmi_write 0x39 0xF4000810
$::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
$::_TARGET0 riscv dmi_write 0x39 0xF4000820
$::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
$::_TARGET0 riscv dmi_write 0x39 0xF4000830
$::_TARGET0 riscv dmi_write 0x3C 0xFFFFFFFF
echo "clocks has been enabled!"
}
proc init_sdram { } {
# configure dram frequency
# 133Mhz pll1_clk0: 266Mhz divide by 2
#$::_TARGET0 riscv dmi_write 0x39 0xF4001820
$::_TARGET0 riscv dmi_write 0x3C 0x201
# 166Mhz pll2_clk0: 333Mhz divide by 2
$::_TARGET0 riscv dmi_write 0x39 0xF4001820
$::_TARGET0 riscv dmi_write 0x3C 0x401
# PD13
$::_TARGET0 riscv dmi_write 0x39 0xF4040368
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD12
$::_TARGET0 riscv dmi_write 0x39 0xF4040360
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD10
$::_TARGET0 riscv dmi_write 0x39 0xF4040350
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD09
$::_TARGET0 riscv dmi_write 0x39 0xF4040348
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD08
$::_TARGET0 riscv dmi_write 0x39 0xF4040340
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD07
$::_TARGET0 riscv dmi_write 0x39 0xF4040338
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD06
$::_TARGET0 riscv dmi_write 0x39 0xF4040330
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD05
$::_TARGET0 riscv dmi_write 0x39 0xF4040328
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD04
$::_TARGET0 riscv dmi_write 0x39 0xF4040320
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD03
$::_TARGET0 riscv dmi_write 0x39 0xF4040318
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD02
$::_TARGET0 riscv dmi_write 0x39 0xF4040310
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD01
$::_TARGET0 riscv dmi_write 0x39 0xF4040308
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PD00
$::_TARGET0 riscv dmi_write 0x39 0xF4040300
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC29
$::_TARGET0 riscv dmi_write 0x39 0xF40402E8
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC28
$::_TARGET0 riscv dmi_write 0x39 0xF40402E0
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC27
$::_TARGET0 riscv dmi_write 0x39 0xF40402D8
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC22
$::_TARGET0 riscv dmi_write 0x39 0xF40402B0
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC21
$::_TARGET0 riscv dmi_write 0x39 0xF40402A8
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC17
$::_TARGET0 riscv dmi_write 0x39 0xF4040288
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC15
$::_TARGET0 riscv dmi_write 0x39 0xF4040278
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC12
$::_TARGET0 riscv dmi_write 0x39 0xF4040260
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC11
$::_TARGET0 riscv dmi_write 0x39 0xF4040258
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC10
$::_TARGET0 riscv dmi_write 0x39 0xF4040250
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC09
$::_TARGET0 riscv dmi_write 0x39 0xF4040248
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC08
$::_TARGET0 riscv dmi_write 0x39 0xF4040240
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC07
$::_TARGET0 riscv dmi_write 0x39 0xF4040238
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC06
$::_TARGET0 riscv dmi_write 0x39 0xF4040230
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC05
$::_TARGET0 riscv dmi_write 0x39 0xF4040228
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC04
$::_TARGET0 riscv dmi_write 0x39 0xF4040220
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC14
$::_TARGET0 riscv dmi_write 0x39 0xF4040270
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC13
$::_TARGET0 riscv dmi_write 0x39 0xF4040268
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC16
# $::_TARGET0 riscv dmi_write 0x39 0xF4040280
$::_TARGET0 riscv dmi_write 0x3C 0x1000C
# PC26
$::_TARGET0 riscv dmi_write 0x39 0xF40402D0
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC25
$::_TARGET0 riscv dmi_write 0x39 0xF40402C8
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC19
$::_TARGET0 riscv dmi_write 0x39 0xF4040298
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC18
$::_TARGET0 riscv dmi_write 0x39 0xF4040290
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC23
$::_TARGET0 riscv dmi_write 0x39 0xF40402B8
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC24
$::_TARGET0 riscv dmi_write 0x39 0xF40402C0
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC30
$::_TARGET0 riscv dmi_write 0x39 0xF40402F0
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC31
$::_TARGET0 riscv dmi_write 0x39 0xF40402F8
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC02
$::_TARGET0 riscv dmi_write 0x39 0xF4040210
$::_TARGET0 riscv dmi_write 0x3C 0xC
# PC03
$::_TARGET0 riscv dmi_write 0x39 0xF4040218
$::_TARGET0 riscv dmi_write 0x3C 0xC
# dramc configuration
$::_TARGET0 riscv dmi_write 0x39 0xF3050000
$::_TARGET0 riscv dmi_write 0x3C 0x1
sleep 10
$::_TARGET0 riscv dmi_write 0x39 0xF3050000
$::_TARGET0 riscv dmi_write 0x3C 0x2
$::_TARGET0 riscv dmi_write 0x39 0xF3050008
$::_TARGET0 riscv dmi_write 0x3C 0x30524
$::_TARGET0 riscv dmi_write 0x39 0xF305000C
$::_TARGET0 riscv dmi_write 0x3C 0x6030524
$::_TARGET0 riscv dmi_write 0x39 0xF3050000
$::_TARGET0 riscv dmi_write 0x3C 0x10000000
# 32MB
$::_TARGET0 riscv dmi_write 0x39 0xF3050010
$::_TARGET0 riscv dmi_write 0x3C 0x4000001b
$::_TARGET0 riscv dmi_write 0x39 0xF3050014
$::_TARGET0 riscv dmi_write 0x3C 0
# 16-bit
$::_TARGET0 riscv dmi_write 0x39 0xF3050040
$::_TARGET0 riscv dmi_write 0x3C 0xf31
# 133Mhz configuration
#$::_TARGET0 riscv dmi_write 0x39 0xF3050044
$::_TARGET0 riscv dmi_write 0x3C 0x884e22
# 166Mhz configuration
$::_TARGET0 riscv dmi_write 0x39 0xF3050044
$::_TARGET0 riscv dmi_write 0x3C 0x884e33
$::_TARGET0 riscv dmi_write 0x39 0xF3050048
$::_TARGET0 riscv dmi_write 0x3C 0x1020d0d
$::_TARGET0 riscv dmi_write 0x39 0xF3050048
$::_TARGET0 riscv dmi_write 0x3C 0x1020d0d
$::_TARGET0 riscv dmi_write 0x39 0xF305004C
$::_TARGET0 riscv dmi_write 0x3C 0x2020300
# config delay cell
$::_TARGET0 riscv dmi_write 0x39 0xF3050150
$::_TARGET0 riscv dmi_write 0x3C 0x3b
$::_TARGET0 riscv dmi_write 0x39 0xF3050150
$::_TARGET0 riscv dmi_write 0x3C 0x203b
$::_TARGET0 riscv dmi_write 0x39 0xF3050094
$::_TARGET0 riscv dmi_write 0x3C 0
$::_TARGET0 riscv dmi_write 0x39 0xF3050098
$::_TARGET0 riscv dmi_write 0x3C 0
# precharge all
$::_TARGET0 riscv dmi_write 0x39 0xF3050090
$::_TARGET0 riscv dmi_write 0x3C 0x40000000
$::_TARGET0 riscv dmi_write 0x39 0xF305009C
$::_TARGET0 riscv dmi_write 0x3C 0xA55A000F
sleep 500
$::_TARGET0 riscv dmi_write 0x39 0xF305003C
$::_TARGET0 riscv dmi_write 0x3C 0x3
# auto refresh
$::_TARGET0 riscv dmi_write 0x39 0xF305009C
$::_TARGET0 riscv dmi_write 0x3C 0xA55A000C
sleep 500
$::_TARGET0 riscv dmi_write 0x39 0xF305003C
$::_TARGET0 riscv dmi_write 0x3C 0x3
$::_TARGET0 riscv dmi_write 0x39 0xF305009C
$::_TARGET0 riscv dmi_write 0x3C 0xA55A000C
sleep 500
$::_TARGET0 riscv dmi_write 0x39 0xF305003C
$::_TARGET0 riscv dmi_write 0x3C 0x3
# set mode
$::_TARGET0 riscv dmi_write 0x39 0xF30500A0
$::_TARGET0 riscv dmi_write 0x3C 0x33
$::_TARGET0 riscv dmi_write 0x39 0xF305009C
$::_TARGET0 riscv dmi_write 0x3C 0xA55A000A
sleep 500
$::_TARGET0 riscv dmi_write 0x39 0xF305003C
$::_TARGET0 riscv dmi_write 0x3C 0x3
$::_TARGET0 riscv dmi_write 0x39 0xF305004C
$::_TARGET0 riscv dmi_write 0x3C 0x2020301
echo "SDRAM has been initialized"
}
$_TARGET0 configure -event reset-init {
init_clock
init_sdram
}
$_TARGET0 configure -event gdb-attach {
reset halt
}