Files
sw_openocd/tcl/board/hpmicro/hpm6800evk.cfg
Ryan QIAN 0e2f990c87 tcl: add config file for hpmicro devices and boards
- add board and device config files
- add interface config file for hpmicro evk boards

Change-Id: I8afb0b734b1064d71c4af3c118c7777d0ead9e6b
Signed-off-by: Ryan QIAN <jianghao.qian@hpmicro.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8697
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2025-12-19 21:17:21 +00:00

158 lines
4.3 KiB
INI

# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2023 HPMicro
adapter speed 10000
source [find interface/hpmicro/hpmicro_evk.cfg]
source [find target/hpmicro/hpm6880.cfg]
# openocd flash driver argument:
# - option0:
# [31:28] Flash probe type
# 0 - SFDP SDR / 1 - SFDP DDR
# 2 - 1-4-4 Read (0xEB, 24-bit address) / 3 - 1-2-2 Read(0xBB, 24-bit address)
# 4 - HyperFLASH 1.8V / 5 - HyperFLASH 3V
# 6 - OctaBus DDR (SPI -> OPI DDR)
# 8 - Xccela DDR (SPI -> OPI DDR)
# 10 - EcoXiP DDR (SPI -> OPI DDR)
# [27:24] Command Pads after Power-on Reset
# 0 - SPI / 1 - DPI / 2 - QPI / 3 - OPI
# [23:20] Command Pads after Configuring FLASH
# 0 - SPI / 1 - DPI / 2 - QPI / 3 - OPI
# [19:16] Quad Enable Sequence (for the device support SFDP 1.0 only)
# 0 - Not needed
# 1 - QE bit is at bit6 in Status Register 1
# 2 - QE bit is at bit1 in Status Register 2
# 3 - QE bit is at bit7 in Status Register 2
# 4 - QE bit is at bit1 in Status Register 2 and should be programmed by 0x31
# [15:8] Dummy cycles
# 0 - Auto-probed / detected / default value
# Others - User specified value, for DDR read, the dummy cycles should be 2 * cycles on FLASH datasheet
# [7:4] Misc.
# 0 - Not used
# 1 - SPI mode
# 2 - Internal loopback
# 3 - External DQS
# [3:0] Frequency option
# 1 - 30MHz / 2 - 50MHz / 3 - 66MHz / 4 - 80MHz / 5 - 100MHz / 6 - 120MHz / 7 - 133MHz / 8 - 166MHz
# - option1:
# [31:20] Reserved
# [19:16] IO voltage
# 0 - 3V / 1 - 1.8V
# [15:12] Pin group
# 0 - 1st group / 1 - 2nd group
# [11:8] Connection selection
# 0 - CA_CS0 / 1 - CB_CS0 / 2 - CA_CS0 + CB_CS0 (Two FLASH connected to CA and CB respectively)
# [7:0] Drive Strength
# 0 - Default value
# xpi0 configs
# - flash driver: hpm_xpi
# - flash ctrl index: 0xF3000000
# - base address: 0x80000000
# - flash size: 0x2000000
# - flash option0: 0x7
flash bank xpi0 hpm_xpi 0x80000000 0x2000000 0 0 $_TARGET0 0xF3000000 0x7
proc init_clock {} {
mww 0xF4000800 0xFFFFFFFF
mww 0xF4000810 0xFFFFFFFF
mww 0xF4000820 0xFFFFFFFF
mww 0xF4000830 0xFFFFFFFF
echo "clocks has been enabled!"
}
proc init_ddr3 {} {
# ddr dcdc setup
mww 0xF4104080 0x10578
# ddr3 setup
mww 0xF40C0180 0x30000019
mww 0xF400180C 0x09100401
mww 0xF4153000 0xF0000010
mww 0xF30101B0 0
mww 0xF4150040 0xf004641f
mww 0xF4153000 0xf0000011
mww 0xF3013000 0xf4000000
mww 0xF3010490 1
mww 0xF3010000 0x1040001
mww 0xF30100D0 0x4002004e
mww 0xF3010110 0x05010407
mww 0xF3010190 0x07040102
mww 0xF3010194 0x20404
mww 0xF30101A4 0x20008
mww 0xF3010240 0x06000600
mww 0xF3010200 0x1F1F1F
mww 0xF3010204 0x121212
mww 0xF3010208 0
mww 0xF301020C 0
mww 0xF3010210 0x1F1F
mww 0xF3010214 0x06030303
mww 0xF3010218 0x0F060606
mww 0xF3013000 0xFC000000
mww 0xF4150054 0xc70
mww 0xF4150058 0x6
mww 0xF415005c 0x18
mww 0xF4150048 0x919c8866
mww 0xF415004c 0x1a838360
mww 0xF415008c 0xf06d50
mww 0xF4150050 0x3002d200
mww 0xF30101b0 1
sleep 100
mww 0xF4150068 0x930035C7
mww 0xF4150004 0xFF81
sleep 200
echo "ddr3 has been enabled!"
}
proc init_dram {} {
# ddr dcdc setup
mww 0xF4104080 0x10708
# pll1 setup
mww 0xF40c0180 0xb0000016
mww 0xF40c0184 0
mww 0xF40c0188 0xe4e1c00
#ddr setup
mww 0xF3010000 0x3040000
mww 0xF30101B0 0
mww 0xF4150044 0x40a
mww 0xF4150040 0xf004641f
mww 0xF4153000 0xf0000011
mww 0xF3013000 0xf4000000
mww 0xF3010490 1
mww 0xF3010000 0x1040000
mww 0xF3010190 0x07010101
mww 0xF3010194 0x20404
mww 0xF30101A4 0x20008
mww 0xF3010240 0x6000600
mww 0xF3010200 0x1f1f1f
mww 0xF3010204 0x70707
mww 0xF3010208 0
mww 0xF301020c 0
mww 0xF3010210 0x1f1f
mww 0xF3010214 0x6060606
mww 0xF3010218 0xf0f0606
mww 0xF3013000 0xfc000000
mww 0xF4150020 0x3000100
mww 0xF4150028 0x18002356
mww 0xF415002c 0x0aac4156
mww 0xF4150054 0xe73
mww 0xF4150058 0x5
mww 0xF415005c 0
mww 0xF4150048 0xf2adfe53
mww 0xF415004c 0x22820362
mww 0xF4150050 0x30020100
mww 0xF415008c 0xf06d50
mww 0xF30101b0 1
sleep 100
mww 0xF4150068 0x91003587
mww 0xF4150004 0xF501
sleep 200
echo "ddr has been enabled!"
}
$_TARGET0 configure -event reset-init {
init_clock
init_ddr3
}