summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0028-Add-AST2500-JTAG-driver.patch
blob: 28bc8d36cace48babd46c923cd5a809bfb48d2e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
From a4413fe3ba94906243b632e0b9e0e9a91620dd22 Mon Sep 17 00:00:00 2001
From: "Corona, Ernesto" <ernesto.corona@intel.com>
Date: Fri, 1 Mar 2019 11:46:09 -0700
Subject: [PATCH] Update AST2500d JTAG driver. Step 1

Update AST2500d JTAG driver. Remove Legacy driver but keep headers.

Signed-off-by: Corona, Ernesto <ernesto.corona@intel.com>
---
 include/uapi/linux/jtag_drv.h | 73 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 include/uapi/linux/jtag_drv.h

diff --git a/include/uapi/linux/jtag_drv.h b/include/uapi/linux/jtag_drv.h
new file mode 100644
index 000000000000..4df638f8fa43
--- /dev/null
+++ b/include/uapi/linux/jtag_drv.h
@@ -0,0 +1,73 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (C) 2012-2017 ASPEED Technology Inc. */
+/* Copyright (c) 2018 Intel Corporation */
+
+#ifndef __JTAG_DRV_H__
+#define __JTAG_DRV_H__
+
+enum xfer_mode {
+	HW_MODE = 0,
+	SW_MODE
+} xfer_mode;
+
+struct tck_bitbang {
+	__u8	tms;
+	__u8	tdi;
+	__u8	tdo;
+} __attribute__((__packed__));
+
+struct scan_xfer {
+	__u8	mode;
+	__u32	tap_state;
+	__u32	length;
+	__u8	*tdi;
+	__u32	tdi_bytes;
+	__u8	*tdo;
+	__u32	tdo_bytes;
+	__u32	end_tap_state;
+} __attribute__((__packed__));
+
+struct set_tck_param {
+	__u8	mode;
+	__u32	tck;
+} __attribute__((__packed__));
+
+struct get_tck_param {
+	__u8	mode;
+	__u32	tck;
+} __attribute__((__packed__));
+
+struct tap_state_param {
+	__u8	mode;
+	__u32	from_state;
+	__u32	to_state;
+} __attribute__((__packed__));
+
+enum jtag_states {
+	jtag_tlr,
+	jtag_rti,
+	jtag_sel_dr,
+	jtag_cap_dr,
+	jtag_shf_dr,
+	jtag_ex1_dr,
+	jtag_pau_dr,
+	jtag_ex2_dr,
+	jtag_upd_dr,
+	jtag_sel_ir,
+	jtag_cap_ir,
+	jtag_shf_ir,
+	jtag_ex1_ir,
+	jtag_pau_ir,
+	jtag_ex2_ir,
+	jtag_upd_ir
+} jtag_states;
+
+#define JTAGIOC_BASE 'T'
+
+#define AST_JTAG_SET_TCK _IOW(JTAGIOC_BASE, 3, struct set_tck_param)
+#define AST_JTAG_GET_TCK _IOR(JTAGIOC_BASE, 4, struct get_tck_param)
+#define AST_JTAG_BITBANG _IOWR(JTAGIOC_BASE, 5, struct tck_bitbang)
+#define AST_JTAG_SET_TAPSTATE _IOW(JTAGIOC_BASE, 6, struct tap_state_param)
+#define AST_JTAG_READWRITESCAN _IOWR(JTAGIOC_BASE, 7, struct scan_xfer)
+
+#endif
-- 
2.7.4