summaryrefslogtreecommitdiffstats
path: root/libpdbg/operations.h
Commit message (Collapse)AuthorAgeFilesLines
* Add Blackbird supportRaptor Engineering Development Team2019-04-191-1/+1
|
* Add Talos supportRaptor Engineering Development Team2019-04-191-1/+1
|
* libpdbg: use MTMSRD opcode rather than MTMSRNicholas Piggin2019-03-271-1/+1
| | | | XXX: have to ensure this still does the right thing on P9
* Revert incorrect version of "libpdbg: use MTMSRD opcode rather than MTMSR"Alistair Popple2019-03-271-1/+1
| | | | | | This reverts commit f795d2904010c0b2e2ad8d8163dffc906ce8cef7. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg: use MTMSRD opcode rather than MTMSRNicholas Piggin2019-03-081-1/+1
| | | | XXX: have to ensure this still does the right thing on P9
* libpdbg: Fix CHECK_ERR macro to evaluate once in error caseNicholas Piggin2019-03-081-2/+3
| | | | Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
* pdbg/gdbserver: Add in basic skeleton for a gdbserver on p8Rashmica Gupta2018-11-021-3/+0
| | | | | | | | I have changed a few bits here and there but this patch is largely authored by Alistair Popple. Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com> Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg/adu: always release the adu lock before returning from an errorRashmica Gupta2018-10-151-1/+1
| | | | | Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com> Reviewed-by: Alistair Popple <alistair@popple.id.au>
* libpdbg: Add in mtocrf and putcr functionRashmica Gupta2018-09-121-0/+1
| | | | | Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
* libpdbg: Add in getxer and putxer functionsRashmica Gupta2018-09-121-1/+2
| | | | | Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
* libpdbg: Remove unused error codeRashmica Gupta2018-09-121-3/+0
| | | | | Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
* operations.h: remove adu_putmem and adu_getmem from this headerJoel Stanley2018-05-241-4/+0
| | | | | | We have them in libpdbg.h already. Signed-off-by: Joel Stanley <joel@jms.id.au>
* libpdbg: Replace PR_PERL with PR_INFOAmitay Isaacs2018-05-181-1/+2
| | | | | | ... and avoid duplicate definitions Signed-off-by: Amitay Isaacs <amitay@ozlabs.org>
* pdbg: add 'regs' commandNicholas Piggin2018-05-181-0/+5
| | | | | | | | | | | This uses ramming to pull out most registers. There are more SPRs to left to add. Ramming remains set over all register extraction, by keeping ram_is_setup target attribut. This helps to speed things up and minimise disturbance to the host. Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
* libpdbg/p9chip.c: ram allow ram to be used on running threadsNicholas Piggin2018-05-181-1/+9
| | | | | | Like the sreset change, this allows rammers to use !expert mode. Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
* libpdg: Add option to write to / read from cache inhibited memoryRashmica Gupta2018-05-171-2/+2
| | | | | | | Using P9_TTYPE_CI_PARTIAL_WRITE instead of P9_TTYPE_CI_PARTIAL_OOO_WRITE because that is what cronus does. Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com>
* libpdbg/p8chip: Return thread SMT stateCyril Bur2018-04-241-0/+8
| | | | | | | | | | | | | | | | | Thread status can return the current hardware smt state of a thread pretty easily, the information is in POW_STATUS_REG which we already read. It should be noted that the value read by the scom has nothing to do with the ppc64_cpu --smt value. The value returned by the hardware is really how the hardware is operating, it will happy be in SMT1 and having a thread using the entire core. The other threads to not need to be asleep for SMT1 to be reported, something like the Linux idle loop (but without sleep states) will do it. This means that an SMT1 thread with three others active threads spinning could at any time jump report SMT4 depending on the load of the system. Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
* Refactor for an exportable APIAlistair Popple2017-12-081-24/+0
| | | | | | | | | | The existing API between libpdbg and pdbg was poorly defined. Other programs are beginning to utilise libpdbg so a more strictly defined API would be beneficial. This patch introduces a new header (libpdbg.h) which includes the definition of a public API for libpdbg and updates pdbg to only depend on this. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Rename struct target to struct pdbg_targetAlistair Popple2017-12-061-12/+12
| | | | | | | In preparation for a better defined libpdbg API rename "struct target" to something less generic so that we can export the name. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Hardware Trace Macro (HTM)Cyril Bur2017-09-221-0/+6
| | | | | | | | | | | | This is not Hardware Transactional Memory, rather it is the Hardware Trace Macro (HTM) which can be used to gather data about hardware activity. Currently only Nest HTM is implemented. Only runs on a PPC host on a kernel built with CONFIG_PPC_MEMTRACE and CONFIG_PPC_SCOM. Signed-off-by: Cyril Bur <cyrilbur@gmail.com> Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg: Add sreset commandAlistair Popple2017-07-311-0/+1
| | | | Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg: Add support for P9 thread operationsAlistair Popple2017-06-281-3/+13
| | | | | | | This patch adds support for starting and stopping threads on POWER9 as well as instruction ramming which is required to read/write GPRs, etc. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Clean-up target configuration in preparation for adding P9 supportAlistair Popple2017-03-301-34/+15
| | | | | | | | | | The previous implementation of targeting was hardcoded, cumbersome and difficult to reconfigure for different chip types. This moves to a method of configuring targets using device-tree which is much easier to maintain and allows methods to be added to support operations like getmem on POWER9. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libdbg: Introduce kernel FSI driver backendJoel Stanley2017-02-181-0/+2
| | | | | | | | | | | | Creatively named 'kernel', this uses the SoftFSI aka OpenFSI aka fsi kernel driver. This backend triggers a probe of all attached FSI devices by the kernel. This assumes a single slave appears in sysfs, and uses the 'raw' device to perform reads and writes directly to the CFAM address space and SCOM space. Signed-off-by: Joel Stanley <joel@jms.id.au>
* libpdbg/bmcfsi.c: Add Zaius gpio pinoutXo Wang2016-12-131-1/+1
| | | | Signed-off-by: Xo Wang <xow@google.com>
* libpdbg/bmcfsi.c: Add Romulus gpio pinoutAlistair Popple2016-12-131-1/+1
| | | | Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Add detection of chip typesAlistair Popple2016-12-021-0/+1
| | | | | | | Support detecting different chip types so we enable chip type dependent behaviour. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg/bmcfsi.c: Support multiple GPIO backend mappingsAlistair Popple2016-12-021-1/+2
| | | | | | | Different boards have different FSI GPIO mappings. This adds support for selecting a board variant by passing -d to the bmcfsi backend. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Fix thread status checks during instruction rammingAlistair Popple2016-11-301-0/+1
| | | | | | | | | | | | Instructions can only be rammed into a thread is all threads on a chiplet are quiesced or sleeping. This was not properly enforced which leads to system checkstops when ramming threads if the chip isn't fully quiesced. This adds a check to ensure all threads are quiesced. It also changes the startchip/stopchip behaviour to stop all threads on the given chiplet regards of which threads are selected. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg/adu.c: Implement a basic putmemAlistair Popple2016-11-281-0/+1
| | | | Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg/chip.c: Add command to read virtual addressesAlistair Popple2016-11-221-0/+1
| | | | | | | | | Adds a command to read a 64-bit word from a given virtual address. The address is read in the current thread context and may cause an exception. In the case of exception it will be raised on the host when thread execution is resumed. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Add support for i2c access to secondary processorsAlistair Popple2016-10-251-25/+34
| | | | | | | | This includes better support for selecting targets, probing thread status and a number of other minor bugfixes. Also adds an option to print version numbers. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* libpdbg/adu.c: Remove ADU block sizeAlistair Popple2016-09-121-1/+1
| | | | | | | | The ADU always seems to return data in 8-byte chunks so rework the code to only read 8-byte data chunks and reformat into correct size in the output array. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Add support for secondary processorsAlistair Popple2016-01-131-5/+7
| | | | | | | Adds the -p option to select secondary processors and the 'probe' command to detect which processors and threads are present. Signed-off-by: Alistair Popple <alistair@popple.id.au>
* Initial release of pdbgAlistair Popple2016-01-111-0/+70
pdbg is a tool to access P8 host registers and memory from the BMC for kernel and firmware debugging purposes. Signed-off-by: Alistair Popple <alistair@popple.id.au>
OpenPOWER on IntegriCloud