target.cfg: remove "-work-area-virt 0"
[openocd.git] / tcl / board / mini2440.cfg
1 #-------------------------------------------------------------------------
2 # Mini2440 Samsung s3c2440A Processor with 64MB DRAM, 64MB NAND, 2 MB N0R
3 # NOTE: Configured for NAND boot (switch S2 in NANDBOOT)
4 # 64 MB NAND (Samsung K9D1208V0M)
5 # B Findlay 08/09
6 #
7 # ----------- Important notes to help you on your way ----------
8 # README:
9 # NOR/NAND Boot Switch - I have not read the vivi source, but from
10 # what I could tell from reading the registers it appears that vivi
11 # loads itself into DRAM and then flips NFCONT (0x4E000004) bits
12 # Mode (bit 0 = 1), and REG_nCE (bit 1 = 0) which maps the NAND
13 # FLASH at the bottom 64MB of memory. This essentially takes the
14 # NOR Flash out of the circuit so you can't trash it.
15 #
16 # I adapted the samsung_s3c2440.cfg file which is why I did not
17 # include "source [find target/samsung_s3c2440.cfg]". I believe
18 # the -work-area-phys 0x200000 is incorrect, but also had to pad
19 # some additional resets. I didn't modify it as if it is working
20 # for someone, the work-area-phys is not used by most.
21 #
22 # JTAG ADAPTER SPECIFIC
23 # IMPORTANT! Any JTAG device that uses ADAPTIVE CLOCKING will likely
24 # FAIL as the pin RTCK on the mini2440 10 pin JTAG Conn doesn't exist.
25 # This is Pin 11 (RTCK) on 20 pin JTAG connector. Therefore it is
26 # necessary to FORCE setting the clock. Normally this should be configured
27 # in the openocd.cfg file, but was placed here as it can be a tough
28 # problem to figure out. THIS MAY NOT FIX YOUR PROBLEM.. I modified
29 # the openOCD driver jlink.c and posted it here. It may eventually end
30 # up changed in openOCD, but its a hack in the driver and really should
31 # be in the jtag layer (core.c me thinks), but haven't done it yet. My
32 # hack for jlink.c may be found here.
33 #
34 # http://forum.sparkfun.com/viewtopic.php?t=16763&sid=946e65abdd3bab39cc7d90dee33ff135
35 #
36 # Note: Also if you have a USB JTAG, you will need the USB library installed
37 # on your system "libusb-dev" or the make of openocd will fail. I *think*
38 # it's apt-get install libusb-dev. When I made my config I only included
39 # --enable-jlink and --enable-usbdevs
40 #
41 # I HAVE NOT Tested this throughly, so there could still be problems.
42 # But it should get you way ahead of the game from where I started.
43 # If you find problems (and fixes) please post them to
44 # openocd-development@lists.berlios.de and join the developers and
45 # check in fixes to this and anything else you find. I do not
46 # provide support, but if you ask really nice and I see anything
47 # obvious I will tell you.. mostly just dig, fix, and submit to openocd.
48 #
49 # best! brfindla@yahoo.com Nashua, NH USA
50 #
51 # Recommended resources:
52 # - first two are the best Mini2440 resources anywhere
53 # - maintained by buserror... thanks guy!
54 #
55 # http://bliterness.blogspot.com/
56 # http://code.google.com/p/mini2440/
57 #
58 # others....
59 #
60 # http://forum.sparkfun.com/viewforum.php?f=18
61 # http://labs.kernelconcepts.de/Publications/Micro24401/
62 # http://www.friendlyarm.net/home
63 # http://www.amontec.com/jtag_pinout.shtml
64 #
65 #-------------------------------------------------------------------------
66 #
67 #
68 # Your openocd.cfg file should contain:
69 # source [find interface/<yourjtag>.cfg]
70 # source [find board/mini2440.cfg]
71 #
72 #
73 #
74 #-------------------------------------------------------------------------
75 # Target configuration for the Samsung 2440 system on chip
76 # Tested on a S3C2440 Evaluation board by keesj
77 # Processor : ARM920Tid(wb) rev 0 (v4l)
78 # Info: JTAG tap: s3c2440.cpu tap/device found: 0x0032409d
79 # (Manufacturer: 0x04e, Part: 0x0324, Version: 0x0)
80 #-------------------------------------------------------------------------
81
82 if { [info exists CHIPNAME] } {
83 set _CHIPNAME $CHIPNAME
84 } else {
85 set _CHIPNAME s3c2440
86 }
87
88 if { [info exists ENDIAN] } {
89 set _ENDIAN $ENDIAN
90 } else {
91 # this defaults to a bigendian
92 set _ENDIAN little
93 }
94
95 if { [info exists CPUTAPID ] } {
96 set _CPUTAPID $CPUTAPID
97 } else {
98 # force an error till we get a good number
99 set _CPUTAPID 0x0032409d
100 }
101
102 #jtag scan chain
103 jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0x0f -expected-id $_CPUTAPID
104
105 set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
106 target create $_TARGETNAME arm920t -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm920t
107 $_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x4000 -work-area-backup 1
108
109 #reset configuration
110 jtag_nsrst_delay 100
111 jtag_ntrst_delay 100
112 reset_config trst_and_srst
113
114 #-------------------------------------------------------------------------
115 # JTAG ADAPTER SPECIFIC
116 # IMPORTANT! See README at top of this file.
117 #-------------------------------------------------------------------------
118
119 jtag_khz 12000
120 jtag interface
121
122 #-------------------------------------------------------------------------
123 # GDB Setup
124 #-------------------------------------------------------------------------
125
126 gdb_breakpoint_override hard
127
128 #------------------------------------------------
129 # ARM SPECIFIC
130 #------------------------------------------------
131
132 targets
133 # arm7_9 dcc_downloads enable
134 # arm7_9 fast_memory_access enable
135
136
137 nand device s3c2440 0
138
139 jtag_nsrst_delay 100
140 jtag_ntrst_delay 100
141 reset_config trst_and_srst
142 init
143
144 echo " "
145 echo "-------------------------------------------"
146 echo "--- login with - telnet localhost 4444 ---"
147 echo "--- then type help_2440 ---"
148 echo "-------------------------------------------"
149 echo " "
150
151
152
153 #------------------------------------------------
154 # Processor Initialialization
155 # Note: Processor writes can only occur when
156 # the state is in SYSTEM. When you call init_2440
157 # one of the first lines will tell you what state
158 # you are in. If a linux image is booting
159 # when you run this, it will not work
160 # a vivi boot loader will run with this just
161 # fine. The reg values were obtained by a combination
162 # of figuring them out fromt the manual, and looking
163 # at post vivi values with the debugger. Don't
164 # place too much faith in them, but seem to work.
165 #------------------------------------------------
166
167 proc init_2440 { } {
168
169 halt
170 s3c2440.cpu curstate
171
172 #-----------------------------------------------
173 # Set Processor Clocks - mini2440 xtal=12mHz
174 # we set main clock for 405mHZ
175 # we set the USB Clock for 48mHz
176 # OM2 OM3 pulled to ground so main clock and
177 # usb clock are off 12mHz xtal
178 #-----------------------------------------------
179
180 mww phys 0x4C000014 0x00000005 # Clock Divider control Reg
181 mww phys 0x4C000000 0xFFFFFFFF # LOCKTIME count register
182 mww phys 0x4C000008 0x00038022 # UPPLCON USB clock config Reg
183 mww phys 0x4C000004 0x0007F021 # MPPLCON Proc clock config Reg
184
185 #-----------------------------------------------
186 # Configure Memory controller
187 # BWSCON configures all banks, NAND, NOR, DRAM
188 # DRAM - 64MB - 32 bit bus, uses BANKCON6 BANKCON7
189 #-----------------------------------------------
190
191 mww phys 0x48000000 0x22111112 # BWSCON - Bank and Bus Width
192 mww phys 0x48000010 0x00001112 # BANKCON4 - ?
193 mww phys 0x4800001c 0x00018009 # BANKCON6 - DRAM
194 mww phys 0x48000020 0x00018009 # BANKCON7 - DRAM
195 mww phys 0x48000024 0x008E04EB # REFRESH - DRAM
196 mww phys 0x48000028 0x000000B2 # BANKSIZE - DRAM
197 mww phys 0x4800002C 0x00000030 # MRSRB6 - DRAM
198 mww phys 0x48000030 0x00000030 # MRSRB7 - DRAM
199
200 #-----------------------------------------------
201 # Now port configuration for enables for memory
202 # and other stuff.
203 #-----------------------------------------------
204
205 mww phys 0x56000000 0x007FFFFF # GPACON
206
207 mww phys 0x56000010 0x00295559 # GPBCON
208 mww phys 0x56000018 0x000003FF # GPBUP (PULLUP ENABLE)
209 mww phys 0x56000014 0x000007C2 # GPBDAT
210
211 mww phys 0x56000020 0xAAAAA6AA # GPCCON
212 mww phys 0x56000028 0x0000FFFF # GPCUP
213 mww phys 0x56000024 0x00000020 # GPCDAT
214
215 mww phys 0x56000030 0xAAAAAAAA # GPDCON
216 mww phys 0x56000038 0x0000FFFF # GPDUP
217
218 mww phys 0x56000040 0xAAAAAAAA # GPECON
219 mww phys 0x56000048 0x0000FFFF # GPEUP
220
221 mww phys 0x56000050 0x00001555 # GPFCON
222 mww phys 0x56000058 0x0000007F # GPFUP
223 mww phys 0x56000054 0x00000000 # GPFDAT
224
225 mww phys 0x56000060 0x00150114 # GPGCON
226 mww phys 0x56000068 0x0000007F # GPGUP
227
228 mww phys 0x56000070 0x0015AAAA # GPHCON
229 mww phys 0x56000078 0x000003FF # GPGUP
230
231 }
232
233
234
235 proc flash_config { } {
236
237 #-----------------------------------------
238 # Finish Flash Configuration
239 #-----------------------------------------
240
241 halt
242
243 #flash configuration (K9D1208V0M: 512Mbit, x8, 3.3V, Mode: Normal, 1st gen)
244 nand probe 0
245 nand list
246 }
247
248 proc flash_uboot { } {
249
250 # flash the u-Boot binary and reboot into it
251 init_2440
252 flash_config
253 nand erase 0 0x0 0x40000
254 nand write 0 /tftpboot/u-boot-nand512.bin 0 oob_softecc_kw
255 resume
256 }
257
258
259 proc load_uboot { } {
260 echo " "
261 echo " "
262 echo "----------------------------------------------------------"
263 echo "---- Load U-Boot into RAM and execute it. ---"
264 echo "---- NOTE: loads, partially runs, and hangs ---"
265 echo "---- U-Boot is fine, this image runs from vivi. ---"
266 echo "---- I burned u-boot into NAND so I didn't finish ---"
267 echo "---- debugging it. I am leaving this here as it is ---"
268 echo "---- part of the way there if you want to fix it. ---"
269 echo "---- ---"
270 echo "---- mini2440 U-boot here: ---"
271 echo "---- http://repo.or.cz/w/u-boot-openmoko/mini2440.git ---"
272 echo "---- Also this: ---"
273 echo "---- http://code.google.com/p/mini2440/wiki/MiniBringup --"
274 echo "----------------------------------------------------------"
275
276 init_2440
277 echo "Loading /tftpboot/u-boot-nand512.bin"
278 load_image /tftpboot/u-boot-nand512.bin 0x33f80000 bin
279 echo "Verifying image...."
280 verify_image /tftpboot/u-boot-nand512.bin 0x33f80000 bin
281 echo "jumping to u-boot"
282 #bp 0x33f80068 4 hw
283 reg 0 0
284 reg 1 0
285 reg 2 0
286 reg 3 0
287 reg 4 0x33f80000
288 resume 0x33f80000
289 }
290
291 # this may help a little bit debugging the load_uboot
292 proc s {} {
293 step
294 reg
295 armv4_5 disassemble 0x33F80068 0x10
296 }
297
298 proc help_2440 {} {
299 echo " "
300 echo " "
301 echo "-----------------------------------------------------------"
302 echo "---- The following mini2440 funcs are supported ----"
303 echo "---- init_2440 - initialize clocks, DRAM, IO ----"
304 echo "---- flash_config - configures nand flash ----"
305 echo "---- load_uboot - loads uboot into ram ----"
306 echo "---- flash_uboot - flashes uboot to nand (untested) ----"
307 echo "---- help_2440 - this help display ----"
308 echo "-----------------------------------------------------------"
309 echo " "
310 echo " "
311 }
312
313
314 #----------------------------------------------------------------------------
315 #----------------------------------- END ------------------------------------
316 #----------------------------------------------------------------------------

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)