class RomTable

Defined at line 91 of file ../../zircon/kernel/dev/coresight/include/dev/coresight/rom_table.h

[CS] D5

A ROM table is a basic CoreSight component that provides pointers to other

components (including other ROM tables) in its lower registers via offsets

from its base address. It is an organizational structure that can be used to

find all CoreSight components - possibly as well as legacy or

vendor-specific ones - on an SoC. Thought of as a tree, the leaves are the

system's CoreSight components and the root is typically referred to as the

"base ROM table" (or, more plainly, "the ROM table").

Public Methods

template <typename IoProvider, typename ComponentCallback>
fit::result<WalkError> Walk (IoProvider io, uint32_t max_offset, ComponentCallback && callback)

Walks the underlying tree of components with no dynamic allocation,

calling `callback` on the offset from the table's base address (implicitly

encoded in `io`) of each component found. The (`io`, `max_offset`)

together implicitly give the aperture to walk.

The walk will visit and access the first page of memory of each found

component. Unfortunately, however, there is no canonical means to

determine how large a region of memory this entails. The determination of

the maximum visited offset - or at least something deemed large enough -

is left to the caller. The offset must at least be

`kMininumComponentSize`, which is the size of the base table proper.

Defined at line 111 of file ../../zircon/kernel/dev/coresight/include/dev/coresight/rom_table.h

Records