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 +4 -4
- data/config/commands.rb +4 -0
- data/config/version.rb +1 -1
- data/lib/origen_arm_debug/driver.rb +23 -2
- data/lib/origen_arm_debug/swj_dp.rb +0 -13
- data/pattern/read_write_reg.rb +3 -5
- data/pattern/read_write_reg_jtag.rb +10 -0
- data/pattern/read_write_reg_swd.rb +10 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd4a3c91ea754230b8e799d2fdbb6fa5ebce4405
|
4
|
+
data.tar.gz: a4b18c224767fe55666e0366fb11700129165be5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
@@ -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
|
-
#
|
34
|
-
#
|
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
|
#-------------------------------------
|
data/pattern/read_write_reg.rb
CHANGED
@@ -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
|
-
$
|
16
|
-
$
|
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.
|
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-
|
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
|