openUBMC Chip Abstract Layer V0.1
载入中...
搜索中...
未找到
jtag.h
浏览该文件的文档.
1/*
2 * Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
3 *
4 * this file licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 * http://license.coscl.org.cn/MulanPSL2
8 *
9 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
10 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
11 * PURPOSE.
12 * See the Mulan PSL v2 for more details.
13 *
14 * Create: 2025-07-17
15 */
16
21#ifndef DRIVER_JTAG_H
22#define DRIVER_JTAG_H
23#include "driver.h"
24
25/* ****************************************************************************
26内部宏定义
27**************************************************************************** */
28namespace DRIVER_JTAG {
29using namespace bcal;
30
35class Jtag : public IDriver {
36public:
42 virtual void set_reset_cpld_gpio(int32_t index, uint8_t gpio_num) = 0;
43
51 virtual int32_t write(int32_t index, const string_view_t &data) = 0;
52
59 virtual void set_target_num(int32_t index, uint32_t cpld_id) = 0;
60
67 virtual void set_bypass_mode(int32_t index, bool enable) = 0;
68
75 virtual void set_tck_rate(int32_t index, uint32_t tck_rate) = 0;
76
85 virtual bool test_bypass_channel(int32_t index, uint8_t cpld_id) = 0;
86
94 virtual vector<uint32_t> get_cpld_idcode(int32_t index, uint8_t cpld_num) = 0;
95
101 virtual void reset(int32_t index) = 0;
102};
103
109 uint8_t tck;
110 uint8_t tms;
111 uint8_t tdo;
112 uint8_t tdi;
113};
114
119class JtagOverGpio : public Jtag {
120};
121
127 uint8_t offset;
128 uint8_t tck;
129 uint8_t tms;
130 uint8_t tdo;
131 uint8_t tdi;
132};
133
138class JtagOverLocalbus : public Jtag {
139};
140} // namespace DRIVER_JTAG
141
142#endif
使用GPIO模拟的JTAG接口
Definition jtag.h:119
使用CPLD模拟的JTAG接口
Definition jtag.h:138
CPLD升级接口
Definition jtag.h:35
virtual vector< uint32_t > get_cpld_idcode(int32_t index, uint8_t cpld_num)=0
获取CPLD IDCODE
virtual int32_t write(int32_t index, const string_view_t &data)=0
写 JTAG 数据
virtual void set_tck_rate(int32_t index, uint32_t tck_rate)=0
设置tck频率
virtual void set_bypass_mode(int32_t index, bool enable)=0
设置bypass模式 设置是否使用Bypass模式升级(链上除目标器件外其他器件设置为Bypass)
virtual void set_target_num(int32_t index, uint32_t cpld_id)=0
选择bypass模式下jtag链中需要升级的器件
virtual bool test_bypass_channel(int32_t index, uint8_t cpld_id)=0
jtag链路测试 测试jtag链路是否畅通
virtual void reset(int32_t index)=0
通过GPIO引脚复位CPLD GPIO引脚由set_reset_cpld_gpio接口设置
virtual void set_reset_cpld_gpio(int32_t index, uint8_t gpio_num)=0
将用于复位CPLD的管脚初始化为特定电平
BCAL层驱动公共接口
Definition driver.h:41
BCAL 驱动公共接口定义
JtagOverGpio配置
Definition jtag.h:108
uint8_t tdi
Definition jtag.h:112
uint8_t tck
Definition jtag.h:109
uint8_t tdo
Definition jtag.h:111
uint8_t tms
Definition jtag.h:110
JtagOverLocalbus配置
Definition jtag.h:126
uint8_t tdo
Definition jtag.h:130
uint8_t tdi
Definition jtag.h:131
uint8_t tck
Definition jtag.h:128
uint8_t tms
Definition jtag.h:129
uint8_t offset
Definition jtag.h:127