Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
tools
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CodeLinaro
public-release-test-restored
platform
vendor
qcom-opensource
tools
Commits
47010095
Commit
47010095
authored
9 years ago
by
Linux Build Service Account
Committed by
Gerrit - the friendly Code Review server
9 years ago
Browse files
Options
Downloads
Plain Diff
Merge "linux-ramdump-parser-v2: Add support to parse DBGUI register dump"
parents
a4064ad7
10f1d1c3
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
linux-ramdump-parser-v2/debug_image_v2.py
+3
-0
3 additions, 0 deletions
linux-ramdump-parser-v2/debug_image_v2.py
linux-ramdump-parser-v2/qdss.py
+42
-1
42 additions, 1 deletion
linux-ramdump-parser-v2/qdss.py
with
45 additions
and
1 deletion
linux-ramdump-parser-v2/debug_image_v2.py
+
3
−
0
View file @
47010095
...
...
@@ -37,6 +37,7 @@ class client(object):
MSM_DUMP_DATA_L2_CACHE
=
0xC0
MSM_DUMP_DATA_L3_CACHE
=
0xD0
MSM_DUMP_DATA_OCMEM
=
0xE0
MSM_DUMP_DATA_DBGUI_REG
=
0xE5
MSM_DUMP_DATA_TMC_ETF
=
0xF0
MSM_DUMP_DATA_TMC_REG
=
0x100
MSM_DUMP_DATA_TMC_ETF_REG
=
0x101
...
...
@@ -54,6 +55,7 @@ client_table = {
'
MSM_DUMP_DATA_L2_CACHE
'
:
'
parse_cache_common
'
,
'
MSM_DUMP_DATA_L3_CACHE
'
:
'
parse_l3_cache
'
,
'
MSM_DUMP_DATA_OCMEM
'
:
'
parse_ocmem
'
,
'
MSM_DUMP_DATA_DBGUI_REG
'
:
'
parse_qdss_common
'
,
'
MSM_DUMP_DATA_PMIC
'
:
'
parse_pmic
'
,
'
MSM_DUMP_DATA_TMC_ETF
'
:
'
parse_qdss_common
'
,
'
MSM_DUMP_DATA_TMC_REG
'
:
'
parse_qdss_common
'
,
...
...
@@ -63,6 +65,7 @@ client_table = {
qdss_tag_to_field_name
=
{
'
MSM_DUMP_DATA_TMC_REG
'
:
'
tmc_etr_start
'
,
'
MSM_DUMP_DATA_TMC_ETF
'
:
'
etf_start
'
,
'
MSM_DUMP_DATA_DBGUI_REG
'
:
'
dbgui_start
'
,
}
class
DebugImage_v2
():
...
...
This diff is collapsed.
Click to expand it.
linux-ramdump-parser-v2/qdss.py
+
42
−
1
View file @
47010095
# Copyright (c) 2012, 2014 The Linux Foundation. All rights reserved.
# Copyright (c) 2012, 2014
-2015
The Linux Foundation. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 and
...
...
@@ -193,6 +193,18 @@ etm_registers = {
'
ETMCIDR2
'
:
(
0x3FE
,
'
Component ID2 Register
'
),
}
dbgui_registers
=
{
'
DBGUI_SECURE
'
:
(
0x000
,
'
Secure Register
'
),
'
DBGUI_CTL
'
:
(
0x004
,
'
Clear Register
'
),
'
DBGUI_CTL_MASK
'
:
(
0x008
,
'
CTL Mask Register
'
),
'
DBGUI_SWTRIG
'
:
(
0x00C
,
'
Software Trigger Register
'
),
'
DBGUI_STATUS
'
:
(
0x010
,
'
Status Register Register
'
),
'
DBGUI_HWE_MASK
'
:
(
0x014
,
'
Hardware Event Mask Register
'
),
'
DBGUI_CTR_VAL
'
:
(
0x018
,
'
Timeout Counter Terminal Value Register
'
),
'
DBGUI_CTR_EN
'
:
(
0x01C
,
'
Timeout Counter Enable Register
'
),
'
DBGUI_NUM_REGS_RD
'
:
(
0x020
,
'
Number of Register Read Control Register
'
),
'
DBGUI_ATB_REG
'
:
(
0x024
,
'
ATB Configuration Register
'
),
}
class
QDSSDump
():
...
...
@@ -204,6 +216,7 @@ class QDSSDump():
self
.
etm_regs1
=
None
self
.
etm_regs2
=
None
self
.
etm_regs3
=
None
self
.
dbgui_start
=
None
# Assumptions: Any address given here has been checked for correct magic
def
print_tmc_etf
(
self
,
ram_dump
):
...
...
@@ -415,9 +428,37 @@ class QDSSDump():
tmc_etr
.
close
()
def
print_dbgui_registers
(
self
,
ram_dump
):
if
self
.
dbgui_start
is
None
:
print_out_str
(
"
!!!DBGUI address has not been set! I can
'
t continue!
"
)
return
print_out_str
(
'
Now printing DBGUI registers to file
'
)
dbgui_out
=
ram_dump
.
open_file
(
'
dbgui.txt
'
)
for
a
,
b
in
dbgui_registers
.
iteritems
():
offset
,
name
=
b
dbgui_out
.
write
(
'
{0} ({1}): {2:x}
\n
'
.
format
(
a
,
name
,
ram_dump
.
read_u32
(
self
.
dbgui_start
+
offset
,
False
)))
addr
=
ram_dump
.
read_word
(
ram_dump
.
addr_lookup
(
'
dbgui_drvdata
'
))
addr_offset_offset
=
ram_dump
.
field_offset
(
'
struct dbgui_drvdata
'
,
'
addr_offset
'
)
data_offset_offset
=
ram_dump
.
field_offset
(
'
struct dbgui_drvdata
'
,
'
data_offset
'
)
size_offset
=
ram_dump
.
field_offset
(
'
struct dbgui_drvdata
'
,
'
size
'
)
addr_offset
=
ram_dump
.
read_u32
(
addr
+
addr_offset_offset
,
True
)
data_offset
=
ram_dump
.
read_u32
(
addr
+
data_offset_offset
,
True
)
size
=
ram_dump
.
read_u32
(
addr
+
size_offset
,
True
)
for
i
in
range
(
0
,
size
):
dbgui_out
.
write
(
'
ADDR_{0} ({1:x}) : {2:x}
\n
'
.
format
(
i
,
ram_dump
.
read_u32
(
self
.
dbgui_start
+
addr_offset
+
(
4
*
i
),
False
),
ram_dump
.
read_u32
(
self
.
dbgui_start
+
data_offset
+
(
4
*
i
),
False
)))
dbgui_out
.
close
()
def
dump_all
(
self
,
ram_dump
):
self
.
print_tmc_etf
(
ram_dump
)
self
.
print_tmc_etr
(
ram_dump
)
self
.
print_dbgui_registers
(
ram_dump
)
self
.
print_all_etm_register
(
ram_dump
)
self
.
save_etf_bin
(
ram_dump
)
self
.
save_etr_bin
(
ram_dump
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment