[Skiboot] [PATCH v7 00/22] MPIPL support

Vasant Hegde hegdevasant at linux.vnet.ibm.com
Mon May 13 19:36:07 AEST 2019

On 05/09/2019 06:08 AM, Michael Neuling wrote:
> On Sat, 2019-04-13 at 14:45 +0530, Vasant Hegde wrote:
>> Memory Preserving Initial Program Load (MPIPL) is a Power feature where
>> the contents of memory are preserved while the system reboots after a
>> failure. This is accomplished by the firmware/OS publishing ranges of
>> memory to be preserved across boots.
>> In the OPAL context, OPAL and host Linux communicate the memory ranges
>> to be preserved via source descriptor tables in the HDAT. This data is
>> updated at runtime via the SBE. When OPAL or Linux crashes, SBE gets to
>> know of the event via a special interrupt which causes it to trigger
>> the MPIPL.
>> Hostboot then re-IPLs the machine taking care to copy over contents of
>> the source descriptor tables to a alternate memory locations and
>> publishes this information in the destination descriptor tables. The
>> success/failure of the copy is indicated by a results table.
> How much coping are we talking about here? 

OPAL memory and part of kernel memory.

It will be copied to destination memory as specified by OPAL/kernel during 

 > Most of RAM? Where to?

Destination memory is RAM. During MPIPL hostboot will not clear (reinit) 
memories. So
content is safe.

>> Hostboot also does the requisite procedures to gather hardware register
>> states for all active threads at the time of the crash.
>> On an MPIPL boot, OPAL exports the results information to the host Linux
>> kernel, which then uses its existing logic (kdump/fadump) to write out a
>> core dump of OPAL and Linux kernel in a format that GDB and crash can
>> understand.
>> design:
>>    - OPAL hardcodes few entries in MDST, MDDT table so that we can
>>      capture early opal crash
>>    - OPAL passes relocated base address to SBE via 'MPIPL stash chip-op'
>>      so that hostboot can use relocated address to get MDST, MDDT table.
>>    - OPAL passes dump details to host via device tree (/ibm,dump node)
>>    - OPAL provides new API to MPIPL registration/unregistration
>>    - Enhance reboot2 API to support MPIPL
>>    - Add SBE s0/s1 interrupt support to initiate MPIPL on BMC based
>>      system.
>> Dependency:
>>    - This patchset has dependency on SBE and Hostboot changes. There are
>>      few Hostboot/SBE patches still in review state.
> How do we determine if the hostboot we are running with supports this?

We have machine xml flag to say MPIPL is supported or not. It will come to OPAL 
via HDAT.

>>    - We need Linux kernel changes to generate opal core.
>>      Hari will post Linux side patches.
> Similarly here. How does Linux know skiboot/hostboot supports this?  If
> skiboot/hostboot doesn't support this, it'll need to go for a kdump alternative?

Correct. If MPIPL is supported we export device tree node (/ibm,opal/dump).
Kernel will check for this node, and enables appropriate dump mechanism.


More information about the Skiboot mailing list