<html><body><p><font size="2">I think that you might be able to initiate a 'special wakeup' via scom from the BMC. I'm a little surprised that pdbg doesn't have that built in to the stop function already like we do in some similar tooling (but I have no visibility to pdbg's goals). Enabling special wakeup forces a core to exit the idle state and prevents it from going idle. Instructions aren't executed, but pervasively the core is alive. That should allow the scoms to trigger stop/sreset/etc to work.</font><br><br><font size="2">For P9 there are 3 sets of wakeup registers, each with a different owner:</font><br><font size="2">- 200F010A = SPECIAL_WKUP_OTR_REG - Used by the PM Complex itself internally</font><br><font size="2">- 200F010B = SPECIAL_WKUP_FSP_REG - Used by FSP when we have one, or by HBRT/opal-prd on these boxes</font><br><font size="2">- 200F010C = SPECIAL_WKUP_OCC_REG - Used by OCC</font><br><font size="2">- 200F010D = SPECIAL_WKUP_HYP_REG - Used by OPAL/PHYP</font><br><br><font size="2">I would recommend that you use 200F010B for this purpose. You just need to set bit 0 to trigger it, though there is a non-zero time for it to take effect. See <a href="https://github.com/open-power/hostboot/blob/master/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup.C">https://github.com/open-power/hostboot/blob/master/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup.C</a> for the details.</font><br><br><font size="2">You'll need to set it on every functional core. You could probably get fancy and use multicasts to do it with a single scom using group 1. And don't forget to clear it later so that you can use idle states again later.</font><br><font size="2"><br>--<br>Dan Crowell<br>Senior Software Engineer - Power Systems Enablement Firmware<br>IBM Rochester: t/l 553-2987<br>dcrowell@us.ibm.com</font><br><br><img width="16" height="16" src="cid:1__=09BB0F3CDFC2CD4C8f9e8a93df938690918c09B@" border="0" alt="Inactive hide details for Artem Senichev ---07/24/2020 07:03:58 AM---Hi all, Our customers want to be able to initiate kdump on"><font size="2" color="#424282">Artem Senichev ---07/24/2020 07:03:58 AM---Hi all, Our customers want to be able to initiate kdump on a POWER9 host system from BMC console.</font><br><br><font size="2" color="#5F5F5F">From: </font><font size="2">Artem Senichev <a.senichev@yadro.com></font><br><font size="2" color="#5F5F5F">To: </font><font size="2">"openpower-firmware@lists.ozlabs.org" <openpower-firmware@lists.ozlabs.org></font><br><font size="2" color="#5F5F5F">Date: </font><font size="2">07/24/2020 07:03 AM</font><br><font size="2" color="#5F5F5F">Subject: </font><font size="2">[EXTERNAL] [OpenPower-Firmware] SRESET and idle CPU</font><br><font size="2" color="#5F5F5F">Sent by: </font><font size="2">"OpenPower-Firmware" <openpower-firmware-bounces+dcrowell=us.ibm.com@lists.ozlabs.org></font><br><hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br><br><br><tt><font size="2">Hi all,<br><br>Our customers want to be able to initiate kdump on a POWER9 host system from BMC console.<br>I tried to implement this functionality with an SRESET signal sent through the pdbg utility, but it turned out that when the CPU is in an idle state (sleep), the signal could not be delivered.<br><br>I can disable the idle state on a host:<br><br>for i in /sys/devices/system/cpu/cpu0/cpuidle/state*/disable; do<br> echo 1 > $i<br>done<br><br>and then send SRESET from BMC:<br><br>pdbg -p0 -c0 -t0 stop<br>pdbg -p0 -c0 -t0 sreset<br><br>This solution works fine, but I need to do it without interfering with the host system.<br>Is it possible?<br><br>--<br>Regards,<br>Artem Senichev<br>Software Engineer, YADRO.<br><br>_______________________________________________<br>OpenPower-Firmware mailing list<br>OpenPower-Firmware@lists.ozlabs.org<br><a href="https://lists.ozlabs.org/listinfo/openpower-firmware">https://lists.ozlabs.org/listinfo/openpower-firmware</a> <br><br></font></tt><br><br><BR>
</body></html>