diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/usr/devicefw/driverif.H | 1 | ||||
-rw-r--r-- | src/include/usr/devicefw/userif.H | 1 | ||||
-rw-r--r-- | src/include/usr/fsi/fsi_reasoncodes.H | 10 | ||||
-rw-r--r-- | src/include/usr/fsi/fsiif.H | 74 |
4 files changed, 82 insertions, 4 deletions
diff --git a/src/include/usr/devicefw/driverif.H b/src/include/usr/devicefw/driverif.H index 82125c014..a7139db19 100644 --- a/src/include/usr/devicefw/driverif.H +++ b/src/include/usr/devicefw/driverif.H @@ -44,7 +44,6 @@ namespace DeviceFW enum AccessType_DriverOnly { XSCOM = LAST_ACCESS_TYPE, - FSI, I2C, FSISCOM, diff --git a/src/include/usr/devicefw/userif.H b/src/include/usr/devicefw/userif.H index a71a7b4cb..adb46a418 100644 --- a/src/include/usr/devicefw/userif.H +++ b/src/include/usr/devicefw/userif.H @@ -46,6 +46,7 @@ namespace DeviceFW PNOR, MAILBOX, PRESENT, + FSI, LAST_ACCESS_TYPE, }; diff --git a/src/include/usr/fsi/fsi_reasoncodes.H b/src/include/usr/fsi/fsi_reasoncodes.H index a82da1133..24442062e 100644 --- a/src/include/usr/fsi/fsi_reasoncodes.H +++ b/src/include/usr/fsi/fsi_reasoncodes.H @@ -32,10 +32,12 @@ namespace FSI MOD_FSIDD_INVALID = 0x00, /**< Zero is an invalid module id */ MOD_FSIDD_WRITE = 0x01, /**< fsidd.C : FsiDD::write */ MOD_FSIDD_READ = 0x02, /**< fsidd.C : FsiDD::read */ - MOD_FSIDD_VERIFYADDRESSRANGE = 0x03, /**< fsidd.C : verifyAddressRange */ - MOD_FSIDD_HANDLEOPBERRORS = 0x04, /**< fsidd.C : handleOpbErrors */ + MOD_FSIDD_VERIFYADDRESSRANGE = 0x03, /**< fsidd.C : FsiDD::verifyAddressRange */ + MOD_FSIDD_HANDLEOPBERRORS = 0x04, /**< fsidd.C : FsiDD::handleOpbErrors */ MOD_FSIDD_DDREAD = 0x05, /**< fsidd.C : ddRead */ MOD_FSIDD_DDWRITE = 0x06, /**< fsidd.C : ddWrite */ + MOD_FSIDD_INITPORT = 0x07, /**< fsidd.C : FsiDD::initPort */ + MOD_FSIDD_POLLFORCOMPLETE = 0x08, /**< fsidd.C : FsiDD::pollForComplete */ }; enum FSIReasonCode @@ -44,7 +46,9 @@ namespace FSI RC_INVALID_ADDRESS = FSI_COMP_ID | 0x02, RC_OPB_TIMEOUT = FSI_COMP_ID | 0x03, RC_OPB_ERROR = FSI_COMP_ID | 0x04, - RC_INVALID_TARGET = FSI_COMP_ID | 0x05, + RC_INVALID_TARGET = FSI_COMP_ID | 0x05, + RC_OPB_NO_READ_VALID = FSI_COMP_ID | 0x06, + RC_ERROR_ENABLING_SLAVE = FSI_COMP_ID | 0x07, }; }; diff --git a/src/include/usr/fsi/fsiif.H b/src/include/usr/fsi/fsiif.H new file mode 100644 index 000000000..3c366fd9d --- /dev/null +++ b/src/include/usr/fsi/fsiif.H @@ -0,0 +1,74 @@ +// IBM_PROLOG_BEGIN_TAG +// This is an automatically generated prolog. +// +// $Source: src/include/usr/fsi/fsiif.H $ +// +// IBM CONFIDENTIAL +// +// COPYRIGHT International Business Machines Corp. 2011 +// +// p1 +// +// Object Code Only (OCO) source materials +// Licensed Internal Code Source Materials +// IBM HostBoot Licensed Internal Code +// +// The source code for this program is not published or other- +// wise divested of its trade secrets, irrespective of what has +// been deposited with the U.S. Copyright Office. +// +// Origin: 30 +// +// IBM_PROLOG_END + +#ifndef __FSI_FSIIF_H +#define __FSI_FSIIF_H + +#include <stdint.h> +#include <builtins.h> +#include <errl/errlentry.H> + +namespace FSI +{ + +/** + * Master or Cascaded Master + */ +enum MasterType { + MFSI_TYPE = 0, + CMFSI_TYPE = 1, + NO_MASTER = 2 +}; + + +//@todo - move this into attributes +/** + * @brief Structure which defines info necessary to access a chip via FSI + * + * Structure which defines info necessary for FSI access. Only applicable + * for chip targets. Structure is read-only. Each chip will have 2 copies + * of this data, depending on which chip we boot from. + */ +struct FsiChipInfo_t +{ + TARGETING::Target* master; ///< FSI Master @fixme - convert to EntityPath + MasterType type; ///< Master or Cascaded Master + uint8_t port; ///< Which port is this chip hanging off of + uint8_t cascade; ///< Slave cascade position + uint64_t attributes; ///< Reserved for any special flags we might need +}; + +/** + * @brief Initialize the FSI hardware + * + * @param[out] o_numPorts Number of FSI ports that were + * successfully initialized + * + * @return errlHndl_t NULL on success + */ +errlHndl_t initializeHardware( uint64_t& o_numPorts ); + + +} + +#endif |