xref: /rk3399_rockchip-uboot/board/Synology/ds109/openocd.cfg (revision 99615d812f1c5f954c8bbc1e0cdfcb15e5cbe675)
1*a0a868b2SWalter Schweizer# Synology DS109
2*a0a868b2SWalter Schweizer
3*a0a868b2SWalter Schweizerinterface ftdi
4*a0a868b2SWalter Schweizerftdi_vid_pid 0x0403 0x6010
5*a0a868b2SWalter Schweizer
6*a0a868b2SWalter Schweizerftdi_layout_init 0x0008 0x000b
7*a0a868b2SWalter Schweizerftdi_layout_signal nTRST -data 0x0010 -oe 0x0010
8*a0a868b2SWalter Schweizerftdi_layout_signal nSRST -data 0x0040 -oe 0x0040
9*a0a868b2SWalter Schweizer
10*a0a868b2SWalter Schweizeradapter_khz 2000
11*a0a868b2SWalter Schweizer
12*a0a868b2SWalter Schweizer# length of reset signal: [ms]
13*a0a868b2SWalter Schweizeradapter_nsrst_assert_width 1000
14*a0a868b2SWalter Schweizer
15*a0a868b2SWalter Schweizer# don't talk to JTAG after reset for: [ms]
16*a0a868b2SWalter Schweizeradapter_nsrst_delay 200
17*a0a868b2SWalter Schweizer
18*a0a868b2SWalter Schweizersource [find target/feroceon.cfg]
19*a0a868b2SWalter Schweizer
20*a0a868b2SWalter Schweizerreset_config trst_and_srst srst_nogate
21*a0a868b2SWalter Schweizer
22*a0a868b2SWalter Schweizerproc ds109_init { } {
23*a0a868b2SWalter Schweizer
24*a0a868b2SWalter Schweizer	# We need to assert DBGRQ while holding nSRST down.
25*a0a868b2SWalter Schweizer	# However DBGACK will be set only when nSRST is released.
26*a0a868b2SWalter Schweizer	# Furthermore, the JTAG interface doesn't respond at all when
27*a0a868b2SWalter Schweizer	# the CPU is in the WFI (wait for interrupts) state, so it is
28*a0a868b2SWalter Schweizer	# possible that initial tap examination failed.  So let's
29*a0a868b2SWalter Schweizer	# re-examine the target again here when nSRST is asserted which
30*a0a868b2SWalter Schweizer	# should then succeed.
31*a0a868b2SWalter Schweizer	jtag_reset 0 1
32*a0a868b2SWalter Schweizer	feroceon.cpu arp_examine
33*a0a868b2SWalter Schweizer	halt 0
34*a0a868b2SWalter Schweizer	jtag_reset 0 0
35*a0a868b2SWalter Schweizer	wait_halt
36*a0a868b2SWalter Schweizer	#reset run
37*a0a868b2SWalter Schweizer	#soft_reset_halt
38*a0a868b2SWalter Schweizer
39*a0a868b2SWalter Schweizer	arm mcr 15 0 0 1 0 0x00052078
40*a0a868b2SWalter Schweizer
41*a0a868b2SWalter Schweizer	mww 0xD00100e0 0x1b1b1b9b ;#
42*a0a868b2SWalter Schweizer	mww 0xD0020134 0xbbbbbbbb ;#
43*a0a868b2SWalter Schweizer	mww 0xD0020138 0x00bbbbbb ;#
44*a0a868b2SWalter Schweizer	mww 0xD0001400 0x43000C30 ;#  DDR SDRAM Configuration Register
45*a0a868b2SWalter Schweizer	mww 0xD0001404 0x39743000 ;#  Dunit Control Low Register
46*a0a868b2SWalter Schweizer	mww 0xD0001408 0x22125551 ;#  DDR SDRAM Timing (Low) Register
47*a0a868b2SWalter Schweizer	mww 0xD000140C 0x00000833 ;#  DDR SDRAM Timing (High) Register
48*a0a868b2SWalter Schweizer	mww 0xD0001410 0x0000000d ;#  DDR SDRAM Address Control Register
49*a0a868b2SWalter Schweizer	mww 0xD0001414 0x00000000 ;#  DDR SDRAM Open Pages Control Register
50*a0a868b2SWalter Schweizer	mww 0xD0001418 0x00000000 ;#  DDR SDRAM Operation Register
51*a0a868b2SWalter Schweizer	mww 0xD000141C 0x00000C62 ;#  DDR SDRAM Mode Register
52*a0a868b2SWalter Schweizer	mww 0xD0001420 0x00000042 ;#  DDR SDRAM Extended Mode Register
53*a0a868b2SWalter Schweizer	mww 0xD0001424 0x0000F1FF ;#  Dunit Control High Register
54*a0a868b2SWalter Schweizer	mww 0xD0001428 0x00085520 ;#  Dunit Control High Register
55*a0a868b2SWalter Schweizer	mww 0xD000147c 0x00008552 ;#  Dunit Control High Register
56*a0a868b2SWalter Schweizer	mww 0xD0001500 0x00000000 ;#
57*a0a868b2SWalter Schweizer	mww 0xD0001504 0x07FFFFF1 ;#  CS0n Size Register
58*a0a868b2SWalter Schweizer	mww 0xD0001508 0x10000000 ;#  CS1n Base Register
59*a0a868b2SWalter Schweizer	mww 0xD000150C 0x00000000 ;#  CS1n Size Register
60*a0a868b2SWalter Schweizer	mww 0xD0001510 0x20000000 ;#
61*a0a868b2SWalter Schweizer	mww 0xD0001514 0x00000000 ;#  CS2n Size Register
62*a0a868b2SWalter Schweizer	mww 0xD000151C 0x00000000 ;#  CS3n Size Register
63*a0a868b2SWalter Schweizer	mww 0xD0001494 0x003C0000 ;#  DDR2 SDRAM ODT Control (Low) Register
64*a0a868b2SWalter Schweizer	mww 0xD0001498 0x00000000 ;#  DDR2 SDRAM ODT Control (High) REgister
65*a0a868b2SWalter Schweizer	mww 0xD000149C 0x0000F80F ;#  DDR2 Dunit ODT Control Register
66*a0a868b2SWalter Schweizer	mww 0xD0001480 0x00000001 ;#  DDR SDRAM Initialization Control Register
67*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#  Main IRQ Interrupt Mask Register
68*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
69*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
70*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
71*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
72*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
73*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
74*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
75*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
76*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
77*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
78*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
79*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
80*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
81*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
82*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
83*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
84*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
85*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
86*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
87*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
88*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
89*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
90*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
91*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
92*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
93*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
94*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
95*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
96*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
97*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
98*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
99*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
100*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
101*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
102*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
103*a0a868b2SWalter Schweizer	mww 0xD0020204 0x00000000 ;#              "
104*a0a868b2SWalter Schweizer
105*a0a868b2SWalter Schweizer	mww 0xD0010000 0x01111111 ;#  MPP  0 to 7
106*a0a868b2SWalter Schweizer	mww 0xD0010004 0x11113322 ;#  MPP  8 to 15
107*a0a868b2SWalter Schweizer	mww 0xD0010008 0x00001111 ;#  MPP 16 to 23
108*a0a868b2SWalter Schweizer}
109*a0a868b2SWalter Schweizer
110*a0a868b2SWalter Schweizerproc ds109_load { } {
111*a0a868b2SWalter Schweizer	# load u-Boot into RAM and execute it
112*a0a868b2SWalter Schweizer	ds109_init
113*a0a868b2SWalter Schweizer	load_image u-boot.bin 0x00600000 bin
114*a0a868b2SWalter Schweizer	resume 0x00600000
115*a0a868b2SWalter Schweizer}
116