- May 23, 2014
-
-
Laura Abbott authored
The arm32 version of stack unwinding was missing a function. Add it back. Change-Id: I46f769938601867fd7d331e01b200071630696af
-
- May 05, 2014
-
-
Laura Abbott authored
arm64 needs different parameters to read ramdumps. Update the script. Change-Id: I33a79d5f98a0fdc271fa769ccd40aad495c677af
-
- Apr 21, 2014
-
-
Laura Abbott authored
Reading 64 bits of data is needed at times. Add a dedicated function Change-Id: Ibef3777a574fb4ea87af51ab8230af7d4402c4f9
-
Mitchel Humpherys authored
The IOMMU parser currently only supports short-descriptor format page tables but hardware supports long-descriptor format page tables. Add support for the long-descriptor format. Most of the existing LPAE MMU code can be re-used for this, although it must be refactored a bit. Change-Id: I464d7edeb8818c0be9de1e1a8224bc9b478eac37
-
- Apr 16, 2014
-
-
Mitchel Humpherys authored
It's useful to be able to dump regions of memory a la `xxd'. Add some machinery to parser_util and RamDump to do this. Example: $ ramparse.py -a . -o parsed --shell >>> dump.hexdump(0, 100, virtual=False) 00000000: fffe ffde 0200 0000 ffff b7bf adf5 a5ff ................ 00000010: e7bf edfe c6fe edf6 fefa fffe befa fefe ................ 00000020: bfbe ffef aebd a5ef ffff 7f7e fefe 5afb ...........~..Z. 00000030: 1b00 2000 3300 4300 1c00 2100 3400 4800 .. .3.C...!.4.H. 00000040: ffff ff7f fafe ffdb effd a5af adf5 a5bf ................ 00000050: 4444 4444 4444 4444 4444 4444 4444 4444 DDDDDDDDDDDDDDDD 00000060: 5fff ffff _... >>> dump.hexdump(0xc0000000, 100, virtual=True) c0000000: fffe ffde 0200 0000 ffff b7bf adf5 a5ff ................ c0000010: e7bf edfe c6fe edf6 fefa fffe befa fefe ................ c0000020: bfbe ffef aebd a5ef ffff 7f7e fefe 5afb ...........~..Z. c0000030: 1b00 2000 3300 4300 1c00 2100 3400 4800 .. .3.C...!.4.H. c0000040: ffff ff7f fafe ffdb effd a5af adf5 a5bf ................ c0000050: 4444 4444 4444 4444 4444 4444 4444 4444 DDDDDDDDDDDDDDDD c0000060: 5fff ffff _... >>> dump.hexdump(dump.addr_lookup('linux_banner'), 144, virtual=True) c0b0006a: 4c69 6e75 7820 7665 7273 696f 6e20 332e Linux version 3. c0b0007a: 3130 2e32 382d 6765 3232 3362 6632 3830 10.28-ge223bf280 c0b0008a: 662d 6469 7274 7920 286d 6974 6368 656c f-dirty (mitchel c0b0009a: 6840 6d69 7463 6865 6c68 2d6c 696e 7578 h@mitchelh-linux c0b000aa: 2920 2867 6363 2076 6572 7369 6f6e 2034 ) (gcc version 4 c0b000ba: 2e37 2028 4743 4329 2029 2023 3720 534d .7 (GCC) ) #7 SM c0b000ca: 5020 5052 4545 4d50 5420 5475 6520 4170 P PREEMPT Tue Ap c0b000da: 7220 3820 3134 3a32 303a 3132 2050 4454 r 8 14:20:12 PDT c0b000ea: 2032 3031 340a 007c 2f2d 5c00 0000 0000 2014..|/-\..... Change-Id: Iecaf80f72845f052085a60eadedd2bb24743224c
-
Mitchel Humpherys authored
The LPAE MMU code can be re-used for other modules that need page table parsing (like the LPAE IOMMU page tables). Refactor the code a bit so that it can be easily re-used later. Change-Id: I0deb80a69f2fca83c3ddcc78867fa2e5f5d18bb2
-
Mitchel Humpherys authored
Some common operations include getting the parent structure of some embedded field as well as getting "sibling" fields within the parent structure. Add some convenience methods to the gdbmi module (as well as wrappers in the RamDump class) for this. Change-Id: Ic65d7e60b930af8c73384a30b6b0dd84fb55f09c
-
Laura Abbott authored
The stack values may be bogus for a variety of reasons. Bounds check these values and error out. Change-Id: I646d7f6e8d2f0e03f0b36bc30d7b1bbaa604fc98
-
- Apr 07, 2014
-
-
Mitchel Humpherys authored
Add support to RamDump.virt_to_phys for automatically looking up addresses of symbols when a string is passed in. This will simplify code that uses the RamDump.read_* routines. Old way: mydata_addr = ramdump.addr_lookup('data_var') mydata2_addr = ramdump.addr_lookup('data2_var') mydata = ramdump.read_word(mydata_addr) mydata2 = ramdump.read_word(mydata2_addr) New way: mydata = ramdump.read_word('data_var') mydata2 = ramdump.read_word('data2_var') Of course, the "Old way" will still work. Change-Id: I0c006f5135b48f8385d2107d9b9d2fe767a266b0
-
- Mar 13, 2014
-
-
Laura Abbott authored
Commit 3d6a90bd (linux-ramdump-parser-v2: Don't use ram start address in socinfo) corrected the case for --auto-dump detection but broke the case of specifying ram files manually with addresses. When specifying the addresses manually, the addresses given are correct so the ram start does need to be added. Correct the code to add the offset by default but not add when doing autodetection. Change-Id: I50d54a932210afeace49a898dd819dc46c3e3aa1
-
Laura Abbott authored
Ram dumps are now being generated for 64-bit ramdumps. Update the parser to account for this. Change-Id: I54a354f39701ad96dd7b81010ec6c5989dd471ad
-
- Mar 12, 2014
-
-
Laura Abbott authored
Rather than assume a text offset, use one that is already found as a symbol. Change-Id: I1ad608085984bb0b658d371858cf01e0732811a3
-
Laura Abbott authored
The socinfo code depends on fixed size types which may be different from the word size. Update the parsing accordingly. Change-Id: I7c4a23f92e13349c9ebd67aa69438d1a55aba721
-
Laura Abbott authored
The PAGE_OFFSET (traditionally 0xc0000000) may change depending on architecture version. Switch it to be a property of the ramdump. Change-Id: Ide04649f59005f39e84d0caa5edab0f46e691b3f
-
Laura Abbott authored
unwind tables may not be used on all dumps. Support unwinding the old fashioned way with framepointers. Change-Id: I978c604dc0974eb6930249e47a205e3d9d37c249
-
Laura Abbott authored
Several of the fields of the task are not being read out as 'true size'. Use more appropriate functions. At the same time, factor out the reading of pc/fc/sp into a ramdump specific functionality since that code may be architectur specific. Change-Id: I5d7bd14031a4431aa665207e8e31e3ecb7dd1cdb
-
Laura Abbott authored
When tracing with read_physical, the result of what was read is printed. The result may contain unprintable characters which wreak havok on terminals. re-use the cleanupString function which is already in use in several places to make the output readable. Change-Id: I1a62c88f1d51038ba2c429d8ec918c58d39af4bf
-
Laura Abbott authored
The return size of read_word may change depending on the architecture. Add functions to read specific types and sizes. Change-Id: I3b9b11c263bf684a8e3783a10dcdc770a6a1b25e
-
- Mar 10, 2014
-
-
Laura Abbott authored
When reading soc info, the ram information has not yet been fully plumbed into the parser (this is very early!). We should not take the address for the start of ram into account at this point as smem should only be given as an offset. Update the calculations. Change-Id: Ib02db2f118685b306457e2591e4bbc5f19f2edbc
-
Laura Abbott authored
When adding a new board, it can be non-obvious what went wrong if the board is not immediately detected. Add an option to trace through socinfo addresses for a specific board to print out useful addresses as a debugging aid. Also clean up some error handling, mostly among the tracing code. Change-Id: I65f4a38b95912b81676f44cd371751abc96aae9e
-
- Feb 27, 2014
-
-
Laura Abbott authored
A recent build has generated multiple badly corrupted dumps. Fix all the errors found by the unintentional fuzzing. Change-Id: I0854bee4558d31037f51ed2ea941eb58997607c8
-
- Feb 13, 2014
-
-
Laura Abbott authored
The specification of boards of the parser is not very clean. Re-write it into an easier to read fashion. Change-Id: Icae5b8421cf574ee910e4702fcf14d29378ed703
-
- Jan 03, 2014
-
-
Laura Abbott authored
After a crash, ramdumps may be collected for analysis. The ram parser is a tool to aid in analysis of these dumps. The script extracts useful information from the dumps to help with debugging. Please see the README for full details. Change-Id: I7795686a96bbfe246edf47d09e3f616131688429
-