summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H')
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H524
1 files changed, 0 insertions, 524 deletions
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H
deleted file mode 100644
index 1f1533805..000000000
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H
+++ /dev/null
@@ -1,524 +0,0 @@
-/* IBM_PROLOG_BEGIN_TAG */
-/* This is an automatically generated prolog. */
-/* */
-/* $Source: src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_adu_utils.H $ */
-/* */
-/* OpenPOWER HostBoot Project */
-/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2014 */
-/* [+] 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 */
-// $Id: proc_adu_utils.H,v 1.9 2014/09/11 21:57:13 aalugore Exp $
-// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/utils/proc_adu_utils.H,v $
-//------------------------------------------------------------------------------
-// *|
-// *! (C) Copyright International Business Machines Corp. 2011
-// *! All Rights Reserved -- Property of IBM
-// *! *** ***
-// *|
-// *! TITLE : proc_adu_utils.H
-// *! DESCRIPTION : ADU library functions (FAPI)
-// *!
-// *! OWNER NAME : Joe McGill Email: jmcgill@us.ibm.com
-// *! BACKUP NAME : Kevin Reick Email: reick@us.ibm.com
-// *!
-// *! ADDITIONAL COMMENTS :
-// *!
-// *! The functions contained in this library provide a mechanism to issue
-// *! fabric commands from the P8 Alter Display Unit (ADU).
-// *!
-// *! To perform a read operation on the fabric:
-// *! o Obtain lock protecting ADU resources:
-// *! proc_adu_utils_manage_adu_lock()
-// *! o Clear ADU Status registers, reset ADU state machine:
-// *! proc_adu_utils_reset_adu()
-// *! o Program fabric command/address into ADU control logic & issue command
-// *! proc_adu_utils_send_fbc_op()
-// *! o Poll ADU status bits to ensure read data has arrived:
-// *! proc_adu_utils_get_adu_status()
-// *! o Read ADU data registers to retrieve data:
-// *! proc_adu_utils_get_adu_data_registers()
-// *! o Clear ADU lock:
-// *! proc_adu_utils_manage_adu_lock()
-// *!
-// *! To perform a write operation on the fabric:
-// *! o Obtain lock protecting ADU resources:
-// *! proc_adu_utils_manage_adu_lock()
-// *! o Clear ADU Status registers, reset ADU state machine:
-// *! proc_adu_utils_reset_adu()
-// *! o Write ADU data registers to set data to be written:
-// *! proc_adu_utils_set_adu_data_registers()
-// *! o Program fabric command/address into ADU control logic & issue command
-// *! proc_adu_utils_send_fbc_op()
-// *! o Poll ADU status bits to ensure read data has arrived:
-// *! proc_adu_utils_get_adu_status()
-// *! o Clear ADU lock:
-// *! proc_adu_utils_manage_adu_lock()
-// *!
-// *! Additional functions are provided to:
-// *! o Check ADU lock owner:
-// *! proc_adu_utils_get_adu_lock_id()
-// *! o Manage ADU auto-increment function
-// *! proc_adu_utils_clear_adu_auto_inc()
-// *!
-//------------------------------------------------------------------------------
-
-#ifndef _PROC_ADU_UTILS_H_
-#define _PROC_ADU_UTILS_H_
-
-//------------------------------------------------------------------------------
-// Includes
-//------------------------------------------------------------------------------
-
-#include <fapi.H>
-#include <proc_fbc_utils.H>
-#include <p8_scom_addresses.H>
-
-extern "C" {
-
-//------------------------------------------------------------------------------
-// Structure definitions
-//------------------------------------------------------------------------------
-
-// ADU status bit comparison constants
-enum proc_adu_utils_status_bit
-{
- ADU_STATUS_BIT_CLEAR = 0, // status bit is clear (=0)
- ADU_STATUS_BIT_SET = 1, // status bit is set (=1)
- ADU_STATUS_BIT_DONT_CARE = 2 // status bit is a don't care (=0 or =1)
-};
-
-// ADU fabric operation type
-enum proc_adu_utils_fbc_op_type
-{
- ADU_FBC_OP_CMD_RD_ADDR_DATA = 0, // read command, address & data phase
- ADU_FBC_OP_CMD_ADDR_ONLY = 1, // address phase only
- ADU_FBC_OP_CMD_WR_ADDR_DATA = 2 // write command, address & data phase
-};
-
-// ADU fabric init command issue policy control
-enum proc_adu_utils_fbc_init_policy
-{
- ADU_FBC_OP_FBC_INIT_NO_OVERRIDE = 0x0, // don't issue command if fabric
- // init line is low
- ADU_FBC_OP_FBC_INIT_OVERRIDE = 0x1, // issue command even if fabric
- // init line is low
- ADU_FBC_OP_FBC_INIT_WAIT_LOW = 0x2 // wait until fabric init line is
- // low to issue command
-};
-
-// ADU supported fabric ttypes
-enum proc_adu_utils_fbc_ttype
-{
- ADU_FBC_OP_TTYPE_PBOP = 0x3F, // PB operation
- ADU_FBC_OP_TTYPE_PMISC = 0x31, // pervasive misc
- ADU_FBC_OP_TTYPE_CI_PR_W = 0x37, // cache-inhibited partial write
- ADU_FBC_OP_TTYPE_DMA_PR_W = 0x26, // DMA partial write
- ADU_FBC_OP_TTYPE_CI_PR_RD = 0x34, // cache-inhibited partial read
- ADU_FBC_OP_TTYPE_DMA_PR_RD = 0x35 // DMA partial read
-};
-
-// ADU supported fabric tsize encodings
-enum proc_adu_utils_fbc_tsize
-{
- ADU_FBC_OP_TSIZE_PBOP_DIS_ALL_FP_EN = 0x08, // pbop disable_all
- // (dis command, dis data),
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_PBOP_EN_RCMD_FP_EN = 0x09, // pbop enable_rcmd_only
- // (en command, dis data),
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_PBOP_EN_DATA_FP_EN = 0x0A, // pbop enable_data_only
- // (dis command, en data),
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_PBOP_EN_ALL_FP_EN = 0x0B, // pbop enable_all
- // (en command, en data),
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_PBOP_DIS_ALL_FP_DIS = 0x00, // pbop disable_all
- // (dis command, dis data),
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_PBOP_EN_RCMD_FP_DIS = 0x01, // pbop enable_rcmd_only
- // (en command, dis data)
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_PBOP_EN_DATA_FP_DIS = 0x02, // pbop enable_data_only
- // (dis command, en data),
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_PBOP_EN_ALL_FP_DIS = 0x03, // pbop enable_all
- // (en command, en data),
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_FPBOP_DIS_ALL_FP_EN = 0x48, // fpbop disable_all
- // (dis command, dis data),
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_FPBOP_EN_RCMD_FP_EN = 0x49, // fpbop enable_rcmd_only
- // (en command, dis data)
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_FPBOP_EN_DATA_FP_EN = 0x4A, // fpbop enable_data_only
- // (dis command, en data),
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_FPBOP_EN_ALL_FP_EN = 0x4B, // fpbop enable_all
- // (en command, en data),
- // MC fast-path enable
- ADU_FBC_OP_TSIZE_FPBOP_DIS_ALL_FP_DIS = 0x40, // fpbop disable_all
- // (dis command, dis data),
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_FPBOP_EN_RCMD_FP_DIS = 0x41, // fpbop enable_rcmd_only
- // (en command, dis data),
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_FPBOP_EN_DATA_FP_DIS = 0x42, // fpbop enable_data_only
- // (dis command, en data),
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_FPBOP_EN_ALL_FP_DIS = 0x43, // fpbop enable_all
- // (en command, en data),
- // MC fast-path disable
- ADU_FBC_OP_TSIZE_PMISC_SWITCH_AB = 0x01, // pervasive misc switch AB
- ADU_FBC_OP_TSIZE_1B = 0x01, // one byte transfer size
- ADU_FBC_OP_TSIZE_2B = 0x02, // two byte transfer size
- ADU_FBC_OP_TSIZE_3B = 0x03, // three byte transfer size
- ADU_FBC_OP_TSIZE_4B = 0x04, // four byte transfer size
- ADU_FBC_OP_TSIZE_8B = 0x08, // eight byte transfer size
- ADU_FBC_OP_TSIZE_CI_PR_W_1B = 0x01, // one byte transfer size
- ADU_FBC_OP_TSIZE_CI_PR_W_2B = 0x02, // two byte transfer size
- ADU_FBC_OP_TSIZE_CI_PR_W_4B = 0x03, // four byte transfer size
- ADU_FBC_OP_TSIZE_CI_PR_W_8B = 0x04 // eight byte transfer size
-};
-
-
-// ADU supported fabric priority encodings
-enum proc_adu_utils_fbc_drop_priority
-{
- ADU_FBC_OP_DROP_PRIORITY_LOW = 0x0, // lowest priority command request
- // (highest issue rate, first to be
- // dropped)
- ADU_FBC_OP_DROP_PRIORITY_MED = 0x1, // medium priority command request
- // (next highest issue rate, can be
- // dropped after low priority commands)
- ADU_FBC_OP_DROP_PRIORITY_HIGH = 0x2 // high priority command request
- // (slowest issue rate, can only be
- // dropped after low & medium priority
- // commands)
-};
-
-// ADU suppored fabric scope encodings
-enum proc_adu_utils_fbc_scope
-{
- ADU_FBC_OP_SCOPE_NODAL = 0x0, // nodal scope, physical broadcast to
- // all units on local chip
- ADU_FBC_OP_SCOPE_GROUP = 0x1, // group scope, physical broadcast to
- // all units on local physical group
- ADU_FBC_OP_SCOPE_SYSTEM = 0x2, // system scope, physical broadcast to
- // all units in SMP
- ADU_FBC_OP_SCOPE_REMOTE_GROUP = 0x3, // remote group scope, physical
- // broadcast to all units in remote
- // group
- ADU_FBC_OP_SCOPE_FOREIGN_LINK0 = 0x4, // foreign scope, physical broadcast
- // is all units on the local chip on
- // local SMP and remote chip on
- // remote SMP (foreign link ID 0)
- ADU_FBC_OP_SCOPE_FOREIGN_LINK1 = 0x5, // foreign scope, physical broadcast
- // is all units on the local chip on
- // local SMP and remote chip on
- // remote SMP (foreign link ID 1)
- ADU_FBC_OP_SCOPE_FOREIGN_LINK2 = 0x6, // foreign scope, physical broadcast
- // is all units on the local chip on
- // local SMP and remote chip on
- // remote SMP (foreign link ID 2)
- ADU_FBC_OP_SCOPE_FOREIGN_LINK3 = 0x7 // foreign scope, physical broadcast
- // is all units on the local chip on
- // local SMP and remote chip on
- // remote SMP (foreign link ID 3)
-};
-
-// ADU lock operations
-enum proc_adu_utils_adu_lock_operation
-{
- ADU_LOCK_ACQUIRE, // acquire lock
- ADU_LOCK_FORCE_ACQUIRE, // acquire lock (with lock pick)
- ADU_LOCK_RELEASE // release lock
-};
-
-// ADU fabric operation control information
-struct proc_adu_utils_fbc_op {
- proc_adu_utils_fbc_ttype ttype; // fabric ttype
- proc_adu_utils_fbc_tsize tsize; // fabric tsize
- uint64_t address; // fabric address
- proc_adu_utils_fbc_scope scope; // fabric scope
- proc_adu_utils_fbc_drop_priority drop_priority; // fabric drop priority
- proc_adu_utils_fbc_op_type cmd_type; // command type
- proc_adu_utils_fbc_init_policy init_policy; // fabric init issue policy
- bool use_autoinc; // use ADU auto-increment?
-};
-
-// ADU fabric hotplug operation control information
-struct proc_adu_utils_fbc_op_hp_ctl {
- bool do_tm_quiesce; // quiesce fabric token manager prior to
- // issuing programmed command?
- bool do_pre_quiesce; // send fabric quiesce command prior to
- // issuing programmed command?
- bool do_post_init; // send fabric init command after issuing
- // programmed command
- uint32_t post_quiesce_delay; // cycle delay to pause after pre-quiesce
- // command (clean cresp) before issuing
- // programmed command
- uint32_t pre_init_delay; // cycle delay to pause after programmed
- // command (clean cresp) before issuing
- // post-init command
-
-//Constructor
- proc_adu_utils_fbc_op_hp_ctl() {
- do_tm_quiesce = false;
- do_pre_quiesce = false;
- do_post_init = false;
- post_quiesce_delay = 0;
- pre_init_delay = 0;
- }
-
-};
-
-// ADU status structure
-struct proc_adu_utils_adu_status {
- proc_adu_utils_status_bit busy; // altd_busy
- proc_adu_utils_status_bit wait_cmd_arbit; // altd_wait_cmd_arbit
- proc_adu_utils_status_bit addr_done; // altd_addr_done
- proc_adu_utils_status_bit data_done; // altd_data_done
- proc_adu_utils_status_bit wait_resp; // altd_wait_resp
- proc_adu_utils_status_bit overrun_err; // altd_overrun_error
- proc_adu_utils_status_bit autoinc_err; // altd_autoinc_error
- proc_adu_utils_status_bit command_err; // altd_command_error
- proc_adu_utils_status_bit address_err; // altd_address_error
- proc_adu_utils_status_bit command_hang_err; // altd_pb_op_hang_error
- proc_adu_utils_status_bit data_hang_err; // altd_pb_data_hang_error
- proc_adu_utils_status_bit pbinit_missing; // altd_pbinit_missing
-};
-
-
-//------------------------------------------------------------------------------
-// Constant definitions
-//------------------------------------------------------------------------------
-
-// ADU operation delay times for HW/sim
-const uint32_t PROC_ADU_UTILS_ADU_HW_NS_DELAY = 10000;
-const uint32_t PROC_ADU_UTILS_ADU_SIM_CYCLE_DELAY = 10000;
-
-// field width definitions
-const uint32_t PROC_ADU_UTILS_ADU_MAX_POST_QUIESCE_DELAY = ((1 << 20)-1);
-const uint32_t PROC_ADU_UTILS_ADU_MAX_PRE_INIT_DELAY = ((1 << 10)-1);
-
-// auto-increment constant definitions
-const uint32_t PROC_ADU_UTILS_AUTO_INCREMENT_BOUNDARY_MASK = 0x7FFFF;
-const uint32_t PROC_ADU_UTILS_AUTO_INCREMENT_BOUNDARY = 0x7FFF8;
-
-// Security Switch register field/bit definitions
-const uint32_t OTPC_M_SECURITY_SWITCH_TRUSTED_BOOT_BIT = 1;
-
-// ADU Control register field/bit definitions
-const uint32_t ADU_CONTROL_FBC_TTYPE_START_BIT = 0;
-const uint32_t ADU_CONTROL_FBC_TTYPE_END_BIT = 5;
-const uint32_t ADU_CONTROL_FBC_RNW_BIT = 6;
-const uint32_t ADU_CONTROL_FBC_TSIZE_START_BIT = 7;
-const uint32_t ADU_CONTROL_FBC_TSIZE_END_BIT = 13;
-const uint32_t ADU_CONTROL_FBC_ADDRESS_START_BIT = 14;
-const uint32_t ADU_CONTROL_FBC_ADDRESS_END_BIT = 63;
-
-const uint32_t ADU_CONTROL_FBC_ADDRESS_SPLIT_BIT = 32;
-const uint32_t ADU_CONTROL_FBC_ADDRESS_SPLIT_MASK = 0xFFFFFFFF;
-
-// ADU Command register field/bit definitions
-const uint32_t ADU_COMMAND_START_OP_BIT = 2;
-const uint32_t ADU_COMMAND_CLEAR_STATUS_BIT = 3;
-const uint32_t ADU_COMMAND_RESET_BIT = 4;
-const uint32_t ADU_COMMAND_ADDRESS_ONLY_BIT = 6;
-const uint32_t ADU_COMMAND_LOCK_PICK_BIT = 10;
-const uint32_t ADU_COMMAND_LOCKED_BIT = 11;
-const uint32_t ADU_COMMAND_LOCK_ID_START_BIT = 12;
-const uint32_t ADU_COMMAND_LOCK_ID_END_BIT = 15;
-const uint32_t ADU_COMMAND_LOCK_ID_MAX_VALUE = 0xF;
-const uint32_t ADU_COMMAND_FBC_SCOPE_START_BIT = 16;
-const uint32_t ADU_COMMAND_FBC_SCOPE_END_BIT = 18;
-const uint32_t ADU_COMMAND_AUTO_INC_BIT = 19;
-const uint32_t ADU_COMMAND_FBC_DROP_PRIORITY_START_BIT = 20;
-const uint32_t ADU_COMMAND_FBC_DROP_PRIORITY_END_BIT = 21;
-const uint32_t ADU_COMMAND_FBC_INIT_OVERRIDE_BIT = 23;
-const uint32_t ADU_COMMAND_FBC_INIT_WAIT_LOW_BIT = 25;
-const uint32_t ADU_COMMAND_FBC_TM_QUIESCE_BIT = 26;
-const uint32_t ADU_COMMAND_FBC_PRE_QUIESCE_BIT = 27;
-const uint32_t ADU_COMMAND_FBC_POST_QUIESCE_COUNT_START_BIT = 28;
-const uint32_t ADU_COMMAND_FBC_POST_QUIESCE_COUNT_END_BIT = 47;
-const uint32_t ADU_COMMAND_FBC_PRE_INIT_COUNT_START_BIT = 50;
-const uint32_t ADU_COMMAND_FBC_PRE_INIT_COUNT_END_BIT = 59;
-const uint32_t ADU_COMMAND_FBC_POST_INIT_BIT = 63;
-
-// ADU Status register field/bit definitions
-const uint32_t ADU_STATUS_FBC_ALTD_BUSY_BIT = 0;
-const uint32_t ADU_STATUS_FBC_ALTD_WAIT_CMD_ARBIT_BIT = 1;
-const uint32_t ADU_STATUS_FBC_ALTD_ADDR_DONE_BIT = 2;
-const uint32_t ADU_STATUS_FBC_ALTD_DATA_DONE_BIT = 3;
-const uint32_t ADU_STATUS_FBC_ALTD_WAIT_RESP_BIT = 4;
-const uint32_t ADU_STATUS_FBC_ALTD_OVERRUN_ERR_BIT = 5;
-const uint32_t ADU_STATUS_FBC_ALTD_AUTOINC_ERR_BIT = 6;
-const uint32_t ADU_STATUS_FBC_ALTD_COMMAND_ERR_BIT = 7;
-const uint32_t ADU_STATUS_FBC_ALTD_ADDRESS_ERR_BIT = 8;
-const uint32_t ADU_STATUS_FBC_ALTD_COMMAND_HANG_ERR_BIT = 9;
-const uint32_t ADU_STATUS_FBC_ALTD_DATA_HANG_ERR_BIT = 10;
-const uint32_t ADU_STATUS_FBC_ALTD_INIT_MISSING_BIT = 18;
-
-// ADU Force ECC register field/bit definitions
-const uint32_t ADU_FORCE_ECC_DATA_ITAG_BIT = 0;
-const uint32_t ADU_FORCE_ECC_DATA_TX_ECC_HI_START_BIT = 1;
-const uint32_t ADU_FORCE_ECC_DATA_TX_ECC_HI_END_BIT = 8;
-const uint32_t ADU_FORCE_ECC_DATA_TX_ECC_LO_START_BIT = 9;
-const uint32_t ADU_FORCE_ECC_DATA_TX_ECC_LO_END_BIT = 16;
-const uint32_t ADU_FORCE_ECC_DATA_TX_ECC_OVERWRITE_BIT = 17;
-
-// ADU Data register field/bit definitions
-const uint32_t ADU_DATA_START_BIT = 0;
-const uint32_t ADU_DATA_END_BIT = 63;
-
-const uint32_t ADU_DATA_SPLIT_BIT = 32;
-const uint32_t ADU_DATA_SPLIT_MASK = 0xFFFFFFFF;
-
-
-//------------------------------------------------------------------------------
-// Function prototypes
-//------------------------------------------------------------------------------
-
-// function: read ADU Command register, get ADU lock identifier
-// parameters: i_target => P8 chip target
-// o_lock_id => lock ID read
-// returns: FAPI_RC_SUCCESS if SCOM read is successful,
-// else error
-fapi::ReturnCode proc_adu_utils_get_adu_lock_id(
- const fapi::Target& i_target,
- uint8_t& o_lock_id);
-
-// function: read-modify-write ADU Command register to clear auto-increment
-// mode (necessary to complete operation at 0.5M boundary)
-// NOTE: intended to be run while holding ADU lock
-// parameters: i_target => P8 chip target
-// returns: FAPI_RC_SUCCESS if read-modify-write sequence is successful,
-// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
-// ADU atomic lock,
-// else error
-fapi::ReturnCode proc_adu_utils_clear_adu_auto_inc(
- const fapi::Target& i_target);
-
-// function: manipulate state of ADU atomic lock (set/pick/clear)
-// parameters: i_target => P8 chip target
-// i_lock_operation => lock operation to perform
-// i_num_attempts => number of lock manipulation attempts to
-// make before giving up (will only
-// continue to attempt if SCOM return code
-// indicates failure due to lock state)
-// returns: FAPI_RC_SUCCESS if lock manipulation is successful,
-// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
-// ADU atomic lock,
-// RC_PROC_ADU_UTILS_INVALID_LOCK_OPERATION if an unsupported operation
-// is specified,
-// RC_PROC_ADU_UTILS_INVALID_LOCK_ATTEMPTS if invalid number of attempts
-// is specified,
-// else error
-fapi::ReturnCode proc_adu_utils_manage_adu_lock(
- const fapi::Target& i_target,
- const proc_adu_utils_adu_lock_operation i_lock_operation,
- const uint32_t i_num_attempts);
-
-// function: write ADU Command register to clear the ADU Status register and
-// reset the ADU state machine
-// NOTE: intended to be run while holding ADU lock
-// parameters: i_target => P8 chip target
-// returns: FAPI_RC_SUCCESS if ADU reset is successful
-// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
-// ADU atomic lock,
-// else error
-fapi::ReturnCode proc_adu_utils_reset_adu(
- const fapi::Target& i_target);
-
-// function: initiate fabric command via writes to ADU Command & Control
-// registers
-// NOTE: intended to be run while holding ADU lock
-// parameters: i_target => P8 chip target
-// i_adu_ctl => struct defining fabric command type & ADU control
-// parameters
-// i_use_hp => perform actions specified in hotplug control
-// argument?
-// i_adu_hp_ctl => struct defining hotplug control parameters
-// returns: FAPI_RC_SUCCESS if ADU Command/Control register writes are
-// successful,
-// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
-// ADU atomic lock,
-// RC_PROC_ADU_UTILS_INVALID_FBC_OP if invalid fabric operation
-// parameters are specified,
-// else error
-fapi::ReturnCode proc_adu_utils_send_fbc_op(
- const fapi::Target& i_target,
- const proc_adu_utils_fbc_op i_adu_ctl,
- const bool i_use_hp,
- const proc_adu_utils_fbc_op_hp_ctl i_adu_hp_ctl);
-
-// function: read ADU Status register, return structure encapsulating
-// error/status bits
-// NOTE: intended to be run while holding ADU lock
-// parameters: i_target => P8 chip target
-// o_status_act => struct defining state of status/error bits
-// returns: FAPI_RC_SUCCESS if status register read is successful,
-// else error
-fapi::ReturnCode proc_adu_utils_get_adu_status(
- const fapi::Target& i_target,
- proc_adu_utils_adu_status& o_status_act);
-
-// function: write ADU Data & Force ECC registers (to set outbound data to be
-// delivered to the fabric)
-// NOTE: intended to be run while holding ADU lock
-// parameters: i_target => P8 chip target
-// i_write_data => 64-bits of data to be written
-// i_override_itag => set value of itag (65th) bit?
-// i_write_itag => value of itag (65th) bit to be written if
-// i_override_itag=true
-// i_override_ecc => set override ECC value?
-// i_write_ecc => value of ECC to be written if
-// i_override_ecc=true
-// returns: FAPI_RC_SUCCESS if register writes are successful,
-// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
-// ADU atomic lock,
-// else error
-fapi::ReturnCode proc_adu_utils_set_adu_data_registers(
- const fapi::Target& i_target,
- const uint64_t i_write_data,
- const bool i_override_itag,
- const bool i_write_itag,
- const bool i_override_ecc,
- const uint8_t i_write_ecc);
-
-// function: read ADU Data & Force ECC registers (to get inbound data
-// delivered from the fabric)
-// NOTE: intended to be run while holding ADU lock
-// parameters: i_target => P8 chip target
-// i_get_itag => get value of itag (65th) bit?
-// o_read_data => 64-bits of data read
-// o_read_itag => value of itag (65th) bit read (only valid
-// if i_get_itag=true)
-// returns: FAPI_RC_SUCCESS if register reads are successful,
-// FAPI_RC_PLAT_ERR_ADU_LOCKED if operation failed due to state of
-// ADU atomic lock,
-// else error
-fapi::ReturnCode proc_adu_utils_get_adu_data_registers(
- const fapi::Target& i_target,
- const bool i_get_itag,
- uint64_t& o_read_data,
- bool& o_read_itag);
-
-} // extern "C"
-
-#endif // _PROC_ADU_UTILS_H_
OpenPOWER on IntegriCloud