summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H
diff options
context:
space:
mode:
authorCHRISTINA L. GRAVES <clgraves@us.ibm.com>2015-10-08 11:51:59 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-11-16 17:59:20 -0500
commitf01a301bb62629f4cfdb6bfb62d36074fc6cdbae (patch)
treecad4afc6255e49ea709a96f833dcb89da74a4b4d /src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H
parent102eb384558de87cda9133098e1bbd809427d14d (diff)
downloadtalos-hostboot-f01a301bb62629f4cfdb6bfb62d36074fc6cdbae.tar.gz
talos-hostboot-f01a301bb62629f4cfdb6bfb62d36074fc6cdbae.zip
p9_adu_access and p9_adu_setup L2 procedures
Change-Id: I1c42feddfa2cfadbfb16b3e2185bd771d82c331a Original-Change-Id: Id374670d8f75dc74f37967f6c95ef773796e3f1e Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/21092 Tested-by: Jenkins Server Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49794 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H')
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H b/src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H
new file mode 100644
index 000000000..dc2bbdf7e
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H
@@ -0,0 +1,109 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/p9/procedures/hwp/nest/p9_adu_setup.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* [+] 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 */
+//------------------------------------------------------------------------------------
+//
+/// @file p9_adu_setup.H
+/// @brief Setup the adu to do reads/writes
+//
+// *HWP HWP Owner: Christina Graves clgraves@us.ibm.com
+// *HWP FW Owner: Thi Tran thi@us.ibm.com
+// *HWP Team: Nest
+// *HWP Level: 1
+// *HWP Consumed by:
+//-----------------------------------------------------------------------------------
+// *! ADDITIONAL COMMENTS:
+// *!
+// *! The purpose of this procedure is to setup the ADU to do reads/writes
+// *! and to return the number of granules (number of 8B reads/writes) that
+// *! can be done before setup needs to be called again
+// *!
+// *! Successful operation assumes that:
+// *!
+// *! High-level procedure flow:
+// *!
+// *!
+//------------------------------------------------------------------------------------
+
+#ifndef _P9_ADU_SETUP_H_
+#define _P9_ADU_SETUP_H_
+
+//-----------------------------------------------------------------------------------
+// Includes
+//-----------------------------------------------------------------------------------
+
+#include <fapi2.H>
+#include <p9_adu_constants.H>
+
+//-----------------------------------------------------------------------------------
+// Structure definitions
+//-----------------------------------------------------------------------------------
+
+//function pointer typedef definition for HWP call support
+typedef fapi2::ReturnCode
+(*p9_adu_setup_FP_t) (const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&,
+ const uint64_t,
+ const bool,
+ const uint32_t,
+ uint32_t&);
+
+//-----------------------------------------------------------------------------------
+// Constant definitions
+//-----------------------------------------------------------------------------------
+
+extern "C" {
+
+//-----------------------------------------------------------------------------------
+// Function prototype
+//-----------------------------------------------------------------------------------
+
+/// @brief setup for reads/writes from the ADU
+/// @param[in] i_target => P9 chip target
+/// @param[in] i_address => base real address for read/write operation (expected to be 8B aligned)
+/// @param[in] i_rnw => if the operation is read not write (1 for read, 0 for write)
+/// @param[in] i_flags => other information that is needed - the flags are:
+/// -bit 0-cache inhibited - use cache-inhibited ttype?
+/// (true = ci, false = dma partial)
+/// -bit 1-autoinc - utilize ADU HW auto-increment function
+/// -bit 2-lock pick - pick ADU lock (if required)
+/// -bit 3-leave dirty - in the case of a fail with lock held,
+/// do not reset ADU & do not release lock
+/// -bit 4-fastmode - check status only at the end of read/write stream
+/// -bit 5-itag - collect itag with each 8B read/write
+/// -bit 6:13-size - transaction size
+/// -bit 14:32-lock tries - number of ADU lock acquisitions to attempt
+/// before giving up or attempting lock pick
+/// @param[out] o_numGranules => number of 8B granules that can be read/written before setup needs to be called again
+//
+/// @return FAPI_RC_SUCCESS if the setup completes successfully,
+//
+ fapi2::ReturnCode p9_adu_setup(
+ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
+ const uint64_t i_address,
+ const bool i_rnw,
+ const uint32_t i_flags,
+ uint32_t& o_numGranules);
+} //extern "C"
+
+#endif //_P9_ADU_SETUP_H_
OpenPOWER on IntegriCloud