diff options
Diffstat (limited to 'src/include/usr/devicefw')
-rw-r--r-- | src/include/usr/devicefw/driverif.H | 4 | ||||
-rw-r--r-- | src/include/usr/devicefw/userif.H | 42 |
2 files changed, 41 insertions, 5 deletions
diff --git a/src/include/usr/devicefw/driverif.H b/src/include/usr/devicefw/driverif.H index 048b8dc19..66c420c21 100644 --- a/src/include/usr/devicefw/driverif.H +++ b/src/include/usr/devicefw/driverif.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2019 */ +/* Contributors Listed Below - COPYRIGHT 2011,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -103,6 +103,8 @@ namespace DeviceFW I2C_SMBUS_WORD = 3, ///< I2c SMBUS Read/Write Word I2C_SMBUS_BYTE = 4, ///< I2c SMBUS Read/Write Byte I2C_SMBUS_SEND_OR_RECV = 5, ///< I2c SMBUS Send/Receive Byte + I2C_SMBUS_WORD_NO_PEC = 6, ///< I2c SMBUS Read/Write Word without PEC byte + I2C_SMBUS_BLOCK_NO_BYTE_COUNT = 7, ///< I2c SMBUS Block Read/Write without first byte being a byte count }; #ifndef PARSER diff --git a/src/include/usr/devicefw/userif.H b/src/include/usr/devicefw/userif.H index d626d49c0..ec94bef32 100644 --- a/src/include/usr/devicefw/userif.H +++ b/src/include/usr/devicefw/userif.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2019 */ +/* Contributors Listed Below - COPYRIGHT 2011,2020 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -68,7 +68,8 @@ namespace DeviceFW AHB_SIO, // AST Hostbridge via SIO DVPD, // Direct access memory VPD NODECOMM, // Internode communication - NVDIMM, // Non-volatile DIMM controller access + NVDIMM, // Routes message to non-volatile DIMM controller access + NVDIMM_RAW, // Non-volatile DIMM controller access FAPI_I2C, // FAPI2-triggered i2c accesses MMIO, // Memory Mapped I/O IDEC, // Read and set EC and CHIPID values @@ -379,12 +380,45 @@ namespace DeviceFW static_cast<uint64_t>(( i_mailbox_id )) /** - * Construct the device addressing parameters for the NVDIMM device ops. - * @param[i] i_address - NVDIMM address to internal register + * @brief Construct the device addressing parameters for the + * NVDIMM device ops. + * @details This call includes setting the page based off the address + * and then performing the read/write of that NVDIMM address. + * @see DEVICE_NVDIMM_RAW_ADDRESS for an NVDIMM read/write call without + * page setting. + * @param[i] i_address - NVDIMM address to an internal register */ #define DEVICE_NVDIMM_ADDRESS(i_address)\ DeviceFW::NVDIMM, static_cast<uint64_t>((i_address)) + /** + * @brief Construct the device addressing parameters for the + * NVDIMM RAW device ops + use block size specified + * @details This a raw call to read/write a NVDIMM address which means it + * will not set the page before it does the read/write call. Hence, + * for this call to work properly, the page must have been set + * properly beforehand. + * @see DEVICE_NVDIMM_ADDRESS for a NVDIMM read/write call with + * page setting. + * @param[i] i_address - NVDIMM address to an internal register + * @param[i] i_blockSize - maximum block size for operation (0 = default size, 2 and 32 valid) + */ + #define DEVICE_NVDIMM_RAW_ADDRESS_WITH_BLOCKSIZE(i_address, i_blockSize)\ + DeviceFW::NVDIMM_RAW, static_cast<uint64_t>((i_address)), static_cast<uint64_t>((i_blockSize)) + + /** + * @brief Construct the device addressing parameters for the + * NVDIMM RAW device ops. + * @details This a raw call to read/write a NVDIMM address which means it + * will not set the page before it does the read/write call. Hence, + * for this call to work properly, the page must have been set + * properly beforehand. + * @see DEVICE_NVDIMM_ADDRESS for a NVDIMM read/write call with + * page setting. + * @param[i] i_address - NVDIMM address to an internal register + */ + #define DEVICE_NVDIMM_RAW_ADDRESS(i_address)\ + DEVICE_NVDIMM_RAW_ADDRESS_WITH_BLOCKSIZE(i_address, 0) /** * Construct the device addressing parameters for the FAPI I2C operation |