- Apr 13, 2020
-
-
Ankur Bansal authored
Get the phys offset dynamically Change-Id: I9059dc459eab076bf48c5fe37fb4004245d65474
-
- Dec 05, 2019
-
-
Shivendra Pratap authored
Fix 32 bit parsing to use kernel_version Change-Id: I3bea7f86a6f52374064c02ca57f416dbfbe7dcf3 Signed-off-by:
Shivendra Pratap <spratap@codeaurora.org>
-
- Nov 25, 2019
-
-
Shivendra Pratap authored
1. Fix kconfig extraction for kernel > 5.0.0. 2. Fix task call stack extraction for kernel > 5.2.0 Change-Id: Ic0d450ee6197f6fc7010b50884dea4d4855d5c1a Signed-off-by:
Shivendra Pratap <spratap@codeaurora.org>
-
Shivendra Pratap authored
Since kernel v5.0, there is a dedicated region of size 128MB kept aside for BPF programs(BPF_JIT_REGION) which were previously using module region. Also in v5.4, kernel VA space was flipped to accomodate support for kasan shadow and 52bit VA. Hence we are updating the VA space calculations in parser to make it work on newer kernel. Adding few changes on linux banner read and match for cleanup. There was an unmonitored variable ramdump.version being used in debug_image_v2 cauing version check failure. Adding a change to use kernel_version. Fix intend in debug_image_v2. Briefly, the calculations are updated as below: _PAGE_END(va) = (-(UL(1) << ((va) - 1))) = 0xffffffc000000000 KASAN_SHADOW_END = (_PAGE_END(VA_BITS_MIN)) = 0xffffffc000000000 BPF_JIT_REGION_START = (KASAN_SHADOW_END) BPF_JIT_REGION_SIZE = (SZ_128M) BPF_JIT_REGION_END = (BPF_JIT_REGION_START + BPF_JIT_REGION_SIZE) = 0xffffffc000000000 + 0x8000000 MODULES_VADDR = (BPF_JIT_REGION_END) MODULES_END = (MODULES_VADDR + MODULES_VSIZE) = 0xffffffc000000000 + 0x8000000 + 0x8000000 = 0xffffffc010000000 KIMAGE_VADDR = (MODULES_END) = 0xffffffc010000000 Change-Id: I5a65b327e015970d68c41210fc813105fd6cb4b8 Signed-off-by:
Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> Signed-off-by:
Shivendra Pratap <spratap@codeaurora.org>
-
- Nov 19, 2019
-
-
Shivendra Pratap authored
It is not necessary to fail ramparser in case socinfo is not defined in the build. Adding a condition to return None in case socinfo is not defined in build. Change-Id: If6c9544b175d12e2d4eeb536cdab5ee2aafed02f Signed-off-by:
Shivendra Pratap <spratap@codeaurora.org>
-
- Sep 07, 2019
-
-
Patrick Daly authored
Autodump feature broke after addition of DDRCS0_2.BIN file. Use a regex instead to (hopefully) reduce the need for future updates. Change-Id: I04917c4e2c0a77903ab4ebd5e96050603d9aa3c3
-
- Sep 05, 2019
-
-
Patrick Daly authored
Board definitions will be kept in a separate git repository. They will continue to use the same format as before. Change-Id: I00380de950a91914e3fa1873c08e16584f1f3370
-
- Aug 22, 2019
-
-
Divyanand Rangu authored
Added check to make sure num_symtab is not noe to avoid TypeError: range() where num_symtab is expected to be integer but sometimes it returned to be None Change-Id: I8e7acb450e9928a1ff56bef7cba49541a0e2bb5b
-
- Aug 21, 2019
-
-
wadesong authored
With some newer versions of Trace32, cmd PER.S.F cannot be used to setup the MMU related registers. Use PER.S.simple instead when enabling MMU support on 32-bit ARM platforms. Change-Id: I692ce4a2edaf1ff575e1df247ae51ab332d74166
-
- Aug 19, 2019
-
-
wadesong authored
When parsing kernel module symbols retrieved from kallsyms nodes, lrdp-v2 will unconditionally add address 0x0 when seeing it, which causes task stack unwinding showing a particular module's name for address 0x0. Add symbol address checking when parsing info retrieved from module specific kallsyms nodes, to avoid adding address 0x0 as undefined symbol for a particular module. Change-Id: I36cc8e6a3ffa3b76bf24fd881f26845983059472
-
- Aug 01, 2019
-
-
Patrick Daly authored
Lookups should be done using a dictionary, instead of doing a string search through the --print-kconfig parser output. Found via: python -m cProfile ramparse.py --autodump <path> --print-pagetracking Change-Id: Ia8d4e7921151f61f0c492749720ea4ed777e028a Signed-off-by:
Patrick Daly <pdaly@codeaurora.org>
-
- Jul 22, 2019
-
-
wadesong authored
Add code to retrieve module specific symbol info from per-module kallsyms nodes when CONFIG_KALLSYMS is defined. Symbols retrieved from kallsyms nodes will be more accurate because relocation has already been done when the per-module kallsyms nodes are formed. Add the following options to control how the symbol info will be recorded in lrdp-v2 output files: --dump_mod_sym_tbl: dump per-module symbol info retrieved from module specific symbol files. --dump_krnl_sym_tbl: dump Linux kernel symbol info retrieved from the kernel symbol file. --dump_mod_kallsyms: dump per-module symbol info retrieved from per-module kallsyms node. --dump_glb_sym_tbl: dump everything in the global symbol lookup table. Change-Id: Ic137eaf64a5e1f7203946d323efcd7527e3f1968
-
- May 17, 2019
-
-
Ankur Bansal authored
pagetracking is broken because page_owner->order size is changed to unsigned short. Add check for unsigned short(size = 2) in read_structure_filed if size is 2 then use the read_u16. Change-Id: I63a790709718eda89c669b081eb59468b99cd90c
-
- Feb 20, 2019
-
-
Rishabh Bhatnagar authored
Enforce the physical offset to be picked from boards config file. Autodump feauture takes physical offset from ddr info files which assumes kernel is loaded at ram start address. This is no longer a valid assumption. Change-Id: I0d55ce2f93198a802723017e2a9f64d0877f461c Signed-off-by:
Rishabh Bhatnagar <rishabhb@codeaurora.org>
-
- Nov 29, 2018
-
-
Patrick Daly authored
Remove symbols which are not between _head and _end from the symbol lookup table. Change-Id: I785d6bac029162dd012717e61f927fd64df87514
-
- Oct 29, 2018
-
-
Kumar Harsh authored
These changes add a new option --kernel-exception-level which can be passed from command line to specify the current exception level of kernel. This is to handle a case where backtrace should get generated if kernel is executing at EL2 instead of EL1. Change-Id: If0d61119a6cc27e263d73ce9921a63cab4bdee45 Signed-off-by:
Kumar Harsh <harkumar@codeaurora.org>
-
- Sep 28, 2018
-
-
Soumen Ghosh authored
In case of 32bit ramdump kimage_voffset will not be used in ramparser. In upstream kernel 4.14 this variable got added and set to some address. Due to that in case of 32 bit all calculation went worng. So forcefully setting to null if it is 32 bit dump Change-Id: Ia341074ebfd0811543cc3a2e77d2b23ade43d520
-
- Sep 25, 2018
-
-
Kumar Harsh authored
This patch fixes the need for a hard coded value to specify upper limit on length of the Linux Banner. get_version() inside ramdump.py has been renamed to get_matched_version() to reflect the true nature of the function. Added a variable banner_len in get_matched_version() which is the length of linux_banner returned by gdbmi.get_value_of_string('linux_banner'). This variable is further passed to read_cstring() function to specify the max limit of characters to be read. We are dynamically calculating the length using gdb to read linux banner. Change-Id: I571882a5999c26ccd8accd90b26d0149c839633b Signed-off-by:
Kumar Harsh <harkumar@codeaurora.org>
-
- Sep 07, 2018
-
-
Ankur Bansal authored
Add a utility function for iterating through all valid process and thread of each process. Use it in different parser where we are traversing through the task list Ex : memusages.py, ion_buffer_parse.py Change-Id: Ided26acc67e7c5dc2ba7d4c2db0935f0c9fa24f1 Signed-off-by:
Ankur Bansal <ankban@codeaurora.org>
-
- Aug 10, 2018
-
-
wadesong authored
1) When lrdp-v2 is parsing RAM dumps generated on ARM-32 platforms, the Trace32 startup script will not contain any instructions to enable MMU support, which causes Linux kernel symbol loading failure on some newer Trace32 simulators. Add Trace32 startup instruction to set bit 0 of P15:0x1 if lrdp-v2 detects MMU support within the RAM dump. 2) Use task.symbol.loadmod instead of data.load.elf to load all the kernel moduels' symbols to avoid symbol loading failures. Change-Id: Ibae79e3c80279788d7cccd28080d2cecd5432a4b
-
- Mar 15, 2018
-
-
wadesong authored
Currently LRDP-v2 will only add linux.t32 and linux.men into the t32_startup_script.cmm script when it is parsing RAM dumps generated on ARM 32-bit platforms. Change the code in ramdump.py to add linux3.t32 and its related linux.men into t32_startup_script.cmm when it is determined that the kernel version is greater than 3.0.0. Change-Id: Id0ddc62cc702b0bc586bb9864ceb02177d397e13
-
- Jan 24, 2018
-
-
Patrick Daly authored
Verify that files exist before checking file size. Change-Id: Icb55984bf33a677594726345f4c82c55c2948134
-
- Jan 12, 2018
-
-
Patrick Daly authored
The hypervisor may populate an imem cookie with the location of a standard dump table, instead of using the table allocated by linux. Read the table location from this cookie instead of relying on the linux variable 'memdump'. On error, fall back to the old approach of reading from 'memdump'. Change-Id: Id99bb643fb7f35de79ff7308a999cc2143d7aff0
-
- Dec 07, 2017
-
-
wadesong authored
Currently the loadble module symbol parsing code is only decoding the symbol names without prefixing the module names. This will result in some confusion when two module's symbol names are identical, and things get worse espeicially when parsing RAM dumps where two WLAN drivers are loaded. Prefix module names to module specific symbol names when parsing their symbol files so user can easily tell which module is involved in a call stack. Change-Id: I3cf5e9527be191fb5f21830b1ba9f915d734b5d2
-
- Nov 30, 2017
-
-
wadesong authored
Starting from msm-4.9, a new field named 'core_layout' will be available to replace 'module_core' in struct module. Add code to parse the newly introduced field for loadable module symbol addition based on the Linux kernel version. Change-Id: I503ba6b0d4f5928bb2fea85ab3fdd4a33150b1c0
-
- Nov 11, 2017
-
-
wadesong authored
In thread_saved_field_common_32, read_word should not be used to retrieve the thread_info structure's address because get_thread_info_addr is already doing the same. Change-Id: I422c67b98d318c0084ab32fb0ad9f180da186829
-
- Nov 01, 2017
-
-
Soumen Ghosh authored
In the latest kernel version minidump_table structure got changed. Some emelments are removed. like smem_table, version. In those information anyhow is not being used in ramparser. So removed all those elements Change-Id: Ibce7ab2515737a7871c1f9df70d4eddee64bdc09
-
- Sep 06, 2017
-
-
Sri Krishna Madireddy authored
Add support to parse DCC dumps with autodump option to RDP In autodump we give only ramdumps location without --ram-file bin locations. Change-Id: I87aa2b337415dd93cc5b60c813bf6cd1712f2565
-
- Aug 16, 2017
-
-
Soumen Ghosh authored
Read the linux banner data from vmlinux rodata section. Also read the linux banner data from ramump. Do a matching of both the data. If success then ramparser will go ahead and proces further Change-Id: I1b9245f1a4fcc9cdff0a3bfb7293b2385981feba
-
- Aug 02, 2017
-
-
Soumen Ghosh authored
here fp is value is coming less than page_offset. Due that rest of the call stack is not getting printed Change-Id: Ie878d41f0ecc16d21f9795c699f035a7460904b4
-
- Jul 25, 2017
-
-
wadesong authored
Current Linux Ram Dump Paser scripts are only able to load kernel symbols by default. No loadable modules' symbols will be parsed at startup time, which may result in 'unknown symbols' in some cases, especially when checking SLAB info on dual-wifi platforms. With this change, loadable modules' symbols can be parsed on script startup by the following configurations: 1) Put all symbols under a certain dir, such as: <dump_location>/symbols/wlan.ko <dump_location>/symbols/wlan_sdio.ko 2) Add --sym_path when invoking the scripts, such as: python %RAM_DUMP_PARSER_PATH%\ramparse.py --sym_path <dump_location>/symbols With the above actions, all loadable modules' symbols will be parsed and stored for subsequent information dumping. Symbol loading commands will also be added into the Trace32 startup script. Change-Id: Idda9c9a08cfd24c19bf4021e80fee5187cd031b9
-
- Jul 12, 2017
-
-
Olav Haugan authored
The THREAD_INFO_IN_TASK kernel feature removes the thread_info structure from task stack. Add support for this in the parser to handle when this option is enabled. Change-Id: I23eda300395936618e6d69eccd6c5d610c871ba8
-
Olav Haugan authored
Abstract out whether kaslr is enabled or not to allow ddrcompare to work regardless of whether kaslr is enabled or not. Change-Id: I4b00ed48748ce9a5a63c0905c99200ac9bfe4482
-
- Jun 22, 2017
-
-
Soumen Ghosh authored
As DCC is not going to be enabled on secure device, SDI would dump required registers in standard dcc dumping format. So extend ramparser’s DCC parsing support for <address><value> format. The KMISC section would contain all registers address value pair as mentioned below. Parse the data and generate the “dcc_captured_data.xml” and it should be same as actual dcc dump parsed xml. Change-Id: Ib042ebc6895f0594f5784600174087a979e8709f
-
- Jun 07, 2017
-
-
Sri Krishna Madireddy authored
Add support for generating sram.bin from DCC_SRAM.BIN With this NEW sram will call version 2 of DCC driver for parsing. Change-Id: If8012b1f38ba29daa5bdac2fd15820de51ea9cab
-
- May 26, 2017
-
-
Soumen Ghosh authored
A minidump supports fewer features than a full ramdump, but does not require the user to save all 4GB+ of memory. Instead a small subset of DDR is saved by crashscope as an elf file. Currently dmesg logs, rtb logs, and the cpu context parser are supported. Example usage: python ramparse.py --vmlinux <vmlinux> --minidump --ram-elf <elf_file> --ram-file <OCIMEM.bin> --everything Change-Id: Ib689b4811d66472ac20aa7c63893fdaed915512e
-
- May 08, 2017
-
-
Soumen Ghosh authored
This changes to fetch serila number of HW from dump Change-Id: I93ee37feafd9e407fe380761c0e6469fabe40f7d
-
- Mar 29, 2017
-
-
Patrick Daly authored
When calling read_structure_field with an undefined symbol, the desired behavior is to return None rather than crash. Change-Id: Iaf172a038779cf767b55c47ec37b8e90e194aa0f
-
- Mar 27, 2017
-
-
Patrick Daly authored
Add a function for reading a signed 64 bit value from a ramdump. Change-Id: Ic7e5a8a7cb9d5fd551ffb2c3add2499a25aff540
-
- Mar 22, 2017
-
-
Ritesh Harjani authored
This prints kimage_voffset info if kaslr is enabled. Change-Id: Ia18bba9f2df1c579721aeb44a8dd2b7143183b89
-