origen_arm_debug 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc238d6a6c1968e247feaf3a6b57c4b6222246e8
4
- data.tar.gz: 79ee7b36c4af7d4357fa541937b429a9b596525f
3
+ metadata.gz: cd4a3c91ea754230b8e799d2fdbb6fa5ebce4405
4
+ data.tar.gz: a4b18c224767fe55666e0366fb11700129165be5
5
5
  SHA512:
6
- metadata.gz: f13c97b08406af4d1748cea9ca1ce365cc910a14689f631aa9fc0156e4a454516978e5c4be3a1cc7579021b3df1c55624617ecc06fd9e59bba28fee0ea4a2707
7
- data.tar.gz: b061fba3f3ccad2c04cc8b94b0ac8b633aea8a25ac3fc2183cec9f802e110c7829c2990edc71e4c298b8066afaec33872230080bf3c32db356e8f5212ef8d7e1
6
+ metadata.gz: 30e7d8fe43c7668ed2a5e8d0eb5da2e3ba2d2ea1a3a83e77e45e80c25dd98d4e907c03dbef77a6159204a31818ab484e8c5cb740153b1bd0f5107762f3f6cd44
7
+ data.tar.gz: a15f046b109e8b8778391ca73c1aba2afd84e0020423afd1a6e38feb1931510be99fee52360c51330b460c47b42a0c74e6b62193291a06347dedf45de02777a2
data/config/commands.rb CHANGED
@@ -24,6 +24,10 @@ when "examples"
24
24
  # Pattern generator tests
25
25
  ARGV = %w(read_write_reg -t debug -r approved)
26
26
  load "#{Origen.top}/lib/origen/commands/generate.rb"
27
+ ARGV = %w(read_write_reg_jtag -t debug -r approved)
28
+ load "#{Origen.top}/lib/origen/commands/generate.rb"
29
+ ARGV = %w(read_write_reg_swd -t debug -r approved)
30
+ load "#{Origen.top}/lib/origen/commands/generate.rb"
27
31
 
28
32
  if Origen.app.stats.changed_files == 0 &&
29
33
  Origen.app.stats.new_files == 0 &&
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenARMDebug
2
2
  MAJOR = 0
3
3
  MINOR = 4
4
- BUGFIX = 1
4
+ BUGFIX = 2
5
5
  DEV = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
@@ -16,6 +16,7 @@ module OrigenARMDebug
16
16
  @owner = owner
17
17
  end
18
18
 
19
+ # Create and/or return the SWJ_DP object with specified protocol
19
20
  def swj_dp
20
21
  if owner.respond_to?(:swd)
21
22
  @swj_dp ||= SWJ_DP.new(self, :swd)
@@ -30,23 +31,43 @@ module OrigenARMDebug
30
31
  end
31
32
 
32
33
  # Method to add additional Memory Access Ports (MEM-AP) with specified base address
33
- # name - short name for mem_ap that is being created
34
- # base_address - base address
34
+ #
35
+ # @param [Integer] name Short name for mem_ap that is being created
36
+ # @param [Integer] base_address Base address
37
+ #
38
+ # @examples
39
+ # arm_debug.add_mem_ap('alt_ahbapi', 0x02000000)
40
+ #
35
41
  def add_mem_ap(name, base_address)
36
42
  instance_variable_set("@#{name}", MemAP.new(self, name: name, base_address: base_address))
37
43
  self.class.send(:attr_accessor, name)
38
44
  end
39
45
 
46
+ # Read from a MEM-AP register
47
+ #
48
+ # @param [Integer, Origen::Register::Reg, Origen::Register::BitCollection, Origen::Register::Bit] reg_or_val
49
+ # Value to be read. If a reg/bit collection is supplied this can be pre-marked for
50
+ # read, store or overlay and which will result in the requested action being applied to
51
+ # the cycles corresponding to those bits only (don't care cycles will be generated for the others).
52
+ # @param [Hash] options Options to customize the operation
40
53
  def read_register(reg_or_val, options = {})
41
54
  mem_ap.read(reg_or_val.address, size: reg_or_val.size, compare_data: reg_or_val.data)
42
55
  end
43
56
 
57
+ # Write data to a MEM-AP register
58
+ #
59
+ # @param [Integer, Origen::Register::Reg, Origen::Register::BitCollection, Origen::Register::Bit] reg_or_val
60
+ # Value to be written to. If a reg/bit collection is supplied this can be pre-marked for
61
+ # read, store or overlay and which will result in the requested action being applied to
62
+ # the cycles corresponding to those bits only (don't care cycles will be generated for the others).
63
+ # @param [Hash] options Options to customize the operation
44
64
  def write_register(reg_or_val, options = {})
45
65
  mem_ap.write(reg_or_val.address, reg_or_val.data, size: reg_or_val.size)
46
66
  end
47
67
 
48
68
  private
49
69
 
70
+ # Short-cut to protocol driver
50
71
  def arm_debug_driver
51
72
  return @arm_debug_driver if @arm_debug_driver
52
73
  if owner.respond_to?(:jtag)
@@ -57,19 +57,6 @@ module OrigenARMDebug
57
57
  data: { pos: 0, bits: 32 }
58
58
  end
59
59
 
60
- # Method to add additional Memory Access Ports (MEM-AP) with specified base address
61
- #
62
- # @param [Integer] name Short name for mem_ap that is being created
63
- # @param [Integer] base_address Base address
64
- #
65
- # @examples
66
- # arm_debug.add_mem_ap('alt_ahbapi', 0x02000000)
67
- #
68
- def add_mem_ap(name, base_address)
69
- instance_variable_set("@#{name}", MemAP.new(self, base_address: base_address))
70
- self.class.send(:attr_accessor, name)
71
- end
72
-
73
60
  #-------------------------------------
74
61
  # DPACC Access API
75
62
  #-------------------------------------
@@ -11,10 +11,8 @@ Pattern.create do
11
11
  $dut.read_register($dut.reg(:test))
12
12
  $dut.write_register($dut.reg(:test), 0xFF02)
13
13
 
14
-
15
- $dut_swd.arm_debug.swj_dp.read_dp("IDCODE");
16
- $dut_swd.arm_debug.swj_dp.write_read_dp("CTRL/STAT", 0x50000000, edata: 0xf0000000);
17
- $dut_swd.arm_debug.swj_dp.read_ap(0x010000FC);
18
- $dut_swd.arm_debug.swj_dp.write_read_ap(0x01000004, 0x10101010);
14
+ $dut.arm_debug.mem_ap.R(0x10000004, 0x00000000)
15
+ $dut.arm_debug.mem_ap.W(0x10000004, 0x55555555)
16
+ $dut.arm_debug.mem_ap.WR(0x10000004, 0x55555555)
19
17
 
20
18
  end
@@ -0,0 +1,10 @@
1
+ Pattern.create do
2
+
3
+ $dut_jtag.arm_debug.swj_dp.read_dp("IDCODE")
4
+ $dut_jtag.arm_debug.swj_dp.read_expect_dp("IDCODE", 0xba5eba11)
5
+ $dut_jtag.arm_debug.swj_dp.write_read_dp("CTRL/STAT", 0x50000000, edata: 0xf0000000)
6
+ $dut_jtag.arm_debug.swj_dp.read_ap(0x010000FC)
7
+ $dut_jtag.arm_debug.swj_dp.write_read_ap(0x01000004, 0x10101010)
8
+ #$dut_jtag.arm_debug.swj_dp.read_expect_ap(0x01000004, 0x10101010)
9
+
10
+ end
@@ -0,0 +1,10 @@
1
+ Pattern.create do
2
+
3
+ $dut_swd.arm_debug.swj_dp.read_dp("IDCODE")
4
+ $dut_swd.arm_debug.swj_dp.read_expect_dp("IDCODE", 0xba5eba11)
5
+ $dut_swd.arm_debug.swj_dp.write_read_dp("CTRL/STAT", 0x50000000, edata: 0xf0000000)
6
+ $dut_swd.arm_debug.swj_dp.read_ap(0x010000FC)
7
+ $dut_swd.arm_debug.swj_dp.write_read_ap(0x01000004, 0x10101010)
8
+ #$dut_swd.arm_debug.swj_dp.read_expect_ap(0x01000004, 0x10101010)
9
+
10
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_arm_debug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronnie Lajaunie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-25 00:00:00.000000000 Z
11
+ date: 2015-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -87,6 +87,8 @@ files:
87
87
  - lib/origen_arm_debug/mem_ap.rb
88
88
  - lib/origen_arm_debug/swj_dp.rb
89
89
  - pattern/read_write_reg.rb
90
+ - pattern/read_write_reg_jtag.rb
91
+ - pattern/read_write_reg_swd.rb
90
92
  - templates/web/index.md.erb
91
93
  - templates/web/layouts/_basic.html.erb
92
94
  - templates/web/partials/_navbar.html.erb