summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/devicefw/driverif.H1
-rw-r--r--src/include/usr/devicefw/userif.H1
-rw-r--r--src/include/usr/fsi/fsi_reasoncodes.H10
-rw-r--r--src/include/usr/fsi/fsiif.H74
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
OpenPOWER on IntegriCloud