commit | 701fcc1c06b91153828a577cf5f72f6f38853f09 | [log] [tgz] |
---|---|---|
author | Paul Greenwood <Paul.Greenwood@ibm.com> | Thu Aug 15 19:29:31 2019 -0500 |
committer | Zane Shelley <zshelle@us.ibm.com> | Sat Sep 14 02:45:31 2019 +0000 |
tree | 899eb3fe2197cdb2ab490d771cd1a0c458efb172 | |
parent | 0fa81f7ee005dbf289bd28e8750939235acc7118 [diff] |
Add Register Class Register is an abstract base class for real and virtual registers. A few examples of these registers are; HardwareRegister, ConstantRegister, NotRegister, and AndRegister. As a base class of register types, the Register class creates a place where these registers can be put together like logical building blocks. For example, Register makes this possible: Register * fir = new HardwareRegister(REG_ADDRESS, REG_WIDTH, DEFAULT_CHIP_TYPE, ACCESS_RO); Register * mask = new ConstantRegister( 0xffffffff00000000 ); Register * fir_mask = new AndRegister(fir, mask); const BitString * bs = fir_mask->getBitString(); The getBitString function (defined by each register) provides access to the BitString that manages each register's data. In this example bs will contain the result of fir & mask. Change-Id: I497d997c1cc338c53cb04a827bf2f4aca6b781c9 Signed-off-by: Paul Greenwood <Paul.Greenwood@ibm.com>
This library is a common, portable code base for isolating errors reported by hardware registers on POWER Systems chips.
The primary consumers (and requirements drivers) will be:
See the primary API definitions for details on how to use this library.
This library is intended to be integrated into containing user applications as a set of source files (either imported, or as a git subtree/submodule).
Details TBD.
__HEI_READ_ONLY
: When defined, it will ensure any hardware write support is disabled. Note that the Chip Data Files will contain rules for clearing and masking register bits. Both of which will require modifying hardware registers, which is not allowed by user applications like OpenBMC or FSP firmware.src/include/
in the POWER Systems Hostboot firmware.