openocd: fix SPDX tag format for files .c
[fw/openocd] / src / target / openrisc / or1k_tap_xilinx_bscan.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2
3 /***************************************************************************
4  *   Copyright (C) 2013 by Sergio Chico                                    *
5  *   sergio.chico@gmail.com                                                *
6  ***************************************************************************/
7
8 #ifdef HAVE_CONFIG_H
9 #include "config.h"
10 #endif
11
12 #include "or1k_tap.h"
13 #include "or1k.h"
14
15 #include <jtag/jtag.h>
16
17 #define OR1K_XILINX_TAP_INST_USER1      0x02
18
19 static int or1k_tap_xilinx_bscan_init(struct or1k_jtag *jtag_info)
20 {
21         LOG_DEBUG("Initialising Xilinx Internal JTAG TAP");
22
23         /* Put TAP into state where it can talk to the debug interface
24          * by shifting in correct value to IR.
25          */
26
27         /* Ensure TAP is reset - maybe not necessary*/
28         jtag_add_tlr();
29
30         struct jtag_tap *tap = jtag_info->tap;
31         struct scan_field field;
32         uint8_t ir_value = OR1K_XILINX_TAP_INST_USER1;
33
34         field.num_bits = tap->ir_length;
35         field.out_value = &ir_value;
36         field.in_value = NULL;
37
38         jtag_add_ir_scan(tap, &field, TAP_IDLE);
39
40         return jtag_execute_queue();
41 }
42
43 static struct or1k_tap_ip xilinx_bscan_tap = {
44         .name = "xilinx_bscan",
45         .init = or1k_tap_xilinx_bscan_init,
46 };
47
48 int or1k_tap_xilinx_bscan_register(void)
49 {
50         list_add_tail(&xilinx_bscan_tap.list, &tap_list);
51         return 0;
52 }