OpenOCD
parport.c File Reference
Include dependency graph for parport.c:

Go to the source code of this file.

Macros

#define OUTPUT_BITMASK(gpio_index)   BIT((adapter_gpio_config[(gpio_index)].gpio_num - 2))
 

Functions

 COMMAND_HANDLER (parport_handle_cable_command)
 
 COMMAND_HANDLER (parport_handle_port_command)
 
 COMMAND_HANDLER (parport_handle_toggling_time_command)
 
 COMMAND_HANDLER (parport_handle_write_on_exit_command)
 
static bool is_gpio_configured (enum adapter_gpio_config_index gpio_index)
 
static int parport_init (void)
 
static int parport_khz (int khz, int *jtag_speed)
 
static int parport_led (bool on)
 
static int parport_quit (void)
 
static enum bb_value parport_read (void)
 
static int parport_reset (int trst, int srst)
 
static int parport_speed (int speed)
 
static int parport_speed_div (int speed, int *khz)
 
static int parport_write (int tck, int tms, int tdi)
 
static void parport_write_data (void)
 
static void set_pin_state (enum adapter_gpio_config_index gpio_index, bool state)
 

Variables

static const struct adapter_gpio_configadapter_gpio_config
 
struct {
   enum adapter_gpio_config_index   gpio_index
 
   bool   required
 
all_signals []
 
static unsigned long dataport
 
static uint8_t dataport_value
 
struct {
   uint8_t   mask
 
input_pin_bitmask_map []
 
struct adapter_driver parport_adapter_driver
 
static const struct bitbang_interface parport_bitbang
 
static const struct command_registration parport_command_handlers []
 
static struct jtag_interface parport_interface
 
static uint16_t parport_port
 
static const struct command_registration parport_subcommand_handlers []
 
static uint32_t parport_toggling_time_ns = 1000
 
static bool parport_write_exit_state
 
static unsigned long statusport
 
static int wait_states
 

Macro Definition Documentation

◆ OUTPUT_BITMASK

#define OUTPUT_BITMASK (   gpio_index)    BIT((adapter_gpio_config[(gpio_index)].gpio_num - 2))

Definition at line 77 of file parport.c.

Function Documentation

◆ COMMAND_HANDLER() [1/4]

COMMAND_HANDLER ( parport_handle_cable_command  )

Definition at line 435 of file parport.c.

References CMD_ARGC, CMD_ARGV, CMD_CTX, command_run_linef(), and ERROR_COMMAND_SYNTAX_ERROR.

◆ COMMAND_HANDLER() [2/4]

COMMAND_HANDLER ( parport_handle_port_command  )

◆ COMMAND_HANDLER() [3/4]

COMMAND_HANDLER ( parport_handle_toggling_time_command  )

◆ COMMAND_HANDLER() [4/4]

COMMAND_HANDLER ( parport_handle_write_on_exit_command  )

◆ is_gpio_configured()

static bool is_gpio_configured ( enum adapter_gpio_config_index  gpio_index)
static

Definition at line 110 of file parport.c.

References ADAPTER_GPIO_NOT_SET, gpio_index, and adapter_gpio_config::gpio_num.

Referenced by parport_led(), and parport_reset().

◆ parport_init()

◆ parport_khz()

static int parport_khz ( int  khz,
int *  jtag_speed 
)
static

Definition at line 169 of file parport.c.

References ERROR_FAIL, ERROR_OK, LOG_ERROR, and parport_toggling_time_ns.

◆ parport_led()

static int parport_led ( bool  on)
static

◆ parport_quit()

◆ parport_read()

static enum bb_value parport_read ( void  )
static

Definition at line 62 of file parport.c.

◆ parport_reset()

static int parport_reset ( int  trst,
int  srst 
)
static

◆ parport_speed()

static int parport_speed ( int  speed)
static

Definition at line 163 of file parport.c.

References ERROR_OK, and wait_states.

◆ parport_speed_div()

static int parport_speed_div ( int  speed,
int *  khz 
)
static

Definition at line 181 of file parport.c.

◆ parport_write()

static int parport_write ( int  tck,
int  tms,
int  tdi 
)
static

◆ parport_write_data()

static void parport_write_data ( void  )
static

Definition at line 95 of file parport.c.

References dataport, dataport_value, and output.

Referenced by parport_led(), parport_quit(), parport_reset(), and parport_write().

◆ set_pin_state()

static void set_pin_state ( enum adapter_gpio_config_index  gpio_index,
bool  state 
)
static

Variable Documentation

◆ adapter_gpio_config

Definition at line 48 of file parport.c.

◆ 

const { ... } all_signals[]
Initial value:
= {
}
@ ADAPTER_GPIO_IDX_LED
Definition: adapter.h:62
@ ADAPTER_GPIO_IDX_SRST
Definition: adapter.h:61
@ ADAPTER_GPIO_IDX_TRST
Definition: adapter.h:57
@ ADAPTER_GPIO_IDX_TDI
Definition: adapter.h:54
@ ADAPTER_GPIO_IDX_TMS
Definition: adapter.h:55
@ ADAPTER_GPIO_IDX_USER0
Definition: adapter.h:63
@ ADAPTER_GPIO_IDX_TCK
Definition: adapter.h:56
@ ADAPTER_GPIO_IDX_TDO
Definition: adapter.h:53

Referenced by parport_init(), and parport_quit().

◆ dataport

unsigned long dataport
static

Definition at line 61 of file parport.c.

Referenced by parport_init(), and parport_write_data().

◆ dataport_value

uint8_t dataport_value
static

Definition at line 56 of file parport.c.

Referenced by parport_write_data(), and set_pin_state().

◆ gpio_index

enum adapter_gpio_config_index gpio_index

Definition at line 67 of file parport.c.

Referenced by is_gpio_configured(), parport_init(), parport_quit(), and set_pin_state().

◆ 

struct { ... } input_pin_bitmask_map[]
Initial value:
= {
[10] = {0x40},
[11] = {0x80},
[12] = {0x20},
[13] = {0x10},
[15] = {0x08},
}

◆ mask

uint8_t mask

Definition at line 67 of file parport.c.

Referenced by aarch64_check_state_one(), allow_transports(), ap_poll_register(), arm11_step(), arm7_9_full_context(), arm7_9_restore_context(), arm7_9_set_breakpoint(), arm7_9_set_watchpoint(), arm7tdmi_load_word_regs(), arm7tdmi_read_core_regs(), arm7tdmi_read_core_regs_target_buffer(), arm7tdmi_store_word_regs(), arm7tdmi_write_core_regs(), arm9tdmi_load_word_regs(), arm9tdmi_read_core_regs(), arm9tdmi_read_core_regs_target_buffer(), arm9tdmi_store_word_regs(), arm9tdmi_write_core_regs(), arm_cti_mod_reg_bits(), armv8_get_pauth_mask(), armv8_set_dbgreg_bits(), buf_eq_mask(), buf_eq_trailing(), cfi_fixup_non_cfi(), clear_bit(), cmsis_dap_cmd_dap_swj_pins(), COMMAND_HANDLER(), cortex_a_wait_dscr_bits(), cortex_m_add_watchpoint(), cortex_m_endreset_event(), cortex_m_set_maskints(), cortex_m_set_watchpoint(), dap_dp_poll_register(), decode_dmi(), efm32x_get_page_lock(), efm32x_set_page_lock(), esp32s2_set_peri_reg_mask(), fa526_read_core_regs(), fa526_read_core_regs_target_buffer(), fa526_write_core_regs(), feroceon_read_core_regs(), feroceon_read_core_regs_target_buffer(), feroceon_write_core_regs(), gowin_check_status_flag(), jtag_check_value_mask(), jtag_examine_chain_match_tap(), kinetis_ke_mdm_poll_register(), kinetis_mdm_poll_register(), lattice_certus_load(), lattice_ecp2_3_erase_device(), lattice_ecp2_load(), lattice_ecp3_load(), lattice_verify_status_register_u32(), lattice_verify_status_register_u64(), lattice_verify_usercode(), lpc2900_wait_status(), qn908x_protect(), qn908x_update_reg(), riscv_address_translate(), samd_get_reservedmask(), samd_modify_user_row(), same5_modify_user_row_masked(), same5_protect(), set_bit(), sh_qspi_wait_for_bit(), stm32l4_write_option(), stm32x_modify_option(), str_to_buf(), test_iomux_settings(), usbtogpio_config(), usbtogpio_in(), usbtogpio_out(), usbtopoll_checkfail(), usbtopoll_checkok(), watchpoint_add(), and watchpoint_add_internal().

◆ parport_adapter_driver

struct adapter_driver parport_adapter_driver
Initial value:
= {
.name = "parport",
.transport_ids = TRANSPORT_JTAG,
.transport_preferred_id = TRANSPORT_JTAG,
.init = parport_init,
.quit = parport_quit,
.reset = parport_reset,
.speed = parport_speed,
.khz = parport_khz,
.speed_div = parport_speed_div,
.jtag_ops = &parport_interface,
}
static int parport_reset(int trst, int srst)
Definition: parport.c:137
static int parport_speed(int speed)
Definition: parport.c:163
static const struct command_registration parport_command_handlers[]
Definition: parport.c:519
static int parport_quit(void)
Definition: parport.c:386
static struct jtag_interface parport_interface
Definition: parport.c:530
static int parport_speed_div(int speed, int *khz)
Definition: parport.c:181
static int parport_khz(int khz, int *jtag_speed)
Definition: parport.c:169
static int parport_init(void)
Definition: parport.c:238
#define TRANSPORT_JTAG
Definition: transport.h:19

Definition at line 455 of file parport.c.

◆ parport_bitbang

const struct bitbang_interface parport_bitbang
static
Initial value:
= {
.read = &parport_read,
.write = &parport_write,
.blink = &parport_led,
}
static int parport_write(int tck, int tms, int tdi)
Definition: parport.c:124
static enum bb_value parport_read(void)
Definition: parport.c:79
static int parport_led(bool on)
Definition: parport.c:152

Definition at line 181 of file parport.c.

Referenced by parport_init().

◆ parport_command_handlers

const struct command_registration parport_command_handlers[]
static
Initial value:
= {
{
.name = "parport",
.mode = COMMAND_ANY,
.help = "perform parport management",
.usage = "",
},
}
#define COMMAND_REGISTRATION_DONE
Use this as the last entry in an array of command_registration records.
Definition: command.h:251
@ COMMAND_ANY
Definition: command.h:42
static const struct command_registration parport_subcommand_handlers[]
Definition: parport.c:485
const char * usage
a string listing the options and arguments, required or optional
Definition: command.h:239

Definition at line 455 of file parport.c.

◆ parport_interface

struct jtag_interface parport_interface
static
Initial value:
= {
.supported = DEBUG_CAP_TMS_SEQ,
.execute_queue = bitbang_execute_queue,
}
int bitbang_execute_queue(struct jtag_command *cmd_queue)
Definition: bitbang.c:293
#define DEBUG_CAP_TMS_SEQ
Definition: interface.h:188

Definition at line 455 of file parport.c.

◆ parport_port

uint16_t parport_port
static

Definition at line 50 of file parport.c.

Referenced by COMMAND_HANDLER(), and parport_init().

◆ parport_subcommand_handlers

const struct command_registration parport_subcommand_handlers[]
static

Definition at line 455 of file parport.c.

◆ parport_toggling_time_ns

uint32_t parport_toggling_time_ns = 1000
static

Definition at line 52 of file parport.c.

Referenced by COMMAND_HANDLER(), and parport_khz().

◆ parport_write_exit_state

bool parport_write_exit_state
static

Definition at line 51 of file parport.c.

Referenced by COMMAND_HANDLER(), and parport_quit().

◆ required

bool required

Definition at line 226 of file parport.c.

Referenced by parport_init().

◆ statusport

unsigned long statusport
static

Definition at line 62 of file parport.c.

Referenced by parport_init().

◆ wait_states

int wait_states
static

Definition at line 53 of file parport.c.

Referenced by COMMAND_HANDLER(), parport_speed(), and parport_write().