origen_arm_debug 1.1.3 → 1.1.4

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
  SHA256:
3
- metadata.gz: e80b1afc8a982d2a7ec2041ad61d4f4eedb011abc09a4931d669747c7dc3230c
4
- data.tar.gz: 9e4712df2359e3c55674282f9c0ac0169d47e9e7138a59e4a66773d1b087b223
3
+ metadata.gz: 8129ae2a9371cfed96eeddab0b431b7fabea04648fe690a8e5b71232fa34cb89
4
+ data.tar.gz: d605f5cf618b53f2eff53ed0af3eab442d6bfe0a4292abd37895e51ddd1436bc
5
5
  SHA512:
6
- metadata.gz: e3b956766978d89be7ebdeba678195ae916542f1c3b861bc35ec224966f02aea2b3fc4ec3bff87d0809f288a355b745a1334a957c710040a595265e11d4574e6
7
- data.tar.gz: 1607a271f01f25ab358205b51bfd9d0837c413041f2c2b57a5f43f8282ccba417d90eb24d32b02b4863343dc41707b155549ea6c54c9d7d370fdde04f67aaaef
6
+ metadata.gz: 4cfc2498bad1094ec2e3fc39bceb5f8c0d72fb8f984f98f5934d6fcd4d78db4facaac0e1784f252e5cd301d0faaf9a1b1bfbedab41ba1d1cbc66a0cada20c94c
7
+ data.tar.gz: 2642fa31000ef162330132b2acd1ba1ffd2ac75639b96201b31c9800204c7712376bbcfed4ab11039e2577248d040201c68d419b12c032658e34bfe78fe1c41c
data/config/boot.rb CHANGED
@@ -3,3 +3,4 @@ require "origen_arm_debug"
3
3
  require "origen_arm_debug_dev/dut"
4
4
  require "origen_arm_debug_dev/dut_jtag"
5
5
  require "origen_arm_debug_dev/dut_swd"
6
+ require "origen_arm_debug_dev/dut_dual_dp"
data/config/commands.rb CHANGED
@@ -17,11 +17,11 @@ aliases ={
17
17
  # Now branch to the specific task code
18
18
  case @command
19
19
 
20
- # when "specs"
21
- # require "rspec"
22
- # exit RSpec::Core::Runner.run(['spec'])
20
+ when "specs"
21
+ require "rspec"
22
+ exit RSpec::Core::Runner.run(['spec'])
23
23
 
24
- when "examples" # , "test"
24
+ when "examples", "test"
25
25
  Origen.load_application
26
26
  status = 0
27
27
 
@@ -30,6 +30,8 @@ when "examples" # , "test"
30
30
  load "#{Origen.top}/lib/origen/commands/generate.rb"
31
31
  ARGV = %w(workout -t swd -e j750 -r approved)
32
32
  load "#{Origen.top}/lib/origen/commands/generate.rb"
33
+ ARGV = %w(workout -t dual_dp -e j750 -r approved)
34
+ load "#{Origen.top}/lib/origen/commands/generate.rb"
33
35
  ARGV = %w(workout -t config_test -e j750 -r approved/config_test)
34
36
  load "#{Origen.top}/lib/origen/commands/generate.rb"
35
37
 
@@ -44,12 +46,12 @@ when "examples" # , "test"
44
46
  status = 1
45
47
  end
46
48
  puts
47
- # if @command == "test"
48
- # Origen.app.unload_target!
49
- # require "rspec"
50
- # result = RSpec::Core::Runner.run(['spec'])
51
- # status = status == 1 ? 1 : result
52
- # end
49
+ if @command == "test"
50
+ Origen.app.unload_target!
51
+ require "rspec"
52
+ result = RSpec::Core::Runner.run(['spec'])
53
+ status = status == 1 ? 1 : result
54
+ end
53
55
  exit status
54
56
 
55
57
  # Always leave an else clause to allow control to fall back through to the
data/config/version.rb CHANGED
@@ -1,8 +1,7 @@
1
1
  module OrigenARMDebug
2
2
  MAJOR = 1
3
3
  MINOR = 1
4
- BUGFIX = 3
4
+ BUGFIX = 4
5
5
  DEV = nil
6
-
7
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
8
7
  end
@@ -3,12 +3,41 @@ module OrigenARMDebug
3
3
  include Origen::Controller
4
4
  include Helpers
5
5
 
6
+ attr_accessor :dp
7
+
6
8
  # Returns the currently enabled DP (or the only DP if only one
7
9
  # of them).
8
10
  # If no dp is enabled before calling this, it will choose the
9
11
  # SW_DP by default.
10
12
  def dp
11
- dps.first
13
+ @dp ||= dps.first
14
+ end
15
+
16
+ def set_dp(dp)
17
+ if dps.size > 1
18
+ if dp == :swd || dp == :sw
19
+ @dp = dps.first
20
+ elsif dp == :jtag
21
+ @dp = dps.last
22
+ else
23
+ Origen.log.error 'origen_arm_debug: Only SWD and JTAG DP available'
24
+ end
25
+ else
26
+ Origen.log.warn 'origen_arm_debug: Ignoring set_dp call since only one DP is available'
27
+ end
28
+ end
29
+
30
+ def reset_dp
31
+ @dp = nil
32
+ end
33
+
34
+ def is_jtag?
35
+ dp.is_jtag?
36
+ end
37
+
38
+ def is_swd?
39
+ dp.is_swd?
12
40
  end
41
+ alias_method :is_sw?, :is_swd?
13
42
  end
14
43
  end
@@ -65,5 +65,14 @@ module OrigenARMDebug
65
65
  def abort
66
66
  reg(:abort)
67
67
  end
68
+
69
+ def is_jtag?
70
+ true
71
+ end
72
+
73
+ def is_swd?
74
+ false
75
+ end
76
+ alias_method :is_sw?, :is_swd?
68
77
  end
69
78
  end
@@ -60,5 +60,14 @@ module OrigenARMDebug
60
60
  def abort
61
61
  reg(:abort)
62
62
  end
63
+
64
+ def is_jtag?
65
+ false
66
+ end
67
+
68
+ def is_swd?
69
+ true
70
+ end
71
+ alias_method :is_sw?, :is_swd?
63
72
  end
64
73
  end
@@ -0,0 +1,34 @@
1
+ module OrigenARMDebugDev
2
+ # Simple JTAG-specific dut model that inherits from protocol-agnostic DUT model
3
+ class DUAL_DP_DUT < DUT
4
+ include OrigenSWD
5
+ include OrigenJTAG
6
+
7
+ # Adds jtag-required pins to the simple dut model
8
+ # Returns nothing.
9
+ def initialize(options = {})
10
+ super
11
+ add_pin :tclk
12
+ add_pin :tdi
13
+ add_pin :tdo
14
+ add_pin :tms
15
+ add_pin :trst
16
+ add_pin :swd_clk
17
+ add_pin :swd_dio
18
+
19
+ options[:class_name] = 'OrigenARMDebug::DAP'
20
+ options[:mem_aps] = {
21
+ mem_ap: {
22
+ base_address: 0x00000000,
23
+ latency: 16,
24
+ apreg_access_wait: 8,
25
+ apmem_access_wait: 8,
26
+ csw_reset: 0x23000040
27
+ },
28
+ mdm_ap: 0x01000000
29
+ }
30
+ # Specify (customize) ARM Debug implementation details
31
+ sub_block :arm_debug, options
32
+ end
33
+ end
34
+ end
data/pattern/workout.rb CHANGED
@@ -1,4 +1,10 @@
1
- Pattern.create name: "workout_#{dut.arm_debug.dp.name}" do
1
+ if Origen.app.target.name == 'dual_dp'
2
+ pattern_name = 'workout_dual_dp'
3
+ else
4
+ pattern_name = "workout_#{dut.arm_debug.dp.name}"
5
+ end
6
+
7
+ Pattern.create name: pattern_name do
2
8
 
3
9
  ss "Tests of direct DP API"
4
10
  dp = dut.arm_debug.dp
@@ -58,4 +64,52 @@ Pattern.create name: "workout_#{dut.arm_debug.dp.name}" do
58
64
  dut.reg(:test).data = 0x0000FF01
59
65
  dut.reg(:test)[0].read!
60
66
 
67
+ if Origen.app.target.name == 'dual_dp'
68
+ ss "SWITCHING DP"
69
+ dut.arm_debug.set_dp(:jtag)
70
+
71
+ ss "Test write register, should write value 0xFF01"
72
+ dut.reg(:test).write!(0x0000FF01)
73
+
74
+ ss "Test write register with overlay, no subroutine"
75
+ dut.reg(:test).overlay('write_overlay')
76
+ dut.reg(:test).write!(0x0000FF01, no_subr: true)
77
+ dut.reg(:test).overlay(nil)
78
+
79
+ ss "Test write register with overlay, use subroutine if available"
80
+ dut.reg(:test).overlay('write_overlay_subr')
81
+ dut.reg(:test).write!(0x0000FF01)
82
+ dut.reg(:test).overlay(nil)
83
+
84
+ ss "Test read register, should read value 0x0000FF01"
85
+ dut.reg(:test).read!
86
+
87
+ ss "Test read register, with overlay, no subroutine, should read value 0x0000FF01"
88
+ dut.reg(:test).overlay('read_overlay')
89
+ dut.reg(:test).read!(no_subr: true)
90
+ dut.reg(:test).overlay(nil)
91
+
92
+ ss "Test read register, with overlay, use subroutine if available"
93
+ dut.reg(:test).overlay('read_overlay_subr')
94
+ dut.reg(:test).read!
95
+ dut.reg(:test).overlay(nil)
96
+
97
+ ss "Test read register with mask, should read value 0xXXXxxx1"
98
+ dut.reg(:test).read!(mask: 0x0000_000F)
99
+
100
+ ss "Test read register with store"
101
+ dut.reg(:test).store!
102
+
103
+ ss "Test bit level read, should read value 0xXXXxxx1"
104
+ dut.reg(:test).reset
105
+ dut.reg(:test).data = 0x0000FF01
106
+ dut.reg(:test)[0].read!
107
+
108
+ ss "RESETTING DP (to default)"
109
+ dut.arm_debug.reset_dp
110
+ ss "Test bit level read, should read value 0xXXXxxx1"
111
+ dut.reg(:test).reset
112
+ dut.reg(:test).data = 0x0000FF01
113
+ dut.reg(:test)[0].read!
114
+ end
61
115
  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: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronnie Lajaunie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-21 00:00:00.000000000 Z
11
+ date: 2020-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -97,6 +97,7 @@ files:
97
97
  - lib/origen_arm_debug/sw_dp.rb
98
98
  - lib/origen_arm_debug/sw_dp_controller.rb
99
99
  - lib/origen_arm_debug_dev/dut.rb
100
+ - lib/origen_arm_debug_dev/dut_dual_dp.rb
100
101
  - lib/origen_arm_debug_dev/dut_jtag.rb
101
102
  - lib/origen_arm_debug_dev/dut_swd.rb
102
103
  - pattern/workout.rb