summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWael El-Essawy <welessa@us.ibm.com>2016-01-19 13:22:06 -0600
committerWael El-Essawy <welessa@us.ibm.com>2016-04-05 12:42:49 -0400
commit1c880c957a74d066ae23bab4a52b63bcf5824293 (patch)
treecf142f293b436e786011cd9f42e6a1f80b8f3ffd /src
parent24f4095cc418f3a4b8a434e6d99e6a6d6c59a2be (diff)
downloadtalos-occ-1c880c957a74d066ae23bab4a52b63bcf5824293.tar.gz
talos-occ-1c880c957a74d066ae23bab4a52b63bcf5824293.zip
Enable Master-slave OCC communication
Change-Id: I445072e20d599e30f80cc8059b3f3b2a956c453e RTC: 133154 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22005 Tested-by: FSP CI Jenkins Reviewed-by: Martha Broyles <mbroyles@us.ibm.com> Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/include/registers/pba_firmware_constants.h51
-rw-r--r--src/include/registers/pba_firmware_registers.h2590
-rw-r--r--src/include/registers/pba_register_addresses.h168
-rw-r--r--src/lib/common/string.h5
-rwxr-xr-xsrc/occ_405/amec/amec_amester.c1
-rwxr-xr-xsrc/occ_405/amec/amec_parm_table.c3
-rwxr-xr-xsrc/occ_405/amec/amec_pcap.c3
-rwxr-xr-xsrc/occ_405/amec/amec_sensors_power.c4
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp.c4
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds.c22
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c2
-rwxr-xr-xsrc/occ_405/dcom/dcom.c310
-rwxr-xr-xsrc/occ_405/dcom/dcom.h25
-rw-r--r--src/occ_405/dcom/dcomMasterTx.c5
-rw-r--r--src/occ_405/dcom/dcomSlaveRx.c14
-rwxr-xr-xsrc/occ_405/dcom/dcomSlaveTx.c4
-rwxr-xr-xsrc/occ_405/errl/errl.c2
-rwxr-xr-xsrc/occ_405/homer.c6
-rw-r--r--src/occ_405/img_defs.mk10
-rwxr-xr-xsrc/occ_405/main.c63
-rw-r--r--src/occ_405/occLinkInputFile5
-rwxr-xr-xsrc/occ_405/occ_sys_config.c6
-rwxr-xr-xsrc/occ_405/occ_sys_config.h2
-rwxr-xr-xsrc/occ_405/proc/proc_pstate.c2
-rwxr-xr-xsrc/occ_405/rtls/rtls.h8
-rwxr-xr-xsrc/occ_405/rtls/rtls_tables.c240
-rwxr-xr-xsrc/occ_405/ssx_app_cfg.h4
-rw-r--r--src/occ_405/topfiles.mk7
-rwxr-xr-xsrc/occ_405/trac/trac.h15
-rw-r--r--src/ssx/occhw/occhw.h14
-rw-r--r--src/ssx/occhw/occhw_async.c5
-rw-r--r--src/ssx/occhw/occhw_async.h6
-rw-r--r--src/ssx/occhw/occhw_async_pba.c6
-rw-r--r--src/ssx/occhw/occhw_init.c3
-rw-r--r--src/ssx/occhw/occhw_pba.c12
-rw-r--r--src/ssx/ssx/ssx_api.h18
-rw-r--r--src/ssx/trace/ssx_trace.h1
-rw-r--r--src/ssx/trace/ssx_trace_core.c4
38 files changed, 1625 insertions, 2025 deletions
diff --git a/src/include/registers/pba_firmware_constants.h b/src/include/registers/pba_firmware_constants.h
new file mode 100644
index 0000000..d4b66fb
--- /dev/null
+++ b/src/include/registers/pba_firmware_constants.h
@@ -0,0 +1,51 @@
+#define PBA_BARN_CMD_SCOPE_MASK SIXTYFOUR_BIT_CONSTANT(0xe000000000000000)
+#define PBA_BARN_ADDR_MASK SIXTYFOUR_BIT_CONSTANT(0x0003fffffff00000)
+#define PBA_BARMSKN_MASK_MASK SIXTYFOUR_BIT_CONSTANT(0x000001fffff00000)
+#define PBA_BCUE_CTL_STOP SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PBA_BCUE_CTL_START SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PBA_BCDE_CTL_STOP SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PBA_BCDE_CTL_START SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PBA_FIR_OCI_APAR_ERR SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PBA_FIR_PB_RDADRERR_FW SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PBA_FIR_PB_RDDATATO_FW SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define PBA_FIR_PB_SUE_FW SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define PBA_FIR_PB_UE_FW SIXTYFOUR_BIT_CONSTANT(0x0800000000000000)
+#define PBA_FIR_PB_CE_FW SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
+#define PBA_FIR_OCI_SLAVE_INIT SIXTYFOUR_BIT_CONSTANT(0x0200000000000000)
+#define PBA_FIR_OCI_WRPAR_ERR SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
+#define PBA_FIR_OCI_REREQTO SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PBA_FIR_PB_UNEXPCRESP SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PBA_FIR_PB_UNEXPDATA SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define PBA_FIR_PB_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
+#define PBA_FIR_PB_WRADRERR_FW SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
+#define PBA_FIR_PB_BADCRESP SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
+#define PBA_FIR_PB_ACKDEAD_FW SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#define PBA_FIR_PB_CRESPTO SIXTYFOUR_BIT_CONSTANT(0x0001000000000000)
+#define PBA_FIR_BCUE_SETUP_ERR SIXTYFOUR_BIT_CONSTANT(0x0000800000000000)
+#define PBA_FIR_BCUE_PB_ACK_DEAD SIXTYFOUR_BIT_CONSTANT(0x0000400000000000)
+#define PBA_FIR_BCUE_PB_ADRERR SIXTYFOUR_BIT_CONSTANT(0x0000200000000000)
+#define PBA_FIR_BCUE_OCI_DATAERR SIXTYFOUR_BIT_CONSTANT(0x0000100000000000)
+#define PBA_FIR_BCDE_SETUP_ERR SIXTYFOUR_BIT_CONSTANT(0x0000080000000000)
+#define PBA_FIR_BCDE_PB_ACK_DEAD SIXTYFOUR_BIT_CONSTANT(0x0000040000000000)
+#define PBA_FIR_BCDE_PB_ADRERR SIXTYFOUR_BIT_CONSTANT(0x0000020000000000)
+#define PBA_FIR_BCDE_RDDATATO_ERR SIXTYFOUR_BIT_CONSTANT(0x0000010000000000)
+#define PBA_FIR_BCDE_SUE_ERR SIXTYFOUR_BIT_CONSTANT(0x0000008000000000)
+#define PBA_FIR_BCDE_UE_ERR SIXTYFOUR_BIT_CONSTANT(0x0000004000000000)
+#define PBA_FIR_BCDE_CE SIXTYFOUR_BIT_CONSTANT(0x0000002000000000)
+#define PBA_FIR_BCDE_OCI_DATAERR SIXTYFOUR_BIT_CONSTANT(0x0000001000000000)
+#define PBA_FIR_INTERNAL_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000800000000)
+#define PBA_FIR_ILLEGAL_CACHE_OP SIXTYFOUR_BIT_CONSTANT(0x0000000400000000)
+#define PBA_FIR_OCI_BAD_REG_ADDR SIXTYFOUR_BIT_CONSTANT(0x0000000200000000)
+#define PBA_FIR_AXPUSH_WRERR SIXTYFOUR_BIT_CONSTANT(0x0000000100000000)
+#define PBA_FIR_AXRCV_DLO_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000080000000)
+#define PBA_FIR_AXRCV_DLO_TO SIXTYFOUR_BIT_CONSTANT(0x0000000040000000)
+#define PBA_FIR_AXRCV_RSVDATA_TO SIXTYFOUR_BIT_CONSTANT(0x0000000020000000)
+#define PBA_FIR_AXFLOW_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000010000000)
+#define PBA_FIR_AXSND_DHI_RTYTO SIXTYFOUR_BIT_CONSTANT(0x0000000008000000)
+#define PBA_FIR_AXSND_DLO_RTYTO SIXTYFOUR_BIT_CONSTANT(0x0000000004000000)
+#define PBA_FIR_AXSND_RSVTO SIXTYFOUR_BIT_CONSTANT(0x0000000002000000)
+#define PBA_FIR_AXSND_RSVERR SIXTYFOUR_BIT_CONSTANT(0x0000000001000000)
+#define PBA_FIR_PB_ACKDEAD_FW_WR SIXTYFOUR_BIT_CONSTANT(0x0000000000800000)
+#define PBA_FIR_FIR_PARITY_ERR2 SIXTYFOUR_BIT_CONSTANT(0x0000000000080000)
+#define PBA_FIR_FIR_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000000040000)
+
diff --git a/src/include/registers/pba_firmware_registers.h b/src/include/registers/pba_firmware_registers.h
index e1b9f24..96e0b63 100644
--- a/src/include/registers/pba_firmware_registers.h
+++ b/src/include/registers/pba_firmware_registers.h
@@ -1,34 +1,10 @@
-/* IBM_PROLOG_BEGIN_TAG */
-/* This is an automatically generated prolog. */
-/* */
-/* $Source: src/include/registers/pba_firmware_registers.h $ */
-/* */
-/* OpenPOWER OnChipController Project */
-/* */
-/* Contributors Listed Below - COPYRIGHT 2015 */
-/* [+] 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 __PBA_FIRMWARE_REGISTERS_H__
#define __PBA_FIRMWARE_REGISTERS_H__
-// $Id: pba_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:23 bcbrock Exp $
-// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pba_firmware_registers.h,v $
+// $Id$
+// $Source$
//-----------------------------------------------------------------------------
-// *! (C) Copyright International Business Machines Corp. 2013
+// *! (C) Copyright International Business Machines Corp. 2015
// *! All Rights Reserved -- Property of IBM
// *! *** IBM Confidential ***
//-----------------------------------------------------------------------------
@@ -49,11 +25,11 @@
#ifndef __ASSEMBLER__
#include <stdint.h>
+#include "pba_firmware_constants.h"
-
-typedef union pba_barn {
+typedef union pba_mode {
uint64_t value;
struct {
@@ -67,28 +43,74 @@ typedef union pba_barn {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t cmd_scope : 3;
- uint64_t reserved0 : 1;
- uint64_t reserved1 : 10;
- uint64_t addr : 30;
- uint64_t _reserved0 : 20;
-#else
- uint64_t _reserved0 : 20;
- uint64_t addr : 30;
- uint64_t reserved1 : 10;
- uint64_t reserved0 : 1;
- uint64_t cmd_scope : 3;
+ uint64_t reserved1 : 4;
+ uint64_t dis_rearb : 1;
+ uint64_t dis_mstid_match_pref_inv : 1;
+ uint64_t dis_slave_rdpipe : 1;
+ uint64_t dis_slave_wrpipe : 1;
+ uint64_t en_marker_ack : 1;
+ uint64_t reserved2 : 1;
+ uint64_t en_second_wrbuf : 1;
+ uint64_t dis_rerequest_to : 1;
+ uint64_t inject_type : 2;
+ uint64_t inject_mode : 2;
+ uint64_t pba_region : 2;
+ uint64_t oci_marker_space : 3;
+ uint64_t bcde_ocitrans : 2;
+ uint64_t bcue_ocitrans : 2;
+ uint64_t dis_master_rd_pipe : 1;
+ uint64_t dis_master_wr_pipe : 1;
+ uint64_t en_slv_fairness : 1;
+ uint64_t en_event_count : 1;
+ uint64_t pb_noci_event_sel : 1;
+ uint64_t slv_event_mux : 2;
+ uint64_t enable_debug_bus : 1;
+ uint64_t debug_pb_not_oci : 1;
+ uint64_t debug_oci_mode : 5;
+ uint64_t reserved3 : 1;
+ uint64_t ocislv_fairness_mask : 5;
+ uint64_t ocislv_rereq_hang_div : 5;
+ uint64_t dis_chgrate_count : 1;
+ uint64_t pbreq_event_mux : 2;
+ uint64_t reserved4 : 11;
+#else
+ uint64_t reserved4 : 11;
+ uint64_t pbreq_event_mux : 2;
+ uint64_t dis_chgrate_count : 1;
+ uint64_t ocislv_rereq_hang_div : 5;
+ uint64_t ocislv_fairness_mask : 5;
+ uint64_t reserved3 : 1;
+ uint64_t debug_oci_mode : 5;
+ uint64_t debug_pb_not_oci : 1;
+ uint64_t enable_debug_bus : 1;
+ uint64_t slv_event_mux : 2;
+ uint64_t pb_noci_event_sel : 1;
+ uint64_t en_event_count : 1;
+ uint64_t en_slv_fairness : 1;
+ uint64_t dis_master_wr_pipe : 1;
+ uint64_t dis_master_rd_pipe : 1;
+ uint64_t bcue_ocitrans : 2;
+ uint64_t bcde_ocitrans : 2;
+ uint64_t oci_marker_space : 3;
+ uint64_t pba_region : 2;
+ uint64_t inject_mode : 2;
+ uint64_t inject_type : 2;
+ uint64_t dis_rerequest_to : 1;
+ uint64_t en_second_wrbuf : 1;
+ uint64_t reserved2 : 1;
+ uint64_t en_marker_ack : 1;
+ uint64_t dis_slave_wrpipe : 1;
+ uint64_t dis_slave_rdpipe : 1;
+ uint64_t dis_mstid_match_pref_inv : 1;
+ uint64_t dis_rearb : 1;
+ uint64_t reserved1 : 4;
#endif // _BIG_ENDIAN
} fields;
-} pba_barn_t;
+} pba_mode_t;
-#endif // __ASSEMBLER__
-#define PBA_BARN_CMD_SCOPE_MASK SIXTYFOUR_BIT_CONSTANT(0xe000000000000000)
-#define PBA_BARN_ADDR_MASK SIXTYFOUR_BIT_CONSTANT(0x0003fffffff00000)
-#ifndef __ASSEMBLER__
-typedef union pba_barmskn {
+typedef union pba_slvrst {
uint64_t value;
struct {
@@ -102,23 +124,26 @@ typedef union pba_barmskn {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t reserved0 : 23;
- uint64_t mask : 21;
- uint64_t _reserved0 : 20;
+ uint64_t set : 3;
+ uint64_t reserved1 : 1;
+ uint64_t in_prog : 4;
+ uint64_t busy_status : 4;
+ uint64_t scope_attn_bar : 2;
+ uint64_t reserved2 : 50;
#else
- uint64_t _reserved0 : 20;
- uint64_t mask : 21;
- uint64_t reserved0 : 23;
+ uint64_t reserved2 : 50;
+ uint64_t scope_attn_bar : 2;
+ uint64_t busy_status : 4;
+ uint64_t in_prog : 4;
+ uint64_t reserved1 : 1;
+ uint64_t set : 3;
#endif // _BIG_ENDIAN
} fields;
-} pba_barmskn_t;
+} pba_slvrst_t;
-#endif // __ASSEMBLER__
-#define PBA_BARMSKN_MASK_MASK SIXTYFOUR_BIT_CONSTANT(0x000001fffff00000)
-#ifndef __ASSEMBLER__
-typedef union pba_fir {
+typedef union pba_slvctln {
uint64_t value;
struct {
@@ -132,149 +157,54 @@ typedef union pba_fir {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t enable : 1;
+ uint64_t mid_match_value : 3;
+ uint64_t reserved1 : 1;
+ uint64_t mid_care_mask : 3;
+ uint64_t write_ttype : 3;
+ uint64_t reserved2 : 4;
+ uint64_t read_ttype : 1;
+ uint64_t read_prefetch_ctl : 2;
+ uint64_t buf_invalidate_ctl : 1;
+ uint64_t buf_alloc_w : 1;
+ uint64_t buf_alloc_a : 1;
+ uint64_t buf_alloc_b : 1;
+ uint64_t buf_alloc_c : 1;
+ uint64_t reserved3 : 1;
+ uint64_t dis_write_gather : 1;
+ uint64_t wr_gather_timeout : 3;
+ uint64_t write_tsize : 8;
+ uint64_t extaddr : 14;
+ uint64_t reserved4 : 1;
+ uint64_t reserved5 : 13;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved5 : 13;
+ uint64_t reserved4 : 1;
+ uint64_t extaddr : 14;
+ uint64_t write_tsize : 8;
+ uint64_t wr_gather_timeout : 3;
+ uint64_t dis_write_gather : 1;
+ uint64_t reserved3 : 1;
+ uint64_t buf_alloc_c : 1;
+ uint64_t buf_alloc_b : 1;
+ uint64_t buf_alloc_a : 1;
+ uint64_t buf_alloc_w : 1;
+ uint64_t buf_invalidate_ctl : 1;
+ uint64_t read_prefetch_ctl : 2;
+ uint64_t read_ttype : 1;
+ uint64_t reserved2 : 4;
+ uint64_t write_ttype : 3;
+ uint64_t mid_care_mask : 3;
+ uint64_t reserved1 : 1;
+ uint64_t mid_match_value : 3;
+ uint64_t enable : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_fir_t;
+} pba_slvctln_t;
-#endif // __ASSEMBLER__
-#define PBA_FIR_OCI_APAR_ERR SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
-#define PBA_FIR_PB_RDADRERR_FW SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
-#define PBA_FIR_PB_RDDATATO_FW SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
-#define PBA_FIR_PB_SUE_FW SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
-#define PBA_FIR_PB_UE_FW SIXTYFOUR_BIT_CONSTANT(0x0800000000000000)
-#define PBA_FIR_PB_CE_FW SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
-#define PBA_FIR_OCI_SLAVE_INIT SIXTYFOUR_BIT_CONSTANT(0x0200000000000000)
-#define PBA_FIR_OCI_WRPAR_ERR SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
-#define PBA_FIR_OCI_REREQTO SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
-#define PBA_FIR_PB_UNEXPCRESP SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
-#define PBA_FIR_PB_UNEXPDATA SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
-#define PBA_FIR_PB_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
-#define PBA_FIR_PB_WRADRERR_FW SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
-#define PBA_FIR_PB_BADCRESP SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
-#define PBA_FIR_PB_ACKDEAD_FW SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
-#define PBA_FIR_PB_CRESPTO SIXTYFOUR_BIT_CONSTANT(0x0001000000000000)
-#define PBA_FIR_BCUE_SETUP_ERR SIXTYFOUR_BIT_CONSTANT(0x0000800000000000)
-#define PBA_FIR_BCUE_PB_ACK_DEAD SIXTYFOUR_BIT_CONSTANT(0x0000400000000000)
-#define PBA_FIR_BCUE_PB_ADRERR SIXTYFOUR_BIT_CONSTANT(0x0000200000000000)
-#define PBA_FIR_BCUE_OCI_DATAERR SIXTYFOUR_BIT_CONSTANT(0x0000100000000000)
-#define PBA_FIR_BCDE_SETUP_ERR SIXTYFOUR_BIT_CONSTANT(0x0000080000000000)
-#define PBA_FIR_BCDE_PB_ACK_DEAD SIXTYFOUR_BIT_CONSTANT(0x0000040000000000)
-#define PBA_FIR_BCDE_PB_ADRERR SIXTYFOUR_BIT_CONSTANT(0x0000020000000000)
-#define PBA_FIR_BCDE_RDDATATO_ERR SIXTYFOUR_BIT_CONSTANT(0x0000010000000000)
-#define PBA_FIR_BCDE_SUE_ERR SIXTYFOUR_BIT_CONSTANT(0x0000008000000000)
-#define PBA_FIR_BCDE_UE_ERR SIXTYFOUR_BIT_CONSTANT(0x0000004000000000)
-#define PBA_FIR_BCDE_CE SIXTYFOUR_BIT_CONSTANT(0x0000002000000000)
-#define PBA_FIR_BCDE_OCI_DATAERR SIXTYFOUR_BIT_CONSTANT(0x0000001000000000)
-#define PBA_FIR_INTERNAL_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000800000000)
-#define PBA_FIR_ILLEGAL_CACHE_OP SIXTYFOUR_BIT_CONSTANT(0x0000000400000000)
-#define PBA_FIR_OCI_BAD_REG_ADDR SIXTYFOUR_BIT_CONSTANT(0x0000000200000000)
-#define PBA_FIR_AXPUSH_WRERR SIXTYFOUR_BIT_CONSTANT(0x0000000100000000)
-#define PBA_FIR_AXRCV_DLO_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000080000000)
-#define PBA_FIR_AXRCV_DLO_TO SIXTYFOUR_BIT_CONSTANT(0x0000000040000000)
-#define PBA_FIR_AXRCV_RSVDATA_TO SIXTYFOUR_BIT_CONSTANT(0x0000000020000000)
-#define PBA_FIR_AXFLOW_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000010000000)
-#define PBA_FIR_AXSND_DHI_RTYTO SIXTYFOUR_BIT_CONSTANT(0x0000000008000000)
-#define PBA_FIR_AXSND_DLO_RTYTO SIXTYFOUR_BIT_CONSTANT(0x0000000004000000)
-#define PBA_FIR_AXSND_RSVTO SIXTYFOUR_BIT_CONSTANT(0x0000000002000000)
-#define PBA_FIR_AXSND_RSVERR SIXTYFOUR_BIT_CONSTANT(0x0000000001000000)
-#define PBA_FIR_PB_ACKDEAD_FW_WR SIXTYFOUR_BIT_CONSTANT(0x0000000000800000)
-#define PBA_FIR_FIR_PARITY_ERR2 SIXTYFOUR_BIT_CONSTANT(0x0000000000080000)
-#define PBA_FIR_FIR_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000000040000)
-#ifndef __ASSEMBLER__
-typedef union pba_fir_and {
+typedef union pba_bcde_ctl {
uint64_t value;
struct {
@@ -288,104 +218,20 @@ typedef union pba_fir_and {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t stop : 1;
+ uint64_t start : 1;
+ uint64_t reserved1 : 62;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved1 : 62;
+ uint64_t start : 1;
+ uint64_t stop : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_fir_and_t;
+} pba_bcde_ctl_t;
-typedef union pba_fir_or {
+typedef union pba_bcde_set {
uint64_t value;
struct {
@@ -399,104 +245,20 @@ typedef union pba_fir_or {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t reserved1 : 2;
+ uint64_t copy_length : 6;
+ uint64_t reserved2 : 56;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved2 : 56;
+ uint64_t copy_length : 6;
+ uint64_t reserved1 : 2;
#endif // _BIG_ENDIAN
} fields;
-} pba_fir_or_t;
+} pba_bcde_set_t;
-typedef union pba_firmask {
+typedef union pba_bcde_stat {
uint64_t value;
struct {
@@ -510,104 +272,34 @@ typedef union pba_firmask {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t running : 1;
+ uint64_t waiting : 1;
+ uint64_t wrcmp : 6;
+ uint64_t reserved1 : 6;
+ uint64_t rdcmp : 6;
+ uint64_t debug : 9;
+ uint64_t stopped : 1;
+ uint64_t error : 1;
+ uint64_t done : 1;
+ uint64_t reserved2 : 32;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved2 : 32;
+ uint64_t done : 1;
+ uint64_t error : 1;
+ uint64_t stopped : 1;
+ uint64_t debug : 9;
+ uint64_t rdcmp : 6;
+ uint64_t reserved1 : 6;
+ uint64_t wrcmp : 6;
+ uint64_t waiting : 1;
+ uint64_t running : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_firmask_t;
+} pba_bcde_stat_t;
-typedef union pba_firmask_and {
+typedef union pba_bcde_pbadr {
uint64_t value;
struct {
@@ -621,104 +313,26 @@ typedef union pba_firmask_and {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t reserved1 : 2;
+ uint64_t pb_offset : 23;
+ uint64_t reserved2 : 2;
+ uint64_t extaddr : 14;
+ uint64_t reserved3 : 2;
+ uint64_t reserved4 : 21;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved4 : 21;
+ uint64_t reserved3 : 2;
+ uint64_t extaddr : 14;
+ uint64_t reserved2 : 2;
+ uint64_t pb_offset : 23;
+ uint64_t reserved1 : 2;
#endif // _BIG_ENDIAN
} fields;
-} pba_firmask_and_t;
+} pba_bcde_pbadr_t;
-typedef union pba_firmask_or {
+typedef union pba_bcde_ocibar {
uint64_t value;
struct {
@@ -732,104 +346,18 @@ typedef union pba_firmask_or {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t addr : 25;
+ uint64_t reserved1 : 39;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved1 : 39;
+ uint64_t addr : 25;
#endif // _BIG_ENDIAN
} fields;
-} pba_firmask_or_t;
+} pba_bcde_ocibar_t;
-typedef union pba_firact0 {
+typedef union pba_bcue_ctl {
uint64_t value;
struct {
@@ -843,104 +371,20 @@ typedef union pba_firact0 {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t stop : 1;
+ uint64_t start : 1;
+ uint64_t reserved1 : 62;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved1 : 62;
+ uint64_t start : 1;
+ uint64_t stop : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_firact0_t;
+} pba_bcue_ctl_t;
-typedef union pba_firact1 {
+typedef union pba_bcue_set {
uint64_t value;
struct {
@@ -954,104 +398,20 @@ typedef union pba_firact1 {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t reserved1 : 2;
+ uint64_t copy_length : 6;
+ uint64_t reserved2 : 56;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved2 : 56;
+ uint64_t copy_length : 6;
+ uint64_t reserved1 : 2;
#endif // _BIG_ENDIAN
} fields;
-} pba_firact1_t;
+} pba_bcue_set_t;
-typedef union pba_occact {
+typedef union pba_bcue_stat {
uint64_t value;
struct {
@@ -1065,104 +425,34 @@ typedef union pba_occact {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t oci_apar_err : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t oci_slave_init : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_rereqto : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_crespto : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t internal_err : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axflow_err : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t reserved41 : 3;
- uint64_t fir_parity_err2 : 1;
- uint64_t fir_parity_err : 1;
- uint64_t _reserved0 : 18;
+ uint64_t running : 1;
+ uint64_t waiting : 1;
+ uint64_t wrcmp : 6;
+ uint64_t reserved1 : 6;
+ uint64_t rdcmp : 6;
+ uint64_t debug : 9;
+ uint64_t stopped : 1;
+ uint64_t error : 1;
+ uint64_t done : 1;
+ uint64_t reserved2 : 32;
#else
- uint64_t _reserved0 : 18;
- uint64_t fir_parity_err : 1;
- uint64_t fir_parity_err2 : 1;
- uint64_t reserved41 : 3;
- uint64_t pb_ackdead_fw_wr : 1;
- uint64_t axsnd_rsverr : 1;
- uint64_t axsnd_rsvto : 1;
- uint64_t axsnd_dlo_rtyto : 1;
- uint64_t axsnd_dhi_rtyto : 1;
- uint64_t axflow_err : 1;
- uint64_t axrcv_rsvdata_to : 1;
- uint64_t axrcv_dlo_to : 1;
- uint64_t axrcv_dlo_err : 1;
- uint64_t axpush_wrerr : 1;
- uint64_t oci_bad_reg_addr : 1;
- uint64_t illegal_cache_op : 1;
- uint64_t internal_err : 1;
- uint64_t bcde_oci_dataerr : 1;
- uint64_t bcde_ce : 1;
- uint64_t bcde_ue_err : 1;
- uint64_t bcde_sue_err : 1;
- uint64_t bcde_rddatato_err : 1;
- uint64_t bcde_pb_adrerr : 1;
- uint64_t bcde_pb_ack_dead : 1;
- uint64_t bcde_setup_err : 1;
- uint64_t bcue_oci_dataerr : 1;
- uint64_t bcue_pb_adrerr : 1;
- uint64_t bcue_pb_ack_dead : 1;
- uint64_t bcue_setup_err : 1;
- uint64_t pb_crespto : 1;
- uint64_t pb_ackdead_fw : 1;
- uint64_t pb_badcresp : 1;
- uint64_t pb_wradrerr_fw : 1;
- uint64_t pb_parity_err : 1;
- uint64_t pb_unexpdata : 1;
- uint64_t pb_unexpcresp : 1;
- uint64_t oci_rereqto : 1;
- uint64_t oci_wrpar_err : 1;
- uint64_t oci_slave_init : 1;
- uint64_t pb_ce_fw : 1;
- uint64_t pb_ue_fw : 1;
- uint64_t pb_sue_fw : 1;
- uint64_t pb_rddatato_fw : 1;
- uint64_t pb_rdadrerr_fw : 1;
- uint64_t oci_apar_err : 1;
+ uint64_t reserved2 : 32;
+ uint64_t done : 1;
+ uint64_t error : 1;
+ uint64_t stopped : 1;
+ uint64_t debug : 9;
+ uint64_t rdcmp : 6;
+ uint64_t reserved1 : 6;
+ uint64_t wrcmp : 6;
+ uint64_t waiting : 1;
+ uint64_t running : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_occact_t;
+} pba_bcue_stat_t;
-typedef union pba_cfg {
+typedef union pba_bcue_pbadr {
uint64_t value;
struct {
@@ -1176,62 +466,26 @@ typedef union pba_cfg {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t pbreq_slvfw_max_priority : 2;
- uint64_t pbreq_bce_max_priority : 2;
- uint64_t pbreq_data_hang_div : 5;
- uint64_t pbreq_oper_hang_div : 5;
- uint64_t pbreq_drop_priority_mask : 6;
- uint64_t reserved20 : 4;
- uint64_t chsw_hang_on_adrerror : 1;
- uint64_t chsw_dis_ociabuspar_check : 1;
- uint64_t chsw_dis_ocibepar_check : 1;
- uint64_t chsw_hang_on_derror : 1;
- uint64_t chsw_hang_on_rereq_timeout : 1;
- uint64_t chsw_dis_write_match_rearb : 1;
- uint64_t chsw_dis_ocidatapar_gen : 1;
- uint64_t chsw_dis_ocidatapar_check : 1;
- uint64_t chsw_dis_oper_hang : 1;
- uint64_t chsw_dis_data_hang : 1;
- uint64_t chsw_dis_ecc_check : 1;
- uint64_t chsw_dis_retry_backoff : 1;
- uint64_t chsw_hang_on_invalid_cresp : 1;
- uint64_t chsw_en_scopeinc_on_bkill_inc : 1;
- uint64_t chsw_dis_group_scope : 1;
- uint64_t chsw_dis_rtag_parity_chk : 1;
- uint64_t chsw_dis_pb_parity_chk : 1;
- uint64_t _reserved0 : 23;
+ uint64_t reserved1 : 2;
+ uint64_t pb_offset : 23;
+ uint64_t reserved2 : 2;
+ uint64_t extaddr : 14;
+ uint64_t reserved3 : 2;
+ uint64_t reserved4 : 21;
#else
- uint64_t _reserved0 : 23;
- uint64_t chsw_dis_pb_parity_chk : 1;
- uint64_t chsw_dis_rtag_parity_chk : 1;
- uint64_t chsw_dis_group_scope : 1;
- uint64_t chsw_en_scopeinc_on_bkill_inc : 1;
- uint64_t chsw_hang_on_invalid_cresp : 1;
- uint64_t chsw_dis_retry_backoff : 1;
- uint64_t chsw_dis_ecc_check : 1;
- uint64_t chsw_dis_data_hang : 1;
- uint64_t chsw_dis_oper_hang : 1;
- uint64_t chsw_dis_ocidatapar_check : 1;
- uint64_t chsw_dis_ocidatapar_gen : 1;
- uint64_t chsw_dis_write_match_rearb : 1;
- uint64_t chsw_hang_on_rereq_timeout : 1;
- uint64_t chsw_hang_on_derror : 1;
- uint64_t chsw_dis_ocibepar_check : 1;
- uint64_t chsw_dis_ociabuspar_check : 1;
- uint64_t chsw_hang_on_adrerror : 1;
- uint64_t reserved20 : 4;
- uint64_t pbreq_drop_priority_mask : 6;
- uint64_t pbreq_oper_hang_div : 5;
- uint64_t pbreq_data_hang_div : 5;
- uint64_t pbreq_bce_max_priority : 2;
- uint64_t pbreq_slvfw_max_priority : 2;
+ uint64_t reserved4 : 21;
+ uint64_t reserved3 : 2;
+ uint64_t extaddr : 14;
+ uint64_t reserved2 : 2;
+ uint64_t pb_offset : 23;
+ uint64_t reserved1 : 2;
#endif // _BIG_ENDIAN
} fields;
-} pba_cfg_t;
+} pba_bcue_pbadr_t;
-typedef union pba_errpt0 {
+typedef union pba_bcue_ocibar {
uint64_t value;
struct {
@@ -1245,30 +499,18 @@ typedef union pba_errpt0 {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t cerr_pb_rddatato_fw : 6;
- uint64_t cerr_pb_rdadrerr_fw : 6;
- uint64_t cerr_pb_wradrerr_fw : 4;
- uint64_t cerr_pb_ackdead_fw_rd : 6;
- uint64_t cerr_pb_ackdead_fw_wr : 2;
- uint64_t cerr_pb_unexpcresp : 11;
- uint64_t cerr_pb_unexpdata : 6;
- uint64_t _reserved0 : 23;
+ uint64_t addr : 25;
+ uint64_t reserved1 : 39;
#else
- uint64_t _reserved0 : 23;
- uint64_t cerr_pb_unexpdata : 6;
- uint64_t cerr_pb_unexpcresp : 11;
- uint64_t cerr_pb_ackdead_fw_wr : 2;
- uint64_t cerr_pb_ackdead_fw_rd : 6;
- uint64_t cerr_pb_wradrerr_fw : 4;
- uint64_t cerr_pb_rdadrerr_fw : 6;
- uint64_t cerr_pb_rddatato_fw : 6;
+ uint64_t reserved1 : 39;
+ uint64_t addr : 25;
#endif // _BIG_ENDIAN
} fields;
-} pba_errpt0_t;
+} pba_bcue_ocibar_t;
-typedef union pba_errpt1 {
+typedef union pba_pbocrn {
uint64_t value;
struct {
@@ -1282,28 +524,22 @@ typedef union pba_errpt1 {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t cerr_pb_badcresp : 12;
- uint64_t cerr_pb_crespto : 12;
- uint64_t cerr_oci_rereqto : 6;
- uint64_t cerr_bcde_setup_err : 2;
- uint64_t cerr_bcue_setup_err : 2;
- uint64_t cerr_bcue_oci_dataerr : 2;
- uint64_t _reserved0 : 28;
+ uint64_t reserved1 : 16;
+ uint64_t event : 16;
+ uint64_t reserved2 : 12;
+ uint64_t accum : 20;
#else
- uint64_t _reserved0 : 28;
- uint64_t cerr_bcue_oci_dataerr : 2;
- uint64_t cerr_bcue_setup_err : 2;
- uint64_t cerr_bcde_setup_err : 2;
- uint64_t cerr_oci_rereqto : 6;
- uint64_t cerr_pb_crespto : 12;
- uint64_t cerr_pb_badcresp : 12;
+ uint64_t accum : 20;
+ uint64_t reserved2 : 12;
+ uint64_t event : 16;
+ uint64_t reserved1 : 16;
#endif // _BIG_ENDIAN
} fields;
-} pba_errpt1_t;
+} pba_pbocrn_t;
-typedef union pba_errpt2 {
+typedef union pba_xsndtx {
uint64_t value;
struct {
@@ -1317,36 +553,38 @@ typedef union pba_errpt2 {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t cerr_slv_internal_err : 8;
- uint64_t cerr_bcde_internal_err : 4;
- uint64_t cerr_bcue_internal_err : 4;
- uint64_t cerr_bar_parity_err : 1;
- uint64_t cerr_scomtb_err : 1;
- uint64_t reserved18 : 2;
- uint64_t cerr_pbdout_parity_err : 1;
- uint64_t cerr_pb_parity_err : 3;
- uint64_t cerr_axflow_err : 5;
- uint64_t cerr_axpush_wrerr : 2;
- uint64_t _reserved0 : 33;
-#else
- uint64_t _reserved0 : 33;
- uint64_t cerr_axpush_wrerr : 2;
- uint64_t cerr_axflow_err : 5;
- uint64_t cerr_pb_parity_err : 3;
- uint64_t cerr_pbdout_parity_err : 1;
- uint64_t reserved18 : 2;
- uint64_t cerr_scomtb_err : 1;
- uint64_t cerr_bar_parity_err : 1;
- uint64_t cerr_bcue_internal_err : 4;
- uint64_t cerr_bcde_internal_err : 4;
- uint64_t cerr_slv_internal_err : 8;
+ uint64_t snd_scope : 3;
+ uint64_t snd_qid : 1;
+ uint64_t snd_type : 1;
+ uint64_t snd_reservation : 1;
+ uint64_t reserved1 : 2;
+ uint64_t snd_groupid : 4;
+ uint64_t snd_chipid : 3;
+ uint64_t reserved2 : 1;
+ uint64_t vg_targe : 16;
+ uint64_t reserved3 : 27;
+ uint64_t snd_stop : 1;
+ uint64_t snd_cnt : 4;
+#else
+ uint64_t snd_cnt : 4;
+ uint64_t snd_stop : 1;
+ uint64_t reserved3 : 27;
+ uint64_t vg_targe : 16;
+ uint64_t reserved2 : 1;
+ uint64_t snd_chipid : 3;
+ uint64_t snd_groupid : 4;
+ uint64_t reserved1 : 2;
+ uint64_t snd_reservation : 1;
+ uint64_t snd_type : 1;
+ uint64_t snd_qid : 1;
+ uint64_t snd_scope : 3;
#endif // _BIG_ENDIAN
} fields;
-} pba_errpt2_t;
+} pba_xsndtx_t;
-typedef union pba_rbufvaln {
+typedef union pba_xcfg {
uint64_t value;
struct {
@@ -1360,36 +598,42 @@ typedef union pba_rbufvaln {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t rd_slvnum : 2;
- uint64_t cur_rd_addr : 23;
- uint64_t spare1 : 3;
- uint64_t prefetch : 1;
- uint64_t spare2 : 2;
- uint64_t abort : 1;
- uint64_t spare3 : 1;
- uint64_t buffer_status : 7;
- uint64_t spare4 : 1;
- uint64_t masterid : 3;
- uint64_t _reserved0 : 20;
+ uint64_t pbax_en : 1;
+ uint64_t reservation_en : 1;
+ uint64_t snd_reset : 1;
+ uint64_t rcv_reset : 1;
+ uint64_t rcv_groupid : 4;
+ uint64_t rcv_chipid : 3;
+ uint64_t reserved1 : 1;
+ uint64_t rcv_brdcst_group : 8;
+ uint64_t rcv_datato_div : 5;
+ uint64_t reserved2 : 2;
+ uint64_t snd_retry_count_overcom : 1;
+ uint64_t snd_retry_thresh : 8;
+ uint64_t snd_rsvto_div : 5;
+ uint64_t reserved3 : 23;
#else
- uint64_t _reserved0 : 20;
- uint64_t masterid : 3;
- uint64_t spare4 : 1;
- uint64_t buffer_status : 7;
- uint64_t spare3 : 1;
- uint64_t abort : 1;
- uint64_t spare2 : 2;
- uint64_t prefetch : 1;
- uint64_t spare1 : 3;
- uint64_t cur_rd_addr : 23;
- uint64_t rd_slvnum : 2;
+ uint64_t reserved3 : 23;
+ uint64_t snd_rsvto_div : 5;
+ uint64_t snd_retry_thresh : 8;
+ uint64_t snd_retry_count_overcom : 1;
+ uint64_t reserved2 : 2;
+ uint64_t rcv_datato_div : 5;
+ uint64_t rcv_brdcst_group : 8;
+ uint64_t reserved1 : 1;
+ uint64_t rcv_chipid : 3;
+ uint64_t rcv_groupid : 4;
+ uint64_t rcv_reset : 1;
+ uint64_t snd_reset : 1;
+ uint64_t reservation_en : 1;
+ uint64_t pbax_en : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_rbufvaln_t;
+} pba_xcfg_t;
-typedef union pba_wbufvaln {
+typedef union pba_xsndstat {
uint64_t value;
struct {
@@ -1403,28 +647,26 @@ typedef union pba_wbufvaln {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t wr_slvnum : 2;
- uint64_t start_wr_addr : 30;
- uint64_t spare1 : 3;
- uint64_t wr_buffer_status : 5;
- uint64_t spare2 : 1;
- uint64_t wr_byte_count : 7;
- uint64_t spare3 : 16;
+ uint64_t snd_in_progress : 1;
+ uint64_t snd_error : 1;
+ uint64_t snd_phase_status : 2;
+ uint64_t snd_cnt_status : 4;
+ uint64_t snd_retry_count : 8;
+ uint64_t reserved1 : 48;
#else
- uint64_t spare3 : 16;
- uint64_t wr_byte_count : 7;
- uint64_t spare2 : 1;
- uint64_t wr_buffer_status : 5;
- uint64_t spare1 : 3;
- uint64_t start_wr_addr : 30;
- uint64_t wr_slvnum : 2;
+ uint64_t reserved1 : 48;
+ uint64_t snd_retry_count : 8;
+ uint64_t snd_cnt_status : 4;
+ uint64_t snd_phase_status : 2;
+ uint64_t snd_error : 1;
+ uint64_t snd_in_progress : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_wbufvaln_t;
+} pba_xsndstat_t;
-typedef union pba_mode {
+typedef union pba_xsnddat {
uint64_t value;
struct {
@@ -1438,74 +680,18 @@ typedef union pba_mode {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t reserved0 : 4;
- uint64_t dis_rearb : 1;
- uint64_t dis_mstid_match_pref_inv : 1;
- uint64_t dis_slave_rdpipe : 1;
- uint64_t dis_slave_wrpipe : 1;
- uint64_t en_marker_ack : 1;
- uint64_t dis_slvmatch_order : 1;
- uint64_t en_second_wrbuf : 1;
- uint64_t dis_rerequest_to : 1;
- uint64_t inject_type : 2;
- uint64_t inject_mode : 2;
- uint64_t pba_region : 2;
- uint64_t oci_marker_space : 3;
- uint64_t bcde_ocitrans : 2;
- uint64_t bcue_ocitrans : 2;
- uint64_t dis_master_rd_pipe : 1;
- uint64_t dis_master_wr_pipe : 1;
- uint64_t en_slave_fairness : 1;
- uint64_t en_event_count : 1;
- uint64_t pb_noci_event_sel : 1;
- uint64_t slv_event_mux : 2;
- uint64_t enable_debug_bus : 1;
- uint64_t debug_pb_not_oci : 1;
- uint64_t debug_oci_mode : 5;
- uint64_t reserved2 : 1;
- uint64_t ocislv_fairness_mask : 5;
- uint64_t ocislv_rereq_hang_div : 5;
- uint64_t dis_chgrate_count : 1;
- uint64_t pbreq_event_mux : 2;
- uint64_t _reserved0 : 11;
+ uint64_t pbax_datahi : 32;
+ uint64_t pbax_datalo : 32;
#else
- uint64_t _reserved0 : 11;
- uint64_t pbreq_event_mux : 2;
- uint64_t dis_chgrate_count : 1;
- uint64_t ocislv_rereq_hang_div : 5;
- uint64_t ocislv_fairness_mask : 5;
- uint64_t reserved2 : 1;
- uint64_t debug_oci_mode : 5;
- uint64_t debug_pb_not_oci : 1;
- uint64_t enable_debug_bus : 1;
- uint64_t slv_event_mux : 2;
- uint64_t pb_noci_event_sel : 1;
- uint64_t en_event_count : 1;
- uint64_t en_slave_fairness : 1;
- uint64_t dis_master_wr_pipe : 1;
- uint64_t dis_master_rd_pipe : 1;
- uint64_t bcue_ocitrans : 2;
- uint64_t bcde_ocitrans : 2;
- uint64_t oci_marker_space : 3;
- uint64_t pba_region : 2;
- uint64_t inject_mode : 2;
- uint64_t inject_type : 2;
- uint64_t dis_rerequest_to : 1;
- uint64_t en_second_wrbuf : 1;
- uint64_t dis_slvmatch_order : 1;
- uint64_t en_marker_ack : 1;
- uint64_t dis_slave_wrpipe : 1;
- uint64_t dis_slave_rdpipe : 1;
- uint64_t dis_mstid_match_pref_inv : 1;
- uint64_t dis_rearb : 1;
- uint64_t reserved0 : 4;
+ uint64_t pbax_datalo : 32;
+ uint64_t pbax_datahi : 32;
#endif // _BIG_ENDIAN
} fields;
-} pba_mode_t;
+} pba_xsnddat_t;
-typedef union pba_slvrst {
+typedef union pba_xrcvstat {
uint64_t value;
struct {
@@ -1519,24 +705,26 @@ typedef union pba_slvrst {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t set : 3;
- uint64_t notimp1 : 1;
- uint64_t in_prog : 4;
- uint64_t busy_status : 4;
- uint64_t _reserved0 : 52;
+ uint64_t rcv_in_progress : 1;
+ uint64_t rcv_error : 1;
+ uint64_t rcv_write_in_progress : 1;
+ uint64_t rcv_reservation_set : 1;
+ uint64_t rcv_capture : 16;
+ uint64_t reserved1 : 44;
#else
- uint64_t _reserved0 : 52;
- uint64_t busy_status : 4;
- uint64_t in_prog : 4;
- uint64_t notimp1 : 1;
- uint64_t set : 3;
+ uint64_t reserved1 : 44;
+ uint64_t rcv_capture : 16;
+ uint64_t rcv_reservation_set : 1;
+ uint64_t rcv_write_in_progress : 1;
+ uint64_t rcv_error : 1;
+ uint64_t rcv_in_progress : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_slvrst_t;
+} pba_xrcvstat_t;
-typedef union pba_slvctln {
+typedef union pba_xshbrn {
uint64_t value;
struct {
@@ -1550,52 +738,18 @@ typedef union pba_slvctln {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t enable : 1;
- uint64_t mid_match_value : 3;
- uint64_t _reserved0 : 1;
- uint64_t mid_care_mask : 3;
- uint64_t write_ttype : 3;
- uint64_t _reserved1 : 4;
- uint64_t read_ttype : 1;
- uint64_t read_prefetch_ctl : 2;
- uint64_t buf_invalidate_ctl : 1;
- uint64_t buf_alloc_w : 1;
- uint64_t buf_alloc_a : 1;
- uint64_t buf_alloc_b : 1;
- uint64_t buf_alloc_c : 1;
- uint64_t _reserved2 : 1;
- uint64_t dis_write_gather : 1;
- uint64_t wr_gather_timeout : 3;
- uint64_t write_tsize : 7;
- uint64_t extaddr : 14;
- uint64_t _reserved3 : 15;
+ uint64_t push_start : 29;
+ uint64_t reserved1 : 35;
#else
- uint64_t _reserved3 : 15;
- uint64_t extaddr : 14;
- uint64_t write_tsize : 7;
- uint64_t wr_gather_timeout : 3;
- uint64_t dis_write_gather : 1;
- uint64_t _reserved2 : 1;
- uint64_t buf_alloc_c : 1;
- uint64_t buf_alloc_b : 1;
- uint64_t buf_alloc_a : 1;
- uint64_t buf_alloc_w : 1;
- uint64_t buf_invalidate_ctl : 1;
- uint64_t read_prefetch_ctl : 2;
- uint64_t read_ttype : 1;
- uint64_t _reserved1 : 4;
- uint64_t write_ttype : 3;
- uint64_t mid_care_mask : 3;
- uint64_t _reserved0 : 1;
- uint64_t mid_match_value : 3;
- uint64_t enable : 1;
+ uint64_t reserved1 : 35;
+ uint64_t push_start : 29;
#endif // _BIG_ENDIAN
} fields;
-} pba_slvctln_t;
+} pba_xshbrn_t;
-typedef union pba_bcde_ctl {
+typedef union pba_xshcsn {
uint64_t value;
struct {
@@ -1609,24 +763,38 @@ typedef union pba_bcde_ctl {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t stop : 1;
- uint64_t start : 1;
- uint64_t _reserved0 : 62;
+ uint64_t push_full : 1;
+ uint64_t push_empty : 1;
+ uint64_t reserved1 : 2;
+ uint64_t push_intr_action : 2;
+ uint64_t push_length : 5;
+ uint64_t reserved2 : 2;
+ uint64_t push_write_ptr : 5;
+ uint64_t reserved3 : 3;
+ uint64_t push_read_ptr : 5;
+ uint64_t reserved4 : 5;
+ uint64_t push_enable : 1;
+ uint64_t reserved5 : 32;
#else
- uint64_t _reserved0 : 62;
- uint64_t start : 1;
- uint64_t stop : 1;
+ uint64_t reserved5 : 32;
+ uint64_t push_enable : 1;
+ uint64_t reserved4 : 5;
+ uint64_t push_read_ptr : 5;
+ uint64_t reserved3 : 3;
+ uint64_t push_write_ptr : 5;
+ uint64_t reserved2 : 2;
+ uint64_t push_length : 5;
+ uint64_t push_intr_action : 2;
+ uint64_t reserved1 : 2;
+ uint64_t push_empty : 1;
+ uint64_t push_full : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcde_ctl_t;
+} pba_xshcsn_t;
-#endif // __ASSEMBLER__
-#define PBA_BCDE_CTL_STOP SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
-#define PBA_BCDE_CTL_START SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
-#ifndef __ASSEMBLER__
-typedef union pba_bcde_set {
+typedef union pba_xshincn {
uint64_t value;
struct {
@@ -1640,20 +808,16 @@ typedef union pba_bcde_set {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t _reserved0 : 2;
- uint64_t copy_length : 6;
- uint64_t _reserved1 : 56;
+ uint64_t reserved1 : 64;
#else
- uint64_t _reserved1 : 56;
- uint64_t copy_length : 6;
- uint64_t _reserved0 : 2;
+ uint64_t reserved1 : 64;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcde_set_t;
+} pba_xshincn_t;
-typedef union pba_bcde_stat {
+typedef union pba_fir {
uint64_t value;
struct {
@@ -1667,34 +831,108 @@ typedef union pba_bcde_stat {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t running : 1;
- uint64_t waiting : 1;
- uint64_t wrcmp : 6;
- uint64_t _reserved0 : 6;
- uint64_t rdcmp : 6;
- uint64_t debug : 9;
- uint64_t stopped : 1;
- uint64_t error : 1;
- uint64_t done : 1;
- uint64_t _reserved1 : 32;
+ uint64_t oci_apar_err : 1;
+ uint64_t pb_rdadrerr_fw : 1;
+ uint64_t pb_rddatato_fw : 1;
+ uint64_t pb_sue_fw : 1;
+ uint64_t pb_ue_fw : 1;
+ uint64_t pb_ce_fw : 1;
+ uint64_t oci_slave_init : 1;
+ uint64_t oci_wrpar_err : 1;
+ uint64_t reserved1 : 1;
+ uint64_t pb_unexpcresp : 1;
+ uint64_t pb_unexpdata : 1;
+ uint64_t pb_parity_err : 1;
+ uint64_t pb_wradrerr_fw : 1;
+ uint64_t pb_badcresp : 1;
+ uint64_t pb_ackdead_fw_rd : 1;
+ uint64_t pb_operto : 1;
+ uint64_t bcue_setup_err : 1;
+ uint64_t bcue_pb_ack_dead : 1;
+ uint64_t bcue_pb_adrerr : 1;
+ uint64_t bcue_oci_daterr : 1;
+ uint64_t bcde_setup_err : 1;
+ uint64_t bcde_pb_ack_dead : 1;
+ uint64_t bcde_pb_adrerr : 1;
+ uint64_t bcde_rddatato_err : 1;
+ uint64_t bcde_sue_err : 1;
+ uint64_t bcde_ue_err : 1;
+ uint64_t bcde_ce : 1;
+ uint64_t bcde_oci_daterr : 1;
+ uint64_t internal_err : 1;
+ uint64_t illegal_cache_op : 1;
+ uint64_t oci_bad_reg_addr : 1;
+ uint64_t axpush_wrerr : 1;
+ uint64_t axrcv_dlo_err : 1;
+ uint64_t axrcv_dlo_to : 1;
+ uint64_t axrcv_rsvdata_to : 1;
+ uint64_t axflow_err : 1;
+ uint64_t axsnd_dhi_rtyto : 1;
+ uint64_t axsnd_dlo_rtyto : 1;
+ uint64_t axsnd_rsvto : 1;
+ uint64_t axsnd_rsverr : 1;
+ uint64_t pb_ackdead_fw_wr : 1;
+ uint64_t reserved2 : 1;
+ uint64_t reserved3 : 1;
+ uint64_t reserved4 : 1;
+ uint64_t fir_parity_err2 : 1;
+ uint64_t fir_parity_err : 1;
+ uint64_t reserved5 : 18;
#else
- uint64_t _reserved1 : 32;
- uint64_t done : 1;
- uint64_t error : 1;
- uint64_t stopped : 1;
- uint64_t debug : 9;
- uint64_t rdcmp : 6;
- uint64_t _reserved0 : 6;
- uint64_t wrcmp : 6;
- uint64_t waiting : 1;
- uint64_t running : 1;
+ uint64_t reserved5 : 18;
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err2 : 1;
+ uint64_t reserved4 : 1;
+ uint64_t reserved3 : 1;
+ uint64_t reserved2 : 1;
+ uint64_t pb_ackdead_fw_wr : 1;
+ uint64_t axsnd_rsverr : 1;
+ uint64_t axsnd_rsvto : 1;
+ uint64_t axsnd_dlo_rtyto : 1;
+ uint64_t axsnd_dhi_rtyto : 1;
+ uint64_t axflow_err : 1;
+ uint64_t axrcv_rsvdata_to : 1;
+ uint64_t axrcv_dlo_to : 1;
+ uint64_t axrcv_dlo_err : 1;
+ uint64_t axpush_wrerr : 1;
+ uint64_t oci_bad_reg_addr : 1;
+ uint64_t illegal_cache_op : 1;
+ uint64_t internal_err : 1;
+ uint64_t bcde_oci_daterr : 1;
+ uint64_t bcde_ce : 1;
+ uint64_t bcde_ue_err : 1;
+ uint64_t bcde_sue_err : 1;
+ uint64_t bcde_rddatato_err : 1;
+ uint64_t bcde_pb_adrerr : 1;
+ uint64_t bcde_pb_ack_dead : 1;
+ uint64_t bcde_setup_err : 1;
+ uint64_t bcue_oci_daterr : 1;
+ uint64_t bcue_pb_adrerr : 1;
+ uint64_t bcue_pb_ack_dead : 1;
+ uint64_t bcue_setup_err : 1;
+ uint64_t pb_operto : 1;
+ uint64_t pb_ackdead_fw_rd : 1;
+ uint64_t pb_badcresp : 1;
+ uint64_t pb_wradrerr_fw : 1;
+ uint64_t pb_parity_err : 1;
+ uint64_t pb_unexpdata : 1;
+ uint64_t pb_unexpcresp : 1;
+ uint64_t reserved1 : 1;
+ uint64_t oci_wrpar_err : 1;
+ uint64_t oci_slave_init : 1;
+ uint64_t pb_ce_fw : 1;
+ uint64_t pb_ue_fw : 1;
+ uint64_t pb_sue_fw : 1;
+ uint64_t pb_rddatato_fw : 1;
+ uint64_t pb_rdadrerr_fw : 1;
+ uint64_t oci_apar_err : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcde_stat_t;
+} pba_fir_t;
-typedef union pba_bcde_pbadr {
+typedef union pba_fir_and {
uint64_t value;
struct {
@@ -1708,24 +946,108 @@ typedef union pba_bcde_pbadr {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t _reserved0 : 2;
- uint64_t pb_offset : 23;
- uint64_t _reserved1 : 2;
- uint64_t extaddr : 14;
- uint64_t _reserved2 : 23;
+ uint64_t oci_apar_err : 1;
+ uint64_t pb_rdadrerr_fw : 1;
+ uint64_t pb_rddatato_fw : 1;
+ uint64_t pb_sue_fw : 1;
+ uint64_t pb_ue_fw : 1;
+ uint64_t pb_ce_fw : 1;
+ uint64_t oci_slave_init : 1;
+ uint64_t oci_wrpar_err : 1;
+ uint64_t reserved1 : 1;
+ uint64_t pb_unexpcresp : 1;
+ uint64_t pb_unexpdata : 1;
+ uint64_t pb_parity_err : 1;
+ uint64_t pb_wradrerr_fw : 1;
+ uint64_t pb_badcresp : 1;
+ uint64_t pb_ackdead_fw_rd : 1;
+ uint64_t pb_operto : 1;
+ uint64_t bcue_setup_err : 1;
+ uint64_t bcue_pb_ack_dead : 1;
+ uint64_t bcue_pb_adrerr : 1;
+ uint64_t bcue_oci_daterr : 1;
+ uint64_t bcde_setup_err : 1;
+ uint64_t bcde_pb_ack_dead : 1;
+ uint64_t bcde_pb_adrerr : 1;
+ uint64_t bcde_rddatato_err : 1;
+ uint64_t bcde_sue_err : 1;
+ uint64_t bcde_ue_err : 1;
+ uint64_t bcde_ce : 1;
+ uint64_t bcde_oci_daterr : 1;
+ uint64_t internal_err : 1;
+ uint64_t illegal_cache_op : 1;
+ uint64_t oci_bad_reg_addr : 1;
+ uint64_t axpush_wrerr : 1;
+ uint64_t axrcv_dlo_err : 1;
+ uint64_t axrcv_dlo_to : 1;
+ uint64_t axrcv_rsvdata_to : 1;
+ uint64_t axflow_err : 1;
+ uint64_t axsnd_dhi_rtyto : 1;
+ uint64_t axsnd_dlo_rtyto : 1;
+ uint64_t axsnd_rsvto : 1;
+ uint64_t axsnd_rsverr : 1;
+ uint64_t pb_ackdead_fw_wr : 1;
+ uint64_t reserved2 : 1;
+ uint64_t reserved3 : 1;
+ uint64_t reserved4 : 1;
+ uint64_t fir_parity_err2 : 1;
+ uint64_t fir_parity_err : 1;
+ uint64_t reserved5 : 18;
#else
- uint64_t _reserved2 : 23;
- uint64_t extaddr : 14;
- uint64_t _reserved1 : 2;
- uint64_t pb_offset : 23;
- uint64_t _reserved0 : 2;
+ uint64_t reserved5 : 18;
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err2 : 1;
+ uint64_t reserved4 : 1;
+ uint64_t reserved3 : 1;
+ uint64_t reserved2 : 1;
+ uint64_t pb_ackdead_fw_wr : 1;
+ uint64_t axsnd_rsverr : 1;
+ uint64_t axsnd_rsvto : 1;
+ uint64_t axsnd_dlo_rtyto : 1;
+ uint64_t axsnd_dhi_rtyto : 1;
+ uint64_t axflow_err : 1;
+ uint64_t axrcv_rsvdata_to : 1;
+ uint64_t axrcv_dlo_to : 1;
+ uint64_t axrcv_dlo_err : 1;
+ uint64_t axpush_wrerr : 1;
+ uint64_t oci_bad_reg_addr : 1;
+ uint64_t illegal_cache_op : 1;
+ uint64_t internal_err : 1;
+ uint64_t bcde_oci_daterr : 1;
+ uint64_t bcde_ce : 1;
+ uint64_t bcde_ue_err : 1;
+ uint64_t bcde_sue_err : 1;
+ uint64_t bcde_rddatato_err : 1;
+ uint64_t bcde_pb_adrerr : 1;
+ uint64_t bcde_pb_ack_dead : 1;
+ uint64_t bcde_setup_err : 1;
+ uint64_t bcue_oci_daterr : 1;
+ uint64_t bcue_pb_adrerr : 1;
+ uint64_t bcue_pb_ack_dead : 1;
+ uint64_t bcue_setup_err : 1;
+ uint64_t pb_operto : 1;
+ uint64_t pb_ackdead_fw_rd : 1;
+ uint64_t pb_badcresp : 1;
+ uint64_t pb_wradrerr_fw : 1;
+ uint64_t pb_parity_err : 1;
+ uint64_t pb_unexpdata : 1;
+ uint64_t pb_unexpcresp : 1;
+ uint64_t reserved1 : 1;
+ uint64_t oci_wrpar_err : 1;
+ uint64_t oci_slave_init : 1;
+ uint64_t pb_ce_fw : 1;
+ uint64_t pb_ue_fw : 1;
+ uint64_t pb_sue_fw : 1;
+ uint64_t pb_rddatato_fw : 1;
+ uint64_t pb_rdadrerr_fw : 1;
+ uint64_t oci_apar_err : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcde_pbadr_t;
+} pba_fir_and_t;
-typedef union pba_bcde_ocibar {
+typedef union pba_fir_or {
uint64_t value;
struct {
@@ -1739,18 +1061,108 @@ typedef union pba_bcde_ocibar {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t addr : 25;
- uint64_t _reserved0 : 39;
+ uint64_t oci_apar_err : 1;
+ uint64_t pb_rdadrerr_fw : 1;
+ uint64_t pb_rddatato_fw : 1;
+ uint64_t pb_sue_fw : 1;
+ uint64_t pb_ue_fw : 1;
+ uint64_t pb_ce_fw : 1;
+ uint64_t oci_slave_init : 1;
+ uint64_t oci_wrpar_err : 1;
+ uint64_t reserved1 : 1;
+ uint64_t pb_unexpcresp : 1;
+ uint64_t pb_unexpdata : 1;
+ uint64_t pb_parity_err : 1;
+ uint64_t pb_wradrerr_fw : 1;
+ uint64_t pb_badcresp : 1;
+ uint64_t pb_ackdead_fw_rd : 1;
+ uint64_t pb_operto : 1;
+ uint64_t bcue_setup_err : 1;
+ uint64_t bcue_pb_ack_dead : 1;
+ uint64_t bcue_pb_adrerr : 1;
+ uint64_t bcue_oci_daterr : 1;
+ uint64_t bcde_setup_err : 1;
+ uint64_t bcde_pb_ack_dead : 1;
+ uint64_t bcde_pb_adrerr : 1;
+ uint64_t bcde_rddatato_err : 1;
+ uint64_t bcde_sue_err : 1;
+ uint64_t bcde_ue_err : 1;
+ uint64_t bcde_ce : 1;
+ uint64_t bcde_oci_daterr : 1;
+ uint64_t internal_err : 1;
+ uint64_t illegal_cache_op : 1;
+ uint64_t oci_bad_reg_addr : 1;
+ uint64_t axpush_wrerr : 1;
+ uint64_t axrcv_dlo_err : 1;
+ uint64_t axrcv_dlo_to : 1;
+ uint64_t axrcv_rsvdata_to : 1;
+ uint64_t axflow_err : 1;
+ uint64_t axsnd_dhi_rtyto : 1;
+ uint64_t axsnd_dlo_rtyto : 1;
+ uint64_t axsnd_rsvto : 1;
+ uint64_t axsnd_rsverr : 1;
+ uint64_t pb_ackdead_fw_wr : 1;
+ uint64_t reserved2 : 1;
+ uint64_t reserved3 : 1;
+ uint64_t reserved4 : 1;
+ uint64_t fir_parity_err2 : 1;
+ uint64_t fir_parity_err : 1;
+ uint64_t reserved5 : 18;
#else
- uint64_t _reserved0 : 39;
- uint64_t addr : 25;
+ uint64_t reserved5 : 18;
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err2 : 1;
+ uint64_t reserved4 : 1;
+ uint64_t reserved3 : 1;
+ uint64_t reserved2 : 1;
+ uint64_t pb_ackdead_fw_wr : 1;
+ uint64_t axsnd_rsverr : 1;
+ uint64_t axsnd_rsvto : 1;
+ uint64_t axsnd_dlo_rtyto : 1;
+ uint64_t axsnd_dhi_rtyto : 1;
+ uint64_t axflow_err : 1;
+ uint64_t axrcv_rsvdata_to : 1;
+ uint64_t axrcv_dlo_to : 1;
+ uint64_t axrcv_dlo_err : 1;
+ uint64_t axpush_wrerr : 1;
+ uint64_t oci_bad_reg_addr : 1;
+ uint64_t illegal_cache_op : 1;
+ uint64_t internal_err : 1;
+ uint64_t bcde_oci_daterr : 1;
+ uint64_t bcde_ce : 1;
+ uint64_t bcde_ue_err : 1;
+ uint64_t bcde_sue_err : 1;
+ uint64_t bcde_rddatato_err : 1;
+ uint64_t bcde_pb_adrerr : 1;
+ uint64_t bcde_pb_ack_dead : 1;
+ uint64_t bcde_setup_err : 1;
+ uint64_t bcue_oci_daterr : 1;
+ uint64_t bcue_pb_adrerr : 1;
+ uint64_t bcue_pb_ack_dead : 1;
+ uint64_t bcue_setup_err : 1;
+ uint64_t pb_operto : 1;
+ uint64_t pb_ackdead_fw_rd : 1;
+ uint64_t pb_badcresp : 1;
+ uint64_t pb_wradrerr_fw : 1;
+ uint64_t pb_parity_err : 1;
+ uint64_t pb_unexpdata : 1;
+ uint64_t pb_unexpcresp : 1;
+ uint64_t reserved1 : 1;
+ uint64_t oci_wrpar_err : 1;
+ uint64_t oci_slave_init : 1;
+ uint64_t pb_ce_fw : 1;
+ uint64_t pb_ue_fw : 1;
+ uint64_t pb_sue_fw : 1;
+ uint64_t pb_rddatato_fw : 1;
+ uint64_t pb_rdadrerr_fw : 1;
+ uint64_t oci_apar_err : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcde_ocibar_t;
+} pba_fir_or_t;
-typedef union pba_bcue_ctl {
+typedef union pba_firmask {
uint64_t value;
struct {
@@ -1764,24 +1176,104 @@ typedef union pba_bcue_ctl {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t stop : 1;
- uint64_t start : 1;
- uint64_t _reserved0 : 62;
-#else
- uint64_t _reserved0 : 62;
- uint64_t start : 1;
- uint64_t stop : 1;
+ uint64_t oci_apar_err_mask : 1;
+ uint64_t pb_rdadrerr_fw_mask : 1;
+ uint64_t pb_rddatato_fw_mask : 1;
+ uint64_t pb_sue_fw_mask : 1;
+ uint64_t pb_ue_fw_mask : 1;
+ uint64_t pb_ce_fw_mask : 1;
+ uint64_t oci_slave_init_mask : 1;
+ uint64_t oci_wrpar_err_mask : 1;
+ uint64_t reserved1 : 1;
+ uint64_t pb_unexpcresp_mask : 1;
+ uint64_t pb_unexpdata_mask : 1;
+ uint64_t pb_parity_err_mask : 1;
+ uint64_t pb_wradrerr_fw_mask : 1;
+ uint64_t pb_badcresp_mask : 1;
+ uint64_t pb_ackdead_fw_rd_mask : 1;
+ uint64_t pb_operto_mask : 1;
+ uint64_t bcue_setup_err_mask : 1;
+ uint64_t bcue_pb_ack_dead_mask : 1;
+ uint64_t bcue_pb_adrerr_mask : 1;
+ uint64_t bcue_oci_daterr_mask : 1;
+ uint64_t bcde_setup_err_mask : 1;
+ uint64_t bcde_pb_ack_dead_mask : 1;
+ uint64_t bcde_pb_adrerr_mask : 1;
+ uint64_t bcde_rddatato_err_mask : 1;
+ uint64_t bcde_sue_err_mask : 1;
+ uint64_t bcde_ue_err_mask : 1;
+ uint64_t bcde_ce_mask : 1;
+ uint64_t bcde_oci_daterr_mask : 1;
+ uint64_t internal_err_mask : 1;
+ uint64_t illegal_cache_op_mask : 1;
+ uint64_t oci_bad_reg_addr_mask : 1;
+ uint64_t axpush_wrerr_mask : 1;
+ uint64_t axrcv_dlo_err_mask : 1;
+ uint64_t axrcv_dlo_to_mask : 1;
+ uint64_t axrcv_rsvdata_to_mask : 1;
+ uint64_t axflow_err_mask : 1;
+ uint64_t axsnd_dhi_rtyto_mask : 1;
+ uint64_t axsnd_dlo_rtyto_mask : 1;
+ uint64_t axsnd_rsvto_mask : 1;
+ uint64_t axsnd_rsverr_mask : 1;
+ uint64_t pb_ackdead_fw_wr_mask : 1;
+ uint64_t reserved2 : 3;
+ uint64_t fir_parity_err2_mask : 1;
+ uint64_t fir_parity_err_mask : 1;
+ uint64_t reserved3 : 18;
+#else
+ uint64_t reserved3 : 18;
+ uint64_t fir_parity_err_mask : 1;
+ uint64_t fir_parity_err2_mask : 1;
+ uint64_t reserved2 : 3;
+ uint64_t pb_ackdead_fw_wr_mask : 1;
+ uint64_t axsnd_rsverr_mask : 1;
+ uint64_t axsnd_rsvto_mask : 1;
+ uint64_t axsnd_dlo_rtyto_mask : 1;
+ uint64_t axsnd_dhi_rtyto_mask : 1;
+ uint64_t axflow_err_mask : 1;
+ uint64_t axrcv_rsvdata_to_mask : 1;
+ uint64_t axrcv_dlo_to_mask : 1;
+ uint64_t axrcv_dlo_err_mask : 1;
+ uint64_t axpush_wrerr_mask : 1;
+ uint64_t oci_bad_reg_addr_mask : 1;
+ uint64_t illegal_cache_op_mask : 1;
+ uint64_t internal_err_mask : 1;
+ uint64_t bcde_oci_daterr_mask : 1;
+ uint64_t bcde_ce_mask : 1;
+ uint64_t bcde_ue_err_mask : 1;
+ uint64_t bcde_sue_err_mask : 1;
+ uint64_t bcde_rddatato_err_mask : 1;
+ uint64_t bcde_pb_adrerr_mask : 1;
+ uint64_t bcde_pb_ack_dead_mask : 1;
+ uint64_t bcde_setup_err_mask : 1;
+ uint64_t bcue_oci_daterr_mask : 1;
+ uint64_t bcue_pb_adrerr_mask : 1;
+ uint64_t bcue_pb_ack_dead_mask : 1;
+ uint64_t bcue_setup_err_mask : 1;
+ uint64_t pb_operto_mask : 1;
+ uint64_t pb_ackdead_fw_rd_mask : 1;
+ uint64_t pb_badcresp_mask : 1;
+ uint64_t pb_wradrerr_fw_mask : 1;
+ uint64_t pb_parity_err_mask : 1;
+ uint64_t pb_unexpdata_mask : 1;
+ uint64_t pb_unexpcresp_mask : 1;
+ uint64_t reserved1 : 1;
+ uint64_t oci_wrpar_err_mask : 1;
+ uint64_t oci_slave_init_mask : 1;
+ uint64_t pb_ce_fw_mask : 1;
+ uint64_t pb_ue_fw_mask : 1;
+ uint64_t pb_sue_fw_mask : 1;
+ uint64_t pb_rddatato_fw_mask : 1;
+ uint64_t pb_rdadrerr_fw_mask : 1;
+ uint64_t oci_apar_err_mask : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcue_ctl_t;
+} pba_firmask_t;
-#endif // __ASSEMBLER__
-#define PBA_BCUE_CTL_STOP SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
-#define PBA_BCUE_CTL_START SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
-#ifndef __ASSEMBLER__
-typedef union pba_bcue_set {
+typedef union pba_firmask_and {
uint64_t value;
struct {
@@ -1795,20 +1287,104 @@ typedef union pba_bcue_set {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t _reserved0 : 2;
- uint64_t copy_length : 6;
- uint64_t _reserved1 : 56;
-#else
- uint64_t _reserved1 : 56;
- uint64_t copy_length : 6;
- uint64_t _reserved0 : 2;
+ uint64_t oci_apar_err_mask : 1;
+ uint64_t pb_rdadrerr_fw_mask : 1;
+ uint64_t pb_rddatato_fw_mask : 1;
+ uint64_t pb_sue_fw_mask : 1;
+ uint64_t pb_ue_fw_mask : 1;
+ uint64_t pb_ce_fw_mask : 1;
+ uint64_t oci_slave_init_mask : 1;
+ uint64_t oci_wrpar_err_mask : 1;
+ uint64_t reserved1 : 1;
+ uint64_t pb_unexpcresp_mask : 1;
+ uint64_t pb_unexpdata_mask : 1;
+ uint64_t pb_parity_err_mask : 1;
+ uint64_t pb_wradrerr_fw_mask : 1;
+ uint64_t pb_badcresp_mask : 1;
+ uint64_t pb_ackdead_fw_rd_mask : 1;
+ uint64_t pb_operto_mask : 1;
+ uint64_t bcue_setup_err_mask : 1;
+ uint64_t bcue_pb_ack_dead_mask : 1;
+ uint64_t bcue_pb_adrerr_mask : 1;
+ uint64_t bcue_oci_daterr_mask : 1;
+ uint64_t bcde_setup_err_mask : 1;
+ uint64_t bcde_pb_ack_dead_mask : 1;
+ uint64_t bcde_pb_adrerr_mask : 1;
+ uint64_t bcde_rddatato_err_mask : 1;
+ uint64_t bcde_sue_err_mask : 1;
+ uint64_t bcde_ue_err_mask : 1;
+ uint64_t bcde_ce_mask : 1;
+ uint64_t bcde_oci_daterr_mask : 1;
+ uint64_t internal_err_mask : 1;
+ uint64_t illegal_cache_op_mask : 1;
+ uint64_t oci_bad_reg_addr_mask : 1;
+ uint64_t axpush_wrerr_mask : 1;
+ uint64_t axrcv_dlo_err_mask : 1;
+ uint64_t axrcv_dlo_to_mask : 1;
+ uint64_t axrcv_rsvdata_to_mask : 1;
+ uint64_t axflow_err_mask : 1;
+ uint64_t axsnd_dhi_rtyto_mask : 1;
+ uint64_t axsnd_dlo_rtyto_mask : 1;
+ uint64_t axsnd_rsvto_mask : 1;
+ uint64_t axsnd_rsverr_mask : 1;
+ uint64_t pb_ackdead_fw_wr_mask : 1;
+ uint64_t reserved2 : 3;
+ uint64_t fir_parity_err2_mask : 1;
+ uint64_t fir_parity_err_mask : 1;
+ uint64_t reserved3 : 18;
+#else
+ uint64_t reserved3 : 18;
+ uint64_t fir_parity_err_mask : 1;
+ uint64_t fir_parity_err2_mask : 1;
+ uint64_t reserved2 : 3;
+ uint64_t pb_ackdead_fw_wr_mask : 1;
+ uint64_t axsnd_rsverr_mask : 1;
+ uint64_t axsnd_rsvto_mask : 1;
+ uint64_t axsnd_dlo_rtyto_mask : 1;
+ uint64_t axsnd_dhi_rtyto_mask : 1;
+ uint64_t axflow_err_mask : 1;
+ uint64_t axrcv_rsvdata_to_mask : 1;
+ uint64_t axrcv_dlo_to_mask : 1;
+ uint64_t axrcv_dlo_err_mask : 1;
+ uint64_t axpush_wrerr_mask : 1;
+ uint64_t oci_bad_reg_addr_mask : 1;
+ uint64_t illegal_cache_op_mask : 1;
+ uint64_t internal_err_mask : 1;
+ uint64_t bcde_oci_daterr_mask : 1;
+ uint64_t bcde_ce_mask : 1;
+ uint64_t bcde_ue_err_mask : 1;
+ uint64_t bcde_sue_err_mask : 1;
+ uint64_t bcde_rddatato_err_mask : 1;
+ uint64_t bcde_pb_adrerr_mask : 1;
+ uint64_t bcde_pb_ack_dead_mask : 1;
+ uint64_t bcde_setup_err_mask : 1;
+ uint64_t bcue_oci_daterr_mask : 1;
+ uint64_t bcue_pb_adrerr_mask : 1;
+ uint64_t bcue_pb_ack_dead_mask : 1;
+ uint64_t bcue_setup_err_mask : 1;
+ uint64_t pb_operto_mask : 1;
+ uint64_t pb_ackdead_fw_rd_mask : 1;
+ uint64_t pb_badcresp_mask : 1;
+ uint64_t pb_wradrerr_fw_mask : 1;
+ uint64_t pb_parity_err_mask : 1;
+ uint64_t pb_unexpdata_mask : 1;
+ uint64_t pb_unexpcresp_mask : 1;
+ uint64_t reserved1 : 1;
+ uint64_t oci_wrpar_err_mask : 1;
+ uint64_t oci_slave_init_mask : 1;
+ uint64_t pb_ce_fw_mask : 1;
+ uint64_t pb_ue_fw_mask : 1;
+ uint64_t pb_sue_fw_mask : 1;
+ uint64_t pb_rddatato_fw_mask : 1;
+ uint64_t pb_rdadrerr_fw_mask : 1;
+ uint64_t oci_apar_err_mask : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcue_set_t;
+} pba_firmask_and_t;
-typedef union pba_bcue_stat {
+typedef union pba_firmask_or {
uint64_t value;
struct {
@@ -1822,34 +1398,104 @@ typedef union pba_bcue_stat {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t running : 1;
- uint64_t waiting : 1;
- uint64_t wrcmp : 6;
- uint64_t _reserved0 : 6;
- uint64_t rdcmp : 6;
- uint64_t debug : 9;
- uint64_t stopped : 1;
- uint64_t error : 1;
- uint64_t done : 1;
- uint64_t _reserved1 : 32;
-#else
- uint64_t _reserved1 : 32;
- uint64_t done : 1;
- uint64_t error : 1;
- uint64_t stopped : 1;
- uint64_t debug : 9;
- uint64_t rdcmp : 6;
- uint64_t _reserved0 : 6;
- uint64_t wrcmp : 6;
- uint64_t waiting : 1;
- uint64_t running : 1;
+ uint64_t oci_apar_err_mask : 1;
+ uint64_t pb_rdadrerr_fw_mask : 1;
+ uint64_t pb_rddatato_fw_mask : 1;
+ uint64_t pb_sue_fw_mask : 1;
+ uint64_t pb_ue_fw_mask : 1;
+ uint64_t pb_ce_fw_mask : 1;
+ uint64_t oci_slave_init_mask : 1;
+ uint64_t oci_wrpar_err_mask : 1;
+ uint64_t reserved1 : 1;
+ uint64_t pb_unexpcresp_mask : 1;
+ uint64_t pb_unexpdata_mask : 1;
+ uint64_t pb_parity_err_mask : 1;
+ uint64_t pb_wradrerr_fw_mask : 1;
+ uint64_t pb_badcresp_mask : 1;
+ uint64_t pb_ackdead_fw_rd_mask : 1;
+ uint64_t pb_operto_mask : 1;
+ uint64_t bcue_setup_err_mask : 1;
+ uint64_t bcue_pb_ack_dead_mask : 1;
+ uint64_t bcue_pb_adrerr_mask : 1;
+ uint64_t bcue_oci_daterr_mask : 1;
+ uint64_t bcde_setup_err_mask : 1;
+ uint64_t bcde_pb_ack_dead_mask : 1;
+ uint64_t bcde_pb_adrerr_mask : 1;
+ uint64_t bcde_rddatato_err_mask : 1;
+ uint64_t bcde_sue_err_mask : 1;
+ uint64_t bcde_ue_err_mask : 1;
+ uint64_t bcde_ce_mask : 1;
+ uint64_t bcde_oci_daterr_mask : 1;
+ uint64_t internal_err_mask : 1;
+ uint64_t illegal_cache_op_mask : 1;
+ uint64_t oci_bad_reg_addr_mask : 1;
+ uint64_t axpush_wrerr_mask : 1;
+ uint64_t axrcv_dlo_err_mask : 1;
+ uint64_t axrcv_dlo_to_mask : 1;
+ uint64_t axrcv_rsvdata_to_mask : 1;
+ uint64_t axflow_err_mask : 1;
+ uint64_t axsnd_dhi_rtyto_mask : 1;
+ uint64_t axsnd_dlo_rtyto_mask : 1;
+ uint64_t axsnd_rsvto_mask : 1;
+ uint64_t axsnd_rsverr_mask : 1;
+ uint64_t pb_ackdead_fw_wr_mask : 1;
+ uint64_t reserved2 : 3;
+ uint64_t fir_parity_err2_mask : 1;
+ uint64_t fir_parity_err_mask : 1;
+ uint64_t reserved3 : 18;
+#else
+ uint64_t reserved3 : 18;
+ uint64_t fir_parity_err_mask : 1;
+ uint64_t fir_parity_err2_mask : 1;
+ uint64_t reserved2 : 3;
+ uint64_t pb_ackdead_fw_wr_mask : 1;
+ uint64_t axsnd_rsverr_mask : 1;
+ uint64_t axsnd_rsvto_mask : 1;
+ uint64_t axsnd_dlo_rtyto_mask : 1;
+ uint64_t axsnd_dhi_rtyto_mask : 1;
+ uint64_t axflow_err_mask : 1;
+ uint64_t axrcv_rsvdata_to_mask : 1;
+ uint64_t axrcv_dlo_to_mask : 1;
+ uint64_t axrcv_dlo_err_mask : 1;
+ uint64_t axpush_wrerr_mask : 1;
+ uint64_t oci_bad_reg_addr_mask : 1;
+ uint64_t illegal_cache_op_mask : 1;
+ uint64_t internal_err_mask : 1;
+ uint64_t bcde_oci_daterr_mask : 1;
+ uint64_t bcde_ce_mask : 1;
+ uint64_t bcde_ue_err_mask : 1;
+ uint64_t bcde_sue_err_mask : 1;
+ uint64_t bcde_rddatato_err_mask : 1;
+ uint64_t bcde_pb_adrerr_mask : 1;
+ uint64_t bcde_pb_ack_dead_mask : 1;
+ uint64_t bcde_setup_err_mask : 1;
+ uint64_t bcue_oci_daterr_mask : 1;
+ uint64_t bcue_pb_adrerr_mask : 1;
+ uint64_t bcue_pb_ack_dead_mask : 1;
+ uint64_t bcue_setup_err_mask : 1;
+ uint64_t pb_operto_mask : 1;
+ uint64_t pb_ackdead_fw_rd_mask : 1;
+ uint64_t pb_badcresp_mask : 1;
+ uint64_t pb_wradrerr_fw_mask : 1;
+ uint64_t pb_parity_err_mask : 1;
+ uint64_t pb_unexpdata_mask : 1;
+ uint64_t pb_unexpcresp_mask : 1;
+ uint64_t reserved1 : 1;
+ uint64_t oci_wrpar_err_mask : 1;
+ uint64_t oci_slave_init_mask : 1;
+ uint64_t pb_ce_fw_mask : 1;
+ uint64_t pb_ue_fw_mask : 1;
+ uint64_t pb_sue_fw_mask : 1;
+ uint64_t pb_rddatato_fw_mask : 1;
+ uint64_t pb_rdadrerr_fw_mask : 1;
+ uint64_t oci_apar_err_mask : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcue_stat_t;
+} pba_firmask_or_t;
-typedef union pba_bcue_pbadr {
+typedef union pba_firact0 {
uint64_t value;
struct {
@@ -1863,24 +1509,18 @@ typedef union pba_bcue_pbadr {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t _reserved0 : 2;
- uint64_t pb_offset : 23;
- uint64_t _reserved1 : 2;
- uint64_t extaddr : 14;
- uint64_t _reserved2 : 23;
+ uint64_t fir_action0 : 46;
+ uint64_t reserved1 : 18;
#else
- uint64_t _reserved2 : 23;
- uint64_t extaddr : 14;
- uint64_t _reserved1 : 2;
- uint64_t pb_offset : 23;
- uint64_t _reserved0 : 2;
+ uint64_t reserved1 : 18;
+ uint64_t fir_action0 : 46;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcue_pbadr_t;
+} pba_firact0_t;
-typedef union pba_bcue_ocibar {
+typedef union pba_firact1 {
uint64_t value;
struct {
@@ -1894,18 +1534,18 @@ typedef union pba_bcue_ocibar {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t addr : 25;
- uint64_t _reserved0 : 39;
+ uint64_t fir_action1 : 46;
+ uint64_t reserved1 : 18;
#else
- uint64_t _reserved0 : 39;
- uint64_t addr : 25;
+ uint64_t reserved1 : 18;
+ uint64_t fir_action1 : 46;
#endif // _BIG_ENDIAN
} fields;
-} pba_bcue_ocibar_t;
+} pba_firact1_t;
-typedef union pba_pbocrn {
+typedef union pba_occact {
uint64_t value;
struct {
@@ -1919,22 +1559,18 @@ typedef union pba_pbocrn {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t _reserved0 : 16;
- uint64_t event : 16;
- uint64_t _reserved1 : 12;
- uint64_t accum : 20;
+ uint64_t occ_action_set : 44;
+ uint64_t reserved1 : 20;
#else
- uint64_t accum : 20;
- uint64_t _reserved1 : 12;
- uint64_t event : 16;
- uint64_t _reserved0 : 16;
+ uint64_t reserved1 : 20;
+ uint64_t occ_action_set : 44;
#endif // _BIG_ENDIAN
} fields;
-} pba_pbocrn_t;
+} pba_occact_t;
-typedef union pba_xsndtx {
+typedef union pba_cfg {
uint64_t value;
struct {
@@ -1948,32 +1584,74 @@ typedef union pba_xsndtx {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t snd_scope : 3;
- uint64_t snd_qid : 1;
- uint64_t snd_type : 1;
- uint64_t snd_reservation : 1;
- uint64_t spare6 : 2;
- uint64_t snd_nodeid : 3;
- uint64_t snd_chipid : 3;
- uint64_t spare14 : 2;
- uint64_t _reserved0 : 48;
-#else
- uint64_t _reserved0 : 48;
- uint64_t spare14 : 2;
- uint64_t snd_chipid : 3;
- uint64_t snd_nodeid : 3;
- uint64_t spare6 : 2;
- uint64_t snd_reservation : 1;
- uint64_t snd_type : 1;
- uint64_t snd_qid : 1;
- uint64_t snd_scope : 3;
+ uint64_t pbreq_slvfw_max_priority : 1;
+ uint64_t pbreq_exit_on_hang : 1;
+ uint64_t pbreq_bce_max_priority : 1;
+ uint64_t pbreq_exit_on_hang_pbax : 1;
+ uint64_t pbreq_data_hang_div : 5;
+ uint64_t pbreq_oper_hang_div : 5;
+ uint64_t pbreq_drop_priority_mask : 6;
+ uint64_t pbreq_exit_hang_div : 4;
+ uint64_t chsw_hang_on_adrerror : 1;
+ uint64_t chsw_dis_ociabuspar_check : 1;
+ uint64_t chsw_dis_ocibepar_check : 1;
+ uint64_t chsw_hang_on_derror : 1;
+ uint64_t reserved1 : 1;
+ uint64_t chsw_dis_write_match_rearb : 1;
+ uint64_t chsw_dis_ocidatapar_gen : 1;
+ uint64_t chsw_dis_ocidatapar_check : 1;
+ uint64_t chsw_dis_oper_hang : 1;
+ uint64_t chsw_dis_data_hang : 1;
+ uint64_t chsw_dis_ecc_check : 1;
+ uint64_t chsw_dis_retry_backoff : 1;
+ uint64_t chsw_exit_on_invalid_cresp : 1;
+ uint64_t reserved2 : 1;
+ uint64_t chsw_dis_group_scope : 1;
+ uint64_t chsw_dis_rtag_parity_chk : 1;
+ uint64_t chsw_dis_pb_parity_chk : 1;
+ uint64_t chsw_skip_group_scope : 1;
+ uint64_t chsw_use_pr_dma_inj : 1;
+ uint64_t chsw_use_cl_dma_inj : 1;
+ uint64_t reserved3 : 4;
+ uint64_t reserved4 : 16;
+#else
+ uint64_t reserved4 : 16;
+ uint64_t reserved3 : 4;
+ uint64_t chsw_use_cl_dma_inj : 1;
+ uint64_t chsw_use_pr_dma_inj : 1;
+ uint64_t chsw_skip_group_scope : 1;
+ uint64_t chsw_dis_pb_parity_chk : 1;
+ uint64_t chsw_dis_rtag_parity_chk : 1;
+ uint64_t chsw_dis_group_scope : 1;
+ uint64_t reserved2 : 1;
+ uint64_t chsw_exit_on_invalid_cresp : 1;
+ uint64_t chsw_dis_retry_backoff : 1;
+ uint64_t chsw_dis_ecc_check : 1;
+ uint64_t chsw_dis_data_hang : 1;
+ uint64_t chsw_dis_oper_hang : 1;
+ uint64_t chsw_dis_ocidatapar_check : 1;
+ uint64_t chsw_dis_ocidatapar_gen : 1;
+ uint64_t chsw_dis_write_match_rearb : 1;
+ uint64_t reserved1 : 1;
+ uint64_t chsw_hang_on_derror : 1;
+ uint64_t chsw_dis_ocibepar_check : 1;
+ uint64_t chsw_dis_ociabuspar_check : 1;
+ uint64_t chsw_hang_on_adrerror : 1;
+ uint64_t pbreq_exit_hang_div : 4;
+ uint64_t pbreq_drop_priority_mask : 6;
+ uint64_t pbreq_oper_hang_div : 5;
+ uint64_t pbreq_data_hang_div : 5;
+ uint64_t pbreq_exit_on_hang_pbax : 1;
+ uint64_t pbreq_bce_max_priority : 1;
+ uint64_t pbreq_exit_on_hang : 1;
+ uint64_t pbreq_slvfw_max_priority : 1;
#endif // _BIG_ENDIAN
} fields;
-} pba_xsndtx_t;
+} pba_cfg_t;
-typedef union pba_xcfg {
+typedef union pba_errrpt0 {
uint64_t value;
struct {
@@ -1987,42 +1665,30 @@ typedef union pba_xcfg {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t pbax_en : 1;
- uint64_t reservation_en : 1;
- uint64_t snd_reset : 1;
- uint64_t rcv_reset : 1;
- uint64_t rcv_nodeid : 3;
- uint64_t rcv_chipid : 3;
- uint64_t spare10 : 2;
- uint64_t rcv_brdcst_group : 8;
- uint64_t rcv_datato_div : 5;
- uint64_t spare25 : 2;
- uint64_t snd_retry_count_overcom : 1;
- uint64_t snd_retry_thresh : 8;
- uint64_t snd_rsvto_div : 5;
- uint64_t _reserved0 : 23;
+ uint64_t cerr_pb_rddatato_fw : 6;
+ uint64_t cerr_pb_rdadrerr_fw : 6;
+ uint64_t cerr_pb_wradrerr_fw : 4;
+ uint64_t cerr_pb_ackdead_fw_rd : 6;
+ uint64_t cerr_pb_ackdead_fw_wr : 2;
+ uint64_t cerr_pb_unexpcresp : 11;
+ uint64_t cerr_pb_unexpdata : 6;
+ uint64_t reserved1 : 23;
#else
- uint64_t _reserved0 : 23;
- uint64_t snd_rsvto_div : 5;
- uint64_t snd_retry_thresh : 8;
- uint64_t snd_retry_count_overcom : 1;
- uint64_t spare25 : 2;
- uint64_t rcv_datato_div : 5;
- uint64_t rcv_brdcst_group : 8;
- uint64_t spare10 : 2;
- uint64_t rcv_chipid : 3;
- uint64_t rcv_nodeid : 3;
- uint64_t rcv_reset : 1;
- uint64_t snd_reset : 1;
- uint64_t reservation_en : 1;
- uint64_t pbax_en : 1;
+ uint64_t reserved1 : 23;
+ uint64_t cerr_pb_unexpdata : 6;
+ uint64_t cerr_pb_unexpcresp : 11;
+ uint64_t cerr_pb_ackdead_fw_wr : 2;
+ uint64_t cerr_pb_ackdead_fw_rd : 6;
+ uint64_t cerr_pb_wradrerr_fw : 4;
+ uint64_t cerr_pb_rdadrerr_fw : 6;
+ uint64_t cerr_pb_rddatato_fw : 6;
#endif // _BIG_ENDIAN
} fields;
-} pba_xcfg_t;
+} pba_errrpt0_t;
-typedef union pba_xsndstat {
+typedef union pba_errrpt1 {
uint64_t value;
struct {
@@ -2036,24 +1702,28 @@ typedef union pba_xsndstat {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t snd_in_progress : 1;
- uint64_t snd_error : 1;
- uint64_t snd_status : 6;
- uint64_t snd_retry_count : 8;
- uint64_t _reserved0 : 48;
+ uint64_t cerr_pb_badcresp : 12;
+ uint64_t cerr_pb_operto : 12;
+ uint64_t reserved1 : 6;
+ uint64_t cerr_bcde_setup_err : 2;
+ uint64_t cerr_bcue_setup_err : 2;
+ uint64_t cerr_bcue_oci_dataerr : 2;
+ uint64_t reserved2 : 28;
#else
- uint64_t _reserved0 : 48;
- uint64_t snd_retry_count : 8;
- uint64_t snd_status : 6;
- uint64_t snd_error : 1;
- uint64_t snd_in_progress : 1;
+ uint64_t reserved2 : 28;
+ uint64_t cerr_bcue_oci_dataerr : 2;
+ uint64_t cerr_bcue_setup_err : 2;
+ uint64_t cerr_bcde_setup_err : 2;
+ uint64_t reserved1 : 6;
+ uint64_t cerr_pb_operto : 12;
+ uint64_t cerr_pb_badcresp : 12;
#endif // _BIG_ENDIAN
} fields;
-} pba_xsndstat_t;
+} pba_errrpt1_t;
-typedef union pba_xsnddat {
+typedef union pba_errrpt2 {
uint64_t value;
struct {
@@ -2067,18 +1737,36 @@ typedef union pba_xsnddat {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t pbax_datahi : 32;
- uint64_t pbax_datalo : 32;
+ uint64_t cerr_slv_internal_err : 8;
+ uint64_t cerr_bcde_internal_err : 4;
+ uint64_t cerr_bcue_internal_err : 4;
+ uint64_t cerr_bar_parity_err : 1;
+ uint64_t cerr_scomtb_err : 1;
+ uint64_t cerr_spare : 2;
+ uint64_t cerr_pbdout_parity_err : 1;
+ uint64_t cerr_pb_parity_err : 3;
+ uint64_t cerr_axflow_err : 5;
+ uint64_t cerr_axpush_wrerr : 2;
+ uint64_t reserved1 : 33;
#else
- uint64_t pbax_datalo : 32;
- uint64_t pbax_datahi : 32;
+ uint64_t reserved1 : 33;
+ uint64_t cerr_axpush_wrerr : 2;
+ uint64_t cerr_axflow_err : 5;
+ uint64_t cerr_pb_parity_err : 3;
+ uint64_t cerr_pbdout_parity_err : 1;
+ uint64_t cerr_spare : 2;
+ uint64_t cerr_scomtb_err : 1;
+ uint64_t cerr_bar_parity_err : 1;
+ uint64_t cerr_bcue_internal_err : 4;
+ uint64_t cerr_bcde_internal_err : 4;
+ uint64_t cerr_slv_internal_err : 8;
#endif // _BIG_ENDIAN
} fields;
-} pba_xsnddat_t;
+} pba_errrpt2_t;
-typedef union pba_xrcvstat {
+typedef union pba_rbufvaln {
uint64_t value;
struct {
@@ -2092,26 +1780,36 @@ typedef union pba_xrcvstat {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t rcv_in_progress : 1;
- uint64_t rcv_error : 1;
- uint64_t rcv_write_in_progress : 1;
- uint64_t rcv_reservation_set : 1;
- uint64_t rcv_capture : 14;
- uint64_t _reserved0 : 46;
+ uint64_t rd_slvnum : 2;
+ uint64_t cur_rd_addr : 23;
+ uint64_t reserved1 : 3;
+ uint64_t prefetch : 1;
+ uint64_t reserved2 : 2;
+ uint64_t abort : 1;
+ uint64_t reserved3 : 1;
+ uint64_t buffer_status : 7;
+ uint64_t reserved4 : 1;
+ uint64_t masterid : 3;
+ uint64_t reserved5 : 20;
#else
- uint64_t _reserved0 : 46;
- uint64_t rcv_capture : 14;
- uint64_t rcv_reservation_set : 1;
- uint64_t rcv_write_in_progress : 1;
- uint64_t rcv_error : 1;
- uint64_t rcv_in_progress : 1;
+ uint64_t reserved5 : 20;
+ uint64_t masterid : 3;
+ uint64_t reserved4 : 1;
+ uint64_t buffer_status : 7;
+ uint64_t reserved3 : 1;
+ uint64_t abort : 1;
+ uint64_t reserved2 : 2;
+ uint64_t prefetch : 1;
+ uint64_t reserved1 : 3;
+ uint64_t cur_rd_addr : 23;
+ uint64_t rd_slvnum : 2;
#endif // _BIG_ENDIAN
} fields;
-} pba_xrcvstat_t;
+} pba_rbufvaln_t;
-typedef union pba_xshbrn {
+typedef union pba_wbufvaln {
uint64_t value;
struct {
@@ -2125,18 +1823,28 @@ typedef union pba_xshbrn {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t push_start : 29;
- uint64_t _reserved0 : 35;
+ uint64_t wr_slvnum : 2;
+ uint64_t start_wr_addr : 30;
+ uint64_t reserved1 : 3;
+ uint64_t wr_buffer_status : 5;
+ uint64_t reserved2 : 1;
+ uint64_t wr_byte_count : 7;
+ uint64_t reserved3 : 16;
#else
- uint64_t _reserved0 : 35;
- uint64_t push_start : 29;
+ uint64_t reserved3 : 16;
+ uint64_t wr_byte_count : 7;
+ uint64_t reserved2 : 1;
+ uint64_t wr_buffer_status : 5;
+ uint64_t reserved1 : 3;
+ uint64_t start_wr_addr : 30;
+ uint64_t wr_slvnum : 2;
#endif // _BIG_ENDIAN
} fields;
-} pba_xshbrn_t;
+} pba_wbufvaln_t;
-typedef union pba_xshcsn {
+typedef union pba_barn {
uint64_t value;
struct {
@@ -2150,38 +1858,26 @@ typedef union pba_xshcsn {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t push_full : 1;
- uint64_t push_empty : 1;
- uint64_t spare1 : 2;
- uint64_t push_intr_action : 2;
- uint64_t push_length : 5;
- uint64_t notimp1 : 2;
- uint64_t push_write_ptr : 5;
- uint64_t notimp2 : 3;
- uint64_t push_read_ptr : 5;
- uint64_t notimp3 : 5;
- uint64_t push_enable : 1;
- uint64_t _reserved0 : 32;
-#else
- uint64_t _reserved0 : 32;
- uint64_t push_enable : 1;
- uint64_t notimp3 : 5;
- uint64_t push_read_ptr : 5;
- uint64_t notimp2 : 3;
- uint64_t push_write_ptr : 5;
- uint64_t notimp1 : 2;
- uint64_t push_length : 5;
- uint64_t push_intr_action : 2;
- uint64_t spare1 : 2;
- uint64_t push_empty : 1;
- uint64_t push_full : 1;
+ uint64_t cmd_scope : 3;
+ uint64_t reserved1 : 1;
+ uint64_t reserved2 : 4;
+ uint64_t addr : 36;
+ uint64_t reserved3 : 4;
+ uint64_t vtarget : 16;
+#else
+ uint64_t vtarget : 16;
+ uint64_t reserved3 : 4;
+ uint64_t addr : 36;
+ uint64_t reserved2 : 4;
+ uint64_t reserved1 : 1;
+ uint64_t cmd_scope : 3;
#endif // _BIG_ENDIAN
} fields;
-} pba_xshcsn_t;
+} pba_barn_t;
-typedef union pba_xshincn {
+typedef union pba_barmskn {
uint64_t value;
struct {
@@ -2195,12 +1891,16 @@ typedef union pba_xshincn {
} words;
struct {
#ifdef _BIG_ENDIAN
- uint64_t reserved : 64;
+ uint64_t reserved1 : 23;
+ uint64_t mask : 21;
+ uint64_t reserved2 : 20;
#else
- uint64_t reserved : 64;
+ uint64_t reserved2 : 20;
+ uint64_t mask : 21;
+ uint64_t reserved1 : 23;
#endif // _BIG_ENDIAN
} fields;
-} pba_xshincn_t;
+} pba_barmskn_t;
#endif // __ASSEMBLER__
diff --git a/src/include/registers/pba_register_addresses.h b/src/include/registers/pba_register_addresses.h
index 7ebf9f1..064062e 100644
--- a/src/include/registers/pba_register_addresses.h
+++ b/src/include/registers/pba_register_addresses.h
@@ -1,34 +1,10 @@
-/* IBM_PROLOG_BEGIN_TAG */
-/* This is an automatically generated prolog. */
-/* */
-/* $Source: src/include/registers/pba_register_addresses.h $ */
-/* */
-/* OpenPOWER OnChipController Project */
-/* */
-/* Contributors Listed Below - COPYRIGHT 2015 */
-/* [+] 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 __PBA_REGISTER_ADDRESSES_H__
#define __PBA_REGISTER_ADDRESSES_H__
-// $Id: pba_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:23 bcbrock Exp $
-// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pba_register_addresses.h,v $
+// $Id$
+// $Source$
//-----------------------------------------------------------------------------
-// *! (C) Copyright International Business Machines Corp. 2013
+// *! (C) Copyright International Business Machines Corp. 2015
// *! All Rights Reserved -- Property of IBM
// *! *** IBM Confidential ***
//-----------------------------------------------------------------------------
@@ -39,80 +15,80 @@
// *** WARNING *** - This file is generated automatically, do not edit.
-#define TRUSTEDPIB_BASE 0x02013f00
-#define PBA_BARN(n) (PBA_BAR0 + ((PBA_BAR1 - PBA_BAR0) * (n)))
-#define PBA_BAR0 0x02013f00
-#define PBA_BAR1 0x02013f01
-#define PBA_BAR2 0x02013f02
-#define PBA_BAR3 0x02013f03
-#define PBA_BARMSKN(n) (PBA_BARMSK0 + ((PBA_BARMSK1 - PBA_BARMSK0) * (n)))
-#define PBA_BARMSK0 0x02013f04
-#define PBA_BARMSK1 0x02013f05
-#define PBA_BARMSK2 0x02013f06
-#define PBA_BARMSK3 0x02013f07
-#define PIB_BASE 0x02010840
-#define PBA_FIR 0x02010840
-#define PBA_FIR_AND 0x02010841
-#define PBA_FIR_OR 0x02010842
-#define PBA_FIRMASK 0x02010843
-#define PBA_FIRMASK_AND 0x02010844
-#define PBA_FIRMASK_OR 0x02010845
-#define PBA_FIRACT0 0x02010846
-#define PBA_FIRACT1 0x02010847
-#define PBA_OCCACT 0x0201084a
-#define PBA_CFG 0x0201084b
-#define PBA_ERRPT0 0x0201084c
-#define PBA_ERRPT1 0x0201084d
-#define PBA_ERRPT2 0x0201084e
-#define PBA_RBUFVALN(n) (PBA_RBUFVAL0 + ((PBA_RBUFVAL1 - PBA_RBUFVAL0) * (n)))
-#define PBA_RBUFVAL0 0x02010850
-#define PBA_RBUFVAL1 0x02010851
-#define PBA_RBUFVAL2 0x02010852
-#define PBA_RBUFVAL3 0x02010853
-#define PBA_RBUFVAL4 0x02010854
-#define PBA_RBUFVAL5 0x02010855
-#define PBA_WBUFVALN(n) (PBA_WBUFVAL0 + ((PBA_WBUFVAL1 - PBA_WBUFVAL0) * (n)))
-#define PBA_WBUFVAL0 0x02010858
-#define PBA_WBUFVAL1 0x02010859
-#define OCI_BASE 0x40020000
-#define PBA_MODE 0x40020000
-#define PBA_SLVRST 0x40020008
+#define PBA_OCI_BASE 0xC0040000
+#define PBA_MODE 0xc0040000
+#define PBA_SLVRST 0xc0040008
#define PBA_SLVCTLN(n) (PBA_SLVCTL0 + ((PBA_SLVCTL1 - PBA_SLVCTL0) * (n)))
-#define PBA_SLVCTL0 0x40020020
-#define PBA_SLVCTL1 0x40020028
-#define PBA_SLVCTL2 0x40020030
-#define PBA_SLVCTL3 0x40020038
-#define PBA_BCDE_CTL 0x40020080
-#define PBA_BCDE_SET 0x40020088
-#define PBA_BCDE_STAT 0x40020090
-#define PBA_BCDE_PBADR 0x40020098
-#define PBA_BCDE_OCIBAR 0x400200a0
-#define PBA_BCUE_CTL 0x400200a8
-#define PBA_BCUE_SET 0x400200b0
-#define PBA_BCUE_STAT 0x400200b8
-#define PBA_BCUE_PBADR 0x400200c0
-#define PBA_BCUE_OCIBAR 0x400200c8
+#define PBA_SLVCTL0 0xc0040020
+#define PBA_SLVCTL1 0xc0040028
+#define PBA_SLVCTL2 0xc0040030
+#define PBA_SLVCTL3 0xc0040038
+#define PBA_BCDE_CTL 0xc0040080
+#define PBA_BCDE_SET 0xc0040088
+#define PBA_BCDE_STAT 0xc0040090
+#define PBA_BCDE_PBADR 0xc0040098
+#define PBA_BCDE_OCIBAR 0xc00400a0
+#define PBA_BCUE_CTL 0xc00400a8
+#define PBA_BCUE_SET 0xc00400b0
+#define PBA_BCUE_STAT 0xc00400b8
+#define PBA_BCUE_PBADR 0xc00400c0
+#define PBA_BCUE_OCIBAR 0xc00400c8
#define PBA_PBOCRN(n) (PBA_PBOCR0 + ((PBA_PBOCR1 - PBA_PBOCR0) * (n)))
-#define PBA_PBOCR0 0x400200d0
-#define PBA_PBOCR1 0x400200d8
-#define PBA_PBOCR2 0x400200e0
-#define PBA_PBOCR3 0x400200e8
-#define PBA_PBOCR4 0x400200f0
-#define PBA_PBOCR5 0x400200f8
-#define PBA_XSNDTX 0x40020100
-#define PBA_XCFG 0x40020108
-#define PBA_XSNDSTAT 0x40020110
-#define PBA_XSNDDAT 0x40020118
-#define PBA_XRCVSTAT 0x40020120
+#define PBA_PBOCR0 0xc00400d0
+#define PBA_PBOCR1 0xc00400d8
+#define PBA_PBOCR2 0xc00400e0
+#define PBA_PBOCR3 0xc00400e8
+#define PBA_PBOCR4 0xc00400f0
+#define PBA_PBOCR5 0xc00400f8
+#define PBA_XSNDTX 0xc0040100
+#define PBA_XCFG 0xc0040108
+#define PBA_XSNDSTAT 0xc0040110
+#define PBA_XSNDDAT 0xc0040118
+#define PBA_XRCVSTAT 0xc0040120
#define PBA_XSHBRN(n) (PBA_XSHBR0 + ((PBA_XSHBR1 - PBA_XSHBR0) * (n)))
-#define PBA_XSHBR0 0x40020130
-#define PBA_XSHBR1 0x40020150
+#define PBA_XSHBR0 0xc0040130
+#define PBA_XSHBR1 0xc0040150
#define PBA_XSHCSN(n) (PBA_XSHCS0 + ((PBA_XSHCS1 - PBA_XSHCS0) * (n)))
-#define PBA_XSHCS0 0x40020138
-#define PBA_XSHCS1 0x40020158
+#define PBA_XSHCS0 0xc0040138
+#define PBA_XSHCS1 0xc0040158
#define PBA_XSHINCN(n) (PBA_XSHINC0 + ((PBA_XSHINC1 - PBA_XSHINC0) * (n)))
-#define PBA_XSHINC0 0x40020140
-#define PBA_XSHINC1 0x40020160
+#define PBA_XSHINC0 0xc0040140
+#define PBA_XSHINC1 0xc0040160
+#define PBA_PIB_BASE 0x68000
+#define PBA_FIR 0x00068000
+#define PBA_FIR_AND 0x00068001
+#define PBA_FIR_OR 0x00068002
+#define PBA_FIRMASK 0x00068003
+#define PBA_FIRMASK_AND 0x00068004
+#define PBA_FIRMASK_OR 0x00068005
+#define PBA_FIRACT0 0x00068006
+#define PBA_FIRACT1 0x00068007
+#define PBA_OCCACT 0x0006800a
+#define PBA_CFG 0x0006800b
+#define PBA_ERRRPT0 0x0006800c
+#define PBA_ERRRPT1 0x0006800d
+#define PBA_ERRRPT2 0x0006800e
+#define PBA_RBUFVALN(n) (PBA_RBUFVAL0 + ((PBA_RBUFVAL1 - PBA_RBUFVAL0) * (n)))
+#define PBA_RBUFVAL0 0x00068010
+#define PBA_RBUFVAL1 0x00068011
+#define PBA_RBUFVAL2 0x00068012
+#define PBA_RBUFVAL3 0x00068013
+#define PBA_RBUFVAL4 0x00068014
+#define PBA_RBUFVAL5 0x00068015
+#define PBA_WBUFVALN(n) (PBA_WBUFVAL0 + ((PBA_WBUFVAL1 - PBA_WBUFVAL0) * (n)))
+#define PBA_WBUFVAL0 0x00068018
+#define PBA_WBUFVAL1 0x00068019
+#define PBA_TRUSTEDPIB_BASE 0x68020
+#define PBA_BARN(n) (PBA_BAR0 + ((PBA_BAR1 - PBA_BAR0) * (n)))
+#define PBA_BAR0 0x00068020
+#define PBA_BAR1 0x00068021
+#define PBA_BAR2 0x00068022
+#define PBA_BAR3 0x00068023
+#define PBA_BARMSKN(n) (PBA_BARMSK0 + ((PBA_BARMSK1 - PBA_BARMSK0) * (n)))
+#define PBA_BARMSK0 0x00068024
+#define PBA_BARMSK1 0x00068025
+#define PBA_BARMSK2 0x00068026
+#define PBA_BARMSK3 0x00068027
#endif // __PBA_REGISTER_ADDRESSES_H__
diff --git a/src/lib/common/string.h b/src/lib/common/string.h
index 5cfa470..71f54c9 100644
--- a/src/lib/common/string.h
+++ b/src/lib/common/string.h
@@ -45,6 +45,11 @@
#ifndef __ASSEMBLER__
#include <stddef.h>
+#if !defined(__size_t)
+#include <stdint.h>
+typedef size_t uint32_t;
+#endif
+
// APIs inmplemented by string.c
diff --git a/src/occ_405/amec/amec_amester.c b/src/occ_405/amec/amec_amester.c
index cc672cd..4ddf734 100755
--- a/src/occ_405/amec/amec_amester.c
+++ b/src/occ_405/amec/amec_amester.c
@@ -47,6 +47,7 @@
//*************************************************************************/
// Externs
//*************************************************************************/
+extern uint32_t G_present_hw_cores;
//*************************************************************************/
// Macros
diff --git a/src/occ_405/amec/amec_parm_table.c b/src/occ_405/amec/amec_parm_table.c
index c485484..282a695 100755
--- a/src/occ_405/amec/amec_parm_table.c
+++ b/src/occ_405/amec/amec_parm_table.c
@@ -119,7 +119,8 @@ amec_parm_t g_amec_parm_list[] = {
AMEC_PARM_UINT16(PARM_SYS_FMIN,"sys_fmin",&g_amec_sys.sys.fmin),
// Global Pstate table
- AMEC_PARM_RAW(PARM_GPST,"gpst",&G_global_pstate_table,sizeof(GlobalPstateTable)),
+// @TODO - TEMP - global state table changes in P9
+// AMEC_PARM_RAW(PARM_GPST,"gpst",&G_global_pstate_table,sizeof(GlobalPstateTable)),
// MHz per pstate
AMEC_PARM_UINT32(PARM_PSTATE_MHZ,"pstate_mhz",&G_mhz_per_pstate),
// frequency reason code per-core
diff --git a/src/occ_405/amec/amec_pcap.c b/src/occ_405/amec/amec_pcap.c
index f8ef06f..fcc70aa 100755
--- a/src/occ_405/amec/amec_pcap.c
+++ b/src/occ_405/amec/amec_pcap.c
@@ -93,6 +93,8 @@ uint8_t G_over_pcap_count=0;
// End Function Specification
void amec_pmax_clip_controller(void)
{
+// @TODO - TEMP Pstate functions not defined yet
+#if 0
/*------------------------------------------------------------------------*/
/* Local Variables */
/*------------------------------------------------------------------------*/
@@ -140,6 +142,7 @@ void amec_pmax_clip_controller(void)
}
g_amec->proc[0].pwr_votes.pmax_clip_freq = l_pmax_clip_freq;
+#endif // @TODO - TEMP Pstate functions not defined yet
}
//////////////////////////
diff --git a/src/occ_405/amec/amec_sensors_power.c b/src/occ_405/amec/amec_sensors_power.c
index 1778a9e..2815912 100755
--- a/src/occ_405/amec/amec_sensors_power.c
+++ b/src/occ_405/amec/amec_sensors_power.c
@@ -214,8 +214,8 @@ void amec_update_apss_sensors(void)
// via slave inbox first
if (G_slv_inbox_received)
{
- uint8_t l_proc = G_pob_id.module_id;
- uint32_t temp32 = 0;
+ uint8_t l_proc = G_pbax_id.module_id;
+ uint32_t temp32 = 0;
uint8_t l_idx = 0;
uint32_t l_bulk_current_sum = 0;
diff --git a/src/occ_405/cmdh/cmdh_fsp.c b/src/occ_405/cmdh/cmdh_fsp.c
index c5bbb5f..d9bfdb9 100755
--- a/src/occ_405/cmdh/cmdh_fsp.c
+++ b/src/occ_405/cmdh/cmdh_fsp.c
@@ -436,8 +436,8 @@ errlHndl_t cmdh_fsp_init(void)
l_mbox_msg.fields.msg_queue_id = OCC_MSG_QUEUE_ID;
l_mbox_msg.fields.msg_payload.fsp_cmd_buffer_addr = CMDH_LINEAR_WINDOW_BASE_ADDRESS;
l_mbox_msg.fields.msg_payload.fsp_rsp_buffer_addr = CMDH_OCC_RESPONSE_BASE_ADDRESS;
- // TEMP: This was previously G_pob_id.chip_id (not 0)
- l_mbox_msg.fields.msg_payload.occ_id = 0; // TODO: Add OCC ID
+
+ l_mbox_msg.fields.msg_payload.occ_id = G_pbax_id.chip_id;
do
{
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds.c b/src/occ_405/cmdh/cmdh_fsp_cmds.c
index c89c230..edd49f3 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds.c
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds.c
@@ -1219,14 +1219,16 @@ errlHndl_t cmdh_tmgt_setmodestate(const cmdh_fsp_cmd_t * i_cmd_ptr,
G_occ_external_req_mode = l_cmd_ptr->occ_mode;
G_occ_external_req_state = l_cmd_ptr->occ_state;
- // TODO: Should we have a way to transition state even if
- // master slave comm isn't working?
- // TEMP/TODO : This is a temporary hack to allow state and mode transitions
- // until DCOM is enabled. Needs to be commented out again once
- // that happens. And then perhaps address the above TODO.
+ // In case we need to transition state while
+ // master slave comm isn't working:
+ // This is a temporary hack to allow state and mode transitions
+ // until DCOM is enabled; commented out again once
+ // that happens.
+ // This is only valid during early code development. It should
+ // always be commented in p9.
// if(){
- G_occ_master_state = l_cmd_ptr->occ_state;
- G_occ_master_mode = l_cmd_ptr->occ_mode;
+ // G_occ_master_state = l_cmd_ptr->occ_state;
+ // G_occ_master_mode = l_cmd_ptr->occ_mode;
// }
// We need to wait and see if all Slaves correctly make it to state/mode.
// TODO: Also, if all slaves can't go to this mode (based on their state),
@@ -1460,9 +1462,9 @@ errlHndl_t cmdh_tmgt_get_field_debug_data(const cmdh_fsp_cmd_t * i_cmd_ptr,
}
// Add occ infomation so that we know where the debug data from
- l_resp_ptr->occ_node = G_pob_id.node_id;
- // TEMP: This was previously G_pob_id.chip_id
- l_resp_ptr->occ_id = 0; // TEMP/TODO: add occ id info
+ l_resp_ptr->occ_node = G_pbax_id.node_id;
+
+ l_resp_ptr->occ_id = G_pbax_id.chip_id;
l_resp_ptr->occ_role = G_occ_role;
// copy trace data
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
index b2ac116..d9abb17 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
@@ -601,7 +601,7 @@ errlHndl_t apss_store_adc_channel(const eApssAdcChannelAssignments i_func_id, co
void apss_store_ipmi_sensor_id(const uint16_t i_channel, const apss_cfg_adc_v20_t *i_adc)
{
// Get current processor id.
- uint8_t l_proc = G_pob_id.module_id;
+ uint8_t l_proc = G_pbax_id.module_id;
switch (i_adc->assignment)
{
diff --git a/src/occ_405/dcom/dcom.c b/src/occ_405/dcom/dcom.c
index 4a00f4b..4db4779 100755
--- a/src/occ_405/dcom/dcom.c
+++ b/src/occ_405/dcom/dcom.c
@@ -39,11 +39,7 @@
#include <amec_data.h>
#include <amec_sys.h>
#include "scom.h"
-#include "pss_constants.h" // @TODO: move with HW registers?
-
-#define PBAX_CONFIGURE_RCV_GROUP_MASK 0xff
-
-#define PBAX_BROADCAST_GROUP 0xFF
+#include "pss_constants.h" // @TODO: move with HW registers?
extern uint8_t G_occ_interrupt_type;
@@ -78,8 +74,8 @@ uint8_t G_occ_role = OCC_SLAVE;
uint8_t G_dcm_occ_role = OCC_DCM_SLAVE;
-// PowerBus ID of this OCC. Contains ChipId & NodeId.
-pob_id_t G_pob_id = {0};
+// PBAX ID of this OCC is also its PowerBus ID. Contains ChipId & NodeId.
+pob_id_t G_pbax_id = {0};
// PBAX 'Target' Structure (Register Abstraction) that has the data needed for
// a multicast operation.
@@ -119,184 +115,61 @@ void dcom_initialize_roles(void)
G_occ_role = OCC_SLAVE;
// Locals
- int l_rc = 0;
- tpc_gp0_t l_tp_gp0_read;
+ pba_xcfg_t pbax_cfg_reg;
// Used as a debug tool to correlate time between OCCs & System Time
- getscom_ffdc( TOD_VALUE_REG, &G_dcomTime.tod, NULL); // Commits errors internally
- G_dcomTime.base = ssx_timebase_get();
+ // getscom_ffdc(OCB_OTBR, &G_dcomTime.tod, NULL); // Commits errors internally
- // Scom will timeout if it can't be read
- l_rc = getscom_ffdc( TPC_GP0, (uint64_t *) &l_tp_gp0_read, NULL); // Commits errors internally
+ G_dcomTime.tod = in64(OCB_OTBR) >> 4;
+ G_dcomTime.base = ssx_timebase_get();
+ pbax_cfg_reg.value = in64(PBA_XCFG);
- if( l_rc == 0 )
+ if(pbax_cfg_reg.fields.rcv_groupid < MAX_NUM_NODES &&
+ pbax_cfg_reg.fields.rcv_chipid < MAX_NUM_OCC)
{
- // Added check for Murano ChipId swizzle
- if(CFAM_CHIP_TYPE_MURANO == cfam_chip_type())
- {
- // Murano has a different numbering scheme than you would
- // expect. It uses NodeId to denote DCM Id, and ChipId to
- // denote chip within the DCM. This is due to they way the
- // PowerBus works for routing.
- //
- // To fix this, we need to manipulate our internal copy of
- // ChipId/NodeId to match the way OCC FW uses them. We do this by
- // multiplying the NodeId by 2 then adding chip Id to get a unique
- // new ChipId (Max Node = 3, Max Chip = 1 by design
- //
- // Note that Murano is not multi-drawer capable, so we can
- // fix our node id at 0
-
-#define MAX_MURANO_CHIP_IDS 2
-#define MAX_MURANO_NODE_IDS 4
- if( (l_tp_gp0_read.fields.tc_chip_id_dc < MAX_MURANO_CHIP_IDS)
- && (l_tp_gp0_read.fields.tc_node_id_dc < MAX_MURANO_NODE_IDS))
- {
- // TODO: Check if possible to use node_id read from the chip GPIOs
-
- // Translate between chip ID & Module Id for Tuleta
- uint8_t tuleta_chip2module[] = {0,0,2,2,1,1,3,3};
-
- G_pob_id.chip_id = (l_tp_gp0_read.fields.tc_chip_id_dc
- + ( MAX_MURANO_CHIP_IDS * l_tp_gp0_read.fields.tc_node_id_dc));
- G_pob_id.node_id = 0;
-
- // The module id is only used by Power Measurements
- G_pob_id.module_id = tuleta_chip2module[G_pob_id.chip_id];
- }
- else
- {
- // Chip Ids don't make any sense
- TRAC_ERR("Proc ChipId (%d) and/or NodeId (%d) don't make sense for Murano",
- l_tp_gp0_read.fields.tc_chip_id_dc,
- l_tp_gp0_read.fields.tc_node_id_dc);
- /* @
- * @errortype
- * @moduleid DCOM_MID_INIT_ROLES
- * @reasoncode INTERNAL_HW_FAILURE
- * @userdata1 TP.GP0 SCOM (upper)
- * @userdata2 TP.GP0 SCOM (lower)
- * @userdata4 ERC_CHIP_IDS_INVALID
- * @devdesc Failure determining OCC role
- */
- errlHndl_t l_errl = createErrl(
- DCOM_MID_INIT_ROLES, //ModId
- INTERNAL_HW_FAILURE, //Reasoncode
- ERC_CHIP_IDS_INVALID, //Extended reasoncode
- ERRL_SEV_UNRECOVERABLE, //Severity
- NULL, //Trace Buf
- DEFAULT_TRACE_SIZE, //Trace Size
- l_tp_gp0_read.words.high_order, //Userdata1
- l_tp_gp0_read.words.low_order //Userdata2
- );
-
- // Callout firmware
- addCalloutToErrl(l_errl,
- ERRL_CALLOUT_TYPE_COMPONENT_ID,
- ERRL_COMPONENT_ID_FIRMWARE,
- ERRL_CALLOUT_PRIORITY_HIGH);
-
- // Commit log
- commitErrl( &l_errl );
- }
- }
- else
- {
- // Save off chip and node ids directly as read
- G_pob_id.chip_id = l_tp_gp0_read.fields.tc_chip_id_dc;
- G_pob_id.node_id = l_tp_gp0_read.fields.tc_node_id_dc;
-
- // Check if special SMP wrap mode is turned on. In this mode, a
- // single drawer is configured as two virtual nodes. However, OCC
- // still needs to treat it as a single node.
- // As a temporary solution, HWSV is going to set bit 17 of the GP0
- // register to inform OCC that SMP wrap is on.
-
-#define SMP_WRAP_MASK 0x00004000
- if(l_tp_gp0_read.words.high_order & SMP_WRAP_MASK)
- {
- TRAC_INFO("dcom_initialize_roles: Temporary fix - SMP wrap mode has been detected");
- // This is a single drawer
- G_pob_id.node_id = 0;
-
- // Translate the NodeId and ChipId into the correct internal
- // representation for OCC to work.
- if(l_tp_gp0_read.fields.tc_node_id_dc == 0)
- {
- G_pob_id.chip_id = 2 * l_tp_gp0_read.fields.tc_chip_id_dc;
- }
- else if(l_tp_gp0_read.fields.tc_node_id_dc == 1)
- {
- G_pob_id.chip_id = (l_tp_gp0_read.fields.tc_chip_id_dc) ? 1 : 3;
- }
- }
-
- // If this is a FSP-less system, then use the node ID as the
- // chip ID. This is because the HW assigns the OCCs as being in
- // different nodes with the same chip IDs.
- if (G_occ_interrupt_type != FSP_SUPPORTED_OCC)
- {
- G_pob_id.node_id = 0;
- G_pob_id.chip_id = l_tp_gp0_read.fields.tc_node_id_dc;
-
- TRAC_IMP("dcom_initialize_roles: Overriding chip_id[%d] with node_id[%d]",
- l_tp_gp0_read.fields.tc_chip_id_dc,
- l_tp_gp0_read.fields.tc_node_id_dc);
- }
-
- // Save off low 2 bits of chip ID as module ID. Won't be
- // more than 4 on venice since it is SCMs.
- G_pob_id.module_id = (G_pob_id.chip_id & 0x03);
- }
+ TRAC_IMP("Proc ChipId (%d) NodeId (%d)",
+ pbax_cfg_reg.fields.rcv_chipid,
+ pbax_cfg_reg.fields.rcv_groupid);
+ G_pbax_id.valid = 1;
+ G_pbax_id.node_id = pbax_cfg_reg.fields.rcv_groupid;
+ G_pbax_id.chip_id = pbax_cfg_reg.fields.rcv_chipid;
+ G_pbax_id.module_id = G_pbax_id.chip_id;
// Always start as OCC Slave
G_occ_role = OCC_SLAVE;
rtl_set_run_mask(RTL_FLAG_NOTMSTR);
-// @TODO TEMP - not ready yet for multiple DCMs
-/*
- // Save off OCC role inside DCM chip
- if(gpsm_dcm_slave_p())
- {
- G_dcm_occ_role = OCC_DCM_SLAVE;
- }
- else
- {
- G_dcm_occ_role = OCC_DCM_MASTER;
- }
- TRAC_IMP("Proc ChipId=%d, NodeId=%d, isDcm=%d, isDcmMaster=%d, ChipEC=0x%08x",
- G_pob_id.chip_id,
- G_pob_id.node_id,
- gpsm_dcm_mode_p(),
- !gpsm_dcm_slave_p(),
- cfam_id() );
-*/
+ // Set the initial presence mask, and count the number of occ's present
+ G_sysConfigData.is_occ_present |= (0x01 << G_pbax_id.chip_id);
+ G_occ_num_present = __builtin_popcount(G_sysConfigData.is_occ_present);
+
}
- else
+ else // Invalid chip/node ID(s)
{
- //get scom failure
- TRAC_ERR("getscom failure rc[0x%08X]", -l_rc );
-
+ TRAC_ERR("Proc ChipId (%d) and/or NodeId (%d) too high: request reset",
+ pbax_cfg_reg.fields.rcv_chipid,
+ pbax_cfg_reg.fields.rcv_groupid);
/* @
* @errortype
* @moduleid DCOM_MID_INIT_ROLES
- * @reasoncode INTERNAL_HW_FAILURE
- * @userdata1 getscom failure rc
- * @userdata4 ERC_GETSCOM_FAILURE
+ * @reasoncode INVALID_CONFIGURATION
+ * @userdata1 PBAXCFG (upper)
+ * @userdata2 PBAXCFG (lower)
+ * @userdata4 ERC_CHIP_IDS_INVALID
* @devdesc Failure determining OCC role
*/
errlHndl_t l_errl = createErrl(
- DCOM_MID_INIT_ROLES, //ModId
- INTERNAL_HW_FAILURE, //Reasoncode
- ERC_GETSCOM_FAILURE, //Extended reasoncode
- ERRL_SEV_UNRECOVERABLE, //Severity
- NULL, //Trace Buf
- DEFAULT_TRACE_SIZE, //Trace Size
- l_rc, //Userdata1
- 0 //Userdata2
- );
+ DCOM_MID_INIT_ROLES, //ModId
+ INTERNAL_HW_FAILURE, //Reasoncode
+ ERC_CHIP_IDS_INVALID, //Extended reasoncode
+ ERRL_SEV_UNRECOVERABLE, //Severity
+ NULL, //Trace Buf
+ DEFAULT_TRACE_SIZE, //Trace Size
+ pbax_cfg_reg.words.high_order, //Userdata1
+ pbax_cfg_reg.words.low_order //Userdata2
+ );
// Callout firmware
addCalloutToErrl(l_errl,
@@ -304,24 +177,20 @@ void dcom_initialize_roles(void)
ERRL_COMPONENT_ID_FIRMWARE,
ERRL_CALLOUT_PRIORITY_HIGH);
- // Commit log
- commitErrl( &l_errl );
+ //Add processor callout
+ addCalloutToErrl(l_errl,
+ ERRL_CALLOUT_TYPE_HUID,
+ G_sysConfigData.proc_huid,
+ ERRL_CALLOUT_PRIORITY_LOW);
- // TODO request a reset of OCC
- // we are toast without this working correctly
+ G_pbax_id.valid = 0; // Invalid Chip/Node ID
}
- // Set the initial presence mask, and count the number of occ's present
- G_sysConfigData.is_occ_present |= (0x01 << G_pob_id.chip_id);
- G_occ_num_present = __builtin_popcount(G_sysConfigData.is_occ_present);
-
- // Initialize DCOM Thread Sem
-// @TODO - TEMP - Not ready yet in phase 1
-/*
+// Initialize DCOM Thread Sem
ssx_semaphore_create( &G_dcomThreadWakeupSem, // Semaphore
1, // Initial Count
0); // No Max Count
-*/
+
}
// Function Specification
@@ -333,29 +202,19 @@ void dcom_initialize_roles(void)
// End Function Specification
void dcom_initialize_pbax_queues(void)
{
- pbax_id_t l_pbaxid = dcom_pbusid2pbaxid(G_pob_id);
-
- //SSX return codes
+ // SSX return codes
int l_rc = 0;
do
{
-// @TODO - TEMP - PBA_XCFG (Address 0x40020108) is not mapped in simics yet
-// pbax_send_disable();
-
- // Check if conversion has valid information
- if (( l_pbaxid.chip_id > MAX_PBAX_CHIP_ID ) ||
- ( l_pbaxid.node_id == INVALID_NODE_ID ))
- {
- TRAC_ERR("Error converting pbusids to pbaxids. chip_id[0x%08x], node_id[0x%08x]",
- l_pbaxid.chip_id, l_pbaxid.node_id);
- l_rc = -1; // Force error to be logged below.
- break;
- }
-
- l_rc = pbax_configure(G_occ_role, // master
- l_pbaxid.node_id, // node id
- l_pbaxid.chip_id, // chipd id
+ //disabled pbax send before configuring PBAX
+ pbax_send_disable();
+
+ // TODO: With the new design, PBAX node and chip IDs are set by hostboot
+ // Remove these ID parameters from the pbax_configure function?
+ l_rc = pbax_configure(G_occ_role, // master
+ G_pbax_id.node_id, // node id
+ G_pbax_id.chip_id, // chipd id
PBAX_CONFIGURE_RCV_GROUP_MASK); // group_mask
if(l_rc != 0)
@@ -365,17 +224,16 @@ void dcom_initialize_pbax_queues(void)
}
//enabled pbax send does not return errors
-// @TODO - TEMP - PBA_XCFG (Address 0x40020108) is not mapped in simics yet
-// pbax_send_enable();
+ pbax_send_enable();
if(G_occ_role == OCC_SLAVE)
{
// create pbax rx queue 1
- l_rc = pbax_queue_create( &G_pbax_read_queue[1],//queue
- ASYNC_ENGINE_PBAX_PUSH1, //engine
- G_pbax_queue_rx1_buffer, //cq base
- NUM_ENTRIES_PBAX_QUEUE1, //cq entries
- PBAX_INTERRUPT_PROTOCOL_AGGRESSIVE //protocol
+ l_rc = pbax_queue_create( &G_pbax_read_queue[1], //queue
+ ASYNC_ENGINE_PBAX_PUSH1, //engine
+ G_pbax_queue_rx1_buffer, //cq base
+ NUM_ENTRIES_PBAX_QUEUE1, //cq entries
+ PBAX_INTERRUPT_PROTOCOL_AGGRESSIVE //protocol
);
if(l_rc != 0)
@@ -410,13 +268,12 @@ void dcom_initialize_pbax_queues(void)
if(G_occ_role == OCC_MASTER)
{
- // TODO: Change this to PBAX_GROUP for Venice
l_rc = pbax_target_create( &G_pbax_multicast_target, // target,
- PBAX_BROADCAST, // type
- PBAX_SYSTEM, // scope TODO
- 0, // queue
- l_pbaxid.node_id, // node
- PBAX_BROADCAST_GROUP); // chip_or_group
+ PBAX_BROADCAST, // type
+ PBAX_SYSTEM, // scope TODO
+ 0, // queue
+ G_pbax_id.node_id, // node
+ PBAX_BROADCAST_GROUP); // chip_or_group
if(l_rc != 0)
{
@@ -456,38 +313,6 @@ void dcom_initialize_pbax_queues(void)
// Function Specification
//
-// Name: dcom_pbusid2pbaxid
-//
-// Description: Translate between PowerBus ID and pbax ID
-//
-// End Function Specification
-pbax_id_t dcom_pbusid2pbaxid(pob_id_t i_pobid)
-{
- pbax_id_t l_pbax_id_t = {0};
-
- // Check if chip id and nod id are valid
- if((i_pobid.chip_id < MAX_NUM_OCC)
- && (i_pobid.node_id < MAX_NUM_NODES))
- {
- l_pbax_id_t.chip_id = G_sysConfigData.pob2pbax_chip[i_pobid.chip_id];
- l_pbax_id_t.node_id = G_sysConfigData.pob2pbax_node[i_pobid.node_id];
- }
- else
- {
- // Invalid data found
-
- l_pbax_id_t.chip_id = MAX_PBAX_CHIP_ID;
- l_pbax_id_t.node_id = INVALID_NODE_ID;
-
- TRAC_ERR("Invalid Powerbus ID, could NOT convert chip id[%x] and node id[%x] to PBAX id",
- i_pobid.chip_id,i_pobid.node_id);
- }
-
- return l_pbax_id_t;
-}
-
-// Function Specification
-//
// Name: dcom_error_check
//
// Description: keep track of failure counts
@@ -659,7 +484,6 @@ void dcom_build_occfw_msg( const dcom_error_type_t i_which_msg )
}
-#if 0 // TODO - TEMP - Phase1 - Not ready yet for multi OCC communications.
// Function Specification
//
@@ -817,7 +641,5 @@ void task_dcom_parse_occfwmsg(task_t *i_self)
G_slave_event_flags = (G_slave_event_flags & (~(G_dcom_slv_inbox_rx.occ_fw_mailbox[3])));
}
-#endif // #if 0 - // TODO - TEMP - Phase1 - Not ready yet for multi OCC communications.
-
#endif //_DCOM_C
diff --git a/src/occ_405/dcom/dcom.h b/src/occ_405/dcom/dcom.h
index 5fcfe17..55f59e3 100755
--- a/src/occ_405/dcom/dcom.h
+++ b/src/occ_405/dcom/dcom.h
@@ -59,8 +59,12 @@
// Magic Number used to denote the start of Master->Slave Broadcast packets
#define PBAX_MAGIC_NUMBER2_32B 0x00474A53
-#define MAX_PBAX_CHIP_ID 7
-#define INVALID_NODE_ID 7
+#define MAX_PBAX_CHIP_ID (MAX_NUM_OCC - 1)
+
+// PBAX Broadcast Masks, use PBAX_GROUP_MASK_MAX
+#define PBAX_CONFIGURE_RCV_GROUP_MASK PBAX_GROUP_MASK_MAX
+#define PBAX_BROADCAST_GROUP PBAX_GROUP_MASK_MAX
+
// OCC Slave to Master Messages (inbox ping/pong) - Moved to BAR2
#define ADDR_SLAVE_OUTBOX_MAIN_MEM_PING 0x20001000
@@ -102,8 +106,10 @@
typedef struct
{
uint8_t module_id :2;
- uint8_t node_id :3;
- uint8_t chip_id :3;
+ uint8_t valid :1; // Valid chip/node id?
+ uint8_t node_id :2;
+ uint8_t reserved :1;
+ uint8_t chip_id :2;
} pob_id_t;
// TODO may change in the future
@@ -240,7 +246,7 @@ typedef struct
{
struct
{
- // PowerBus ID so that the slave knows who the master is
+ // PowerBus ID (= pbax_id) so that the slave knows who the master is
pob_id_t pob_id; // 1 byte
// Magic Number denoting the start of the packet
uint32_t magic1 :24; // 3 bytes
@@ -395,9 +401,9 @@ extern uint8_t G_occ_role;
// chip. In the case of SCMs, it will always return the Master role.
extern uint8_t G_dcm_occ_role;
-// Holds PowerBus ID of this OCC (Chip & node). From this we can determine OCC ID
-// and PBAX ID.
-extern pob_id_t G_pob_id;
+// Holds PowerBus ID of this OCC (Chip & node). For P9, this is the same
+// for pob_id and PBAX ID.
+extern pob_id_t G_pbax_id;
// PBAX 'Target' Structure (Register Abstraction) that has the data needed for
// a multicast operation.
@@ -488,9 +494,6 @@ void task_dcom_tx_slv_outbox(task_t *i_self);
// Initialize the pbax queues
void dcom_initialize_pbax_queues(void);
-// Translate pids to pbax ids
-pbax_id_t dcom_pbusid2pbaxid(pob_id_t i_pobid);
-
// Receive multicast doorbell
uint32_t dcom_rx_slv_inbox_doorbell( void );
diff --git a/src/occ_405/dcom/dcomMasterTx.c b/src/occ_405/dcom/dcomMasterTx.c
index 69f45d4..d166aef 100644
--- a/src/occ_405/dcom/dcomMasterTx.c
+++ b/src/occ_405/dcom/dcomMasterTx.c
@@ -26,8 +26,7 @@
#ifndef _DCOMMASTERTX_C
#define _DCOMMASTERTX_C
-#include <pgp_pmc.h>
-#include "pgp_pba.h"
+#include "occhw_pba.h"
#include <rtls.h>
#include <apss.h>
#include <dcom.h>
@@ -174,7 +173,7 @@ uint32_t dcom_build_slv_inbox(void)
//DOORBELL.................
//Prepare data for doorbell. This is sent to all OCCs
- G_dcom_slv_inbox_doorbell_tx.pob_id = G_pob_id;
+ G_dcom_slv_inbox_doorbell_tx.pob_id = G_pbax_id;
G_dcom_slv_inbox_doorbell_tx.magic1 = PBAX_MAGIC_NUMBER2_32B;
G_dcom_slv_inbox_doorbell_tx.addr_slv_inbox_buffer0 = l_addr_of_slv_inbox_in_main_mem;
diff --git a/src/occ_405/dcom/dcomSlaveRx.c b/src/occ_405/dcom/dcomSlaveRx.c
index d4d8aff..dd9bb82 100644
--- a/src/occ_405/dcom/dcomSlaveRx.c
+++ b/src/occ_405/dcom/dcomSlaveRx.c
@@ -64,7 +64,8 @@ bool G_apss_lower_pmax_rail = FALSE;
// End Function Specification
uint32_t dcom_calc_slv_inbox_addr(void)
{
- return (G_dcom_slv_inbox_doorbell_rx.addr_slv_inbox_buffer0 + ( G_pob_id.chip_id * sizeof(dcom_slv_inbox_t) ));
+ return (G_dcom_slv_inbox_doorbell_rx.addr_slv_inbox_buffer0
+ + ( G_pbax_id.chip_id * sizeof(dcom_slv_inbox_t) ) );
}
// Function Specification
@@ -301,7 +302,7 @@ void task_dcom_rx_slv_inbox( task_t *i_self)
// start task waiting for master to talk again.
rtl_start_task(TASK_ID_DCOM_WAIT_4_MSTR);
rtl_set_run_mask_deferred(RTL_FLAG_MSTR_READY);
- TRAC_INFO("[%d]: Lost connection to master",(int) G_pob_id.chip_id);
+ TRAC_INFO("[%d]: Lost connection to master",(int) G_pbax_id.chip_id);
break;
}
}
@@ -599,9 +600,8 @@ void task_dcom_wait_for_master( task_t *i_self)
// set up a unicast PBAX target to the master.
if(!L_first_doorbell_rcvd)
{
- // Convert powerbus id to pbax id (sets node_id to INVALID_NODE_ID on failure)
- l_pbaxid = dcom_pbusid2pbaxid(G_dcom_slv_inbox_doorbell_rx.pob_id); // Traces failure internally
- if(l_pbaxid.node_id == INVALID_NODE_ID)
+ l_pbaxid = G_dcom_slv_inbox_doorbell_rx.pob_id;
+ if(l_pbaxid.node_id >= MAX_NUM_NODES)
{
// We received an invalid power bus id from the master.
// This may be a communication failure, so allow some retries.
@@ -679,7 +679,7 @@ void task_dcom_wait_for_master( task_t *i_self)
}
TRAC_IMP("Slave OCC[%d] Received first doorbell from Master OCC[%d]",
- (int) G_pob_id.chip_id,
+ (int) G_pbax_id.chip_id,
G_dcom_slv_inbox_doorbell_rx.pob_id.chip_id);
// First message is dropped, so mark it as counted.
@@ -693,7 +693,7 @@ void task_dcom_wait_for_master( task_t *i_self)
}
else
{
- TRAC_INFO("[%d] Restablished contact via doorbell from Master",(int) G_pob_id.chip_id);
+ TRAC_INFO("[%d] Restablished contact via doorbell from Master",(int) G_pbax_id.chip_id);
// Inform AMEC that Pmax_rail doesn't need to be lowered and reset
// the no_master_doorbell counter
diff --git a/src/occ_405/dcom/dcomSlaveTx.c b/src/occ_405/dcom/dcomSlaveTx.c
index 0e16782..b083ff0 100755
--- a/src/occ_405/dcom/dcomSlaveTx.c
+++ b/src/occ_405/dcom/dcomSlaveTx.c
@@ -83,9 +83,9 @@ uint32_t dcom_build_slv_outbox(void)
l_addr_of_slv_outbox_in_main_mem = dcom_which_buffer_slv_outbox();
- l_addr_of_slv_outbox_in_main_mem += G_pob_id.chip_id*sizeof(dcom_slv_outbox_t);
+ l_addr_of_slv_outbox_in_main_mem += G_pbax_id.chip_id*sizeof(dcom_slv_outbox_t);
- G_dcom_slv_outbox_doorbell_tx.pob_id = G_pob_id;
+ G_dcom_slv_outbox_doorbell_tx.pob_id = G_pbax_id;
G_dcom_slv_outbox_doorbell_tx.pcap_valid = g_amec->pcap_valid;
G_dcom_slv_outbox_doorbell_tx.active_node_pcap = g_amec->pcap.active_node_pcap;
G_dcom_slv_outbox_doorbell_tx.addr_slv_outbox_buffer = l_addr_of_slv_outbox_in_main_mem;
diff --git a/src/occ_405/errl/errl.c b/src/occ_405/errl/errl.c
index bd80cd4..45c6c62 100755
--- a/src/occ_405/errl/errl.c
+++ b/src/occ_405/errl/errl.c
@@ -335,7 +335,7 @@ errlHndl_t createErrl(
//NOTE: Design does not exist for these fields
//TODO: fix this when design is done!
l_rc->iv_userDetails.iv_fwLevel = 0;
- l_rc->iv_userDetails.iv_occId = G_pob_id.chip_id;
+ l_rc->iv_userDetails.iv_occId = G_pbax_id.chip_id;
l_rc->iv_userDetails.iv_occRole = G_occ_role;
l_rc->iv_userDetails.iv_occRole = OCC_MASTER;
l_rc->iv_userDetails.iv_operatingState = CURRENT_STATE();
diff --git a/src/occ_405/homer.c b/src/occ_405/homer.c
index e78a82c..823cbfa 100755
--- a/src/occ_405/homer.c
+++ b/src/occ_405/homer.c
@@ -61,8 +61,10 @@ homer_rc_t __attribute__((optimize("O1"))) homer_hd_map_read_unmap(const homer_r
void * const o_host_data,
int * const o_ssx_rc)
{
-// TEMP / TODO -- Commented out due to unused var warning
-// Ppc405MmuMap l_mmuMapHomer = 0;
+#if PPC405_MMU_SUPPORT
+ Ppc405MmuMap l_mmuMapHomer = 0;
+#endif
+
homer_rc_t l_rc = HOMER_SUCCESS;
occHostConfigDataArea_t *l_hdcfg_data = 0x00000000;
diff --git a/src/occ_405/img_defs.mk b/src/occ_405/img_defs.mk
index a1257a5..da22314 100644
--- a/src/occ_405/img_defs.mk
+++ b/src/occ_405/img_defs.mk
@@ -150,7 +150,7 @@ endif
# TODO: Enable this once we get MMU support working in simics
# Currently, turning on MMU support causes an SSX panic (in Simics)
ifeq "$(PPC405_MMU_SUPPORT)" ""
-PPC405_MMU_SUPPORT = 0
+PPC405_MMU_SUPPORT = 1
endif
ifeq "$(OCCHW_ASYNC_SUPPORT)" ""
@@ -176,13 +176,9 @@ GCC-O-LEVEL = -Os
endif
ifdef TRAC_TO_SIMICS
-GCC-DEFS += -DTRAC_TO_SIMICS=1
-endif
-
-ifdef STRAIGHT_TO_OBS_HACK
-GCC-DEFS += -DSTRAIGHT_TO_OBS_HACK=$(STRAIGHT_TO_OBS_HACK)
+GCC-DEFS += -DTRAC_TO_SIMICS=$(TRAC_TO_SIMICS)
else
-GCC-DEFS += -DSTRAIGHT_TO_OBS_HACK=1
+GCC-DEFS += -DTRAC_TO_SIMICS=0
endif
GCC-DEFS += -DIMAGE_NAME=$(IMAGE_NAME)
diff --git a/src/occ_405/main.c b/src/occ_405/main.c
index 629e88c..3f87870 100755
--- a/src/occ_405/main.c
+++ b/src/occ_405/main.c
@@ -57,6 +57,7 @@
//#include <fir_data_collect.h>
#include <pss_service_codes.h>
#include <dimm.h>
+#include "occhw_shared_data.h"
extern uint32_t __ssx_boot; // Function address is 32 bits
extern uint32_t G_occ_phantom_critical_count;
@@ -555,8 +556,7 @@ void master_occ_init()
}
// Reinitialize the PBAX Queues
- // TEMP -- NO DCOM YET
- //dcom_initialize_pbax_queues();
+ dcom_initialize_pbax_queues();
}
/*
@@ -591,8 +591,7 @@ void slave_occ_init()
}
*/
//Set up doorbell queues
- // TEMP -- NO DCOM YET
- //dcom_initialize_pbax_queues();
+ dcom_initialize_pbax_queues();
// Run AMEC Slave Init Code
amec_slave_init();
@@ -765,18 +764,8 @@ void Main_thread_routine(void *private)
// change to use config_data_init at that time.
// Default role initialization and determine OCC/Chip Id
- // TEMP -- NO DCOM YET, init as OCC Master
- //dcom_initialize_roles();
+ dcom_initialize_roles();
-#if STRAIGHT_TO_OBS_HACK
- // Remove the next LOC when dcom_initialize_roles() is un-commented
- G_occ_role = OCC_MASTER; // TEMP - @TODO
-
- // Remove the next 2 LOC when dcom_initialize_roles is un-commented
- // AND cmdh is running to call master_occ_init
- rtl_set_run_mask(RTL_FLAG_MSTR);
- master_occ_init();
-#endif
CHECKPOINT(ROLES_INITIALIZED);
@@ -829,17 +818,6 @@ void Main_thread_routine(void *private)
// enable switch to actually start the watchdog function.
// ENABLE_WDOG;
-// TEMP: Normally these flags are set elsewhere, after the BMC/FSP
-// send us configuration data. This is a temporary hack until
-// that communication is enabled. Required for APSS tasks.
-#if STRAIGHT_TO_OBS_HACK
- rtl_set_run_mask(RTL_FLAG_OBS);
- rtl_clr_run_mask(RTL_FLAG_STANDBY);
- rtl_clr_run_mask(RTL_FLAG_APSS_NOT_INITD);
- rtl_clr_run_mask(RTL_FLAG_RST_REQ);
-#endif
-// END TEMP
-
while (TRUE)
{
// Count each loop so the watchdog can tell the main thread is
@@ -963,6 +941,39 @@ int main(int argc, char **argv)
#if PPC405_MMU_SUPPORT
l_ssxrc = ppc405_mmu_map(
+ OSD_ADDR,
+ OSD_ADDR,
+// OSD_ADDR | 0x18000000,
+ OSD_TOTAL_SHARED_DATA_BYTES,
+ 0,
+ TLBLO_WR | TLBLO_I,
+ NULL
+ );
+
+ if(l_ssxrc != SSX_OK)
+ {
+ //failure means we can't talk to FSP.
+ SSX_PANIC(0x01000001);
+ }
+
+#if SIMICS_ENVIRONMENT
+ l_ssxrc = ppc405_mmu_map(
+ SIMICS_STDIO_BASE,
+ SIMICS_STDIO_BASE,
+ 1024,
+ 0,
+ TLBLO_WR | TLBLO_I,
+ NULL
+ );
+
+ if(l_ssxrc != SSX_OK)
+ {
+ //failure means we can't talk to FSP.
+ SSX_PANIC(0x01000001);
+ }
+#endif /* SIMICS_ENVIRONMENT */
+
+ l_ssxrc = ppc405_mmu_map(
CMDH_OCC_RESPONSE_BASE_ADDRESS,
CMDH_OCC_RESPONSE_BASE_ADDRESS,
CMDH_FSP_RSP_SIZE,
diff --git a/src/occ_405/occLinkInputFile b/src/occ_405/occLinkInputFile
index 0cb4978..eb3f48d 100644
--- a/src/occ_405/occLinkInputFile
+++ b/src/occ_405/occLinkInputFile
@@ -2,7 +2,11 @@ INPUT ( amec_data.o
amec_freq.o
amec_health.o
amec_init.o
+ amec_amester.o
amec_master_smh.o
+ amec_parm.o
+ amec_pcap.o
+ amec_parm_table.o
amec_part.o
amec_sensors_fw.o
amec_sensors_power.o
@@ -22,6 +26,7 @@ INPUT ( amec_data.o
dcom.o
dcom_thread.o
dcomMasterRx.o
+ dcomMasterTx.o
dcomSlaveRx.o
dcomSlaveTx.o
dimm.o
diff --git a/src/occ_405/occ_sys_config.c b/src/occ_405/occ_sys_config.c
index 808fce0..9d7a40f 100755
--- a/src/occ_405/occ_sys_config.c
+++ b/src/occ_405/occ_sys_config.c
@@ -163,12 +163,10 @@ occSysConfigData_t G_sysConfigData =
.unthrottle = 0,
},
+
// -----------------------------------------------------------
// Master/Slave Section Initializations
// -----------------------------------------------------------
- .pob2pbax_chip = {0,1,2,3,4,5,6,7},
- .pob2pbax_node = {0,1,2,3},
-
.is_occ_present = SYSCFG_ZERO_OCCS_PRESENT,
.master_config = {
@@ -424,7 +422,7 @@ void sysConfigFspLess(void)
// ----------------------------------------------------
// Set OCC Role based on Config Data
// ----------------------------------------------------
- if( G_pob_id.chip_id == G_sysConfigData.master_config.default_master )
+ if( G_pbax_id.chip_id == G_sysConfigData.master_config.default_master )
{
G_occ_role = OCC_MASTER;
diff --git a/src/occ_405/occ_sys_config.h b/src/occ_405/occ_sys_config.h
index 4d238ee..796d0bf 100755
--- a/src/occ_405/occ_sys_config.h
+++ b/src/occ_405/occ_sys_config.h
@@ -36,7 +36,7 @@
#include <apss.h>
#include <dimm.h>
-#define MAX_NUM_OCC 8
+#define MAX_NUM_OCC 4
#define MAX_NUM_NODES 4
#define MAX_NUM_CORES 24
#define MAX_THREADS_PER_CORE 8
diff --git a/src/occ_405/proc/proc_pstate.c b/src/occ_405/proc/proc_pstate.c
index 26704de..a52132a 100755
--- a/src/occ_405/proc/proc_pstate.c
+++ b/src/occ_405/proc/proc_pstate.c
@@ -678,7 +678,7 @@ void proc_gpsm_dcm_sync_enable_pstates_smh(void)
TRAC_IMP("MSTR: Initial Pstates: V: %d, F: %d\n",l_voltage_pstate, l_freq_pstate);
// DCM SYNC (Master2Slave): Send V & F Pstate to slave
- G_proc_dcm_sync_state.dcm_pair_id = G_pob_id.chip_id;
+ G_proc_dcm_sync_state.dcm_pair_id = G_pbax_id.chip_id;
G_proc_dcm_sync_state.pstate_v = l_voltage_pstate;
G_proc_dcm_sync_state.pstate_f = l_freq_pstate;
diff --git a/src/occ_405/rtls/rtls.h b/src/occ_405/rtls/rtls.h
index 91dd5ac..7ec3c2e 100755
--- a/src/occ_405/rtls/rtls.h
+++ b/src/occ_405/rtls/rtls.h
@@ -45,16 +45,16 @@ typedef enum {
TASK_ID_APSS_CONT,
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
-// TASK_ID_DCOM_RX_INBX,
-// TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_POKE_WDT, // Reset ppc405 watchdog and OCB timer
TASK_ID_DCOM_WAIT_4_MSTR,
TASK_ID_DCOM_RX_OUTBX,
TASK_ID_DCOM_TX_OUTBX,
-// TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS, // Miscellaneous checks to be done by 405
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_AMEC_SLAVE, // AMEC SMH tasks
-// TASK_ID_AMEC_MASTER, // AMEC SMH tasks
+ TASK_ID_AMEC_MASTER, // AMEC SMH tasks
// TASK_ID_CORE_DATA_CONTROL,
// TASK_ID_GPU_SM, // GPU State Machine
TASK_ID_DIMM_SM, // DIMM State Machine
diff --git a/src/occ_405/rtls/rtls_tables.c b/src/occ_405/rtls/rtls_tables.c
index 20b60dd..5f08b17 100755
--- a/src/occ_405/rtls/rtls_tables.c
+++ b/src/occ_405/rtls/rtls_tables.c
@@ -100,24 +100,16 @@ task_t G_task_table[TASK_END] = {
{ FLAGS_APSS_CONT_MEAS, task_apss_continue_pwr_meas, NULL }, // TASK_ID_APSS_CONT
{ FLAGS_HIGH_CORES_DATA, task_core_data, (void *) &G_high_cores},
{ FLAGS_APSS_DONE_MEAS, task_apss_complete_pwr_meas, NULL }, // TASK_ID_APSS_DONE
-// TEMP -- NOT SUPPORTED YET IN PHASE1
-// { FLAGS_DCOM_RX_SLV_INBX, task_dcom_rx_slv_inbox, NULL }, // TASK_ID_DCOM_RX_INBX
-// TEMP -- NOT SUPPORTED YET IN PHASE1
-// { FLAGS_DCOM_TX_SLV_INBX, task_dcom_tx_slv_inbox, NULL }, // TASK_ID_DCOM_TX_INBX
+ { FLAGS_DCOM_RX_SLV_INBX, task_dcom_rx_slv_inbox, NULL }, // TASK_ID_DCOM_RX_INBX
+ { FLAGS_DCOM_TX_SLV_INBX, task_dcom_tx_slv_inbox, NULL }, // TASK_ID_DCOM_TX_INBX
{ FLAGS_POKE_WDT, task_poke_watchdogs, NULL }, // TASK_ID_POKE_WDT
-// TEMP -- NOT SUPPORTED YET IN PHASE1
{ FLAGS_DCOM_WAIT_4_MSTR, task_dcom_wait_for_master, NULL }, // TASK_ID_DCOM_WAIT_4_MSTR
-// TEMP -- NOT SUPPORTED YET IN PHASE1
{ FLAGS_DCOM_RX_SLV_OUTBOX, task_dcom_rx_slv_outboxes, NULL }, // TASK_ID_DCOM_RX_OUTBX
-// TEMP -- NOT SUPPORTED YET IN PHASE1
{ FLAGS_DCOM_TX_SLV_OUTBOX, task_dcom_tx_slv_outbox, NULL }, // TASK_ID_DCOM_TX_OUTBX
-// TEMP -- NOT SUPPORTED YET IN PHASE1
-// { FLAGS_DCOM_PARSE_OCC_FW_MSG, task_dcom_parse_occfwmsg, NULL }, // TASK_ID_DCOM_PARSE_FW_MSG
{ FLAGS_MISC_405_CHECKS, task_misc_405_checks, NULL }, // TASK_ID_MISC_405_CHECKS
-// TEMP -- NOT SUPPORTED YET IN PHASE1
+ { FLAGS_DCOM_PARSE_OCC_FW_MSG, task_dcom_parse_occfwmsg, NULL }, // TASK_ID_DCOM_PARSE_FW_MSG
{ FLAGS_AMEC_SLAVE, task_amec_slave, NULL }, // TASK_ID_AMEC_SLAVE
-// TEMP -- NOT SUPPORTED YET IN PHASE1
-// { FLAGS_AMEC_MASTER, task_amec_master, NULL }, // TASK_ID_AMEC_MASTER
+ { FLAGS_AMEC_MASTER, task_amec_master, NULL }, // TASK_ID_AMEC_MASTER
// TEMP -- NOT SUPPORTED YET IN PHASE1
// { FLAGS_CORE_DATA_CONTROL, task_core_data_control, NULL }, // TASK_ID_CORE_DATA_CONTROL
// TEMP -- NOT YET IMPLEMENTED
@@ -135,15 +127,15 @@ const uint8_t G_tick0_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
TASK_ID_POKE_WDT,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -155,14 +147,14 @@ const uint8_t G_tick1_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -174,14 +166,14 @@ const uint8_t G_tick2_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -193,14 +185,14 @@ const uint8_t G_tick3_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -212,15 +204,15 @@ const uint8_t G_tick4_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
TASK_ID_POKE_WDT,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -232,14 +224,14 @@ const uint8_t G_tick5_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -251,14 +243,14 @@ const uint8_t G_tick6_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -270,14 +262,14 @@ const uint8_t G_tick7_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -289,15 +281,15 @@ const uint8_t G_tick8_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
TASK_ID_POKE_WDT,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -309,14 +301,14 @@ const uint8_t G_tick9_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -328,14 +320,14 @@ const uint8_t G_tick10_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -347,14 +339,14 @@ const uint8_t G_tick11_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -366,15 +358,15 @@ const uint8_t G_tick12_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
TASK_ID_POKE_WDT,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -386,14 +378,14 @@ const uint8_t G_tick13_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -405,14 +397,14 @@ const uint8_t G_tick14_seq[] = {
TASK_ID_CORE_DATA_HIGH,
TASK_ID_APSS_DONE,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
@@ -424,14 +416,14 @@ const uint8_t G_tick15_seq[] = {
TASK_ID_APSS_DONE,
//TASK_ID_MEM_DEADMAN,
//TASK_ID_CORE_DATA_CONTROL,
- //TASK_ID_DCOM_WAIT_4_MSTR,
- //TASK_ID_DCOM_RX_INBX,
- //TASK_ID_DCOM_RX_OUTBX,
- //TASK_ID_DCOM_TX_OUTBX,
- //TASK_ID_DCOM_TX_INBX,
+ TASK_ID_DCOM_WAIT_4_MSTR,
+ TASK_ID_DCOM_RX_INBX,
+ TASK_ID_DCOM_RX_OUTBX,
+ TASK_ID_DCOM_TX_OUTBX,
+ TASK_ID_DCOM_TX_INBX,
TASK_ID_AMEC_SLAVE,
- //TASK_ID_AMEC_MASTER,
- //TASK_ID_DCOM_PARSE_FW_MSG,
+ TASK_ID_AMEC_MASTER,
+ TASK_ID_DCOM_PARSE_FW_MSG,
TASK_ID_MISC_405_CHECKS,
TASK_END };
diff --git a/src/occ_405/ssx_app_cfg.h b/src/occ_405/ssx_app_cfg.h
index 5ba98d5..d8e91fe 100755
--- a/src/occ_405/ssx_app_cfg.h
+++ b/src/occ_405/ssx_app_cfg.h
@@ -180,10 +180,6 @@ do { \
#define USE_EPM_IO 0
#endif
-#if SIMICS_ENVIRONMENT
-#define PPC405_MMU_SUPPORT 0
-#endif
-
/// The buffer used for 'ssxout' in VBU and lab applications
///
/// The buffer is defined to be quite large in order to accomodate full kernel
diff --git a/src/occ_405/topfiles.mk b/src/occ_405/topfiles.mk
index 93b574f..807e4de 100644
--- a/src/occ_405/topfiles.mk
+++ b/src/occ_405/topfiles.mk
@@ -26,7 +26,11 @@ TOP-C-SOURCES = amec/amec_data.c \
amec/amec_freq.c \
amec/amec_health.c \
amec/amec_init.c \
+ amec/amec_amester.c \
amec/amec_master_smh.c \
+ amec/amec_parm.c \
+ amec/amec_pcap.c \
+ amec/amec_parm_table.c \
amec/amec_part.c \
amec/amec_sensors_fw.c \
amec/amec_sensors_power.c \
@@ -45,10 +49,11 @@ TOP-C-SOURCES = amec/amec_data.c \
cmdh/cmdh_thread.c \
cmdh/cmdh_tunable_parms.c \
cmdh/ffdc.c \
- common.c \
+ common.c \
dcom/dcom.c \
dcom/dcom_thread.c \
dcom/dcomMasterRx.c \
+ dcom/dcomMasterTx.c \
dcom/dcomSlaveRx.c \
dcom/dcomSlaveTx.c \
dimm/dimm.c \
diff --git a/src/occ_405/trac/trac.h b/src/occ_405/trac/trac.h
index 92fd9bf..601d3a8 100755
--- a/src/occ_405/trac/trac.h
+++ b/src/occ_405/trac/trac.h
@@ -63,17 +63,20 @@
// TRAC_ERR or TRAC_IMP. Any debug or informational traces.
// TRAC_DBG must be used for debug purpose only. This traces will be
// turned OFF with product code.
-#ifdef TRAC_TO_SIMICS
+#if TRAC_TO_SIMICS
#define TRAC_ERR(frmt,args...) \
- printf(ERR_MRK "%s: "frmt "\n",__FUNCTION__,##args)
+ printf(ERR_MRK "%s: "frmt "\n",__FUNCTION__,##args); \
+ TRACE(&g_des_array[ERR_TRACE_DESCRIPTOR],frmt,##args)
#define TRAC_INFO(frmt,args...) \
- printf(INFO_MRK "%s: "frmt "\n",__FUNCTION__,##args)
+ printf(INFO_MRK "%s: "frmt "\n",__FUNCTION__,##args); \
+ TRACE(&g_des_array[INF_TRACE_DESCRIPTOR],frmt,##args)
#define TRAC_IMP(frmt,args...) \
- printf(IMP_MRK "%s: "frmt "\n",__FUNCTION__,##args)
-
+ printf(IMP_MRK "%s: "frmt "\n",__FUNCTION__,##args); \
+ TRACE(&g_des_array[IMP_TRACE_DESCRIPTOR],frmt,##args)
#define DBG_PRINT(fmt,args...) \
- printf(DBG_MRK "%s: "fmt "\n",__FUNCTION__,##args)
+ printf(DBG_MRK "%s: "fmt "\n",__FUNCTION__,##args); \
+ TRACEBIN(&g_des_array[INF_TRACE_DESCRIPTOR], string, data,len)
extern void dumpHexString(const void *i_data, const unsigned int len, const char *string);
#define DEBUG_HEXDUMP(data, len, string) \
diff --git a/src/ssx/occhw/occhw.h b/src/ssx/occhw/occhw.h
index b0ddda8..c0f11df 100644
--- a/src/ssx/occhw/occhw.h
+++ b/src/ssx/occhw/occhw.h
@@ -327,8 +327,18 @@ extern Ppc405MmuMap G_applet1_mmu_map;
#endif /* __ASSEMBLER__ */
-// OCCHW defines a private version of dcache_flush_all() that uses the undefined
-// OCI space at 0x20000000; See dcache_flush_all() in occhw_cache.S.
+// OCCHW defines a private version of dcache_flush_all() that uses undefined
+// OCI space defined by OCCHW_FLUSH_ZERO_ADDRESS.
+// See dcache_flush_all() in occhw_cache.S.
+//
+// DCCR bit | OCCHW_FLUSH_ZERO_ADDRESS ( see 405 spec for full table)
+// ---------|------------------------------------------
+// 0 | 0x00000000 - 0x07ffffff
+// 1 | 0x08000000 - 0x0fffffff
+// 4 | 0x20000000 - 0x27ffffff
+// 8 | 0x40000000 - 0x47ffffff (undefined range - use for dcache flush)
+// 16 | 0x80000000 - 0x87ffffff (overlaps PBA defined space)
+// 31 | 0xF8000000 - 0xffffffff (overlaps SRAM)
#define USE_GENERIC_DCACHE_FLUSH_ALL 0
#define OCCHW_FLUSH_ZERO_ADDRESS 0x20000000
diff --git a/src/ssx/occhw/occhw_async.c b/src/ssx/occhw/occhw_async.c
index f0fbbca..ae3273b 100644
--- a/src/ssx/occhw/occhw_async.c
+++ b/src/ssx/occhw/occhw_async.c
@@ -999,8 +999,6 @@ async_initialize()
async_gpe_initialize(&G_async_gpe_queue3, ASYNC_ENGINE_GPE3);
- // TODO: add these back in as they are ported to P9
-#if 0
// BCE
async_bce_initialize(&G_pba_bcde_queue,
@@ -1010,7 +1008,6 @@ async_initialize()
async_bce_initialize(&G_pba_bcue_queue,
ASYNC_ENGINE_BCUE,
OCCHW_IRQ_PBA_BCUE_ATTN);
-#endif
// OCB
@@ -1062,7 +1059,6 @@ async_initialize()
OCB_WRITE3_LENGTH,
OCB_WRITE3_PROTOCOL);
-#if 0
// PBAX
async_pbax_initialize(&G_pbax_read_queue[0],
@@ -1078,5 +1074,4 @@ async_initialize()
G_pbax_read1_buffer,
PBAX_READ1_LENGTH,
PBAX_READ1_PROTOCOL);
-#endif
}
diff --git a/src/ssx/occhw/occhw_async.h b/src/ssx/occhw/occhw_async.h
index e2bbf0a..be2996f 100644
--- a/src/ssx/occhw/occhw_async.h
+++ b/src/ssx/occhw/occhw_async.h
@@ -641,13 +641,13 @@ typedef struct {
pba_fir_t fir;
/// PBA Error Report 0
- pba_errpt0_t errpt0;
+ pba_errrpt0_t errrpt0;
/// PBA Error Report 1
- pba_errpt1_t errpt1;
+ pba_errrpt1_t errrpt1;
/// PBA Error Report 2
- pba_errpt2_t errpt2;
+ pba_errrpt2_t errrpt2;
/// PBA Read Buffer Valid Status
pba_rbufvaln_t rbufval[PBA_READ_BUFFERS];
diff --git a/src/ssx/occhw/occhw_async_pba.c b/src/ssx/occhw/occhw_async_pba.c
index 3a03a17..b4bc8fb 100644
--- a/src/ssx/occhw/occhw_async_pba.c
+++ b/src/ssx/occhw/occhw_async_pba.c
@@ -140,9 +140,9 @@ pba_common_ffdc(PbaCommonFfdc* ffdc)
}
getscom(PBA_FIR, &(ffdc->fir.value));
- getscom(PBA_ERRPT0, &(ffdc->errpt0.value));
- getscom(PBA_ERRPT1, &(ffdc->errpt1.value));
- getscom(PBA_ERRPT2, &(ffdc->errpt2.value));
+ getscom(PBA_ERRRPT0, &(ffdc->errrpt0.value));
+ getscom(PBA_ERRRPT1, &(ffdc->errrpt1.value));
+ getscom(PBA_ERRRPT2, &(ffdc->errrpt2.value));
ffdc->error = 1;
}
diff --git a/src/ssx/occhw/occhw_init.c b/src/ssx/occhw/occhw_init.c
index f3383b4..bbb67bd 100644
--- a/src/ssx/occhw/occhw_init.c
+++ b/src/ssx/occhw/occhw_init.c
@@ -174,6 +174,7 @@ static const MmuRegion mmu_regions[] = {
0, DATA_CACHEABILITY_FLAG | TEXT_CACHEABILITY_FLAG | TLBLO_EX | TLBLO_WR,
&G_ex_free_mmu_map},
+/*
{(SsxAddress)&_APPLET0_SECTION_BASE,
(size_t)&_APPLET0_SECTION_SIZE,
0, DATA_CACHEABILITY_FLAG | TEXT_CACHEABILITY_FLAG | TLBLO_WR | TLBLO_EX,
@@ -183,7 +184,7 @@ static const MmuRegion mmu_regions[] = {
(size_t)&_APPLET1_SECTION_SIZE,
0, DATA_CACHEABILITY_FLAG | TEXT_CACHEABILITY_FLAG | TLBLO_WR | TLBLO_EX,
&G_applet1_mmu_map},
-
+*/
{(SsxAddress)OCI_REGISTER_SPACE_BASE,
(size_t)OCI_REGISTER_SPACE_SIZE,
0, TLBLO_WR | TLBLO_I | TLBLO_G, 0} ,
diff --git a/src/ssx/occhw/occhw_pba.c b/src/ssx/occhw/occhw_pba.c
index 4c21bb8..5ba18d5 100644
--- a/src/ssx/occhw/occhw_pba.c
+++ b/src/ssx/occhw/occhw_pba.c
@@ -257,13 +257,13 @@ pba_slave_reset(int id)
/// not valid for some reason.
int
-pbax_configure(int master, int node, int chip, int group_mask)
+pbax_configure(int master, int group, int chip, int group_mask)
{
pba_xcfg_t pxc;
if (SSX_ERROR_CHECK_API) {
- SSX_ERROR_IF((node < 0) ||
- (node >= PBAX_NODES) ||
+ SSX_ERROR_IF((group < 0) ||
+ (group >= PBAX_GROUPS) ||
(chip < 0) ||
(chip >= PBAX_CHIPS) ||
(group_mask < 0) ||
@@ -272,7 +272,7 @@ pbax_configure(int master, int node, int chip, int group_mask)
}
pxc.value = in64(PBA_XCFG);
pxc.fields.reservation_en = (master != 0);
- pxc.fields.rcv_nodeid = node;
+ pxc.fields.rcv_groupid = group;
pxc.fields.rcv_chipid = chip;
pxc.fields.rcv_brdcst_group = group_mask;
out64(PBA_XCFG, pxc.value);
@@ -312,7 +312,7 @@ pbax_configure(int master, int node, int chip, int group_mask)
int
pbax_target_create(PbaxTarget* target,
int type, int scope, int queue,
- int node, int chip_or_group)
+ int group, int chip_or_group)
{
if (SSX_ERROR_CHECK_API) {
SSX_ERROR_IF(target == 0, PBAX_INVALID_OBJECT);
@@ -327,7 +327,7 @@ pbax_target_create(PbaxTarget* target,
target->target.fields.snd_qid = queue;
target->target.fields.snd_type = type;
target->target.fields.snd_reservation = (type == PBAX_BROADCAST);
- target->target.fields.snd_nodeid = node;
+ target->target.fields.snd_groupid = group;
target->target.fields.snd_chipid = chip_or_group;
return 0;
diff --git a/src/ssx/ssx/ssx_api.h b/src/ssx/ssx/ssx_api.h
index e4f6a10..bcdd0fb 100644
--- a/src/ssx/ssx/ssx_api.h
+++ b/src/ssx/ssx/ssx_api.h
@@ -538,6 +538,24 @@ typedef struct {
#define SSXTRACE_BIN(str, bufp, buf_size)
#endif //SSX_TRACE_SUPPORT
+//Needed for easy cache flush of trace buffer
+//Note, in order to use this macro you must declare g_ssx_trace_buf[_size]
+// as extern SsxTraceBuffer [and size_t] variables in the .c file as well
+// as include ssx_trace.h.
+#if (SSX_TRACE_ENABLE && SSX_TRACE_SUPPORT && SSX_TIMER_SUPPORT)
+#define SSX_FLUSH_TRACE_BUF() dcache_flush(&g_ssx_trace_buf, g_ssx_trace_buf_size)
+#else
+#define SSX_FLUSH_TRACE_BUF()
+#endif
+
+//Making sure we can still compile application codes if SSX tracing for some
+// reason isn't enabled.
+#if (SSX_TRACE_ENABLE && SSX_TRACE_SUPPORT && SSX_TIMER_SUPPORT)
+#define SSX_TRACE_INIT(freqhz, time0) ssx_trace_init(freqhz, time0)
+#else
+#define SSX_TRACE_INIT(freqhz, time0)
+#endif
+
/// A generic doubly-linked list object
///
/// This object functions both as a sentinel mode for a deque as well as a
diff --git a/src/ssx/trace/ssx_trace.h b/src/ssx/trace/ssx_trace.h
index c79452b..3f4505f 100644
--- a/src/ssx/trace/ssx_trace.h
+++ b/src/ssx/trace/ssx_trace.h
@@ -299,5 +299,6 @@ typedef struct
}SsxTraceBuffer;
extern SsxTraceBuffer g_ssx_trace_buf;
+extern size_t g_ssx_trace_buf_size;
#endif /* __SSX_TRACE_H__ */
diff --git a/src/ssx/trace/ssx_trace_core.c b/src/ssx/trace/ssx_trace_core.c
index a2db4b8..de9d309 100644
--- a/src/ssx/trace/ssx_trace_core.c
+++ b/src/ssx/trace/ssx_trace_core.c
@@ -162,4 +162,8 @@ void ssx_trace_init(uint32_t timebase_frequency_hz,
0);
}
+////Needed for easy cache flush of trace buffer
+size_t g_ssx_trace_buf_size=sizeof(g_ssx_trace_buf);
+
+
#endif
OpenPOWER on IntegriCloud