summaryrefslogtreecommitdiffstats
path: root/doc/opal-api/opal-register-dump-region-101.rst
blob: 15300820d1e34ea8db4c31705b8b109c01288473 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
OPAL_REGISTER_DUMP_REGION
=========================

This call is used to register regions of memory for a service processor to capture
when the host crashes.

e.g. if an assert is hit in OPAL, a service processor will copy 

This is an OPTIONAL feature that may be unsupported, the host OS should use an
OPAL_CHECK_TOKEN call to find out if OPAL_REGISTER_DUMP_REGION is supported.

OPAL_REGISTER_DUMP_REGION accepts 3 parameters:

- region ID
- address
- length

There is a range of region IDs that can be used by the host OS. A host OS should
start from OPAL_DUMP_REGION_HOST_END and work down if it wants to add a not well
defined region to dump. Currently the only well defined region is for the host
OS log buffer (e.g. dmesg on linux). ::

  /*
   * Dump region ID range usable by the OS
   */
   #define OPAL_DUMP_REGION_HOST_START		0x80
   #define OPAL_DUMP_REGION_LOG_BUF		0x80
   #define OPAL_DUMP_REGION_HOST_END		0xFF

OPAL_REGISTER_DUMP_REGION will return OPAL_UNSUPPORTED if the call is present but
the system doesn't support registering regions to be dumped.

In the event of being passed an invalid region ID, OPAL_REGISTER_DUMP_REGION will
return OPAL_PARAMETER.

Systems likely have a limit as to how many regions they can support being dumped. If
this limit is reached, OPAL_REGISTER_DUMP_REGION will return OPAL_INTERNAL_ERROR.

BUGS
----
Some skiboot versions incorrectly returned OPAL_SUCCESS in the case of
OPAL_REGISTER_DUMP_REGION being supported on a platform (so the call was present)
but the call being unsupported for some reason (e.g. on an IBM POWER7 machine).

See also: OPAL_UNREGISTER_DUMP_REGION
OpenPOWER on IntegriCloud