ibm,update-nodes RTAS Call
This RTAS call is used to determine which device tree nodes have
changed due to a massive platform reconfiguration such as when the
partition is migrated between machines. Differing platform
reconfigurations are expected to potentially result in different sets of
nodes being updated; the “scope” argument communicates what
set of changes are to be reported. The work area is a 4 KB naturally
aligned area of storage below the first 4 GB; as such, it may not be
large enough to contain the reports of all changed nodes. The status
value of 1 is used to inform the caller that there are more updates to
report and that it will have to call the
ibm,update-nodes RTAS again to receive them. On
subsequent calls the state variable, which is set to zero on the first
call, is set to the value returned on the previous call, to supply RTAS
with the information it needs to continue from where the previous call
ended.
Upon return, the work area contains, in addition to the state
variable, zero or more operation lists, and logically ends with a
terminator (4 byte word naturally aligned containing 0x00000000). An
operation list consists of an operator (4 bytes naturally aligned) and
zero or more (up to a the maximum number of 4 byte locations remaining in
the work area) operands, each 4 bytes long. An operator consists of a
single byte opcode followed by 3 bytes encoded with the binary value of
the number of operands that follow. An operator with an operand length
field of zero performs no operation, and the opcode of zero is reserved
for the terminator -- thus the terminator can be considered a special
encoding of a no-op operator.
The opcode of 0x01 is used for deleted nodes -- the operands are
the
phandle values for the deleted nodes.
The opcode of 0x02 is used for updated nodes -- the operands are
the
phandle values for the updated nodes. The updated
properties are obtained using the
ibm,update-properties RTAS call.
The opcode of 0x03 is used for adding nodes -- the operands are
pairs of
phandle and
drc-index values; the
phandle value denotes the parent node of the node to
be added and the
ibm,drc-index value is passed with the
ibm,configure-connector RTAS call to obtain the
contents of the added node.
To make processing of device tree updates simpler, all opcode 0x01
(delete) operations (if any) are presented prior to all opcode 0x02
(update) operations (if any), and finally any 0x03 (addition) operations
are presented. The
phandle operand values are the same
phandle values as reported by the
“ibm,phandle” property.
R1--1.
For the Update OF Tree option: The platform must
include the
“ibm,phandle” property in all OF nodes
specified in
.
R1--2.
For the Update OF Tree option: The platform must
implement the
ibm,update-nodes RTAS call using the argument call
buffer defined by
.
Argument Call Buffer
ibm,update-nodes
Parameter Type
Name
Values
In
Token
Token for
ibm,update-nodes
Number Inputs
2
Number Outputs
1
Work Area Address
32 bit real address of work area
Scope
Values per
.
Out
Status
-1: Hardware Error
-2: Busy
-3: Parameter Error (Purpose does not match the current
partition state)
0: Success
1: More nodes updated -- call again
R1--3.
ibm,update-nodes RTAS call work area must be 4 KB
long aligned on a 4 KB boundary that is accessible with MSR[DR] = 0, else
RTAS may return -3 “Parameter Error”.
R1--4.
ibm,update-nodes RTAS for a given value of “
Scope” must be formatted as specified in
, else RTAS may return -3
“Parameter Error”.
Initial Format of Work Area for
ibm,update-nodes
0x00000000 (State Variable indicates Initial call for
specified
Scope)
12 bytes of 0x00 (reserved)
Don’t Care . . .
R1--5.
Upon successful return (non-negative status
value) from
ibm,update-nodes the work area must by formatted as
defined in
. (Note each entry in
is 4 bytes long.)
Format of Work Area for
ibm,update-nodes
State Variable (4 Bytes)
12 bytes of 0x00 (reserved)
0 or more operation lists
. . .
Terminator (0x00000000)
R1--6.
ibm,update-nodes RTAS call operation list for the
ibm,update-nodes RTAS call must contain an operator
(4 bytes naturally aligned) and zero or more 4 byte operands up to the
end of the work area.
R1--7.
An operator in an
ibm,update-nodes RTAS call operation list must be
formatted with, starting at the high order byte, a single byte opcode
followed by 3 bytes encoded with the binary value of the number of
operands that follow.
R1--8.
An operator in an
ibm,update-nodes RTAS call operation list with an
operand length field of zero must be considered to perform no
operation.
R1--9.
The opcode of 0x01 in an
ibm,update-nodes RTAS call operation list must be
used to denote node deletions.
R1--10.
The operands for opcode 0x01 in an
ibm,update-nodes RTAS call operation list must be the
phandle values for the deleted nodes.
R1--11.
The opcode of 0x02 in an
ibm,update-nodes RTAS call operation list must be
used to denote updated nodes.
R1--12.
The operands for opcode 0x02 in an
ibm,update-nodes RTAS call operation list must be the
phandle values for the updated nodes that may be used
as the
ibm,update-properties RTAS call argument to obtain
the changed properties of the updated node.
R1--13.
The opcode of 0x03 in an
ibm,update-nodes RTAS call operation list must used
for the added nodes.
R1--14.
The operands for opcode of 0x03 in an
ibm,update-nodes RTAS call operation list must be
phandle and
drc-index value pairs (each value being 4 bytes
on a natural boundary totalling 8 bytes for the pair) denoting the parent
node of the added node and the
ibm,configure-connector RTAS call argument to obtain
the contents of the added node respectively.
R1--15.
All opcode 0x01 (delete) in an
ibm,update-nodes RTAS call operation list (if any)
must be presented prior to any opcode 0x02 (update) operations (if
any).
R1--16.
All opcode 0x02 (update) in an
ibm,update-nodes RTAS call operation list (if any)
must be presented prior to any opcode 0x03 (add) operations (if
any).
R1--17.
The work area on subsequent call(s) to
ibm,update-nodes RTAS for the same value of the
“Scope” must be formatted as specified in
, else RTAS may return -3
“Parameter Error”.
Format of Work Area for Subsequent Calls to
ibm,update-nodes
Value of the 1st 16 bytes of the returned work area from
last call to
ibm,update-nodes RTAS that returned status
of 1.
Don’t Care . . .
R1--18.
The “Scope” argument for the
ibm,update-nodes RTAS call must be one of the values
specified in the scope value column of
, else RTAS may return -3
“Parameter Error”.
R1--19.
For the
ibm,update-nodes RTAS call, the platform must
restrict its reported node updates to those specified in
for the value of the specified
“Scope” argument.
R1--20.
The work area on the first call to
ibm,update-nodes RTAS for a given value of
"Scope" must be formatted as specified in
else RTAS may return -3 "Parameter Error".
Initial Format of Work Area for
ibm,update-nodes with Device Reconfiguration Scope
0x00000000 (State Variable indicates Initial call for specified Scope)
Unit Address of target device for reconfiguration
4 bytes of 0x00 (reserved)
Don't Care. . .
Nodes That May be Reported by
ibm,update-nodes for a Given Value of the
“Scope” Argument
Scope Value
Reportable node types (value of
“name” or
“device_type” property)
Supported Opcodes
Negative values: Platform Resource Reassignment events as
from
event-scan RTAS
cpu
0x02
memory
0x02
ibm,dynamic-reconfiguration-memory
0x02
ibm,plaform-facilities
0x01-0x03
ibm,random-v#
0x01-0x03
ibm,compression-v#
0x01-0x03
ibm,encryption-v#
0x01-0x03
ibm,memory-utilization_instrumentation-v#
0x01-0x03
1 Partition Migration / Hibernation
root
0x02
openprom
0x02
rtas
0x02
vdevice
0x02
cpu
0x02
cache
0x01-0x03
options
0x02
memory
0x02
ibm,dynamic-reconfiguration-memory
<all>
ibm,platform-facilities
0x01-0x03
ibm,random-v#
0x01-0x03
ibm,compression-v#
0x01-0x03
ibm,encryption-v#
0x01-0x03
ibm,memory-utilization_instrumentation-v#
0x01-0x03
2 Activate Firmware
rtas
0x02
3 Device Reconfiguration
ibm,coherent-platform-facility
0x02
ibm,coherent-platform-function
0x02