TT-System-Firmware APIs 19.10.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
jtag_priv.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_DRIVERS_JTAG_JTAG_PRIV_H_
8#define ZEPHYR_DRIVERS_JTAG_JTAG_PRIV_H_
9
10#include <stdint.h>
11
12#include <zephyr/drivers/gpio.h>
13
15
17 BR, /* Bypass Register */
18 IR, /* Instruction Register */
19 DR, /* Data Register */
20};
21
41
57
74
75struct jtag_data {
76#ifdef CONFIG_JTAG_EMUL
77 struct gpio_dt_spec tck;
78 struct gpio_dt_spec tdo;
79 struct gpio_dt_spec tdi;
80 struct gpio_dt_spec tms;
81 struct gpio_dt_spec trst;
82
84 size_t buf_len;
85 struct gpio_callback gpio_emul_cb;
86 struct jtag_emul_data emul_data;
87#endif
88};
89
90#endif
static bool tck(struct jtag_data *data)
Definition jtag_emul.c:183
static bool trst(struct jtag_data *data)
Definition jtag_emul.c:198
static bool tdi(struct jtag_data *data)
Definition jtag_emul.c:188
jtag_shift_reg
Definition jtag_priv.h:16
@ IR
Definition jtag_priv.h:18
@ DR
Definition jtag_priv.h:19
@ BR
Definition jtag_priv.h:17
uint32_t jtag_reg_t
Definition jtag_priv.h:14
jtag_state
Definition jtag_priv.h:22
@ EXIT2_DR
Definition jtag_priv.h:36
@ SCAN_IR
Definition jtag_priv.h:27
@ UPDATE_DR
Definition jtag_priv.h:38
@ CAPTURE_DR
Definition jtag_priv.h:28
@ SHIFT_IR
Definition jtag_priv.h:31
@ PAUSE_DR
Definition jtag_priv.h:34
@ CAPTURE_IR
Definition jtag_priv.h:29
@ JTAG_RESET
Definition jtag_priv.h:24
@ UPDATE_IR
Definition jtag_priv.h:39
@ SCAN_DR
Definition jtag_priv.h:26
@ SHIFT_DR
Definition jtag_priv.h:30
@ EXIT2_IR
Definition jtag_priv.h:37
@ EXIT1_DR
Definition jtag_priv.h:32
@ EXIT1_IR
Definition jtag_priv.h:33
@ PAUSE_IR
Definition jtag_priv.h:35
@ IDLE
Definition jtag_priv.h:25
static uint8_t buf[1]
Definition log_backend_ringbuf.c:24
__UINT32_TYPE__ uint32_t
__UINT8_TYPE__ uint8_t
Definition jtag_priv.h:58
volatile uint32_t * tms_reg
Definition jtag_priv.h:68
volatile uint32_t * tck_reg
Definition jtag_priv.h:65
struct gpio_dt_spec tdi
Definition jtag_priv.h:61
struct gpio_dt_spec trst
Definition jtag_priv.h:63
volatile uint32_t * tdi_reg
Definition jtag_priv.h:67
struct gpio_dt_spec tms
Definition jtag_priv.h:62
volatile uint32_t * tdo_reg
Definition jtag_priv.h:66
struct gpio_dt_spec tdo
Definition jtag_priv.h:60
uint32_t tck_delay
Definition jtag_priv.h:72
uint32_t port_write_cycles
Definition jtag_priv.h:71
struct gpio_dt_spec tck
Definition jtag_priv.h:59
volatile uint32_t * trst_reg
Definition jtag_priv.h:69
Definition jtag_priv.h:75
Definition jtag_priv.h:42
jtag_reg_t shift_reg[DR+1]
Definition jtag_priv.h:43
enum jtag_state state
Definition jtag_priv.h:46
jtag_reg_t hold_reg[DR+1]
Definition jtag_priv.h:45
size_t sram_len
Definition jtag_priv.h:55
uint32_t * sram
Definition jtag_priv.h:54
bool have_axi_data_tdr
Definition jtag_priv.h:52
size_t tck_count
Definition jtag_priv.h:49
uint32_t axi_addr_tdr
Definition jtag_priv.h:51
uint32_t axi_data_tdr
Definition jtag_priv.h:53
bool have_axi_addr_tdr
Definition jtag_priv.h:50
bool tck_old
Definition jtag_priv.h:48
uint8_t shift_bits[DR+1]
Definition jtag_priv.h:44
enum jtag_shift_reg selected_reg
Definition jtag_priv.h:47