- rlink interface support from Lou Deluxe <lou.openocd012@fixit.nospammail.net>
[openocd.git] / src / jtag / rlink / init.m4
1 m4_divert(`-1')\r
2 /***************************************************************************\r
3  *   Copyright (C) 2008 Lou Deluxe                                         *\r
4  *   lou.openocd012@fixit.nospammail.net                                   *\r
5  *                                                                         *\r
6  *   This program is free software; you can redistribute it and/or modify  *\r
7  *   it under the terms of the GNU General Public License as published by  *\r
8  *   the Free Software Foundation; either version 2 of the License, or     *\r
9  *   (at your option) any later version.                                   *\r
10  *                                                                         *\r
11  *   This program is distributed in the hope that it will be useful,       *\r
12  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *\r
13  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *\r
14  *   GNU General Public License for more details.                          *\r
15  *                                                                         *\r
16  *   You should have received a copy of the GNU General Public License     *\r
17  *   along with this program; if not, write to the                         *\r
18  *   Free Software Foundation, Inc.,                                       *\r
19  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *\r
20  ***************************************************************************/\r
21 \r
22 m4_undefine(`CTRL_MPEG_L')\r
23 m4_undefine(`CTRL_CARD_L')\r
24 \r
25 m4_ifelse(SHIFTER_PRESCALER, 1, `\r
26         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x0')')\r
27 ')\r
28 m4_ifelse(SHIFTER_PRESCALER, 2, `\r
29         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x2')')\r
30         m4_define(`CTRL_CARD_L', `m4_eval(`0x8 | 0x1')')\r
31 ')\r
32 m4_ifelse(SHIFTER_PRESCALER, 8, `\r
33         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x3')')\r
34 ')\r
35 m4_ifelse(SHIFTER_PRESCALER, 11, `\r
36         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x4')')\r
37 ')\r
38 m4_ifelse(SHIFTER_PRESCALER, 64, `\r
39         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x7')')\r
40 ')\r
41 \r
42 m4_ifdef(`CTRL_MPEG_L',,`\r
43         m4_errprint(`SHIFTER_PRESCALER was not defined with a supported value\r
44 ')      m4_m4exit(`1')\r
45 ')\r
46 \r
47 m4_divert(`0')m4_dnl\r
48 \r
49 init:\r
50         A.H = 0\r
51 \r
52         A.L = 0\r
53 \r
54         DR_MPEG = A     ; TDI and TCK start out low\r
55         DR_CARD = A     ; TMS starts out low\r
56 \r
57         A.L = 0x6\r
58 \r
59         CTRL_FCI = A    ; MPEG and CARD driven by FCI\r
60         DDR_MPEG = A    ; TDI and TCK are outputs\r
61 \r
62         A.L = 0x1\r
63 \r
64         X = A           ; X == 1\r
65         DDR_CARD = A    ; TMS is output\r
66 \r
67         A.L = CTRL_MPEG_L\r
68         CTRL_MPEG = A\r
69 m4_ifdef(`CTRL_CARD_L',\r
70 `       A.L = 'CTRL_CARD_L`\r
71 ')m4_dnl\r
72         CTRL_CARD = A\r
73 \r
74         STATUS STOP\r