summaryrefslogtreecommitdiffstats
path: root/src/include/usr/lpc
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2014-05-13 16:45:45 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-09-22 13:31:04 -0500
commitd001febf0b5594120dd422bcbe5736221471e0ca (patch)
tree227678a8341e96ef6bf9fe385e1215cffe613b97 /src/include/usr/lpc
parente7d14e42caf28c421dfaa4b3b15bda7cf5a77e43 (diff)
downloadtalos-hostboot-d001febf0b5594120dd422bcbe5736221471e0ca.tar.gz
talos-hostboot-d001febf0b5594120dd422bcbe5736221471e0ca.zip
Create LPC Device Driver
Split LPC function out from PNOR DD and incorporate Stradale changes Change-Id: I4162db1a9f52ba3c0c973438b7b70baeae00aee2 Origin: Google Shared Technology RTC: 97494 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11198 Tested-by: Jenkins Server Reviewed-by: Michael Baiocchi <baiocchi@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/lpc')
-rw-r--r--src/include/usr/lpc/lpc_reasoncodes.H60
-rw-r--r--src/include/usr/lpc/lpcif.H64
2 files changed, 124 insertions, 0 deletions
diff --git a/src/include/usr/lpc/lpc_reasoncodes.H b/src/include/usr/lpc/lpc_reasoncodes.H
new file mode 100644
index 000000000..11622becf
--- /dev/null
+++ b/src/include/usr/lpc/lpc_reasoncodes.H
@@ -0,0 +1,60 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/lpc/lpc_reasoncodes.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2014 */
+/* [+] Google Inc. */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __LPC_REASONCODES_H
+#define __LPC_REASONCODES_H
+
+#include <hbotcompid.H>
+
+namespace LPC
+{
+ enum LPCModuleId
+ {
+ MOD_LPCDD_INVALID_MODULE = 0x00,
+ MOD_LPCDD_CHECKADDR = 0x01,
+ MOD_LPCDD_READLPC = 0x02,
+ MOD_LPCDD_WRITELPC = 0x03,
+ MOD_LPCDD_CHECKFOROPBERRORS = 0x04,
+ MOD_LPCDD_HWRESET = 0x05,
+ MOD_CREATE_ALTMASTER = 0x06,
+ MOD_READLPC = 0x07,
+ MOD_WRITELPC = 0x08,
+ };
+
+ enum LPCReasonCode
+ {
+ RC_INVALID_ADDR = LPC_COMP_ID | 0x01,
+ RC_ECCB_ERROR = LPC_COMP_ID | 0x02,
+ RC_BAD_ARG = LPC_COMP_ID | 0x03,
+ RC_OPB_ERROR = LPC_COMP_ID | 0x04,
+ RC_UNSUPPORTED_OPERATION = LPC_COMP_ID | 0x05,
+ RC_ALTMASTER_EXISTS = LPC_COMP_ID | 0x06,
+ RC_CANT_USE_MASTER = LPC_COMP_ID | 0x07,
+ RC_CANT_USE_SENTINEL = LPC_COMP_ID | 0x08,
+ RC_BAD_TARGET = LPC_COMP_ID | 0x09,
+ };
+};
+
+#endif
diff --git a/src/include/usr/lpc/lpcif.H b/src/include/usr/lpc/lpcif.H
new file mode 100644
index 000000000..f7cf9f6de
--- /dev/null
+++ b/src/include/usr/lpc/lpcif.H
@@ -0,0 +1,64 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/lpc/lpcif.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2014 */
+/* [+] Google Inc. */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __LPCIF_H
+#define __LPCIF_H
+
+#include <errl/errlentry.H>
+
+namespace LPC
+{
+
+/**
+ * @enum LPC::TransType
+ * @brief LPC Transaction Types
+ */
+enum TransType {
+ TRANS_IO,
+ TRANS_MEM,
+ TRANS_FW,
+ TRANS_REG, // LPCHC Register space
+ TRANS_ABS, // Address parm is absolute
+ TRANS_LAST //Invalid, used for looping and tests
+};
+
+
+/**
+ * @brief Create/delete software objects to support non-master access
+ *
+ * Only a single altmaster object can be active at any given time. The
+ * previous object must be destroyed before creating another one.
+ *
+ * @param i_create true: create objects, false: destroy previous objects
+ * @param i_proc Processor target to use for LPC access
+ *
+ * @return Error if invalid parms or ordering occurs
+ */
+errlHndl_t create_altmaster_objects( bool i_create,
+ TARGETING::Target* i_proc );
+
+}; // namespace LPC
+
+#endif // end __LPCIF_H
OpenPOWER on IntegriCloud