jtag: linuxgpiod: drop extra parenthesis
[openocd.git] / tcl / board / embedded-artists_lpc2478-32.cfg
1 # Embedded Artists eval board for LPC2478
2 # http://www.embeddedartists.com/
3
4 # Target device: LPC2478
5 set CCLK 72000
6 source [find target/lpc2478.cfg]
7
8 # Helper
9 #
10 proc read_register {register} {
11 return [read_memory $register 32 1]
12 }
13
14 proc init_board {} {
15 # Delays on reset lines
16 adapter srst delay 500
17 jtag_ntrst_delay 1
18
19 # Adaptive JTAG clocking through RTCK.
20 #
21 jtag_rclk 20
22
23 global _TARGETNAME
24 global _CHIPNAME
25
26 # A working area will help speeding the flash programming
27 $_TARGETNAME configure -work-area-phys 0x40000200 -work-area-size [expr {0x10000-0x200-0x20}] -work-area-backup 0
28
29 # External 16-bit flash at chip select CS0 (SST39VF3201-70, 4 MiB)
30 flash bank $_CHIPNAME.extflash cfi 0x80000000 0x400000 2 2 $_TARGETNAME jedec_probe
31
32 # Event handlers
33 #
34 $_TARGETNAME configure -event reset-start {
35 # Back to the slow JTAG clock
36 jtag_rclk 20
37 }
38
39 $_TARGETNAME configure -event reset-init {
40 arm core_state arm
41 arm7_9 dcc_downloads enable ;# Speed up downloads by using DCC transfer
42 arm7_9 fast_memory_access enable
43
44 # Peripheral clocks
45 mww 0xE01FC0C4 0x04280FFE ;# PCONP: (reset value)
46
47 # Map the user flash to the vector table area (0x00...0x3F)
48 mww 0xE01FC040 0x00000001 ;# MEMMAP: User flash
49
50 # Memory accelerator module
51 mww 0xE01FC004 0x00000003 ;# MAMTIM: 3 clock cycles
52 mww 0xE01FC000 0x00000002 ;# MAMCR: fully enabled
53
54 # Enable external memory bus (32-bit SDRAM at DYCS0, 16-bit flash at CS0)
55 mww 0xE002C014 0x55010115 ;# PINSEL5: P2.16=CAS, P2.17=RAS, P2.18=CLKOUT0,
56 # P2.20=DYCS0, P2.24=CKEOUT0, P2.28=DQMOUT0,
57 # P2.29=DQMOUT1, P2.30=DQMOUT2, P2.31=DQMOUT3
58 mww 0xE002C018 0x55555555 ;# PINSEL6: P3.0...P3.15=D0...D15
59 mww 0xE002C01C 0x55555555 ;# PINSEL7: P3.16...P3.31=D16...D31
60 mww 0xE002C020 0x55555555 ;# PINSEL8: P4.0...P4.15=A0...A15
61 mww 0xE002C024 0x50051555 ;# PINSEL9: P4.16...P4.22=A16...A22, P4.24=OE,
62 # P4.25=WE, P4.30=CS0, P4.31=CS1
63 mww 0xFFE08000 0x00000001 ;# EMCControl: Enable EMC
64
65 # Start PLL, then use faster JTAG clock
66 enable_pll
67 jtag_rclk 3000
68
69 # 16-bit flash @ CS0 (SST39VF3201-70)
70 mww 0xFFE08200 0x00080081 ;# EMCStaticConfig0: 16 bit, PB=1, buffers on
71 mww 0xFFE08204 0x00000000 ;# EMCStaticWaitWen0
72 mww 0xFFE08208 0x00000000 ;# EMCStaticWaitOen0
73 mww 0xFFE0820C 0x00000005 ;# EMCStaticWaitRd0
74 mww 0xFFE08210 0x00000005 ;# EMCStaticWaitPage0
75 mww 0xFFE08214 0x00000003 ;# EMCStaticWaitWr0
76 mww 0xFFE08218 0x00000001 ;# EMCStaticWaitTurn0
77
78 # 8-bit NAND @ CS1
79 # TODO
80
81 # 32-bit SDRAM @ DYCS0 (K4M563233G-HN75)
82 mww 0xFFE08028 0x00000001 ;# EMCDynamicReadConfig
83 mww 0xFFE08030 0x00000001 ;# EMCDynamicRP
84 mww 0xFFE08034 0x00000003 ;# EMCDynamicRAS
85 mww 0xFFE08038 0x00000005 ;# EMCDynamicSREX
86 mww 0xFFE0803C 0x00000001 ;# EMCDynamicAPR
87 mww 0xFFE08040 0x00000005 ;# EMCDynamicDAL
88 mww 0xFFE08044 0x00000001 ;# EMCDynamicWR
89 mww 0xFFE08048 0x00000005 ;# EMCDynamicRC
90 mww 0xFFE0804C 0x00000005 ;# EMCDynamicRFC
91 mww 0xFFE08050 0x00000005 ;# EMCDynamicXSR
92 mww 0xFFE08054 0x00000001 ;# EMCDynamicRRD
93 mww 0xFFE08058 0x00000001 ;# EMCDynamicMRD
94 #
95 mww 0xFFE08104 0x00000202 ;# EMCDynamicRasCas0
96 mww 0xFFE08100 0x00005488 ;# EMCDynamicConfig0
97 sleep 100
98 mww 0xFFE08020 0x00000183 ;# EMCDynamicControl: Clock on continuously, NOP
99 sleep 10
100 mww 0xFFE08020 0x00000103 ;# EMCDynamicControl: PRECHARGE-ALL
101 mww 0xFFE08024 0x00000046 ;# EMCDynamicRefresh
102 sleep 100
103 mww 0xFFE08020 0x00000083 ;# EMCDynamicControl: MODE
104 mdw 0xA0011000 1 ;# Set SDRAM mode register
105 mww 0xFFE08020 0x00000000 ;# EMCDynamicControl: NORMAL
106 mww 0xFFE08100 0x00085488 ;# EMCDynamicConfig0: Enable buffers
107 }
108
109 $_TARGETNAME configure -event gdb-attach {
110 # Without this gdb-attach will first time as probe will fail
111 reset init
112 }
113 }
114
115 # Enable the PLL.
116 # Generate maximum CPU clock (72 MHz) Run from internal RC oscillator.
117 # Note: The PLL output runs at a frequency N times the desired CPU clock.
118 # It in unavoidable that the CPU clock drops down to (4 MHz/N) during
119 # the initialization!
120 # Here: N=4
121 # Note that if the PLL is already active at the time this script is
122 # called, the effective value of N is the value of CCLKCFG at that time!
123 #
124 proc enable_pll {} {
125 # Disconnect PLL in case it is already connected
126 if {[expr {[read_register 0xE01FC080] & 0x03}] == 3} {
127 # Disconnect it, but leave it enabled
128 # (This MUST be done in two steps)
129 mww 0xE01FC080 0x00000001 ;# PLLCON: disconnect PLL
130 mww 0xE01FC08C 0x000000AA ;# PLLFEED
131 mww 0xE01FC08C 0x00000055 ;# PLLFEED
132 }
133 # Disable PLL (as it might already be enabled at this time!)
134 mww 0xE01FC080 0x00000000 ;# PLLCON: disable PLL
135 mww 0xE01FC08C 0x000000AA ;# PLLFEED
136 mww 0xE01FC08C 0x00000055 ;# PLLFEED
137
138 # Setup PLL to generate 288 MHz from internal RC oscillator
139 mww 0xE01FC10C 0x00000000 ;# CLKSRCSEL: IRC
140 mww 0xE01FC084 0x00000023 ;# PLLCFG: N=1, M=36
141 mww 0xE01FC08C 0x000000AA ;# PLLFEED
142 mww 0xE01FC08C 0x00000055 ;# PLLFEED
143 mww 0xE01FC080 0x00000001 ;# PLLCON: enable PLL
144 mww 0xE01FC08C 0x000000AA ;# PLLFEED
145 mww 0xE01FC08C 0x00000055 ;# PLLFEED
146 sleep 100
147 mww 0xE01FC104 0x00000003 ;# CCLKCFG: divide by 4 (72 MHz)
148 mww 0xE01FC080 0x00000003 ;# PLLCON: connect PLL
149 mww 0xE01FC08C 0x000000AA ;# PLLFEED
150 mww 0xE01FC08C 0x00000055 ;# PLLFEED
151 }

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)