5.6.3 Registers with fields

Iris enables parts of registers to be exposed as child registers. Parent and child registers are linked by the ResourceInfo.parentRscId field.

A register either has no parent, in which case it is called a top-level register, and its parentRscId is missing, or it has one parent register, in which case it is a child of that parent. Child registers can have their own child registers, although instances should not expose a register hierarchy that is more than one or two levels deep. Clients should display child registers below their parents, in the order they appear in the ResourceInfo array returned by resource_getList().

When reading or writing child registers, it is the responsibility of the instance to access the data in the correct location. The ResourceInfo might contain enough information to locate the child resource inside the parent, but clients can ignore this information and just present it as part of the description of a resource.

It is possible to represent parts of a parent register as a logical child register. Logical child registers have no lsbOffset, indicating that they are distributed across multiple, non-consecutive bit ranges inside their parent register. Logical child registers might also represent any other information that is related to their parent register. They can be a different type to their parent register and can be used to create a structure of registers underneath the register group level.

Clients can usually ignore the difference between logical child registers and non-logical child registers, but instance implementations might find it useful to expose this information.


Parameters do not have child parameters.
Non-ConfidentialPDF file icon PDF version101196_0100_03_en
Copyright © 2018, 2019 Arm Limited or its affiliates. All rights reserved.