class OrigenARMDebug::JTAG_DP

Attributes

apacc_select[R]
dpacc_select[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/origen_arm_debug/jtag_dp.rb, line 7
def initialize(options = {})
  options = {
    ir_size:       4,
    idcode_select: 0b1110,
    abort_select:  0b1000,
    dpacc_select:  0b1010,
    apacc_select:  0b1011
  }.merge(options)
  @dpacc_select = options[:dpacc_select]
  @apacc_select = options[:apacc_select]
  add_reg :ir, 0, size: options[:ir_size]

  # Virtual reg used to represent all of the various 35-bit scan chains
  reg :dr, 0, size: 35 do |reg|
    reg.bit 34..3, :data
    reg.bit 2..1, :a
    reg.bit 0, :rnw
  end

  reg :idcode, options[:idcode_select], access: :ro do |reg|
    reg.bit 31..28, :version
    reg.bit 27..12, :partno
    reg.bit 11..1, :designer
    reg.bit 0, :bit0, reset: 1
  end

  reg :ctrlstat, 0x4 do |reg|
    reg.bit 31, :csyspwrupack
    reg.bit 30, :csyspwrupreq
    reg.bit 29, :cdbgpwrupack
    reg.bit 28, :cdbgpwrupreq
    reg.bit 27, :cdbgrstack
    reg.bit 26, :cdbgrstreq
    reg.bit 23..12, :trncnt
    reg.bit 11..8, :masklane
    reg.bit 5, :stickyerr
    reg.bit 4, :stickycmp
    reg.bit 3..2, :trnmode
    reg.bit 1, :stickyorun
    reg.bit 0, :orundetect
  end

  reg :select, 0x8 do |reg|
    reg.bit 31..24, :apsel
    reg.bit 7..4, :apbanksel
  end

  add_reg :rdbuff, 0xC, access: :ro, reset: 0

  reg :abort, options[:abort_select], access: :wo do |reg|
    reg.bit 0, :dapabort
  end
end

Public Instance Methods

abort() click to toggle source
# File lib/origen_arm_debug/jtag_dp.rb, line 65
def abort
  reg(:abort)
end
is_jtag?() click to toggle source
# File lib/origen_arm_debug/jtag_dp.rb, line 69
def is_jtag?
  true
end
is_sw?()
Alias for: is_swd?
is_swd?() click to toggle source
# File lib/origen_arm_debug/jtag_dp.rb, line 73
def is_swd?
  false
end
Also aliased as: is_sw?
select() click to toggle source
# File lib/origen_arm_debug/jtag_dp.rb, line 61
def select
  reg(:select)
end