# Debug PDC (RPMh hardware block) Source: [https://docs.qualcomm.com/doc/80-88500-3/topic/debugging_pdc_rpmh_hardware_block.html](https://docs.qualcomm.com/doc/80-88500-3/topic/debugging_pdc_rpmh_hardware_block.html) PDC performs the following. - Run sleep sequences to shut down critical resources for a given subsystem - Run wake sequences to wake up critical resources to get a subsystem RSC operational - Handle wake-up interrupts when a subsystem is in a power collapse assisted by RPMh. ## Debugging scenarios The CMM script checks the following when it parses for each resource (for example, global or subsystem). - General status - Interrupt request (IRQ) configuration The following are the example debug scenarios. - PDC is stuck: 1. Check PDC for DRV 2. Check DRV - Issue with subsystem wake-up: 1. Check PDC IRQ status 2. Check IRQ configuration for expected interrupt ## PDC ulog on subsystem In Non-HLOS, run uLogDump.cmm to parse the PDC log. ULogDump.cmm PDC LogCopy to clipboard Example log: Content-Type: text/pdc-driver-1.0; title=PDC Driver 0x2F92FC02: Initializing target 0x2F93089E: Initializing main driver 0x2F930B86: Interrupt configuration (Number of Interrupts: 15) 0x2F930DA4: GPIO configuration (Number of GPIOs: 96) (Number of MUXs: 20) 0x2F9F7231: TCS Resource lookup: (Name: cx.lvl) (Base address: 0x30000) 0x2F9F77ED: TCS Resource lookup: (Name: mx.lvl) (Base address: 0x30010) 0x2F9F8287: TCS Resource lookup: (Name: xo.lvl) (Base address: 0x30080) 0x2F9F89DA: TCS write (Resource: xo.lvl) (TCS.Cmd: 0.0) (hlvl: 1) 0x2F9F8BC0: TCS write (Resource: cx.lvl) (TCS.Cmd: 0.1) (hlvl: 1) 0x2F9F8DE2: TCS write (Resource: mx.lvl) (TCS.Cmd: 0.2) (hlvl: 1) 0x2F9F9195: TCS write (Resource: xo.lvl) (TCS.Cmd: 1.0) (hlvl: 1) 0x2F9F9381: TCS write (Resource: cx.lvl) (TCS.Cmd: 1.1) (hlvl: 0) 0x2F9F969E: TCS write (Resource: mx.lvl) (TCS.Cmd: 1.2) (hlvl: 1) 0x2F9F9903: TCS write (Resource: mx.lvl) (TCS.Cmd: 2.0) (hlvl: 2) 0x2F9F9C0F: TCS write (Resource: cx.lvl) (TCS.Cmd: 2.1) (hlvl: 2) 0x2F9F9ED1: TCS write (Resource: xo.lvl) (TCS.Cmd: 2.2) (hlvl: 3) 0x2F9FA04A: TCS registers programmed successfully 0x2FB5EF50: Config subsystem int 475 (PDC bit: 0) (trigger: 4) 0x2FD0A43E: Successfully enabled 4 of 5 profiling unitsCopy to clipboard ## Dump script The `pdc_dump.cmm ss= [op=]` script dumps information for each PDC for the following: - Sequencer - Triggered command set (TCS) - IRQ - Parameter Note: The subsystem name can be application processor, modem, audio, sensors, AOP, debug, GPU, display, or compute DSP. The following is the script for the sequencer. Start: 0×0 Busy: 0 PC: 0×0 Instr: 0×E1 Timer: 0×0 Pwr Override: (0×0, 0×0) Wait Override: (0×0, 0×0) Br Override: (0×0, 0×0) Branches: (0×0, 0×0, 0×0, 0×0) Delays: (0×0, 0×0, 0×0, 0×0, 0×0, 0×0, 0×0, 0×0, 0×0, 0×0, 0x0, 0×0, 0×0, 0×0, 0×0, 0×0)Copy to clipboard The following is the script for TCS0. AMC Mode: 0 En Mask: 0x7 Wait Mask: 0 Idle: 0 CMD0 slave: 3, addr: 0x80, data: 0x1 resp req: 0, triggerd: 0, issued: 0, ackd: 0 … CMDc … TCSnCopy to clipboard The following is the script for the software IRQ: Num: (ss_irq, gpio, en, status, cfg, owner) 0: (475, -, 0, 0, high, 0) 1: (476, -, 0, 0, falling, 0FFFFFFFF) 2: (477, -, 0, 0, falling, 0FFFFFFFF) 3: (478, -, 0, 0, falling, 0FFFFFFFF) 4: (479, -, 0, 0, falling, 0FFFFFFFF) 5: (480, -, 0, 0, falling, 0FFFFFFFF) 6: (481, -, 0, 0, falling, 0FFFFFFFF) … IRQnCopy to clipboard The following are the parameters: - Version - Major – 1 - Minor – 0 - Resources - DRV – 2 - TCS – 3 - cmds/tcs – 4 - ProfUnits – 5 - Timestamps – 0 - Sequencer - CMDs – 96 - XPwrCtrls – 1 - XWaitInputs – 1 - AOP IRQs – 2 - IRQ and GPIOs - IRQs – 15 - GPIOs – 96 - GP SELs – 30 **Parent Topic:** [RPMh debugging](https://docs.qualcomm.com/doc/80-88500-3/topic/81_RPMh_hardening_and_debugging_.html) Last Published: Sep 26, 2023 [Previous Topic Debug BCM (RPMh hardware block)](https://docs.qualcomm.com/bundle/publicresource/80-88500-3/topics/debugging_bcm_rpmh_hardware_block.md) [Next Topic Debug VRM (RPMh hardware block)](https://docs.qualcomm.com/bundle/publicresource/80-88500-3/topics/debugging_vrm_rpmh_hardware_block.md)