summaryrefslogtreecommitdiffstats
path: root/src/ssx/pgp/registers
diff options
context:
space:
mode:
Diffstat (limited to 'src/ssx/pgp/registers')
-rwxr-xr-xsrc/ssx/pgp/registers/centaur_firmware_registers.h1496
-rwxr-xr-xsrc/ssx/pgp/registers/centaur_register_addresses.h66
-rw-r--r--src/ssx/pgp/registers/fasti2c_firmware_registers.h232
-rw-r--r--src/ssx/pgp/registers/fasti2c_register_addresses.h27
-rw-r--r--src/ssx/pgp/registers/i2cengine_firmware_registers.h710
-rw-r--r--src/ssx/pgp/registers/i2cengine_register_addresses.h33
-rwxr-xr-xsrc/ssx/pgp/registers/icp_firmware_registers.h189
-rwxr-xr-xsrc/ssx/pgp/registers/icp_register_addresses.h24
-rwxr-xr-xsrc/ssx/pgp/registers/mcs_firmware_registers.h161
-rwxr-xr-xsrc/ssx/pgp/registers/mcs_register_addresses.h46
-rwxr-xr-xsrc/ssx/pgp/registers/ocb_firmware_registers.h2668
-rwxr-xr-xsrc/ssx/pgp/registers/ocb_register_addresses.h148
-rwxr-xr-xsrc/ssx/pgp/registers/oha_firmware_registers.h1248
-rwxr-xr-xsrc/ssx/pgp/registers/oha_register_addresses.h39
-rwxr-xr-xsrc/ssx/pgp/registers/pba_firmware_registers.h2184
-rwxr-xr-xsrc/ssx/pgp/registers/pba_register_addresses.h94
-rwxr-xr-xsrc/ssx/pgp/registers/pc_firmware_registers.h442
-rwxr-xr-xsrc/ssx/pgp/registers/pc_register_addresses.h61
-rwxr-xr-xsrc/ssx/pgp/registers/pcbs_firmware_registers.h2477
-rwxr-xr-xsrc/ssx/pgp/registers/pcbs_register_addresses.h74
-rw-r--r--src/ssx/pgp/registers/pibmem_firmware_registers.h264
-rw-r--r--src/ssx/pgp/registers/pibmem_register_addresses.h30
-rwxr-xr-xsrc/ssx/pgp/registers/plb_arbiter_firmware_registers.h215
-rwxr-xr-xsrc/ssx/pgp/registers/plb_arbiter_register_addresses.h28
-rwxr-xr-xsrc/ssx/pgp/registers/pmc_firmware_registers.h3140
-rwxr-xr-xsrc/ssx/pgp/registers/pmc_register_addresses.h116
-rwxr-xr-xsrc/ssx/pgp/registers/pore_firmware_registers.h906
-rwxr-xr-xsrc/ssx/pgp/registers/pore_register_addresses.h130
-rw-r--r--src/ssx/pgp/registers/sbe_firmware_registers.h906
-rw-r--r--src/ssx/pgp/registers/sbe_register_addresses.h48
-rwxr-xr-xsrc/ssx/pgp/registers/sensors_firmware_registers.h668
-rwxr-xr-xsrc/ssx/pgp/registers/sensors_register_addresses.h47
-rwxr-xr-xsrc/ssx/pgp/registers/sramctl_firmware_registers.h211
-rwxr-xr-xsrc/ssx/pgp/registers/sramctl_register_addresses.h30
-rwxr-xr-xsrc/ssx/pgp/registers/tod_firmware_registers.h58
-rwxr-xr-xsrc/ssx/pgp/registers/tod_register_addresses.h22
-rw-r--r--src/ssx/pgp/registers/tpc_firmware_registers.h213
-rw-r--r--src/ssx/pgp/registers/tpc_register_addresses.h30
38 files changed, 19481 insertions, 0 deletions
diff --git a/src/ssx/pgp/registers/centaur_firmware_registers.h b/src/ssx/pgp/registers/centaur_firmware_registers.h
new file mode 100755
index 0000000..39f168f
--- /dev/null
+++ b/src/ssx/pgp/registers/centaur_firmware_registers.h
@@ -0,0 +1,1496 @@
+#ifndef __CENTAUR_FIRMWARE_REGISTERS_H__
+#define __CENTAUR_FIRMWARE_REGISTERS_H__
+
+// $Id: centaur_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/centaur_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file centaur_firmware_registers.h
+/// \brief C register structs for the CENTAUR unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union centaur_device_id {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t cfam_id : 32;
+ uint64_t module_id : 2;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t module_id : 2;
+ uint64_t cfam_id : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_device_id_t;
+
+
+
+typedef union centaur_mbs_fir_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_fir_reg_t;
+
+
+
+typedef union centaur_mbs_fir_reg_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_fir_reg_and_t;
+
+
+
+typedef union centaur_mbs_fir_reg_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_fir_reg_or_t;
+
+
+
+typedef union centaur_mbs_fir_mask_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_fir_mask_reg_t;
+
+
+
+typedef union centaur_mbs_fir_mask_reg_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_fir_mask_reg_and_t;
+
+
+
+typedef union centaur_mbs_fir_mask_reg_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_fir_mask_reg_or_t;
+
+
+
+typedef union centaur_mbs_fir_action0_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_fir_action0_reg_t;
+
+
+
+typedef union centaur_mbs_firact1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t host_protocol_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t external_timeout : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t lru_error : 1;
+ uint64_t edram_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t internal_scom_error_copy : 1;
+ uint64_t internal_scom_error : 1;
+ uint64_t spare_fir31 : 1;
+ uint64_t spare_fir30 : 1;
+ uint64_t dir_purge_ce : 1;
+ uint64_t srb_buffer_sue : 1;
+ uint64_t srb_buffer_ue : 1;
+ uint64_t srb_buffer_ce : 1;
+ uint64_t occ_inband_write_error : 1;
+ uint64_t occ_inband_read_error : 1;
+ uint64_t host_inband_write_error : 1;
+ uint64_t host_inband_read_error : 1;
+ uint64_t emergency_throttle_set : 1;
+ uint64_t edram_error : 1;
+ uint64_t lru_error : 1;
+ uint64_t dir_all_members_deleted : 1;
+ uint64_t dir_member_deleted : 1;
+ uint64_t dir_ue : 1;
+ uint64_t dir_ce : 1;
+ uint64_t cache_co_sue : 1;
+ uint64_t cache_co_ue : 1;
+ uint64_t cache_co_ce : 1;
+ uint64_t cache_srw_sue : 1;
+ uint64_t cache_srw_ue : 1;
+ uint64_t cache_srw_ce : 1;
+ uint64_t int_parity_error : 1;
+ uint64_t int_buffer_sue : 1;
+ uint64_t int_buffer_ue : 1;
+ uint64_t int_buffer_ce : 1;
+ uint64_t internal_timeout : 1;
+ uint64_t external_timeout : 1;
+ uint64_t invalid_address_error : 1;
+ uint64_t int_protocol_error : 1;
+ uint64_t host_protocol_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbs_firact1_t;
+
+
+
+typedef union centaur_mbscfgq {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t eccbp_exit_sel : 1;
+ uint64_t dram_ecc_bypass_dis : 1;
+ uint64_t mbs_scom_wat_trigger : 1;
+ uint64_t mbs_prq_ref_avoidance_en : 1;
+ uint64_t reserved4_6 : 3;
+ uint64_t occ_deadman_timer_sel : 4;
+ uint64_t sync_fsync_mba_strobe_en : 1;
+ uint64_t hca_timebase_op_mode : 1;
+ uint64_t hca_local_timer_inc_select : 3;
+ uint64_t mbs_01_rdtag_delay : 4;
+ uint64_t mbs_01_rdtag_force_dead_cycle : 1;
+ uint64_t sync_lat_pol_01 : 1;
+ uint64_t sync_lat_adj_01 : 2;
+ uint64_t mbs_23_rdtag_delay : 4;
+ uint64_t mbs_23_rdtag_force_dead_cycle : 1;
+ uint64_t sync_lat_pol_23 : 1;
+ uint64_t sync_lat_adj_23 : 2;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t sync_lat_adj_23 : 2;
+ uint64_t sync_lat_pol_23 : 1;
+ uint64_t mbs_23_rdtag_force_dead_cycle : 1;
+ uint64_t mbs_23_rdtag_delay : 4;
+ uint64_t sync_lat_adj_01 : 2;
+ uint64_t sync_lat_pol_01 : 1;
+ uint64_t mbs_01_rdtag_force_dead_cycle : 1;
+ uint64_t mbs_01_rdtag_delay : 4;
+ uint64_t hca_local_timer_inc_select : 3;
+ uint64_t hca_timebase_op_mode : 1;
+ uint64_t sync_fsync_mba_strobe_en : 1;
+ uint64_t occ_deadman_timer_sel : 4;
+ uint64_t reserved4_6 : 3;
+ uint64_t mbs_prq_ref_avoidance_en : 1;
+ uint64_t mbs_scom_wat_trigger : 1;
+ uint64_t dram_ecc_bypass_dis : 1;
+ uint64_t eccbp_exit_sel : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbscfgq_t;
+
+
+
+typedef union centaur_mbsemerthroq {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t emergency_throttle_ip : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t emergency_throttle_ip : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbsemerthroq_t;
+
+
+
+typedef union centaur_mbsocc01hq {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_01_rd_hit : 32;
+ uint64_t occ_01_wr_hit : 32;
+#else
+ uint64_t occ_01_wr_hit : 32;
+ uint64_t occ_01_rd_hit : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbsocc01hq_t;
+
+
+
+typedef union centaur_mbsocc23hq {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_23_rd_hit : 32;
+ uint64_t occ_23_wr_hit : 32;
+#else
+ uint64_t occ_23_wr_hit : 32;
+ uint64_t occ_23_rd_hit : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbsocc23hq_t;
+
+
+
+typedef union centaur_mbsoccitcq {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_cent_idle_th_cnt : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t occ_cent_idle_th_cnt : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbsoccitcq_t;
+
+
+
+typedef union centaur_mbsoccscanq {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_01_spec_can : 32;
+ uint64_t occ_23_spec_can : 32;
+#else
+ uint64_t occ_23_spec_can : 32;
+ uint64_t occ_01_spec_can : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbsoccscanq_t;
+
+
+
+typedef union centaur_mbarpc0qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t cfg_lp2_entry_req : 1;
+ uint64_t cfg_lp2_state : 1;
+ uint64_t cfg_min_max_domains_enable : 1;
+ uint64_t cfg_min_max_domains : 3;
+ uint64_t cfg_pup_avail : 5;
+ uint64_t cfg_pdn_pup : 5;
+ uint64_t cfg_pup_pdn : 5;
+ uint64_t reserved0 : 1;
+ uint64_t cfg_min_domain_reduction_enable : 1;
+ uint64_t cfg_min_domain_reduction_on_time : 10;
+ uint64_t cfg_pup_after_activate_wait_enable : 1;
+ uint64_t cfg_pup_after_activate_wait_time : 8;
+ uint64_t cfg_force_spare_pup : 1;
+ uint64_t _reserved0 : 21;
+#else
+ uint64_t _reserved0 : 21;
+ uint64_t cfg_force_spare_pup : 1;
+ uint64_t cfg_pup_after_activate_wait_time : 8;
+ uint64_t cfg_pup_after_activate_wait_enable : 1;
+ uint64_t cfg_min_domain_reduction_on_time : 10;
+ uint64_t cfg_min_domain_reduction_enable : 1;
+ uint64_t reserved0 : 1;
+ uint64_t cfg_pup_pdn : 5;
+ uint64_t cfg_pdn_pup : 5;
+ uint64_t cfg_pup_avail : 5;
+ uint64_t cfg_min_max_domains : 3;
+ uint64_t cfg_min_max_domains_enable : 1;
+ uint64_t cfg_lp2_state : 1;
+ uint64_t cfg_lp2_entry_req : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbarpc0qn_t;
+
+
+
+typedef union centaur_mba_farb3qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t cfg_nm_n_per_mba : 15;
+ uint64_t cfg_nm_n_per_chip : 16;
+ uint64_t cfg_nm_m : 14;
+ uint64_t cfg_nm_ras_weight : 3;
+ uint64_t cfg_nm_cas_weight : 3;
+ uint64_t cfg_nm_per_slot_enabled : 1;
+ uint64_t cfg_nm_count_other_mba_dis : 1;
+ uint64_t _reserved0 : 11;
+#else
+ uint64_t _reserved0 : 11;
+ uint64_t cfg_nm_count_other_mba_dis : 1;
+ uint64_t cfg_nm_per_slot_enabled : 1;
+ uint64_t cfg_nm_cas_weight : 3;
+ uint64_t cfg_nm_ras_weight : 3;
+ uint64_t cfg_nm_m : 14;
+ uint64_t cfg_nm_n_per_chip : 16;
+ uint64_t cfg_nm_n_per_mba : 15;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mba_farb3qn_t;
+
+
+
+typedef union centaur_mbapcn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t mode_hp_sub_cnt : 1;
+ uint64_t mode_lp_sub_cnt : 1;
+ uint64_t mode_static_idle_dly : 5;
+ uint64_t mode_emer_min_max_domain : 3;
+ uint64_t mode_pup_all_wr_pending : 2;
+ uint64_t mode_lp_ref_sim_enq : 1;
+ uint64_t _reserved0 : 51;
+#else
+ uint64_t _reserved0 : 51;
+ uint64_t mode_lp_ref_sim_enq : 1;
+ uint64_t mode_pup_all_wr_pending : 2;
+ uint64_t mode_emer_min_max_domain : 3;
+ uint64_t mode_static_idle_dly : 5;
+ uint64_t mode_lp_sub_cnt : 1;
+ uint64_t mode_hp_sub_cnt : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbapcn_t;
+
+
+
+typedef union centaur_mbasrqn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t emergency_m : 14;
+ uint64_t emergency_n : 15;
+ uint64_t _reserved0 : 35;
+#else
+ uint64_t _reserved0 : 35;
+ uint64_t emergency_n : 15;
+ uint64_t emergency_m : 14;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_mbasrqn_t;
+
+
+
+typedef union centaur_pmu0qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t read_count : 32;
+ uint64_t write_count : 32;
+#else
+ uint64_t write_count : 32;
+ uint64_t read_count : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_pmu0qn_t;
+
+
+
+typedef union centaur_pmu1qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t activate_count : 32;
+ uint64_t pu_counts : 32;
+#else
+ uint64_t pu_counts : 32;
+ uint64_t activate_count : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_pmu1qn_t;
+
+
+
+typedef union centaur_pmu2qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t frame_count : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t frame_count : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_pmu2qn_t;
+
+
+
+typedef union centaur_pmu3qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t low_idle_threshold : 16;
+ uint64_t med_idle_threshold : 16;
+ uint64_t high_idle_threshold : 32;
+#else
+ uint64_t high_idle_threshold : 32;
+ uint64_t med_idle_threshold : 16;
+ uint64_t low_idle_threshold : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_pmu3qn_t;
+
+
+
+typedef union centaur_pmu4qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t base_idle_count : 32;
+ uint64_t low_idle_count : 32;
+#else
+ uint64_t low_idle_count : 32;
+ uint64_t base_idle_count : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_pmu4qn_t;
+
+
+
+typedef union centaur_pmu5qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t med_idle_count : 32;
+ uint64_t high_idle_count : 32;
+#else
+ uint64_t high_idle_count : 32;
+ uint64_t med_idle_count : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_pmu5qn_t;
+
+
+
+typedef union centaur_pmu6qn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t total_gap_counts : 18;
+ uint64_t specific_gap_counts : 18;
+ uint64_t gap_length_adder : 3;
+ uint64_t specific_gap_condition : 4;
+ uint64_t cmd_to_cmd_count : 18;
+ uint64_t command_pattern_to_count : 3;
+#else
+ uint64_t command_pattern_to_count : 3;
+ uint64_t cmd_to_cmd_count : 18;
+ uint64_t specific_gap_condition : 4;
+ uint64_t gap_length_adder : 3;
+ uint64_t specific_gap_counts : 18;
+ uint64_t total_gap_counts : 18;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_pmu6qn_t;
+
+
+
+typedef union centaur_sensor_cache_data0_3 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t crittrip0 : 1;
+ uint64_t abovetrip0 : 1;
+ uint64_t belowtrip0 : 1;
+ uint64_t signbit0 : 1;
+ uint64_t temperature0 : 8;
+ uint64_t temp_frac0 : 2;
+ uint64_t status0 : 2;
+ uint64_t crittrip1 : 1;
+ uint64_t abovetrip1 : 1;
+ uint64_t belowtrip1 : 1;
+ uint64_t signbit1 : 1;
+ uint64_t temperature1 : 8;
+ uint64_t temp_frac1 : 2;
+ uint64_t status1 : 2;
+ uint64_t crittrip2 : 1;
+ uint64_t abovetrip2 : 1;
+ uint64_t belowtrip2 : 1;
+ uint64_t signbit2 : 1;
+ uint64_t temperature2 : 8;
+ uint64_t temp_frac2 : 2;
+ uint64_t status2 : 2;
+ uint64_t crittrip3 : 1;
+ uint64_t abovetrip3 : 1;
+ uint64_t belowtrip3 : 1;
+ uint64_t signbit3 : 1;
+ uint64_t temperature3 : 8;
+ uint64_t temp_frac3 : 2;
+ uint64_t status3 : 2;
+#else
+ uint64_t status3 : 2;
+ uint64_t temp_frac3 : 2;
+ uint64_t temperature3 : 8;
+ uint64_t signbit3 : 1;
+ uint64_t belowtrip3 : 1;
+ uint64_t abovetrip3 : 1;
+ uint64_t crittrip3 : 1;
+ uint64_t status2 : 2;
+ uint64_t temp_frac2 : 2;
+ uint64_t temperature2 : 8;
+ uint64_t signbit2 : 1;
+ uint64_t belowtrip2 : 1;
+ uint64_t abovetrip2 : 1;
+ uint64_t crittrip2 : 1;
+ uint64_t status1 : 2;
+ uint64_t temp_frac1 : 2;
+ uint64_t temperature1 : 8;
+ uint64_t signbit1 : 1;
+ uint64_t belowtrip1 : 1;
+ uint64_t abovetrip1 : 1;
+ uint64_t crittrip1 : 1;
+ uint64_t status0 : 2;
+ uint64_t temp_frac0 : 2;
+ uint64_t temperature0 : 8;
+ uint64_t signbit0 : 1;
+ uint64_t belowtrip0 : 1;
+ uint64_t abovetrip0 : 1;
+ uint64_t crittrip0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_sensor_cache_data0_3_t;
+
+
+
+typedef union centaur_sensor_cache_data4_7 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t crittrip4 : 1;
+ uint64_t abovetrip4 : 1;
+ uint64_t belowtrip4 : 1;
+ uint64_t signbit4 : 1;
+ uint64_t temperature4 : 8;
+ uint64_t temp_frac4 : 2;
+ uint64_t status4 : 2;
+ uint64_t crittrip5 : 1;
+ uint64_t abovetrip5 : 1;
+ uint64_t belowtrip5 : 1;
+ uint64_t signbit5 : 1;
+ uint64_t temperature5 : 8;
+ uint64_t temp_frac5 : 2;
+ uint64_t status5 : 2;
+ uint64_t crittrip6 : 1;
+ uint64_t abovetrip6 : 1;
+ uint64_t belowtrip6 : 1;
+ uint64_t signbit6 : 1;
+ uint64_t temperature6 : 8;
+ uint64_t temp_frac6 : 2;
+ uint64_t status6 : 2;
+ uint64_t crittrip7 : 1;
+ uint64_t abovetrip7 : 1;
+ uint64_t belowtrip7 : 1;
+ uint64_t signbit7 : 1;
+ uint64_t temperature7 : 8;
+ uint64_t temp_frac7 : 2;
+ uint64_t status7 : 2;
+#else
+ uint64_t status7 : 2;
+ uint64_t temp_frac7 : 2;
+ uint64_t temperature7 : 8;
+ uint64_t signbit7 : 1;
+ uint64_t belowtrip7 : 1;
+ uint64_t abovetrip7 : 1;
+ uint64_t crittrip7 : 1;
+ uint64_t status6 : 2;
+ uint64_t temp_frac6 : 2;
+ uint64_t temperature6 : 8;
+ uint64_t signbit6 : 1;
+ uint64_t belowtrip6 : 1;
+ uint64_t abovetrip6 : 1;
+ uint64_t crittrip6 : 1;
+ uint64_t status5 : 2;
+ uint64_t temp_frac5 : 2;
+ uint64_t temperature5 : 8;
+ uint64_t signbit5 : 1;
+ uint64_t belowtrip5 : 1;
+ uint64_t abovetrip5 : 1;
+ uint64_t crittrip5 : 1;
+ uint64_t status4 : 2;
+ uint64_t temp_frac4 : 2;
+ uint64_t temperature4 : 8;
+ uint64_t signbit4 : 1;
+ uint64_t belowtrip4 : 1;
+ uint64_t abovetrip4 : 1;
+ uint64_t crittrip4 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_sensor_cache_data4_7_t;
+
+
+
+typedef union centaur_dts_thermal_sensor_results {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dts0 : 12;
+ uint64_t thermal_trip0 : 2;
+ uint64_t spare0 : 1;
+ uint64_t valid0 : 1;
+ uint64_t dts1 : 12;
+ uint64_t thermal_trip1 : 2;
+ uint64_t spare1 : 1;
+ uint64_t valid1 : 1;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t valid1 : 1;
+ uint64_t spare1 : 1;
+ uint64_t thermal_trip1 : 2;
+ uint64_t dts1 : 12;
+ uint64_t valid0 : 1;
+ uint64_t spare0 : 1;
+ uint64_t thermal_trip0 : 2;
+ uint64_t dts0 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} centaur_dts_thermal_sensor_results_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __CENTAUR_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/centaur_register_addresses.h b/src/ssx/pgp/registers/centaur_register_addresses.h
new file mode 100755
index 0000000..7c9c095
--- /dev/null
+++ b/src/ssx/pgp/registers/centaur_register_addresses.h
@@ -0,0 +1,66 @@
+#ifndef __CENTAUR_REGISTER_ADDRESSES_H__
+#define __CENTAUR_REGISTER_ADDRESSES_H__
+
+// $Id: centaur_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/centaur_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file centaur_register_addresses.h
+/// \brief Symbolic addresses for the CENTAUR unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define CENTAUR_PIB_BASE 0
+#define CENTAUR_DEVICE_ID 0x000f000f
+#define CENTAUR_MBS_FIR_REG 0x02011400
+#define CENTAUR_MBS_FIR_REG_AND 0x02011401
+#define CENTAUR_MBS_FIR_REG_OR 0x02011402
+#define CENTAUR_MBS_FIR_MASK_REG 0x02011403
+#define CENTAUR_MBS_FIR_MASK_REG_AND 0x02011404
+#define CENTAUR_MBS_FIR_MASK_REG_OR 0x02011405
+#define CENTAUR_MBS_FIR_ACTION0_REG 0x02011406
+#define CENTAUR_MBS_FIRACT1 0x02011407
+#define CENTAUR_MBSCFGQ 0x02011411
+#define CENTAUR_MBSEMERTHROQ 0x0201142d
+#define CENTAUR_MBSOCC01HQ 0x02011429
+#define CENTAUR_MBSOCC23HQ 0x0201142a
+#define CENTAUR_MBSOCCITCQ 0x02011428
+#define CENTAUR_MBSOCCSCANQ 0x0201142b
+#define CENTAUR_MBARPC0QN(n) (CENTAUR_MBARPC0Q0 + ((CENTAUR_MBARPC0Q1 - CENTAUR_MBARPC0Q0) * (n)))
+#define CENTAUR_MBARPC0Q0 0x03010434
+#define CENTAUR_MBARPC0Q1 0x03010c34
+#define CENTAUR_MBA_FARB3QN(n) (CENTAUR_MBA_FARB3Q0 + ((CENTAUR_MBA_FARB3Q1 - CENTAUR_MBA_FARB3Q0) * (n)))
+#define CENTAUR_MBA_FARB3Q0 0x03010416
+#define CENTAUR_MBA_FARB3Q1 0x03010c16
+#define CENTAUR_PMU0QN(n) (CENTAUR_PMU0Q0 + ((CENTAUR_PMU0Q1 - CENTAUR_PMU0Q0) * (n)))
+#define CENTAUR_PMU0Q0 0x03010437
+#define CENTAUR_PMU0Q1 0x03010c37
+#define CENTAUR_PMU1QN(n) (CENTAUR_PMU1Q0 + ((CENTAUR_PMU1Q1 - CENTAUR_PMU1Q0) * (n)))
+#define CENTAUR_PMU1Q0 0x03010438
+#define CENTAUR_PMU1Q1 0x03010c38
+#define CENTAUR_PMU2QN(n) (CENTAUR_PMU2Q0 + ((CENTAUR_PMU2Q1 - CENTAUR_PMU2Q0) * (n)))
+#define CENTAUR_PMU2Q0 0x03010439
+#define CENTAUR_PMU2Q1 0x03010c39
+#define CENTAUR_PMU3QN(n) (CENTAUR_PMU3Q0 + ((CENTAUR_PMU3Q1 - CENTAUR_PMU3Q0) * (n)))
+#define CENTAUR_PMU3Q0 0x0301043a
+#define CENTAUR_PMU3Q1 0x03010c3a
+#define CENTAUR_PMU4QN(n) (CENTAUR_PMU4Q0 + ((CENTAUR_PMU4Q1 - CENTAUR_PMU4Q0) * (n)))
+#define CENTAUR_PMU4Q0 0x0301043b
+#define CENTAUR_PMU4Q1 0x03010c3b
+#define CENTAUR_PMU5QN(n) (CENTAUR_PMU5Q0 + ((CENTAUR_PMU5Q1 - CENTAUR_PMU5Q0) * (n)))
+#define CENTAUR_PMU5Q0 0x0301043c
+#define CENTAUR_PMU5Q1 0x03010c3c
+#define CENTAUR_PMU6QN(n) (CENTAUR_PMU6Q0 + ((CENTAUR_PMU6Q1 - CENTAUR_PMU6Q0) * (n)))
+#define CENTAUR_PMU6Q0 0x0301043d
+#define CENTAUR_PMU6Q1 0x03010c3d
+#define CENTAUR_SENSOR_CACHE_DATA0_3 0x020115ca
+#define CENTAUR_SENSOR_CACHE_DATA4_7 0x020115cb
+#define CENTAUR_DTS_THERMAL_SENSOR_RESULTS 0x02050000
+
+#endif // __CENTAUR_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/fasti2c_firmware_registers.h b/src/ssx/pgp/registers/fasti2c_firmware_registers.h
new file mode 100644
index 0000000..4390508
--- /dev/null
+++ b/src/ssx/pgp/registers/fasti2c_firmware_registers.h
@@ -0,0 +1,232 @@
+#ifndef __FASTI2C_FIRMWARE_REGISTERS_H__
+#define __FASTI2C_FIRMWARE_REGISTERS_H__
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+// $Id: fasti2c_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:23 bcbrock Exp $
+
+/// \file fasti2c_firmware_registers.h
+/// \brief C register structs for the FASTI2C unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#include <stdint.h>
+
+
+
+typedef union fasti2c_control {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t with_start : 1;
+ uint64_t with_address : 1;
+ uint64_t read_continue : 1;
+ uint64_t with_stop : 1;
+ uint64_t data_length : 4;
+ uint64_t device_address : 7;
+ uint64_t read_not_write : 1;
+ uint64_t speed : 2;
+ uint64_t port_number : 5;
+ uint64_t address_range : 3;
+ uint64_t _reserved0 : 6;
+ uint64_t data0 : 8;
+ uint64_t data1 : 8;
+ uint64_t data2 : 8;
+ uint64_t data3 : 8;
+#else
+ uint64_t data3 : 8;
+ uint64_t data2 : 8;
+ uint64_t data1 : 8;
+ uint64_t data0 : 8;
+ uint64_t _reserved0 : 6;
+ uint64_t address_range : 3;
+ uint64_t port_number : 5;
+ uint64_t speed : 2;
+ uint64_t read_not_write : 1;
+ uint64_t device_address : 7;
+ uint64_t data_length : 4;
+ uint64_t with_stop : 1;
+ uint64_t read_continue : 1;
+ uint64_t with_address : 1;
+ uint64_t with_start : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} fasti2c_control_t;
+
+
+
+typedef union fasti2c_reset {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} fasti2c_reset_t;
+
+
+
+typedef union fasti2c_status {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pib_address_invalid : 1;
+ uint64_t pib_write_invalid : 1;
+ uint64_t pib_read_invalid : 1;
+ uint64_t pib_address_parity_error : 1;
+ uint64_t pib_parity_error : 1;
+ uint64_t lb_parity_error : 1;
+ uint64_t read_data : 32;
+ uint64_t _reserved0 : 6;
+ uint64_t i2c_macro_busy : 1;
+ uint64_t i2c_invalid_command : 1;
+ uint64_t i2c_parity_error : 1;
+ uint64_t i2c_back_end_overrun_error : 1;
+ uint64_t i2c_back_end_access_error : 1;
+ uint64_t i2c_arbitration_lost : 1;
+ uint64_t i2c_nack_received : 1;
+ uint64_t i2c_data_request : 1;
+ uint64_t i2c_command_complete : 1;
+ uint64_t i2c_stop_error : 1;
+ uint64_t i2c_port_busy : 1;
+ uint64_t i2c_interface_busy : 1;
+ uint64_t i2c_fifo_entry_count : 8;
+#else
+ uint64_t i2c_fifo_entry_count : 8;
+ uint64_t i2c_interface_busy : 1;
+ uint64_t i2c_port_busy : 1;
+ uint64_t i2c_stop_error : 1;
+ uint64_t i2c_command_complete : 1;
+ uint64_t i2c_data_request : 1;
+ uint64_t i2c_nack_received : 1;
+ uint64_t i2c_arbitration_lost : 1;
+ uint64_t i2c_back_end_access_error : 1;
+ uint64_t i2c_back_end_overrun_error : 1;
+ uint64_t i2c_parity_error : 1;
+ uint64_t i2c_invalid_command : 1;
+ uint64_t i2c_macro_busy : 1;
+ uint64_t _reserved0 : 6;
+ uint64_t read_data : 32;
+ uint64_t lb_parity_error : 1;
+ uint64_t pib_parity_error : 1;
+ uint64_t pib_address_parity_error : 1;
+ uint64_t pib_read_invalid : 1;
+ uint64_t pib_write_invalid : 1;
+ uint64_t pib_address_invalid : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} fasti2c_status_t;
+
+
+
+typedef union fasti2c_data {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} fasti2c_data_t;
+
+
+
+typedef union fasti2c_ecc_start {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} fasti2c_ecc_start_t;
+
+
+
+typedef union fasti2c_ecc_stop {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} fasti2c_ecc_stop_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __FASTI2C_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/fasti2c_register_addresses.h b/src/ssx/pgp/registers/fasti2c_register_addresses.h
new file mode 100644
index 0000000..b034831
--- /dev/null
+++ b/src/ssx/pgp/registers/fasti2c_register_addresses.h
@@ -0,0 +1,27 @@
+#ifndef __FASTI2C_REGISTER_ADDRESSES_H__
+#define __FASTI2C_REGISTER_ADDRESSES_H__
+
+// $Id: fasti2c_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:23 bcbrock Exp $
+
+/// \file fasti2c_register_addresses.h
+/// \brief Symbolic addresses for the FASTI2C unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define FASTI2C_LPCM_PIB_BASE 0x0000000b
+#define FASTI2C_CONTROL_OFFSET 0x00000000
+#define FASTI2C_LPCM_CONTROL 0x0000000b
+#define FASTI2C_RESET_OFFSET 0x00000001
+#define FASTI2C_LPCM_RESET 0x0000000c
+#define FASTI2C_STATUS_OFFSET 0x00000002
+#define FASTI2C_LPCM_STATUS 0x0000000d
+#define FASTI2C_DATA_OFFSET 0x00000003
+#define FASTI2C_LPCM_DATA 0x0000000e
+#define FASTI2C_ECC_START_OFFSET 0x00000004
+#define FASTI2C_LPCM_ECC_START 0x0000000f
+#define FASTI2C_ECC_STOP_OFFSET 0x00000005
+#define FASTI2C_LPCM_ECC_STOP 0x00000010
+
+#endif // __FASTI2C_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/i2cengine_firmware_registers.h b/src/ssx/pgp/registers/i2cengine_firmware_registers.h
new file mode 100644
index 0000000..ed02574
--- /dev/null
+++ b/src/ssx/pgp/registers/i2cengine_firmware_registers.h
@@ -0,0 +1,710 @@
+#ifndef __I2CENGINE_FIRMWARE_REGISTERS_H__
+#define __I2CENGINE_FIRMWARE_REGISTERS_H__
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+// $Id: i2cengine_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+
+/// \file i2cengine_firmware_registers.h
+/// \brief C register structs for the I2CENGINE unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#include <stdint.h>
+
+
+
+typedef union i2cengine_fast_control {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t with_start : 1;
+ uint64_t with_address : 1;
+ uint64_t read_continue : 1;
+ uint64_t with_stop : 1;
+ uint64_t data_length : 4;
+ uint64_t device_address : 7;
+ uint64_t read_not_write : 1;
+ uint64_t speed : 2;
+ uint64_t port_number : 5;
+ uint64_t address_range : 3;
+ uint64_t _reserved0 : 6;
+ uint64_t data0 : 8;
+ uint64_t data1 : 8;
+ uint64_t data2 : 8;
+ uint64_t data3 : 8;
+#else
+ uint64_t data3 : 8;
+ uint64_t data2 : 8;
+ uint64_t data1 : 8;
+ uint64_t data0 : 8;
+ uint64_t _reserved0 : 6;
+ uint64_t address_range : 3;
+ uint64_t port_number : 5;
+ uint64_t speed : 2;
+ uint64_t read_not_write : 1;
+ uint64_t device_address : 7;
+ uint64_t data_length : 4;
+ uint64_t with_stop : 1;
+ uint64_t read_continue : 1;
+ uint64_t with_address : 1;
+ uint64_t with_start : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_fast_control_t;
+
+
+
+typedef union i2cengine_fast_reset {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_fast_reset_t;
+
+
+
+typedef union i2cengine_fast_status {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pib_address_invalid : 1;
+ uint64_t pib_write_invalid : 1;
+ uint64_t pib_read_invalid : 1;
+ uint64_t pib_address_parity_error : 1;
+ uint64_t pib_parity_error : 1;
+ uint64_t lb_parity_error : 1;
+ uint64_t read_data : 32;
+ uint64_t _reserved0 : 6;
+ uint64_t i2c_macro_busy : 1;
+ uint64_t i2c_invalid_command : 1;
+ uint64_t i2c_parity_error : 1;
+ uint64_t i2c_back_end_overrun_error : 1;
+ uint64_t i2c_back_end_access_error : 1;
+ uint64_t i2c_arbitration_lost : 1;
+ uint64_t i2c_nack_received : 1;
+ uint64_t i2c_data_request : 1;
+ uint64_t i2c_command_complete : 1;
+ uint64_t i2c_stop_error : 1;
+ uint64_t i2c_port_busy : 1;
+ uint64_t i2c_interface_busy : 1;
+ uint64_t i2c_fifo_entry_count : 8;
+#else
+ uint64_t i2c_fifo_entry_count : 8;
+ uint64_t i2c_interface_busy : 1;
+ uint64_t i2c_port_busy : 1;
+ uint64_t i2c_stop_error : 1;
+ uint64_t i2c_command_complete : 1;
+ uint64_t i2c_data_request : 1;
+ uint64_t i2c_nack_received : 1;
+ uint64_t i2c_arbitration_lost : 1;
+ uint64_t i2c_back_end_access_error : 1;
+ uint64_t i2c_back_end_overrun_error : 1;
+ uint64_t i2c_parity_error : 1;
+ uint64_t i2c_invalid_command : 1;
+ uint64_t i2c_macro_busy : 1;
+ uint64_t _reserved0 : 6;
+ uint64_t read_data : 32;
+ uint64_t lb_parity_error : 1;
+ uint64_t pib_parity_error : 1;
+ uint64_t pib_address_parity_error : 1;
+ uint64_t pib_read_invalid : 1;
+ uint64_t pib_write_invalid : 1;
+ uint64_t pib_address_invalid : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_fast_status_t;
+
+
+
+typedef union i2cengine_fast_data {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_fast_data_t;
+
+
+
+typedef union i2cengine_fifo_byte {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t data : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t data : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_fifo_byte_t;
+
+
+
+typedef union i2cengine_command {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t with_start : 1;
+ uint64_t with_address : 1;
+ uint64_t read_continue : 1;
+ uint64_t not_used : 1;
+ uint64_t reserved : 4;
+ uint64_t device_address : 7;
+ uint64_t read_not_write : 1;
+ uint64_t length_bytes : 16;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t length_bytes : 16;
+ uint64_t read_not_write : 1;
+ uint64_t device_address : 7;
+ uint64_t reserved : 4;
+ uint64_t not_used : 1;
+ uint64_t read_continue : 1;
+ uint64_t with_address : 1;
+ uint64_t with_start : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_command_t;
+
+
+
+typedef union i2cengine_mode {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t bit_rate_divisor : 15;
+ uint64_t _reserved0 : 1;
+ uint64_t port_number : 6;
+ uint64_t reserved : 6;
+ uint64_t enhanced_mode : 1;
+ uint64_t diagnostic_mode : 1;
+ uint64_t pacing_allow_mode : 1;
+ uint64_t wrap_mode : 1;
+ uint64_t _reserved1 : 32;
+#else
+ uint64_t _reserved1 : 32;
+ uint64_t wrap_mode : 1;
+ uint64_t pacing_allow_mode : 1;
+ uint64_t diagnostic_mode : 1;
+ uint64_t enhanced_mode : 1;
+ uint64_t reserved : 6;
+ uint64_t port_number : 6;
+ uint64_t _reserved0 : 1;
+ uint64_t bit_rate_divisor : 15;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_mode_t;
+
+
+
+typedef union i2cengine_watermark {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 15;
+ uint64_t _reserved0 : 1;
+ uint64_t high_water_mark : 4;
+ uint64_t reserved1 : 4;
+ uint64_t low_water_mark : 4;
+ uint64_t reserved2 : 4;
+ uint64_t _reserved1 : 32;
+#else
+ uint64_t _reserved1 : 32;
+ uint64_t reserved2 : 4;
+ uint64_t low_water_mark : 4;
+ uint64_t reserved1 : 4;
+ uint64_t high_water_mark : 4;
+ uint64_t _reserved0 : 1;
+ uint64_t reserved : 15;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_watermark_t;
+
+
+
+typedef union i2cengine_interrupt_mask {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 16;
+ uint64_t invalid_command : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t data_request : 1;
+ uint64_t command_complete : 1;
+ uint64_t stop_error : 1;
+ uint64_t i2c_busy : 1;
+ uint64_t not_i2c_busy : 1;
+ uint64_t reserved1 : 1;
+ uint64_t scl_eq_1 : 1;
+ uint64_t scl_eq_0 : 1;
+ uint64_t sda_eq_1 : 1;
+ uint64_t sda_eq_0 : 1;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t sda_eq_0 : 1;
+ uint64_t sda_eq_1 : 1;
+ uint64_t scl_eq_0 : 1;
+ uint64_t scl_eq_1 : 1;
+ uint64_t reserved1 : 1;
+ uint64_t not_i2c_busy : 1;
+ uint64_t i2c_busy : 1;
+ uint64_t stop_error : 1;
+ uint64_t command_complete : 1;
+ uint64_t data_request : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t invalid_command : 1;
+ uint64_t reserved : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_interrupt_mask_t;
+
+
+
+typedef union i2cengine_interrupt_condition {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 16;
+ uint64_t invalid_command : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t data_request : 1;
+ uint64_t command_complete : 1;
+ uint64_t stop_error : 1;
+ uint64_t i2c_busy : 1;
+ uint64_t not_i2c_busy : 1;
+ uint64_t reserved1 : 1;
+ uint64_t scl_eq_1 : 1;
+ uint64_t scl_eq_0 : 1;
+ uint64_t sda_eq_1 : 1;
+ uint64_t sda_eq_0 : 1;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t sda_eq_0 : 1;
+ uint64_t sda_eq_1 : 1;
+ uint64_t scl_eq_0 : 1;
+ uint64_t scl_eq_1 : 1;
+ uint64_t reserved1 : 1;
+ uint64_t not_i2c_busy : 1;
+ uint64_t i2c_busy : 1;
+ uint64_t stop_error : 1;
+ uint64_t command_complete : 1;
+ uint64_t data_request : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t invalid_command : 1;
+ uint64_t reserved : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_interrupt_condition_t;
+
+
+
+typedef union i2cengine_interrupts {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 16;
+ uint64_t invalid_command : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t data_request : 1;
+ uint64_t command_complete : 1;
+ uint64_t stop_error : 1;
+ uint64_t i2c_busy : 1;
+ uint64_t not_i2c_busy : 1;
+ uint64_t reserved1 : 1;
+ uint64_t scl_eq_1 : 1;
+ uint64_t scl_eq_0 : 1;
+ uint64_t sda_eq_1 : 1;
+ uint64_t sda_eq_0 : 1;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t sda_eq_0 : 1;
+ uint64_t sda_eq_1 : 1;
+ uint64_t scl_eq_0 : 1;
+ uint64_t scl_eq_1 : 1;
+ uint64_t reserved1 : 1;
+ uint64_t not_i2c_busy : 1;
+ uint64_t i2c_busy : 1;
+ uint64_t stop_error : 1;
+ uint64_t command_complete : 1;
+ uint64_t data_request : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t invalid_command : 1;
+ uint64_t reserved : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_interrupts_t;
+
+
+
+typedef union i2cengine_status {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t invalid_command : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t data_request : 1;
+ uint64_t command_complete : 1;
+ uint64_t stop_error : 1;
+ uint64_t upper_threshold : 6;
+ uint64_t _reserved0 : 1;
+ uint64_t any_i2c_interrupt : 1;
+ uint64_t reserved1 : 3;
+ uint64_t scl_input_lvl : 1;
+ uint64_t sda_input_lvl : 1;
+ uint64_t i2c_port_busy : 1;
+ uint64_t i2c_interface_busy : 1;
+ uint64_t fifo_entry_count : 8;
+ uint64_t _reserved1 : 32;
+#else
+ uint64_t _reserved1 : 32;
+ uint64_t fifo_entry_count : 8;
+ uint64_t i2c_interface_busy : 1;
+ uint64_t i2c_port_busy : 1;
+ uint64_t sda_input_lvl : 1;
+ uint64_t scl_input_lvl : 1;
+ uint64_t reserved1 : 3;
+ uint64_t any_i2c_interrupt : 1;
+ uint64_t _reserved0 : 1;
+ uint64_t upper_threshold : 6;
+ uint64_t stop_error : 1;
+ uint64_t command_complete : 1;
+ uint64_t data_request : 1;
+ uint64_t nack_received_error : 1;
+ uint64_t arbitration_lost_error : 1;
+ uint64_t back_end_access_error : 1;
+ uint64_t back_end_overrun_error : 1;
+ uint64_t lbus_parity_error : 1;
+ uint64_t invalid_command : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_status_t;
+
+
+
+typedef union i2cengine_extended_status {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t table_base_addr : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t table_base_addr : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_extended_status_t;
+
+
+
+typedef union i2cengine_residual_front_end_back_end_length {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t residual_front_end_length : 16;
+ uint64_t residual_back_end_length : 16;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t residual_back_end_length : 16;
+ uint64_t residual_front_end_length : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_residual_front_end_back_end_length_t;
+
+
+
+typedef union i2cengine_immediate_reset_s_scl {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t residual_front_end_length : 16;
+ uint64_t residual_back_end_length : 16;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t residual_back_end_length : 16;
+ uint64_t residual_front_end_length : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_immediate_reset_s_scl_t;
+
+
+
+typedef union i2cengine_immediate_set_s_sda {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t residual_front_end_length : 16;
+ uint64_t residual_back_end_length : 16;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t residual_back_end_length : 16;
+ uint64_t residual_front_end_length : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_immediate_set_s_sda_t;
+
+
+
+typedef union i2cengine_immediate_reset_s_sda {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t field : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t field : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_immediate_reset_s_sda_t;
+
+
+
+typedef union i2cengine_fifo_word {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t data : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t data : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} i2cengine_fifo_word_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __I2CENGINE_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/i2cengine_register_addresses.h b/src/ssx/pgp/registers/i2cengine_register_addresses.h
new file mode 100644
index 0000000..bbe9104
--- /dev/null
+++ b/src/ssx/pgp/registers/i2cengine_register_addresses.h
@@ -0,0 +1,33 @@
+#ifndef __I2CENGINE_REGISTER_ADDRESSES_H__
+#define __I2CENGINE_REGISTER_ADDRESSES_H__
+
+// $Id: i2cengine_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+
+/// \file i2cengine_register_addresses.h
+/// \brief Symbolic addresses for the I2CENGINE unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define I2CENGINE_PIB_BASE 0x00000000
+#define I2CENGINE_FAST_CONTROL 0x00000000
+#define I2CENGINE_FAST_RESET 0x00000001
+#define I2CENGINE_FAST_STATUS 0x00000002
+#define I2CENGINE_FAST_DATA 0x00000003
+#define I2CENGINE_FIFO_BYTE 0x00000004
+#define I2CENGINE_COMMAND 0x00000005
+#define I2CENGINE_MODE 0x00000006
+#define I2CENGINE_WATERMARK 0x00000007
+#define I2CENGINE_INTERRUPT_MASK 0x00000008
+#define I2CENGINE_INTERRUPT_CONDITION 0x00000009
+#define I2CENGINE_INTERRUPTS 0x0000000a
+#define I2CENGINE_STATUS 0x0000000b
+#define I2CENGINE_EXTENDED_STATUS 0x0000000c
+#define I2CENGINE_RESIDUAL_FRONT_END_BACK_END_LENGTH 0x0000000d
+#define I2CENGINE_IMMEDIATE_RESET_S_SCL 0x0000000f
+#define I2CENGINE_IMMEDIATE_SET_S_SDA 0x00000010
+#define I2CENGINE_IMMEDIATE_RESET_S_SDA 0x00000011
+#define I2CENGINE_FIFO_WORD 0x00000012
+
+#endif // __I2CENGINE_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/icp_firmware_registers.h b/src/ssx/pgp/registers/icp_firmware_registers.h
new file mode 100755
index 0000000..4e17a68
--- /dev/null
+++ b/src/ssx/pgp/registers/icp_firmware_registers.h
@@ -0,0 +1,189 @@
+#ifndef __ICP_FIRMWARE_REGISTERS_H__
+#define __ICP_FIRMWARE_REGISTERS_H__
+
+// $Id: icp_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/icp_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file icp_firmware_registers.h
+/// \brief C register structs for the ICP unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union icp_bar {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t icp_bar : 30;
+ uint64_t icp_bar_en : 1;
+ uint64_t _reserved0 : 33;
+#else
+ uint64_t _reserved0 : 33;
+ uint64_t icp_bar_en : 1;
+ uint64_t icp_bar : 30;
+#endif // _BIG_ENDIAN
+ } fields;
+} icp_bar_t;
+
+#endif // __ASSEMBLER__
+#define ICP_BAR_ICP_BAR_MASK SIXTYFOUR_BIT_CONSTANT(0xfffffffc00000000)
+#define ICP_BAR_ICP_BAR_EN SIXTYFOUR_BIT_CONSTANT(0x0000000200000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union icp_mode0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t priority : 8;
+ uint64_t reserved0 : 1;
+ uint64_t scope_initial : 3;
+ uint64_t reserved1 : 1;
+ uint64_t no_hang2status : 1;
+ uint64_t oper_disable_hang : 1;
+ uint64_t oper_hang_div : 5;
+ uint64_t reserved2 : 2;
+ uint64_t data_disable_hang : 1;
+ uint64_t data_hang_div : 5;
+ uint64_t backoff_disable : 1;
+ uint64_t fwd_que_fwd_conv_disable : 1;
+ uint64_t disa_wait4cresp_mode4ris : 1;
+ uint64_t disa_auto_no_retry4ris : 1;
+ uint64_t disa_retry_mode4ris : 1;
+ uint64_t hang_on_addr_error : 1;
+ uint64_t eoi_correction : 2;
+ uint64_t max_load_count : 4;
+ uint64_t max_store_count : 4;
+ uint64_t reserved3 : 3;
+ uint64_t enable_inject : 1;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t enable_inject : 1;
+ uint64_t reserved3 : 3;
+ uint64_t max_store_count : 4;
+ uint64_t max_load_count : 4;
+ uint64_t eoi_correction : 2;
+ uint64_t hang_on_addr_error : 1;
+ uint64_t disa_retry_mode4ris : 1;
+ uint64_t disa_auto_no_retry4ris : 1;
+ uint64_t disa_wait4cresp_mode4ris : 1;
+ uint64_t fwd_que_fwd_conv_disable : 1;
+ uint64_t backoff_disable : 1;
+ uint64_t data_hang_div : 5;
+ uint64_t data_disable_hang : 1;
+ uint64_t reserved2 : 2;
+ uint64_t oper_hang_div : 5;
+ uint64_t oper_disable_hang : 1;
+ uint64_t no_hang2status : 1;
+ uint64_t reserved1 : 1;
+ uint64_t scope_initial : 3;
+ uint64_t reserved0 : 1;
+ uint64_t priority : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} icp_mode0_t;
+
+#endif // __ASSEMBLER__
+#define ICP_MODE0_PRIORITY_MASK SIXTYFOUR_BIT_CONSTANT(0xff00000000000000)
+#define ICP_MODE0_SCOPE_INITIAL_MASK SIXTYFOUR_BIT_CONSTANT(0x0070000000000000)
+#define ICP_MODE0_NO_HANG2STATUS SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
+#define ICP_MODE0_OPER_DISABLE_HANG SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#define ICP_MODE0_OPER_HANG_DIV_MASK SIXTYFOUR_BIT_CONSTANT(0x0001f00000000000)
+#define ICP_MODE0_DATA_DISABLE_HANG SIXTYFOUR_BIT_CONSTANT(0x0000020000000000)
+#define ICP_MODE0_DATA_HANG_DIV_MASK SIXTYFOUR_BIT_CONSTANT(0x000001f000000000)
+#define ICP_MODE0_BACKOFF_DISABLE SIXTYFOUR_BIT_CONSTANT(0x0000000800000000)
+#define ICP_MODE0_FWD_QUE_FWD_CONV_DISABLE SIXTYFOUR_BIT_CONSTANT(0x0000000400000000)
+#define ICP_MODE0_DISA_WAIT4CRESP_MODE4RIS SIXTYFOUR_BIT_CONSTANT(0x0000000200000000)
+#define ICP_MODE0_DISA_AUTO_NO_RETRY4RIS SIXTYFOUR_BIT_CONSTANT(0x0000000100000000)
+#define ICP_MODE0_DISA_RETRY_MODE4RIS SIXTYFOUR_BIT_CONSTANT(0x0000000080000000)
+#define ICP_MODE0_HANG_ON_ADDR_ERROR SIXTYFOUR_BIT_CONSTANT(0x0000000040000000)
+#define ICP_MODE0_EOI_CORRECTION_MASK SIXTYFOUR_BIT_CONSTANT(0x0000000030000000)
+#define ICP_MODE0_MAX_LOAD_COUNT_MASK SIXTYFOUR_BIT_CONSTANT(0x000000000f000000)
+#define ICP_MODE0_MAX_STORE_COUNT_MASK SIXTYFOUR_BIT_CONSTANT(0x0000000000f00000)
+#define ICP_MODE0_ENABLE_INJECT SIXTYFOUR_BIT_CONSTANT(0x0000000000010000)
+#ifndef __ASSEMBLER__
+
+
+typedef union icp_iir {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t inject_target_core : 16;
+ uint64_t inject_target_thread : 8;
+ uint64_t reserved0 : 8;
+ uint64_t inject_level : 4;
+ uint64_t reserved1 : 4;
+ uint64_t inject_priority : 8;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t inject_priority : 8;
+ uint64_t reserved1 : 4;
+ uint64_t inject_level : 4;
+ uint64_t reserved0 : 8;
+ uint64_t inject_target_thread : 8;
+ uint64_t inject_target_core : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} icp_iir_t;
+
+#endif // __ASSEMBLER__
+#define ICP_IIR_INJECT_TARGET_CORE_MASK SIXTYFOUR_BIT_CONSTANT(0xffff000000000000)
+#define ICP_IIR_INJECT_TARGET_THREAD_MASK SIXTYFOUR_BIT_CONSTANT(0x0000ff0000000000)
+#define ICP_IIR_INJECT_LEVEL_MASK SIXTYFOUR_BIT_CONSTANT(0x00000000f0000000)
+#define ICP_IIR_INJECT_PRIORITY_MASK SIXTYFOUR_BIT_CONSTANT(0x0000000000ff0000)
+#ifndef __ASSEMBLER__
+
+#endif // __ASSEMBLER__
+#endif // __ICP_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/icp_register_addresses.h b/src/ssx/pgp/registers/icp_register_addresses.h
new file mode 100755
index 0000000..7cb8350
--- /dev/null
+++ b/src/ssx/pgp/registers/icp_register_addresses.h
@@ -0,0 +1,24 @@
+#ifndef __ICP_REGISTER_ADDRESSES_H__
+#define __ICP_REGISTER_ADDRESSES_H__
+
+// $Id: icp_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/icp_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file icp_register_addresses.h
+/// \brief Symbolic addresses for the ICP unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define ICP_PIB_BASE 0x020109c0
+#define ICP_BAR 0x020109ca
+#define ICP_MODE0 0x020109cb
+#define ICP_IIR 0x020109cc
+
+#endif // __ICP_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/mcs_firmware_registers.h b/src/ssx/pgp/registers/mcs_firmware_registers.h
new file mode 100755
index 0000000..b71b888
--- /dev/null
+++ b/src/ssx/pgp/registers/mcs_firmware_registers.h
@@ -0,0 +1,161 @@
+#ifndef __MCS_FIRMWARE_REGISTERS_H__
+#define __MCS_FIRMWARE_REGISTERS_H__
+
+// $Id: mcs_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/mcs_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file mcs_firmware_registers.h
+/// \brief C register structs for the MCS unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union mcfgpr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t mcfgprq_valid : 1;
+ uint64_t reserved0 : 5;
+ uint64_t mcfgprq_base_address : 14;
+ uint64_t _reserved0 : 44;
+#else
+ uint64_t _reserved0 : 44;
+ uint64_t mcfgprq_base_address : 14;
+ uint64_t reserved0 : 5;
+ uint64_t mcfgprq_valid : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} mcfgpr_t;
+
+#endif // __ASSEMBLER__
+#define MCFGPR_MCFGPRQ_VALID SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define MCFGPR_MCFGPRQ_BASE_ADDRESS_MASK SIXTYFOUR_BIT_CONSTANT(0x03fff00000000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union mcsmode0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t enable_cmd_byp_stutter : 1;
+ uint64_t reserved1 : 1;
+ uint64_t enable_ns_rd_ao_sfu_for_dcbz : 1;
+ uint64_t enable_centaur_local_checkstop_command : 1;
+ uint64_t l3_prefetch_retry_threshold : 4;
+ uint64_t number_of_cl_entries_reserved_for_read : 4;
+ uint64_t number_of_cl_entries_reserved_for_mirrored_ops : 4;
+ uint64_t number_of_cl_entries_reserved_for_writes : 4;
+ uint64_t number_of_cl_entries_reserved_for_cp_writes : 4;
+ uint64_t number_of_cl_entries_reserved_for_cp_ig : 4;
+ uint64_t number_of_cl_entries_reserved_for_htm_ops : 4;
+ uint64_t number_of_cl_entries_reserved_for_ha_assist : 4;
+ uint64_t mcfgrp_19_is_ho_bit : 1;
+ uint64_t cl_channel_timeout_forces_channel_fail : 1;
+ uint64_t enable_fault_line_for_global_checkstop : 1;
+ uint64_t reserved39 : 5;
+ uint64_t address_collision_modes : 9;
+ uint64_t include_cp_ig_in_cp_write_fullness_group : 1;
+ uint64_t enable_dmawr_cmd_bit : 1;
+ uint64_t enable_read_lsfr_data : 1;
+ uint64_t force_channel_fail : 1;
+ uint64_t disable_read_crc_ecc_bypass_taken : 1;
+ uint64_t disable_cl_ao_queueus : 1;
+ uint64_t address_select_lfsr_value : 2;
+ uint64_t enable_centaur_sync : 1;
+ uint64_t write_data_buffer_ecc_check_disable : 1;
+ uint64_t write_data_buffer_ecc_correct_disable : 1;
+#else
+ uint64_t write_data_buffer_ecc_correct_disable : 1;
+ uint64_t write_data_buffer_ecc_check_disable : 1;
+ uint64_t enable_centaur_sync : 1;
+ uint64_t address_select_lfsr_value : 2;
+ uint64_t disable_cl_ao_queueus : 1;
+ uint64_t disable_read_crc_ecc_bypass_taken : 1;
+ uint64_t force_channel_fail : 1;
+ uint64_t enable_read_lsfr_data : 1;
+ uint64_t enable_dmawr_cmd_bit : 1;
+ uint64_t include_cp_ig_in_cp_write_fullness_group : 1;
+ uint64_t address_collision_modes : 9;
+ uint64_t reserved39 : 5;
+ uint64_t enable_fault_line_for_global_checkstop : 1;
+ uint64_t cl_channel_timeout_forces_channel_fail : 1;
+ uint64_t mcfgrp_19_is_ho_bit : 1;
+ uint64_t number_of_cl_entries_reserved_for_ha_assist : 4;
+ uint64_t number_of_cl_entries_reserved_for_htm_ops : 4;
+ uint64_t number_of_cl_entries_reserved_for_cp_ig : 4;
+ uint64_t number_of_cl_entries_reserved_for_cp_writes : 4;
+ uint64_t number_of_cl_entries_reserved_for_writes : 4;
+ uint64_t number_of_cl_entries_reserved_for_mirrored_ops : 4;
+ uint64_t number_of_cl_entries_reserved_for_read : 4;
+ uint64_t l3_prefetch_retry_threshold : 4;
+ uint64_t enable_centaur_local_checkstop_command : 1;
+ uint64_t enable_ns_rd_ao_sfu_for_dcbz : 1;
+ uint64_t reserved1 : 1;
+ uint64_t enable_cmd_byp_stutter : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} mcsmode0_t;
+
+#endif // __ASSEMBLER__
+#define MCSMODE0_ENABLE_CMD_BYP_STUTTER SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define MCSMODE0_ENABLE_NS_RD_AO_SFU_FOR_DCBZ SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define MCSMODE0_ENABLE_CENTAUR_LOCAL_CHECKSTOP_COMMAND SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define MCSMODE0_L3_PREFETCH_RETRY_THRESHOLD_MASK SIXTYFOUR_BIT_CONSTANT(0x0f00000000000000)
+#define MCSMODE0_MCFGRP_19_IS_HO_BIT SIXTYFOUR_BIT_CONSTANT(0x0000000008000000)
+#define MCSMODE0_CL_CHANNEL_TIMEOUT_FORCES_CHANNEL_FAIL SIXTYFOUR_BIT_CONSTANT(0x0000000004000000)
+#define MCSMODE0_ENABLE_FAULT_LINE_FOR_GLOBAL_CHECKSTOP SIXTYFOUR_BIT_CONSTANT(0x0000000002000000)
+#define MCSMODE0_ADDRESS_COLLISION_MODES_MASK SIXTYFOUR_BIT_CONSTANT(0x00000000000ff800)
+#define MCSMODE0_INCLUDE_CP_IG_IN_CP_WRITE_FULLNESS_GROUP SIXTYFOUR_BIT_CONSTANT(0x0000000000000400)
+#define MCSMODE0_ENABLE_DMAWR_CMD_BIT SIXTYFOUR_BIT_CONSTANT(0x0000000000000200)
+#define MCSMODE0_ENABLE_READ_LSFR_DATA SIXTYFOUR_BIT_CONSTANT(0x0000000000000100)
+#define MCSMODE0_FORCE_CHANNEL_FAIL SIXTYFOUR_BIT_CONSTANT(0x0000000000000080)
+#define MCSMODE0_DISABLE_READ_CRC_ECC_BYPASS_TAKEN SIXTYFOUR_BIT_CONSTANT(0x0000000000000040)
+#define MCSMODE0_DISABLE_CL_AO_QUEUEUS SIXTYFOUR_BIT_CONSTANT(0x0000000000000020)
+#define MCSMODE0_ADDRESS_SELECT_LFSR_VALUE_MASK SIXTYFOUR_BIT_CONSTANT(0x0000000000000018)
+#define MCSMODE0_ENABLE_CENTAUR_SYNC SIXTYFOUR_BIT_CONSTANT(0x0000000000000004)
+#define MCSMODE0_WRITE_DATA_BUFFER_ECC_CHECK_DISABLE SIXTYFOUR_BIT_CONSTANT(0x0000000000000002)
+#define MCSMODE0_WRITE_DATA_BUFFER_ECC_CORRECT_DISABLE SIXTYFOUR_BIT_CONSTANT(0x0000000000000001)
+#ifndef __ASSEMBLER__
+
+#endif // __ASSEMBLER__
+#endif // __MCS_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/mcs_register_addresses.h b/src/ssx/pgp/registers/mcs_register_addresses.h
new file mode 100755
index 0000000..bc7f95c
--- /dev/null
+++ b/src/ssx/pgp/registers/mcs_register_addresses.h
@@ -0,0 +1,46 @@
+#ifndef __MCS_REGISTER_ADDRESSES_H__
+#define __MCS_REGISTER_ADDRESSES_H__
+
+// $Id: mcs_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/mcs_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file mcs_register_addresses.h
+/// \brief Symbolic addresses for the MCS unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define MCS0_PIB_BASE 0x02011800
+#define MCS1_PIB_BASE 0x02011880
+#define MCS2_PIB_BASE 0x02011900
+#define MCS3_PIB_BASE 0x02011980
+#define MCS4_PIB_BASE 0x02011C00
+#define MCS5_PIB_BASE 0x02011C80
+#define MCS6_PIB_BASE 0x02011D00
+#define MCS7_PIB_BASE 0x02011D80
+#define MCFGPR_OFFSET 0x00000002
+#define MCS0_MCFGPR 0x02011802
+#define MCS1_MCFGPR 0x02011882
+#define MCS2_MCFGPR 0x02011902
+#define MCS3_MCFGPR 0x02011982
+#define MCS4_MCFGPR 0x02011c02
+#define MCS5_MCFGPR 0x02011c82
+#define MCS6_MCFGPR 0x02011d02
+#define MCS7_MCFGPR 0x02011d82
+#define MCSMODE0_OFFSET 0x00000007
+#define MCS0_MCSMODE0 0x02011807
+#define MCS1_MCSMODE0 0x02011887
+#define MCS2_MCSMODE0 0x02011907
+#define MCS3_MCSMODE0 0x02011987
+#define MCS4_MCSMODE0 0x02011c07
+#define MCS5_MCSMODE0 0x02011c87
+#define MCS6_MCSMODE0 0x02011d07
+#define MCS7_MCSMODE0 0x02011d87
+
+#endif // __MCS_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/ocb_firmware_registers.h b/src/ssx/pgp/registers/ocb_firmware_registers.h
new file mode 100755
index 0000000..4a4ddb2
--- /dev/null
+++ b/src/ssx/pgp/registers/ocb_firmware_registers.h
@@ -0,0 +1,2668 @@
+#ifndef __OCB_FIRMWARE_REGISTERS_H__
+#define __OCB_FIRMWARE_REGISTERS_H__
+
+// $Id: ocb_firmware_registers.h,v 1.2 2014/03/14 15:33:03 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/ocb_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2014
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file ocb_firmware_registers.h
+/// \brief C register structs for the OCB unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union ocb_oitr0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oitr0_t;
+
+
+
+typedef union ocb_oiepr0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oiepr0_t;
+
+
+
+typedef union ocb_ocir0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocir0_t;
+
+
+
+typedef union ocb_onisr0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_onisr0_t;
+
+
+
+typedef union ocb_ouder0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ouder0_t;
+
+
+
+typedef union ocb_ocisr0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocisr0_t;
+
+
+
+typedef union ocb_odher0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t dbg_halt_en : 32;
+#else
+ uint32_t dbg_halt_en : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_odher0_t;
+
+
+
+typedef union ocb_oisr0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t debugger : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t pba_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t spipss_error : 1;
+ uint32_t check_stop : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t external_trap : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t reserved_31 : 1;
+#else
+ uint32_t reserved_31 : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t external_trap : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t check_stop : 1;
+ uint32_t spipss_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pba_error : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t debugger : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oisr0_t;
+
+
+
+typedef union ocb_oisr0_and {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t debugger : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t pba_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t spipss_error : 1;
+ uint32_t check_stop : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t external_trap : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t reserved_31 : 1;
+#else
+ uint32_t reserved_31 : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t external_trap : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t check_stop : 1;
+ uint32_t spipss_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pba_error : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t debugger : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oisr0_and_t;
+
+
+
+typedef union ocb_oisr0_or {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t debugger : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t pba_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t spipss_error : 1;
+ uint32_t check_stop : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t external_trap : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t reserved_31 : 1;
+#else
+ uint32_t reserved_31 : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t external_trap : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t check_stop : 1;
+ uint32_t spipss_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pba_error : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t debugger : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oisr0_or_t;
+
+
+
+typedef union ocb_oimr0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t debugger : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t pba_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t spipss_error : 1;
+ uint32_t check_stop : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t external_trap : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t reserved_31 : 1;
+#else
+ uint32_t reserved_31 : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t external_trap : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t check_stop : 1;
+ uint32_t spipss_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pba_error : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t debugger : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oimr0_t;
+
+
+
+typedef union ocb_oimr0_and {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t debugger : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t pba_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t spipss_error : 1;
+ uint32_t check_stop : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t external_trap : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t reserved_31 : 1;
+#else
+ uint32_t reserved_31 : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t external_trap : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t check_stop : 1;
+ uint32_t spipss_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pba_error : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t debugger : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oimr0_and_t;
+
+
+
+typedef union ocb_oimr0_or {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t debugger : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t pba_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t spipss_error : 1;
+ uint32_t check_stop : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t external_trap : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t reserved_31 : 1;
+#else
+ uint32_t reserved_31 : 1;
+ uint32_t pba_bcue_attn : 1;
+ uint32_t pba_bcde_attn : 1;
+ uint32_t pba_occ_push1 : 1;
+ uint32_t pba_occ_push0 : 1;
+ uint32_t reserved_26 : 1;
+ uint32_t adcfsm_ongoing : 1;
+ uint32_t pore_gpe1_complete : 1;
+ uint32_t pore_gpe0_complete : 1;
+ uint32_t reserved_22 : 1;
+ uint32_t pmc_interchip_msg_recv : 1;
+ uint32_t pore_sbe_error : 1;
+ uint32_t pore_gpe1_error : 1;
+ uint32_t pore_gpe0_error : 1;
+ uint32_t occ_timer1 : 1;
+ uint32_t occ_timer0 : 1;
+ uint32_t external_trap : 1;
+ uint32_t adu_malf_alert : 1;
+ uint32_t pmc_malf_alert : 1;
+ uint32_t check_stop : 1;
+ uint32_t spipss_error : 1;
+ uint32_t ocb_error : 1;
+ uint32_t pmc_error : 1;
+ uint32_t pore_sbe_fatal_error : 1;
+ uint32_t pore_gpe1_fatal_error : 1;
+ uint32_t pore_gpe0_fatal_error : 1;
+ uint32_t pore_sw_error : 1;
+ uint32_t srt_error : 1;
+ uint32_t pba_error : 1;
+ uint32_t reserved_2 : 1;
+ uint32_t trace_trigger : 1;
+ uint32_t debugger : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oimr0_or_t;
+
+
+
+typedef union ocb_oitr1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oitr1_t;
+
+
+
+typedef union ocb_oiepr1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oiepr1_t;
+
+
+
+typedef union ocb_ocir1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocir1_t;
+
+
+
+typedef union ocb_onisr1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_onisr1_t;
+
+
+
+typedef union ocb_ouder1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ouder1_t;
+
+
+
+typedef union ocb_ocisr1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocisr1_t;
+
+
+
+typedef union ocb_odher1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t dbg_halt_en : 32;
+#else
+ uint32_t dbg_halt_en : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_odher1_t;
+
+
+
+typedef union ocb_oisr1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved_32 : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t ipi0 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t reserved_63 : 1;
+#else
+ uint32_t reserved_63 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi0 : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t reserved_32 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oisr1_t;
+
+
+
+typedef union ocb_oisr1_and {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved_32 : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t ipi0 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t reserved_63 : 1;
+#else
+ uint32_t reserved_63 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi0 : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t reserved_32 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oisr1_and_t;
+
+
+
+typedef union ocb_oisr1_or {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved_32 : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t ipi0 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t reserved_63 : 1;
+#else
+ uint32_t reserved_63 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi0 : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t reserved_32 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oisr1_or_t;
+
+
+
+typedef union ocb_oimr1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved_32 : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t ipi0 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t reserved_63 : 1;
+#else
+ uint32_t reserved_63 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi0 : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t reserved_32 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oimr1_t;
+
+
+
+typedef union ocb_oimr1_and {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved_32 : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t ipi0 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t reserved_63 : 1;
+#else
+ uint32_t reserved_63 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi0 : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t reserved_32 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oimr1_and_t;
+
+
+
+typedef union ocb_oimr1_or {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved_32 : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t ipi0 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t reserved_63 : 1;
+#else
+ uint32_t reserved_63 : 1;
+ uint32_t ipi3 : 1;
+ uint32_t ipi2 : 1;
+ uint32_t ipi1 : 1;
+ uint32_t ipi0 : 1;
+ uint32_t pore_sbe_complete : 1;
+ uint32_t pssbridge_ongoing : 1;
+ uint32_t pmc_ocb_o2p_ongoing : 1;
+ uint32_t oci2spivid_ongoing : 1;
+ uint32_t pmc_interchip_msg_send_ongoing : 1;
+ uint32_t reserved_53 : 1;
+ uint32_t pmc_idle_enter : 1;
+ uint32_t pore_sw_complete : 1;
+ uint32_t pmc_idle_exit : 1;
+ uint32_t reserved_49 : 1;
+ uint32_t reserved_48 : 1;
+ uint32_t pmc_pstate_change : 1;
+ uint32_t pmc_sync : 1;
+ uint32_t pmc_protocol_ongoing : 1;
+ uint32_t pmc_voltage_change_ongoing : 1;
+ uint32_t reserved_43 : 1;
+ uint32_t reserved_42 : 1;
+ uint32_t occ_strm3_push : 1;
+ uint32_t occ_strm3_pull : 1;
+ uint32_t occ_strm2_push : 1;
+ uint32_t occ_strm2_pull : 1;
+ uint32_t occ_strm1_push : 1;
+ uint32_t occ_strm1_pull : 1;
+ uint32_t occ_strm0_push : 1;
+ uint32_t occ_strm0_pull : 1;
+ uint32_t reserved_33 : 1;
+ uint32_t reserved_32 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oimr1_or_t;
+
+
+
+typedef union ocb_occmisc {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t core_ext_intr : 1;
+ uint32_t _reserved0 : 31;
+#else
+ uint32_t _reserved0 : 31;
+ uint32_t core_ext_intr : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occmisc_t;
+
+
+
+typedef union ocb_occmisc_and {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t core_ext_intr : 1;
+ uint32_t _reserved0 : 31;
+#else
+ uint32_t _reserved0 : 31;
+ uint32_t core_ext_intr : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occmisc_and_t;
+
+
+
+typedef union ocb_occmisc_or {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t core_ext_intr : 1;
+ uint32_t _reserved0 : 31;
+#else
+ uint32_t _reserved0 : 31;
+ uint32_t core_ext_intr : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occmisc_or_t;
+
+
+
+typedef union ocb_otrn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t timeout : 1;
+ uint32_t control : 1;
+ uint32_t auto_reload : 1;
+ uint32_t reserved : 13;
+ uint32_t timer : 16;
+#else
+ uint32_t timer : 16;
+ uint32_t reserved : 13;
+ uint32_t auto_reload : 1;
+ uint32_t control : 1;
+ uint32_t timeout : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_otrn_t;
+
+#endif // __ASSEMBLER__
+#define OCB_OTRN_TIMEOUT 0x80000000
+#define OCB_OTRN_CONTROL 0x40000000
+#define OCB_OTRN_AUTO_RELOAD 0x20000000
+#define OCB_OTRN_TIMER_MASK 0x0000ffff
+#ifndef __ASSEMBLER__
+
+
+typedef union ocb_ohtmcr {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t htm_src_sel : 2;
+ uint32_t htm_stop : 1;
+ uint32_t htm_marker_slave_adrs : 3;
+ uint32_t event2halt_mode : 2;
+ uint32_t event2halt_en : 11;
+ uint32_t reserved : 1;
+ uint32_t event2halt_halt : 1;
+ uint32_t _reserved0 : 11;
+#else
+ uint32_t _reserved0 : 11;
+ uint32_t event2halt_halt : 1;
+ uint32_t reserved : 1;
+ uint32_t event2halt_en : 11;
+ uint32_t event2halt_mode : 2;
+ uint32_t htm_marker_slave_adrs : 3;
+ uint32_t htm_stop : 1;
+ uint32_t htm_src_sel : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ohtmcr_t;
+
+
+
+typedef union ocb_oehdr {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t event2halt_delay : 20;
+ uint32_t _reserved0 : 12;
+#else
+ uint32_t _reserved0 : 12;
+ uint32_t event2halt_delay : 20;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oehdr_t;
+
+
+
+typedef union ocb_ocbslbrn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pull_oci_region : 2;
+ uint32_t pull_start : 27;
+ uint32_t _reserved0 : 3;
+#else
+ uint32_t _reserved0 : 3;
+ uint32_t pull_start : 27;
+ uint32_t pull_oci_region : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbslbrn_t;
+
+
+
+typedef union ocb_ocbshbrn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t push_oci_region : 2;
+ uint32_t push_start : 27;
+ uint32_t _reserved0 : 3;
+#else
+ uint32_t _reserved0 : 3;
+ uint32_t push_start : 27;
+ uint32_t push_oci_region : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbshbrn_t;
+
+
+
+typedef union ocb_ocbslcsn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pull_full : 1;
+ uint32_t pull_empty : 1;
+ uint32_t reserved0 : 2;
+ uint32_t pull_intr_action : 2;
+ uint32_t pull_length : 5;
+ uint32_t reserved1 : 2;
+ uint32_t pull_write_ptr : 5;
+ uint32_t reserved2 : 3;
+ uint32_t pull_read_ptr : 5;
+ uint32_t reserved3 : 5;
+ uint32_t pull_enable : 1;
+#else
+ uint32_t pull_enable : 1;
+ uint32_t reserved3 : 5;
+ uint32_t pull_read_ptr : 5;
+ uint32_t reserved2 : 3;
+ uint32_t pull_write_ptr : 5;
+ uint32_t reserved1 : 2;
+ uint32_t pull_length : 5;
+ uint32_t pull_intr_action : 2;
+ uint32_t reserved0 : 2;
+ uint32_t pull_empty : 1;
+ uint32_t pull_full : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbslcsn_t;
+
+#endif // __ASSEMBLER__
+#define OCB_OCBSLCSN_PULL_FULL 0x80000000
+#define OCB_OCBSLCSN_PULL_EMPTY 0x40000000
+#define OCB_OCBSLCSN_PULL_INTR_ACTION_MASK 0x0c000000
+#define OCB_OCBSLCSN_PULL_LENGTH_MASK 0x03e00000
+#define OCB_OCBSLCSN_PULL_WRITE_PTR_MASK 0x0007c000
+#define OCB_OCBSLCSN_PULL_READ_PTR_MASK 0x000007c0
+#define OCB_OCBSLCSN_PULL_ENABLE 0x00000001
+#ifndef __ASSEMBLER__
+
+
+typedef union ocb_ocbshcsn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t push_full : 1;
+ uint32_t push_empty : 1;
+ uint32_t reserved0 : 2;
+ uint32_t push_intr_action : 2;
+ uint32_t push_length : 5;
+ uint32_t reserved1 : 2;
+ uint32_t push_write_ptr : 5;
+ uint32_t reserved2 : 3;
+ uint32_t push_read_ptr : 5;
+ uint32_t reserved3 : 5;
+ uint32_t push_enable : 1;
+#else
+ uint32_t push_enable : 1;
+ uint32_t reserved3 : 5;
+ uint32_t push_read_ptr : 5;
+ uint32_t reserved2 : 3;
+ uint32_t push_write_ptr : 5;
+ uint32_t reserved1 : 2;
+ uint32_t push_length : 5;
+ uint32_t push_intr_action : 2;
+ uint32_t reserved0 : 2;
+ uint32_t push_empty : 1;
+ uint32_t push_full : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbshcsn_t;
+
+#endif // __ASSEMBLER__
+#define OCB_OCBSHCSN_PUSH_FULL 0x80000000
+#define OCB_OCBSHCSN_PUSH_EMPTY 0x40000000
+#define OCB_OCBSHCSN_PUSH_INTR_ACTION_MASK 0x0c000000
+#define OCB_OCBSHCSN_PUSH_LENGTH_MASK 0x03e00000
+#define OCB_OCBSHCSN_PUSH_WRITE_PTR_MASK 0x0007c000
+#define OCB_OCBSHCSN_PUSH_READ_PTR_MASK 0x000007c0
+#define OCB_OCBSHCSN_PUSH_ENABLE 0x00000001
+#ifndef __ASSEMBLER__
+
+
+typedef union ocb_ocbslin {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved : 32;
+#else
+ uint32_t reserved : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbslin_t;
+
+
+
+typedef union ocb_ocbshin {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved : 32;
+#else
+ uint32_t reserved : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbshin_t;
+
+
+
+typedef union ocb_ocbsesn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t push_read_underflow : 1;
+ uint32_t pull_write_overflow : 1;
+ uint32_t _reserved0 : 30;
+#else
+ uint32_t _reserved0 : 30;
+ uint32_t pull_write_overflow : 1;
+ uint32_t push_read_underflow : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbsesn_t;
+
+
+
+typedef union ocb_ocbicrn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t allow_unsecure_pib_masters : 1;
+ uint32_t _reserved0 : 31;
+#else
+ uint32_t _reserved0 : 31;
+ uint32_t allow_unsecure_pib_masters : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbicrn_t;
+
+
+
+typedef union ocb_ocblwcrn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t linear_window_enable : 1;
+ uint32_t spare_0 : 3;
+ uint32_t linear_window_bar : 16;
+ uint32_t linear_window_mask : 12;
+#else
+ uint32_t linear_window_mask : 12;
+ uint32_t linear_window_bar : 16;
+ uint32_t spare_0 : 3;
+ uint32_t linear_window_enable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocblwcrn_t;
+
+
+
+typedef union ocb_ocblwsrn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t linear_window_scresp : 3;
+ uint32_t spare_0 : 5;
+ uint32_t _reserved0 : 24;
+#else
+ uint32_t _reserved0 : 24;
+ uint32_t spare_0 : 5;
+ uint32_t linear_window_scresp : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocblwsrn_t;
+
+
+
+typedef union ocb_ocblwsbrn {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t linear_window_region : 2;
+ uint32_t linear_window_base : 8;
+ uint32_t _reserved0 : 22;
+#else
+ uint32_t _reserved0 : 22;
+ uint32_t linear_window_base : 8;
+ uint32_t linear_window_region : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocblwsbrn_t;
+
+
+
+typedef union ocb_ocichsw {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t m0_priority : 2;
+ uint32_t m1_priority : 2;
+ uint32_t m2_priority : 2;
+ uint32_t m3_priority : 2;
+ uint32_t m4_priority : 2;
+ uint32_t m5_priority : 2;
+ uint32_t m6_priority : 2;
+ uint32_t m7_priority : 2;
+ uint32_t dcu_priority_sel : 1;
+ uint32_t icu_priority_sel : 1;
+ uint32_t plbarb_lockerr : 1;
+ uint32_t _reserved0 : 13;
+#else
+ uint32_t _reserved0 : 13;
+ uint32_t plbarb_lockerr : 1;
+ uint32_t icu_priority_sel : 1;
+ uint32_t dcu_priority_sel : 1;
+ uint32_t m7_priority : 2;
+ uint32_t m6_priority : 2;
+ uint32_t m5_priority : 2;
+ uint32_t m4_priority : 2;
+ uint32_t m3_priority : 2;
+ uint32_t m2_priority : 2;
+ uint32_t m1_priority : 2;
+ uint32_t m0_priority : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocichsw_t;
+
+
+
+typedef union ocb_ocr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_reset : 1;
+ uint64_t chip_reset : 1;
+ uint64_t system_reset : 1;
+ uint64_t oci_arb_reset : 1;
+ uint64_t trace_disable : 1;
+ uint64_t trace_event : 1;
+ uint64_t dbg_unconditional_event : 1;
+ uint64_t ext_interrupt : 1;
+ uint64_t critical_interrupt : 1;
+ uint64_t spare : 7;
+ uint64_t _reserved0 : 48;
+#else
+ uint64_t _reserved0 : 48;
+ uint64_t spare : 7;
+ uint64_t critical_interrupt : 1;
+ uint64_t ext_interrupt : 1;
+ uint64_t dbg_unconditional_event : 1;
+ uint64_t trace_event : 1;
+ uint64_t trace_disable : 1;
+ uint64_t oci_arb_reset : 1;
+ uint64_t system_reset : 1;
+ uint64_t chip_reset : 1;
+ uint64_t core_reset : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocr_t;
+
+
+
+typedef union ocb_ocr_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_reset : 1;
+ uint64_t chip_reset : 1;
+ uint64_t system_reset : 1;
+ uint64_t oci_arb_reset : 1;
+ uint64_t trace_disable : 1;
+ uint64_t trace_event : 1;
+ uint64_t dbg_unconditional_event : 1;
+ uint64_t ext_interrupt : 1;
+ uint64_t critical_interrupt : 1;
+ uint64_t spare : 7;
+ uint64_t _reserved0 : 48;
+#else
+ uint64_t _reserved0 : 48;
+ uint64_t spare : 7;
+ uint64_t critical_interrupt : 1;
+ uint64_t ext_interrupt : 1;
+ uint64_t dbg_unconditional_event : 1;
+ uint64_t trace_event : 1;
+ uint64_t trace_disable : 1;
+ uint64_t oci_arb_reset : 1;
+ uint64_t system_reset : 1;
+ uint64_t chip_reset : 1;
+ uint64_t core_reset : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocr_and_t;
+
+
+
+typedef union ocb_ocr_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_reset : 1;
+ uint64_t chip_reset : 1;
+ uint64_t system_reset : 1;
+ uint64_t oci_arb_reset : 1;
+ uint64_t trace_disable : 1;
+ uint64_t trace_event : 1;
+ uint64_t dbg_unconditional_event : 1;
+ uint64_t ext_interrupt : 1;
+ uint64_t critical_interrupt : 1;
+ uint64_t spare : 7;
+ uint64_t _reserved0 : 48;
+#else
+ uint64_t _reserved0 : 48;
+ uint64_t spare : 7;
+ uint64_t critical_interrupt : 1;
+ uint64_t ext_interrupt : 1;
+ uint64_t dbg_unconditional_event : 1;
+ uint64_t trace_event : 1;
+ uint64_t trace_disable : 1;
+ uint64_t oci_arb_reset : 1;
+ uint64_t system_reset : 1;
+ uint64_t chip_reset : 1;
+ uint64_t core_reset : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocr_or_t;
+
+
+
+typedef union ocb_ocdbg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 12;
+ uint64_t _reserved0 : 52;
+#else
+ uint64_t _reserved0 : 52;
+ uint64_t value : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocdbg_t;
+
+
+
+typedef union ocb_ocbarn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t oci_region : 2;
+ uint64_t ocb_address : 27;
+ uint64_t reserved : 3;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t reserved : 3;
+ uint64_t ocb_address : 27;
+ uint64_t oci_region : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbarn_t;
+
+#endif // __ASSEMBLER__
+#define OCB_OCBARN_OCI_REGION_MASK SIXTYFOUR_BIT_CONSTANT(0xc000000000000000)
+#define OCB_OCBARN_OCB_ADDRESS_MASK SIXTYFOUR_BIT_CONSTANT(0x3ffffff800000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union ocb_ocbcsrn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pull_read_underflow : 1;
+ uint64_t push_write_overflow : 1;
+ uint64_t pull_read_underflow_en : 1;
+ uint64_t push_write_overflow_en : 1;
+ uint64_t ocb_stream_mode : 1;
+ uint64_t ocb_stream_type : 1;
+ uint64_t reserved1 : 2;
+ uint64_t ocb_oci_timeout : 1;
+ uint64_t ocb_oci_read_data_parity : 1;
+ uint64_t ocb_oci_slave_error : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_pib_data_parity_err : 1;
+ uint64_t reserved2 : 1;
+ uint64_t ocb_fsm_err : 1;
+ uint64_t _reserved0 : 49;
+#else
+ uint64_t _reserved0 : 49;
+ uint64_t ocb_fsm_err : 1;
+ uint64_t reserved2 : 1;
+ uint64_t ocb_pib_data_parity_err : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_oci_slave_error : 1;
+ uint64_t ocb_oci_read_data_parity : 1;
+ uint64_t ocb_oci_timeout : 1;
+ uint64_t reserved1 : 2;
+ uint64_t ocb_stream_type : 1;
+ uint64_t ocb_stream_mode : 1;
+ uint64_t push_write_overflow_en : 1;
+ uint64_t pull_read_underflow_en : 1;
+ uint64_t push_write_overflow : 1;
+ uint64_t pull_read_underflow : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbcsrn_t;
+
+#endif // __ASSEMBLER__
+#define OCB_OCBCSRN_PULL_READ_UNDERFLOW SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define OCB_OCBCSRN_PUSH_WRITE_OVERFLOW SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define OCB_OCBCSRN_PULL_READ_UNDERFLOW_EN SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define OCB_OCBCSRN_PUSH_WRITE_OVERFLOW_EN SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define OCB_OCBCSRN_OCB_STREAM_MODE SIXTYFOUR_BIT_CONSTANT(0x0800000000000000)
+#define OCB_OCBCSRN_OCB_STREAM_TYPE SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
+#define OCB_OCBCSRN_OCB_OCI_TIMEOUT SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define OCB_OCBCSRN_OCB_OCI_READ_DATA_PARITY SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define OCB_OCBCSRN_OCB_OCI_SLAVE_ERROR SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define OCB_OCBCSRN_OCB_PIB_ADDR_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
+#define OCB_OCBCSRN_OCB_PIB_DATA_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
+#define OCB_OCBCSRN_OCB_FSM_ERR SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union ocb_ocbcsrn_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pull_read_underflow : 1;
+ uint64_t push_write_overflow : 1;
+ uint64_t pull_read_underflow_en : 1;
+ uint64_t push_write_overflow_en : 1;
+ uint64_t ocb_stream_mode : 1;
+ uint64_t ocb_stream_type : 1;
+ uint64_t reserved1 : 2;
+ uint64_t ocb_oci_timeout : 1;
+ uint64_t ocb_oci_read_data_parity : 1;
+ uint64_t ocb_oci_slave_error : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_pib_data_parity_err : 1;
+ uint64_t reserved2 : 1;
+ uint64_t ocb_fsm_err : 1;
+ uint64_t _reserved0 : 49;
+#else
+ uint64_t _reserved0 : 49;
+ uint64_t ocb_fsm_err : 1;
+ uint64_t reserved2 : 1;
+ uint64_t ocb_pib_data_parity_err : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_oci_slave_error : 1;
+ uint64_t ocb_oci_read_data_parity : 1;
+ uint64_t ocb_oci_timeout : 1;
+ uint64_t reserved1 : 2;
+ uint64_t ocb_stream_type : 1;
+ uint64_t ocb_stream_mode : 1;
+ uint64_t push_write_overflow_en : 1;
+ uint64_t pull_read_underflow_en : 1;
+ uint64_t push_write_overflow : 1;
+ uint64_t pull_read_underflow : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbcsrn_and_t;
+
+
+
+typedef union ocb_ocbcsrn_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pull_read_underflow : 1;
+ uint64_t push_write_overflow : 1;
+ uint64_t pull_read_underflow_en : 1;
+ uint64_t push_write_overflow_en : 1;
+ uint64_t ocb_stream_mode : 1;
+ uint64_t ocb_stream_type : 1;
+ uint64_t reserved1 : 2;
+ uint64_t ocb_oci_timeout : 1;
+ uint64_t ocb_oci_read_data_parity : 1;
+ uint64_t ocb_oci_slave_error : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_pib_data_parity_err : 1;
+ uint64_t reserved2 : 1;
+ uint64_t ocb_fsm_err : 1;
+ uint64_t _reserved0 : 49;
+#else
+ uint64_t _reserved0 : 49;
+ uint64_t ocb_fsm_err : 1;
+ uint64_t reserved2 : 1;
+ uint64_t ocb_pib_data_parity_err : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_oci_slave_error : 1;
+ uint64_t ocb_oci_read_data_parity : 1;
+ uint64_t ocb_oci_timeout : 1;
+ uint64_t reserved1 : 2;
+ uint64_t ocb_stream_type : 1;
+ uint64_t ocb_stream_mode : 1;
+ uint64_t push_write_overflow_en : 1;
+ uint64_t pull_read_underflow_en : 1;
+ uint64_t push_write_overflow : 1;
+ uint64_t pull_read_underflow : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbcsrn_or_t;
+
+
+
+typedef union ocb_ocbesrn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ocb_error_addr : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t ocb_error_addr : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbesrn_t;
+
+
+
+typedef union ocb_ocbdrn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ocb_data : 64;
+#else
+ uint64_t ocb_data : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_ocbdrn_t;
+
+
+
+typedef union ocb_osbcr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_block_unsecure_masters : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t occ_block_unsecure_masters : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_osbcr_t;
+
+
+
+typedef union ocb_otdcr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t trace_bus_en : 1;
+ uint64_t ocb_trace_mux_sel : 1;
+ uint64_t occ_trace_mux_sel : 2;
+ uint64_t oci_trace_mux_sel : 4;
+ uint64_t _reserved0 : 56;
+#else
+ uint64_t _reserved0 : 56;
+ uint64_t oci_trace_mux_sel : 4;
+ uint64_t occ_trace_mux_sel : 2;
+ uint64_t ocb_trace_mux_sel : 1;
+ uint64_t trace_bus_en : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_otdcr_t;
+
+
+
+typedef union ocb_oppcinj {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t oci_err_inj_dcu : 1;
+ uint64_t oci_err_inj_icu : 1;
+ uint64_t oci_err_inj_ce_ue : 1;
+ uint64_t oci_err_inj_singl_cont : 1;
+ uint64_t _reserved0 : 60;
+#else
+ uint64_t _reserved0 : 60;
+ uint64_t oci_err_inj_singl_cont : 1;
+ uint64_t oci_err_inj_ce_ue : 1;
+ uint64_t oci_err_inj_icu : 1;
+ uint64_t oci_err_inj_dcu : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_oppcinj_t;
+
+
+
+typedef union ocb_occlfir {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_fw0 : 1;
+ uint64_t occ_fw1 : 1;
+ uint64_t occ_fw2 : 1;
+ uint64_t occ_fw3 : 1;
+ uint64_t pmc_pore_sw_malf : 1;
+ uint64_t pmc_occ_hb_malf : 1;
+ uint64_t pore_gpe0_fatal_err : 1;
+ uint64_t pore_gpe1_fatal_err : 1;
+ uint64_t ocb_error : 1;
+ uint64_t pmc_error : 1;
+ uint64_t srt_ue : 1;
+ uint64_t srt_ce : 1;
+ uint64_t srt_read_error : 1;
+ uint64_t srt_write_error : 1;
+ uint64_t srt_oci_write_data_parity : 1;
+ uint64_t srt_oci_be_parity_err : 1;
+ uint64_t srt_oci_addr_parity_err : 1;
+ uint64_t pore_sw_error_err : 1;
+ uint64_t pore_gpe0_error_err : 1;
+ uint64_t pore_gpe1_error_err : 1;
+ uint64_t external_trap : 1;
+ uint64_t ppc405_core_reset : 1;
+ uint64_t ppc405_chip_reset : 1;
+ uint64_t ppc405_system_reset : 1;
+ uint64_t ppc405_dbgmsrwe : 1;
+ uint64_t ppc405_dbgstopack : 1;
+ uint64_t ocb_db_oci_timeout : 1;
+ uint64_t ocb_db_oci_read_data_parity : 1;
+ uint64_t ocb_db_oci_slave_error : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_db_pib_data_parity_err : 1;
+ uint64_t ocb_idc0_error : 1;
+ uint64_t ocb_idc1_error : 1;
+ uint64_t ocb_idc2_error : 1;
+ uint64_t ocb_idc3_error : 1;
+ uint64_t srt_fsm_err : 1;
+ uint64_t jtagacc_err : 1;
+ uint64_t ocb_dw_err : 1;
+ uint64_t c405_ecc_ue : 1;
+ uint64_t c405_ecc_ce : 1;
+ uint64_t c405_oci_machinecheck : 1;
+ uint64_t sram_spare_direct_error0 : 1;
+ uint64_t sram_spare_direct_error1 : 1;
+ uint64_t sram_spare_direct_error2 : 1;
+ uint64_t sram_spare_direct_error3 : 1;
+ uint64_t slw_ocislv_err : 1;
+ uint64_t gpe_ocislv_err : 1;
+ uint64_t ocb_ocislv_err : 1;
+ uint64_t c405icu_m_timeout : 1;
+ uint64_t c405dcu_m_timeout : 1;
+ uint64_t spare_fir : 12;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t fir_parity_err : 1;
+#else
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t spare_fir : 12;
+ uint64_t c405dcu_m_timeout : 1;
+ uint64_t c405icu_m_timeout : 1;
+ uint64_t ocb_ocislv_err : 1;
+ uint64_t gpe_ocislv_err : 1;
+ uint64_t slw_ocislv_err : 1;
+ uint64_t sram_spare_direct_error3 : 1;
+ uint64_t sram_spare_direct_error2 : 1;
+ uint64_t sram_spare_direct_error1 : 1;
+ uint64_t sram_spare_direct_error0 : 1;
+ uint64_t c405_oci_machinecheck : 1;
+ uint64_t c405_ecc_ce : 1;
+ uint64_t c405_ecc_ue : 1;
+ uint64_t ocb_dw_err : 1;
+ uint64_t jtagacc_err : 1;
+ uint64_t srt_fsm_err : 1;
+ uint64_t ocb_idc3_error : 1;
+ uint64_t ocb_idc2_error : 1;
+ uint64_t ocb_idc1_error : 1;
+ uint64_t ocb_idc0_error : 1;
+ uint64_t ocb_db_pib_data_parity_err : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_db_oci_slave_error : 1;
+ uint64_t ocb_db_oci_read_data_parity : 1;
+ uint64_t ocb_db_oci_timeout : 1;
+ uint64_t ppc405_dbgstopack : 1;
+ uint64_t ppc405_dbgmsrwe : 1;
+ uint64_t ppc405_system_reset : 1;
+ uint64_t ppc405_chip_reset : 1;
+ uint64_t ppc405_core_reset : 1;
+ uint64_t external_trap : 1;
+ uint64_t pore_gpe1_error_err : 1;
+ uint64_t pore_gpe0_error_err : 1;
+ uint64_t pore_sw_error_err : 1;
+ uint64_t srt_oci_addr_parity_err : 1;
+ uint64_t srt_oci_be_parity_err : 1;
+ uint64_t srt_oci_write_data_parity : 1;
+ uint64_t srt_write_error : 1;
+ uint64_t srt_read_error : 1;
+ uint64_t srt_ce : 1;
+ uint64_t srt_ue : 1;
+ uint64_t pmc_error : 1;
+ uint64_t ocb_error : 1;
+ uint64_t pore_gpe1_fatal_err : 1;
+ uint64_t pore_gpe0_fatal_err : 1;
+ uint64_t pmc_occ_hb_malf : 1;
+ uint64_t pmc_pore_sw_malf : 1;
+ uint64_t occ_fw3 : 1;
+ uint64_t occ_fw2 : 1;
+ uint64_t occ_fw1 : 1;
+ uint64_t occ_fw0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfir_t;
+
+#endif // __ASSEMBLER__
+#define OCB_OCCLFIR_OCC_FW0 SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define OCB_OCCLFIR_OCC_FW1 SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define OCB_OCCLFIR_OCC_FW2 SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define OCB_OCCLFIR_OCC_FW3 SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define OCB_OCCLFIR_PMC_PORE_SW_MALF SIXTYFOUR_BIT_CONSTANT(0x0800000000000000)
+#define OCB_OCCLFIR_PMC_OCC_HB_MALF SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
+#define OCB_OCCLFIR_PORE_GPE0_FATAL_ERR SIXTYFOUR_BIT_CONSTANT(0x0200000000000000)
+#define OCB_OCCLFIR_PORE_GPE1_FATAL_ERR SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
+#define OCB_OCCLFIR_OCB_ERROR SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define OCB_OCCLFIR_PMC_ERROR SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define OCB_OCCLFIR_SRT_UE SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define OCB_OCCLFIR_SRT_CE SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
+#define OCB_OCCLFIR_SRT_READ_ERROR SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
+#define OCB_OCCLFIR_SRT_WRITE_ERROR SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
+#define OCB_OCCLFIR_SRT_OCI_WRITE_DATA_PARITY SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#define OCB_OCCLFIR_SRT_OCI_BE_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0001000000000000)
+#define OCB_OCCLFIR_SRT_OCI_ADDR_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0000800000000000)
+#define OCB_OCCLFIR_PORE_SW_ERROR_ERR SIXTYFOUR_BIT_CONSTANT(0x0000400000000000)
+#define OCB_OCCLFIR_PORE_GPE0_ERROR_ERR SIXTYFOUR_BIT_CONSTANT(0x0000200000000000)
+#define OCB_OCCLFIR_PORE_GPE1_ERROR_ERR SIXTYFOUR_BIT_CONSTANT(0x0000100000000000)
+#define OCB_OCCLFIR_EXTERNAL_TRAP SIXTYFOUR_BIT_CONSTANT(0x0000080000000000)
+#define OCB_OCCLFIR_PPC405_CORE_RESET SIXTYFOUR_BIT_CONSTANT(0x0000040000000000)
+#define OCB_OCCLFIR_PPC405_CHIP_RESET SIXTYFOUR_BIT_CONSTANT(0x0000020000000000)
+#define OCB_OCCLFIR_PPC405_SYSTEM_RESET SIXTYFOUR_BIT_CONSTANT(0x0000010000000000)
+#define OCB_OCCLFIR_PPC405_DBGMSRWE SIXTYFOUR_BIT_CONSTANT(0x0000008000000000)
+#define OCB_OCCLFIR_PPC405_DBGSTOPACK SIXTYFOUR_BIT_CONSTANT(0x0000004000000000)
+#define OCB_OCCLFIR_OCB_DB_OCI_TIMEOUT SIXTYFOUR_BIT_CONSTANT(0x0000002000000000)
+#define OCB_OCCLFIR_OCB_DB_OCI_READ_DATA_PARITY SIXTYFOUR_BIT_CONSTANT(0x0000001000000000)
+#define OCB_OCCLFIR_OCB_DB_OCI_SLAVE_ERROR SIXTYFOUR_BIT_CONSTANT(0x0000000800000000)
+#define OCB_OCCLFIR_OCB_PIB_ADDR_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000400000000)
+#define OCB_OCCLFIR_OCB_DB_PIB_DATA_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000200000000)
+#define OCB_OCCLFIR_OCB_IDC0_ERROR SIXTYFOUR_BIT_CONSTANT(0x0000000100000000)
+#define OCB_OCCLFIR_OCB_IDC1_ERROR SIXTYFOUR_BIT_CONSTANT(0x0000000080000000)
+#define OCB_OCCLFIR_OCB_IDC2_ERROR SIXTYFOUR_BIT_CONSTANT(0x0000000040000000)
+#define OCB_OCCLFIR_OCB_IDC3_ERROR SIXTYFOUR_BIT_CONSTANT(0x0000000020000000)
+#define OCB_OCCLFIR_SRT_FSM_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000010000000)
+#define OCB_OCCLFIR_JTAGACC_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000008000000)
+#define OCB_OCCLFIR_OCB_DW_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000004000000)
+#define OCB_OCCLFIR_C405_ECC_UE SIXTYFOUR_BIT_CONSTANT(0x0000000002000000)
+#define OCB_OCCLFIR_C405_ECC_CE SIXTYFOUR_BIT_CONSTANT(0x0000000001000000)
+#define OCB_OCCLFIR_C405_OCI_MACHINECHECK SIXTYFOUR_BIT_CONSTANT(0x0000000000800000)
+#define OCB_OCCLFIR_SRAM_SPARE_DIRECT_ERROR0 SIXTYFOUR_BIT_CONSTANT(0x0000000000400000)
+#define OCB_OCCLFIR_SRAM_SPARE_DIRECT_ERROR1 SIXTYFOUR_BIT_CONSTANT(0x0000000000200000)
+#define OCB_OCCLFIR_SRAM_SPARE_DIRECT_ERROR2 SIXTYFOUR_BIT_CONSTANT(0x0000000000100000)
+#define OCB_OCCLFIR_SRAM_SPARE_DIRECT_ERROR3 SIXTYFOUR_BIT_CONSTANT(0x0000000000080000)
+#define OCB_OCCLFIR_SLW_OCISLV_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000000040000)
+#define OCB_OCCLFIR_GPE_OCISLV_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000000020000)
+#define OCB_OCCLFIR_OCB_OCISLV_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000000010000)
+#define OCB_OCCLFIR_C405ICU_M_TIMEOUT SIXTYFOUR_BIT_CONSTANT(0x0000000000008000)
+#define OCB_OCCLFIR_C405DCU_M_TIMEOUT SIXTYFOUR_BIT_CONSTANT(0x0000000000004000)
+#define OCB_OCCLFIR_SPARE_FIR_MASK SIXTYFOUR_BIT_CONSTANT(0x0000000000003ffc)
+#define OCB_OCCLFIR_FIR_PARITY_ERR_DUP SIXTYFOUR_BIT_CONSTANT(0x0000000000000002)
+#define OCB_OCCLFIR_FIR_PARITY_ERR SIXTYFOUR_BIT_CONSTANT(0x0000000000000001)
+#ifndef __ASSEMBLER__
+
+
+typedef union ocb_occlfir_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_fw0 : 1;
+ uint64_t occ_fw1 : 1;
+ uint64_t occ_fw2 : 1;
+ uint64_t occ_fw3 : 1;
+ uint64_t pmc_pore_sw_malf : 1;
+ uint64_t pmc_occ_hb_malf : 1;
+ uint64_t pore_gpe0_fatal_err : 1;
+ uint64_t pore_gpe1_fatal_err : 1;
+ uint64_t ocb_error : 1;
+ uint64_t pmc_error : 1;
+ uint64_t srt_ue : 1;
+ uint64_t srt_ce : 1;
+ uint64_t srt_read_error : 1;
+ uint64_t srt_write_error : 1;
+ uint64_t srt_oci_write_data_parity : 1;
+ uint64_t srt_oci_be_parity_err : 1;
+ uint64_t srt_oci_addr_parity_err : 1;
+ uint64_t pore_sw_error_err : 1;
+ uint64_t pore_gpe0_error_err : 1;
+ uint64_t pore_gpe1_error_err : 1;
+ uint64_t external_trap : 1;
+ uint64_t ppc405_core_reset : 1;
+ uint64_t ppc405_chip_reset : 1;
+ uint64_t ppc405_system_reset : 1;
+ uint64_t ppc405_dbgmsrwe : 1;
+ uint64_t ppc405_dbgstopack : 1;
+ uint64_t ocb_db_oci_timeout : 1;
+ uint64_t ocb_db_oci_read_data_parity : 1;
+ uint64_t ocb_db_oci_slave_error : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_db_pib_data_parity_err : 1;
+ uint64_t ocb_idc0_error : 1;
+ uint64_t ocb_idc1_error : 1;
+ uint64_t ocb_idc2_error : 1;
+ uint64_t ocb_idc3_error : 1;
+ uint64_t srt_fsm_err : 1;
+ uint64_t jtagacc_err : 1;
+ uint64_t ocb_dw_err : 1;
+ uint64_t c405_ecc_ue : 1;
+ uint64_t c405_ecc_ce : 1;
+ uint64_t c405_oci_machinecheck : 1;
+ uint64_t sram_spare_direct_error0 : 1;
+ uint64_t sram_spare_direct_error1 : 1;
+ uint64_t sram_spare_direct_error2 : 1;
+ uint64_t sram_spare_direct_error3 : 1;
+ uint64_t slw_ocislv_err : 1;
+ uint64_t gpe_ocislv_err : 1;
+ uint64_t ocb_ocislv_err : 1;
+ uint64_t c405icu_m_timeout : 1;
+ uint64_t c405dcu_m_timeout : 1;
+ uint64_t spare_fir : 12;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t fir_parity_err : 1;
+#else
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t spare_fir : 12;
+ uint64_t c405dcu_m_timeout : 1;
+ uint64_t c405icu_m_timeout : 1;
+ uint64_t ocb_ocislv_err : 1;
+ uint64_t gpe_ocislv_err : 1;
+ uint64_t slw_ocislv_err : 1;
+ uint64_t sram_spare_direct_error3 : 1;
+ uint64_t sram_spare_direct_error2 : 1;
+ uint64_t sram_spare_direct_error1 : 1;
+ uint64_t sram_spare_direct_error0 : 1;
+ uint64_t c405_oci_machinecheck : 1;
+ uint64_t c405_ecc_ce : 1;
+ uint64_t c405_ecc_ue : 1;
+ uint64_t ocb_dw_err : 1;
+ uint64_t jtagacc_err : 1;
+ uint64_t srt_fsm_err : 1;
+ uint64_t ocb_idc3_error : 1;
+ uint64_t ocb_idc2_error : 1;
+ uint64_t ocb_idc1_error : 1;
+ uint64_t ocb_idc0_error : 1;
+ uint64_t ocb_db_pib_data_parity_err : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_db_oci_slave_error : 1;
+ uint64_t ocb_db_oci_read_data_parity : 1;
+ uint64_t ocb_db_oci_timeout : 1;
+ uint64_t ppc405_dbgstopack : 1;
+ uint64_t ppc405_dbgmsrwe : 1;
+ uint64_t ppc405_system_reset : 1;
+ uint64_t ppc405_chip_reset : 1;
+ uint64_t ppc405_core_reset : 1;
+ uint64_t external_trap : 1;
+ uint64_t pore_gpe1_error_err : 1;
+ uint64_t pore_gpe0_error_err : 1;
+ uint64_t pore_sw_error_err : 1;
+ uint64_t srt_oci_addr_parity_err : 1;
+ uint64_t srt_oci_be_parity_err : 1;
+ uint64_t srt_oci_write_data_parity : 1;
+ uint64_t srt_write_error : 1;
+ uint64_t srt_read_error : 1;
+ uint64_t srt_ce : 1;
+ uint64_t srt_ue : 1;
+ uint64_t pmc_error : 1;
+ uint64_t ocb_error : 1;
+ uint64_t pore_gpe1_fatal_err : 1;
+ uint64_t pore_gpe0_fatal_err : 1;
+ uint64_t pmc_occ_hb_malf : 1;
+ uint64_t pmc_pore_sw_malf : 1;
+ uint64_t occ_fw3 : 1;
+ uint64_t occ_fw2 : 1;
+ uint64_t occ_fw1 : 1;
+ uint64_t occ_fw0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfir_and_t;
+
+
+
+typedef union ocb_occlfir_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_fw0 : 1;
+ uint64_t occ_fw1 : 1;
+ uint64_t occ_fw2 : 1;
+ uint64_t occ_fw3 : 1;
+ uint64_t pmc_pore_sw_malf : 1;
+ uint64_t pmc_occ_hb_malf : 1;
+ uint64_t pore_gpe0_fatal_err : 1;
+ uint64_t pore_gpe1_fatal_err : 1;
+ uint64_t ocb_error : 1;
+ uint64_t pmc_error : 1;
+ uint64_t srt_ue : 1;
+ uint64_t srt_ce : 1;
+ uint64_t srt_read_error : 1;
+ uint64_t srt_write_error : 1;
+ uint64_t srt_oci_write_data_parity : 1;
+ uint64_t srt_oci_be_parity_err : 1;
+ uint64_t srt_oci_addr_parity_err : 1;
+ uint64_t pore_sw_error_err : 1;
+ uint64_t pore_gpe0_error_err : 1;
+ uint64_t pore_gpe1_error_err : 1;
+ uint64_t external_trap : 1;
+ uint64_t ppc405_core_reset : 1;
+ uint64_t ppc405_chip_reset : 1;
+ uint64_t ppc405_system_reset : 1;
+ uint64_t ppc405_dbgmsrwe : 1;
+ uint64_t ppc405_dbgstopack : 1;
+ uint64_t ocb_db_oci_timeout : 1;
+ uint64_t ocb_db_oci_read_data_parity : 1;
+ uint64_t ocb_db_oci_slave_error : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_db_pib_data_parity_err : 1;
+ uint64_t ocb_idc0_error : 1;
+ uint64_t ocb_idc1_error : 1;
+ uint64_t ocb_idc2_error : 1;
+ uint64_t ocb_idc3_error : 1;
+ uint64_t srt_fsm_err : 1;
+ uint64_t jtagacc_err : 1;
+ uint64_t ocb_dw_err : 1;
+ uint64_t c405_ecc_ue : 1;
+ uint64_t c405_ecc_ce : 1;
+ uint64_t c405_oci_machinecheck : 1;
+ uint64_t sram_spare_direct_error0 : 1;
+ uint64_t sram_spare_direct_error1 : 1;
+ uint64_t sram_spare_direct_error2 : 1;
+ uint64_t sram_spare_direct_error3 : 1;
+ uint64_t slw_ocislv_err : 1;
+ uint64_t gpe_ocislv_err : 1;
+ uint64_t ocb_ocislv_err : 1;
+ uint64_t c405icu_m_timeout : 1;
+ uint64_t c405dcu_m_timeout : 1;
+ uint64_t spare_fir : 12;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t fir_parity_err : 1;
+#else
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t spare_fir : 12;
+ uint64_t c405dcu_m_timeout : 1;
+ uint64_t c405icu_m_timeout : 1;
+ uint64_t ocb_ocislv_err : 1;
+ uint64_t gpe_ocislv_err : 1;
+ uint64_t slw_ocislv_err : 1;
+ uint64_t sram_spare_direct_error3 : 1;
+ uint64_t sram_spare_direct_error2 : 1;
+ uint64_t sram_spare_direct_error1 : 1;
+ uint64_t sram_spare_direct_error0 : 1;
+ uint64_t c405_oci_machinecheck : 1;
+ uint64_t c405_ecc_ce : 1;
+ uint64_t c405_ecc_ue : 1;
+ uint64_t ocb_dw_err : 1;
+ uint64_t jtagacc_err : 1;
+ uint64_t srt_fsm_err : 1;
+ uint64_t ocb_idc3_error : 1;
+ uint64_t ocb_idc2_error : 1;
+ uint64_t ocb_idc1_error : 1;
+ uint64_t ocb_idc0_error : 1;
+ uint64_t ocb_db_pib_data_parity_err : 1;
+ uint64_t ocb_pib_addr_parity_err : 1;
+ uint64_t ocb_db_oci_slave_error : 1;
+ uint64_t ocb_db_oci_read_data_parity : 1;
+ uint64_t ocb_db_oci_timeout : 1;
+ uint64_t ppc405_dbgstopack : 1;
+ uint64_t ppc405_dbgmsrwe : 1;
+ uint64_t ppc405_system_reset : 1;
+ uint64_t ppc405_chip_reset : 1;
+ uint64_t ppc405_core_reset : 1;
+ uint64_t external_trap : 1;
+ uint64_t pore_gpe1_error_err : 1;
+ uint64_t pore_gpe0_error_err : 1;
+ uint64_t pore_sw_error_err : 1;
+ uint64_t srt_oci_addr_parity_err : 1;
+ uint64_t srt_oci_be_parity_err : 1;
+ uint64_t srt_oci_write_data_parity : 1;
+ uint64_t srt_write_error : 1;
+ uint64_t srt_read_error : 1;
+ uint64_t srt_ce : 1;
+ uint64_t srt_ue : 1;
+ uint64_t pmc_error : 1;
+ uint64_t ocb_error : 1;
+ uint64_t pore_gpe1_fatal_err : 1;
+ uint64_t pore_gpe0_fatal_err : 1;
+ uint64_t pmc_occ_hb_malf : 1;
+ uint64_t pmc_pore_sw_malf : 1;
+ uint64_t occ_fw3 : 1;
+ uint64_t occ_fw2 : 1;
+ uint64_t occ_fw1 : 1;
+ uint64_t occ_fw0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfir_or_t;
+
+
+
+typedef union ocb_occlfirmask {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfirmask_t;
+
+
+
+typedef union ocb_occlfirmask_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfirmask_and_t;
+
+
+
+typedef union ocb_occlfirmask_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfirmask_or_t;
+
+
+
+typedef union ocb_occlfiract0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfiract0_t;
+
+
+
+typedef union ocb_occlfiract1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occlfiract1_t;
+
+
+
+typedef union ocb_occerrrpt {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t sram_cerrrpt : 10;
+ uint64_t jtagacc_cerrrpt : 6;
+ uint64_t c405_dcu_ecc_ue_cerrrpt : 1;
+ uint64_t c405_dcu_ecc_ce_cerrrpt : 1;
+ uint64_t c405_icu_ecc_ue_cerrrpt : 1;
+ uint64_t c405_icu_ecc_ce_cerrrpt : 1;
+ uint64_t slw_ocislv_err : 7;
+ uint64_t gpe_ocislv_err : 7;
+ uint64_t ocb_ocislv_err : 6;
+ uint64_t _reserved0 : 24;
+#else
+ uint64_t _reserved0 : 24;
+ uint64_t ocb_ocislv_err : 6;
+ uint64_t gpe_ocislv_err : 7;
+ uint64_t slw_ocislv_err : 7;
+ uint64_t c405_icu_ecc_ce_cerrrpt : 1;
+ uint64_t c405_icu_ecc_ue_cerrrpt : 1;
+ uint64_t c405_dcu_ecc_ce_cerrrpt : 1;
+ uint64_t c405_dcu_ecc_ue_cerrrpt : 1;
+ uint64_t jtagacc_cerrrpt : 6;
+ uint64_t sram_cerrrpt : 10;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_occerrrpt_t;
+
+
+
+typedef union ocb_scan_dummy_1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t _reserved0 : 48;
+ uint64_t value : 16;
+#else
+ uint64_t value : 16;
+ uint64_t _reserved0 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_scan_dummy_1_t;
+
+
+
+typedef union ocb_scan_dummy_2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t _reserved0 : 63;
+ uint64_t value : 1;
+#else
+ uint64_t value : 1;
+ uint64_t _reserved0 : 63;
+#endif // _BIG_ENDIAN
+ } fields;
+} ocb_scan_dummy_2_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __OCB_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/ocb_register_addresses.h b/src/ssx/pgp/registers/ocb_register_addresses.h
new file mode 100755
index 0000000..3290e59
--- /dev/null
+++ b/src/ssx/pgp/registers/ocb_register_addresses.h
@@ -0,0 +1,148 @@
+#ifndef __OCB_REGISTER_ADDRESSES_H__
+#define __OCB_REGISTER_ADDRESSES_H__
+
+// $Id: ocb_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/ocb_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file ocb_register_addresses.h
+/// \brief Symbolic addresses for the OCB unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define OCB_OCI_BASE 0x40050000
+#define OCB_OITR0 0x40050040
+#define OCB_OIEPR0 0x40050048
+#define OCB_OCIR0 0x40050050
+#define OCB_ONISR0 0x40050058
+#define OCB_OUDER0 0x40050060
+#define OCB_OCISR0 0x40050068
+#define OCB_ODHER0 0x40050070
+#define OCB_OISR0 0x40050000
+#define OCB_OISR0_AND 0x40050008
+#define OCB_OISR0_OR 0x40050010
+#define OCB_OIMR0 0x40050020
+#define OCB_OIMR0_AND 0x40050028
+#define OCB_OIMR0_OR 0x40050030
+#define OCB_OITR1 0x400500c0
+#define OCB_OIEPR1 0x400500c8
+#define OCB_OCIR1 0x400500d0
+#define OCB_ONISR1 0x400500d8
+#define OCB_OUDER1 0x400500e0
+#define OCB_OCISR1 0x400500e8
+#define OCB_ODHER1 0x400500f0
+#define OCB_OISR1 0x40050080
+#define OCB_OISR1_AND 0x40050088
+#define OCB_OISR1_OR 0x40050090
+#define OCB_OIMR1 0x400500a0
+#define OCB_OIMR1_AND 0x400500a8
+#define OCB_OIMR1_OR 0x400500b0
+#define OCB_OCCMISC 0x40050100
+#define OCB_OCCMISC_AND 0x40050108
+#define OCB_OCCMISC_OR 0x40050110
+#define OCB_OTRN(n) (OCB_OTR0 + ((OCB_OTR1 - OCB_OTR0) * (n)))
+#define OCB_OTR0 0x40050800
+#define OCB_OTR1 0x40050808
+#define OCB_OHTMCR 0x40050118
+#define OCB_OEHDR 0x40050120
+#define OCB_OCBSLBRN(n) (OCB_OCBSLBR0 + ((OCB_OCBSLBR1 - OCB_OCBSLBR0) * (n)))
+#define OCB_OCBSLBR0 0x40051000
+#define OCB_OCBSLBR1 0x40051080
+#define OCB_OCBSLBR2 0x40051100
+#define OCB_OCBSHBRN(n) (OCB_OCBSHBR0 + ((OCB_OCBSHBR1 - OCB_OCBSHBR0) * (n)))
+#define OCB_OCBSHBR0 0x40051018
+#define OCB_OCBSHBR1 0x40051098
+#define OCB_OCBSHBR2 0x40051118
+#define OCB_OCBSLCSN(n) (OCB_OCBSLCS0 + ((OCB_OCBSLCS1 - OCB_OCBSLCS0) * (n)))
+#define OCB_OCBSLCS0 0x40051008
+#define OCB_OCBSLCS1 0x40051088
+#define OCB_OCBSLCS2 0x40051108
+#define OCB_OCBSHCSN(n) (OCB_OCBSHCS0 + ((OCB_OCBSHCS1 - OCB_OCBSHCS0) * (n)))
+#define OCB_OCBSHCS0 0x40051020
+#define OCB_OCBSHCS1 0x400510a0
+#define OCB_OCBSHCS2 0x40051120
+#define OCB_OCBSLIN(n) (OCB_OCBSLI0 + ((OCB_OCBSLI1 - OCB_OCBSLI0) * (n)))
+#define OCB_OCBSLI0 0x40051010
+#define OCB_OCBSLI1 0x40051090
+#define OCB_OCBSLI2 0x40051110
+#define OCB_OCBSHIN(n) (OCB_OCBSHI0 + ((OCB_OCBSHI1 - OCB_OCBSHI0) * (n)))
+#define OCB_OCBSHI0 0x40051028
+#define OCB_OCBSHI1 0x400510a8
+#define OCB_OCBSHI2 0x40051128
+#define OCB_OCBSESN(n) (OCB_OCBSES0 + ((OCB_OCBSES1 - OCB_OCBSES0) * (n)))
+#define OCB_OCBSES0 0x40051030
+#define OCB_OCBSES1 0x400510b0
+#define OCB_OCBSES2 0x40051130
+#define OCB_OCBICRN(n) (OCB_OCBICR0 + ((OCB_OCBICR1 - OCB_OCBICR0) * (n)))
+#define OCB_OCBICR0 0x40051038
+#define OCB_OCBICR1 0x400510b8
+#define OCB_OCBICR2 0x40051138
+#define OCB_OCBLWCRN(n) (OCB_OCBLWCR0 + ((OCB_OCBLWCR1 - OCB_OCBLWCR0) * (n)))
+#define OCB_OCBLWCR0 0x40051040
+#define OCB_OCBLWCR1 0x400510c0
+#define OCB_OCBLWCR2 0x40051140
+#define OCB_OCBLWSRN(n) (OCB_OCBLWSR0 + ((OCB_OCBLWSR1 - OCB_OCBLWSR0) * (n)))
+#define OCB_OCBLWSR0 0x40051050
+#define OCB_OCBLWSR1 0x400510d0
+#define OCB_OCBLWSR2 0x40051150
+#define OCB_OCBLWSBRN(n) (OCB_OCBLWSBR0 + ((OCB_OCBLWSBR1 - OCB_OCBLWSBR0) * (n)))
+#define OCB_OCBLWSBR0 0x40051060
+#define OCB_OCBLWSBR1 0x400510e0
+#define OCB_OCBLWSBR2 0x40051160
+#define OCB_OCICHSW 0x40050128
+#define OCB_PIB_BASE 0x0006a000
+#define OCB_OCR 0x0006b000
+#define OCB_OCR_AND 0x0006b001
+#define OCB_OCR_OR 0x0006b002
+#define OCB_OCDBG 0x0006b003
+#define OCB_OCBARN(n) (OCB_OCBAR0 + ((OCB_OCBAR1 - OCB_OCBAR0) * (n)))
+#define OCB_OCBAR0 0x0006b010
+#define OCB_OCBAR1 0x0006b030
+#define OCB_OCBAR2 0x0006b050
+#define OCB_OCBAR3 0x0006b070
+#define OCB_OCBCSRN(n) (OCB_OCBCSR0 + ((OCB_OCBCSR1 - OCB_OCBCSR0) * (n)))
+#define OCB_OCBCSR0 0x0006b011
+#define OCB_OCBCSR1 0x0006b031
+#define OCB_OCBCSR2 0x0006b051
+#define OCB_OCBCSR3 0x0006b071
+#define OCB_OCBCSRN_AND(n) (OCB_OCBCSR0_AND + ((OCB_OCBCSR1_AND - OCB_OCBCSR0_AND) * (n)))
+#define OCB_OCBCSR0_AND 0x0006b012
+#define OCB_OCBCSR1_AND 0x0006b032
+#define OCB_OCBCSR2_AND 0x0006b052
+#define OCB_OCBCSR3_AND 0x0006b072
+#define OCB_OCBCSRN_OR(n) (OCB_OCBCSR0_OR + ((OCB_OCBCSR1_OR - OCB_OCBCSR0_OR) * (n)))
+#define OCB_OCBCSR0_OR 0x0006b013
+#define OCB_OCBCSR1_OR 0x0006b033
+#define OCB_OCBCSR2_OR 0x0006b053
+#define OCB_OCBCSR3_OR 0x0006b073
+#define OCB_OCBESRN(n) (OCB_OCBESR0 + ((OCB_OCBESR1 - OCB_OCBESR0) * (n)))
+#define OCB_OCBESR0 0x0006b014
+#define OCB_OCBESR1 0x0006b034
+#define OCB_OCBESR2 0x0006b054
+#define OCB_OCBESR3 0x0006b074
+#define OCB_OCBDRN(n) (OCB_OCBDR0 + ((OCB_OCBDR1 - OCB_OCBDR0) * (n)))
+#define OCB_OCBDR0 0x0006b015
+#define OCB_OCBDR1 0x0006b035
+#define OCB_OCBDR2 0x0006b055
+#define OCB_OCBDR3 0x0006b075
+#define OCB_OSBCR 0x0006b100
+#define OCB_OTDCR 0x0006b110
+#define OCB_OPPCINJ 0x0006b111
+#define OCB_FIRPIB_BASE 0x01010800
+#define OCB_OCCLFIR 0x01010800
+#define OCB_OCCLFIR_AND 0x01010801
+#define OCB_OCCLFIR_OR 0x01010802
+#define OCB_OCCLFIRMASK 0x01010803
+#define OCB_OCCLFIRMASK_AND 0x01010804
+#define OCB_OCCLFIRMASK_OR 0x01010805
+#define OCB_OCCLFIRACT0 0x01010806
+#define OCB_OCCLFIRACT1 0x01010807
+#define OCB_OCCERRRPT 0x0101080a
+
+#endif // __OCB_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/oha_firmware_registers.h b/src/ssx/pgp/registers/oha_firmware_registers.h
new file mode 100755
index 0000000..cba1500
--- /dev/null
+++ b/src/ssx/pgp/registers/oha_firmware_registers.h
@@ -0,0 +1,1248 @@
+#ifndef __OHA_FIRMWARE_REGISTERS_H__
+#define __OHA_FIRMWARE_REGISTERS_H__
+
+// $Id: oha_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/oha_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file oha_firmware_registers.h
+/// \brief C register structs for the OHA unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union oha_activity_sample_mode_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t enable_activity_sampling : 1;
+ uint64_t enable_ppt_trace : 1;
+ uint64_t l2_act_count_is_free_running : 1;
+ uint64_t l3_act_count_is_free_running : 1;
+ uint64_t activity_sample_l2l3_enable : 1;
+ uint64_t core_activity_sample_enable : 1;
+ uint64_t disable_activity_proxy_reset : 1;
+ uint64_t power_proxy_activity_range_select_vcs : 5;
+ uint64_t power_proxy_activity_range_select_vdd : 5;
+ uint64_t memory_activity_range_select : 4;
+ uint64_t avg_freq_counter_scaler : 3;
+ uint64_t ppt_trace_timer_match_val : 11;
+ uint64_t disable_ppt_int_timer_reset : 1;
+ uint64_t ppt_int_timer_select : 2;
+ uint64_t disable_ppt_cycle_counter_reset : 1;
+ uint64_t ppt_cycle_counter_scaler : 3;
+ uint64_t ppt_squash_timer_match_val : 6;
+ uint64_t ppt_timer_timeout_enable : 1;
+ uint64_t ppt_lpar_change_enable : 1;
+ uint64_t ppt_global_actual_change_enable : 1;
+ uint64_t ppt_local_voltage_change_enable : 1;
+ uint64_t ppt_ivrm_bypass_change_enable : 1;
+ uint64_t ppt_idle_entry_enable : 1;
+ uint64_t ppt_idle_exit_enable : 1;
+ uint64_t ppt_timer_timeout_priority : 1;
+ uint64_t ppt_lpar_change_priority : 1;
+ uint64_t ppt_global_actual_change_priority : 1;
+ uint64_t ppt_local_voltage_change_priority : 1;
+ uint64_t ppt_ivrm_bypass_change_priority : 1;
+ uint64_t ppt_idle_entry_priority : 1;
+ uint64_t ppt_idle_exit_priority : 1;
+ uint64_t ppt_legacy_mode : 1;
+ uint64_t _reserved0 : 1;
+#else
+ uint64_t _reserved0 : 1;
+ uint64_t ppt_legacy_mode : 1;
+ uint64_t ppt_idle_exit_priority : 1;
+ uint64_t ppt_idle_entry_priority : 1;
+ uint64_t ppt_ivrm_bypass_change_priority : 1;
+ uint64_t ppt_local_voltage_change_priority : 1;
+ uint64_t ppt_global_actual_change_priority : 1;
+ uint64_t ppt_lpar_change_priority : 1;
+ uint64_t ppt_timer_timeout_priority : 1;
+ uint64_t ppt_idle_exit_enable : 1;
+ uint64_t ppt_idle_entry_enable : 1;
+ uint64_t ppt_ivrm_bypass_change_enable : 1;
+ uint64_t ppt_local_voltage_change_enable : 1;
+ uint64_t ppt_global_actual_change_enable : 1;
+ uint64_t ppt_lpar_change_enable : 1;
+ uint64_t ppt_timer_timeout_enable : 1;
+ uint64_t ppt_squash_timer_match_val : 6;
+ uint64_t ppt_cycle_counter_scaler : 3;
+ uint64_t disable_ppt_cycle_counter_reset : 1;
+ uint64_t ppt_int_timer_select : 2;
+ uint64_t disable_ppt_int_timer_reset : 1;
+ uint64_t ppt_trace_timer_match_val : 11;
+ uint64_t avg_freq_counter_scaler : 3;
+ uint64_t memory_activity_range_select : 4;
+ uint64_t power_proxy_activity_range_select_vdd : 5;
+ uint64_t power_proxy_activity_range_select_vcs : 5;
+ uint64_t disable_activity_proxy_reset : 1;
+ uint64_t core_activity_sample_enable : 1;
+ uint64_t activity_sample_l2l3_enable : 1;
+ uint64_t l3_act_count_is_free_running : 1;
+ uint64_t l2_act_count_is_free_running : 1;
+ uint64_t enable_ppt_trace : 1;
+ uint64_t enable_activity_sampling : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_activity_sample_mode_reg_t;
+
+
+
+typedef union oha_vcs_activity_cnt_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t l2_activity_count_24bit_vcs : 24;
+ uint64_t l3_activity_count_24bit_vcs : 24;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t l3_activity_count_24bit_vcs : 24;
+ uint64_t l2_activity_count_24bit_vcs : 24;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_vcs_activity_cnt_reg_t;
+
+
+
+typedef union oha_vdd_activity_cnt_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t l2_activity_count_24bit_vdd : 24;
+ uint64_t l3_activity_count_24bit_vdd : 24;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t l3_activity_count_24bit_vdd : 24;
+ uint64_t l2_activity_count_24bit_vdd : 24;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_vdd_activity_cnt_reg_t;
+
+
+
+typedef union oha_low_activity_detect_mode_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t low_activity_detect_sample_enable : 1;
+ uint64_t low_activity_detect_timer_select_for_entry : 8;
+ uint64_t low_activity_detect_timer_select_for_exit : 8;
+ uint64_t low_activity_detect_threshold_range : 4;
+ uint64_t low_activity_detect_threshold_entry : 16;
+ uint64_t low_activity_detect_threshold_exit : 16;
+ uint64_t _reserved0 : 11;
+#else
+ uint64_t _reserved0 : 11;
+ uint64_t low_activity_detect_threshold_exit : 16;
+ uint64_t low_activity_detect_threshold_entry : 16;
+ uint64_t low_activity_detect_threshold_range : 4;
+ uint64_t low_activity_detect_timer_select_for_exit : 8;
+ uint64_t low_activity_detect_timer_select_for_entry : 8;
+ uint64_t low_activity_detect_sample_enable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_low_activity_detect_mode_reg_t;
+
+
+
+typedef union oha_activity_and_frequ_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t low_activity_detect_engaged : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t low_activity_detect_engaged : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_activity_and_frequ_reg_t;
+
+
+
+typedef union oha_counter_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t base_counter : 16;
+ uint64_t idle_detec_timer : 16;
+ uint64_t tod_count_msbs : 16;
+ uint64_t ppt_cycle_count_ovfl : 1;
+ uint64_t ppt_parity_error : 1;
+ uint64_t _reserved0 : 14;
+#else
+ uint64_t _reserved0 : 14;
+ uint64_t ppt_parity_error : 1;
+ uint64_t ppt_cycle_count_ovfl : 1;
+ uint64_t tod_count_msbs : 16;
+ uint64_t idle_detec_timer : 16;
+ uint64_t base_counter : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_counter_reg_t;
+
+
+
+typedef union oha_proxy_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t average_frequency : 32;
+ uint64_t special_memory_activity_cnt : 24;
+ uint64_t _reserved0 : 8;
+#else
+ uint64_t _reserved0 : 8;
+ uint64_t special_memory_activity_cnt : 24;
+ uint64_t average_frequency : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_proxy_reg_t;
+
+
+
+typedef union oha_proxy_legacy_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t aproxy_vdd : 16;
+ uint64_t aproxy_vcs : 16;
+ uint64_t memory_activity_cnt : 16;
+ uint64_t scaled_average_frequency : 16;
+#else
+ uint64_t scaled_average_frequency : 16;
+ uint64_t memory_activity_cnt : 16;
+ uint64_t aproxy_vcs : 16;
+ uint64_t aproxy_vdd : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_proxy_legacy_reg_t;
+
+
+
+typedef union oha_skitter_ctrl_mode_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t start_skitter_mux_sel : 3;
+ uint64_t stop_skitter_mux_sel : 3;
+ uint64_t skitter_timer_start_mux_sel : 3;
+ uint64_t disable_skitter_qualification_mode : 1;
+ uint64_t skitter_timer_enable_freerun_mode : 1;
+ uint64_t skitter_timer_range_select : 4;
+ uint64_t _reserved0 : 49;
+#else
+ uint64_t _reserved0 : 49;
+ uint64_t skitter_timer_range_select : 4;
+ uint64_t skitter_timer_enable_freerun_mode : 1;
+ uint64_t disable_skitter_qualification_mode : 1;
+ uint64_t skitter_timer_start_mux_sel : 3;
+ uint64_t stop_skitter_mux_sel : 3;
+ uint64_t start_skitter_mux_sel : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_skitter_ctrl_mode_reg_t;
+
+
+
+typedef union oha_cpm_ctrl_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t cpm_bit_sel : 2;
+ uint64_t cpm_bit_sel_trig_0 : 3;
+ uint64_t cpm_bit_sel_trig_1 : 3;
+ uint64_t scom_marker : 8;
+ uint64_t cpm_mark_select : 2;
+ uint64_t cpm_htm_mode : 1;
+ uint64_t cpm_scom_mask : 8;
+ uint64_t cpm_scom_mode : 2;
+ uint64_t cpm_data_mode : 1;
+ uint64_t _reserved0 : 34;
+#else
+ uint64_t _reserved0 : 34;
+ uint64_t cpm_data_mode : 1;
+ uint64_t cpm_scom_mode : 2;
+ uint64_t cpm_scom_mask : 8;
+ uint64_t cpm_htm_mode : 1;
+ uint64_t cpm_mark_select : 2;
+ uint64_t scom_marker : 8;
+ uint64_t cpm_bit_sel_trig_1 : 3;
+ uint64_t cpm_bit_sel_trig_0 : 3;
+ uint64_t cpm_bit_sel : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_cpm_ctrl_reg_t;
+
+
+
+typedef union oha_cpm_hist_reset_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t hist_reset : 1;
+ uint64_t pconly_special_wakeup : 1;
+ uint64_t _reserved0 : 62;
+#else
+ uint64_t _reserved0 : 62;
+ uint64_t pconly_special_wakeup : 1;
+ uint64_t hist_reset : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_cpm_hist_reset_reg_t;
+
+#endif // __ASSEMBLER__
+#define OHA_CPM_HIST_RESET_REG_HIST_RESET SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define OHA_CPM_HIST_RESET_REG_PCONLY_SPECIAL_WAKEUP SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union oha_ro_status_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t low_activity_detect_bit : 1;
+ uint64_t special_wakeup_completed : 1;
+ uint64_t architected_idle_state_from_core : 3;
+ uint64_t core_access_impossible : 1;
+ uint64_t eco_access_impossible : 1;
+ uint64_t spare_6bit : 6;
+ uint64_t current_aiss_fsm_state_vector : 7;
+ uint64_t eff_idle_state : 3;
+ uint64_t spare_1bit : 1;
+ uint64_t pc_tc_deep_idle_thread_state : 8;
+ uint64_t lpar_id : 12;
+ uint64_t ppt_fsm_l : 4;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t ppt_fsm_l : 4;
+ uint64_t lpar_id : 12;
+ uint64_t pc_tc_deep_idle_thread_state : 8;
+ uint64_t spare_1bit : 1;
+ uint64_t eff_idle_state : 3;
+ uint64_t current_aiss_fsm_state_vector : 7;
+ uint64_t spare_6bit : 6;
+ uint64_t eco_access_impossible : 1;
+ uint64_t core_access_impossible : 1;
+ uint64_t architected_idle_state_from_core : 3;
+ uint64_t special_wakeup_completed : 1;
+ uint64_t low_activity_detect_bit : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_ro_status_reg_t;
+
+#endif // __ASSEMBLER__
+#define OHA_RO_STATUS_REG_LOW_ACTIVITY_DETECT_BIT SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define OHA_RO_STATUS_REG_SPECIAL_WAKEUP_COMPLETED SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define OHA_RO_STATUS_REG_ARCHITECTED_IDLE_STATE_FROM_CORE_MASK SIXTYFOUR_BIT_CONSTANT(0x3800000000000000)
+#define OHA_RO_STATUS_REG_CORE_ACCESS_IMPOSSIBLE SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
+#define OHA_RO_STATUS_REG_ECO_ACCESS_IMPOSSIBLE SIXTYFOUR_BIT_CONSTANT(0x0200000000000000)
+#define OHA_RO_STATUS_REG_SPARE_6BIT_MASK SIXTYFOUR_BIT_CONSTANT(0x01f8000000000000)
+#define OHA_RO_STATUS_REG_CURRENT_AISS_FSM_STATE_VECTOR_MASK SIXTYFOUR_BIT_CONSTANT(0x0007f00000000000)
+#define OHA_RO_STATUS_REG_EFF_IDLE_STATE_MASK SIXTYFOUR_BIT_CONSTANT(0x00000e0000000000)
+#define OHA_RO_STATUS_REG_SPARE_1BIT SIXTYFOUR_BIT_CONSTANT(0x0000010000000000)
+#define OHA_RO_STATUS_REG_PC_TC_DEEP_IDLE_THREAD_STATE_MASK SIXTYFOUR_BIT_CONSTANT(0x000000ff00000000)
+#define OHA_RO_STATUS_REG_LPAR_ID_MASK SIXTYFOUR_BIT_CONSTANT(0x00000000fff00000)
+#define OHA_RO_STATUS_REG_PPT_FSM_L_MASK SIXTYFOUR_BIT_CONSTANT(0x00000000000f0000)
+#ifndef __ASSEMBLER__
+
+
+typedef union oha_mode_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t enable_ignore_recov_errors : 1;
+ uint64_t enable_arch_idle_mode_sequencer : 1;
+ uint64_t treat_sleep_as_nap : 1;
+ uint64_t treat_winkle_as_sleep : 1;
+ uint64_t enable_pstate_tracing : 1;
+ uint64_t enable_suppress_purges_and_pcb_fence : 1;
+ uint64_t idle_state_override_en : 1;
+ uint64_t idle_state_override_value : 3;
+ uint64_t disable_aiss_core_handshake : 1;
+ uint64_t aiss_hang_detect_timer_sel : 4;
+ uint64_t enable_l2_purge_abort : 1;
+ uint64_t enable_l3_purge_abort : 1;
+ uint64_t tod_pulse_count_match_val : 14;
+ uint64_t trace_debug_mode_select : 2;
+ uint64_t lpft_mode : 1;
+ uint64_t _reserved0 : 30;
+#else
+ uint64_t _reserved0 : 30;
+ uint64_t lpft_mode : 1;
+ uint64_t trace_debug_mode_select : 2;
+ uint64_t tod_pulse_count_match_val : 14;
+ uint64_t enable_l3_purge_abort : 1;
+ uint64_t enable_l2_purge_abort : 1;
+ uint64_t aiss_hang_detect_timer_sel : 4;
+ uint64_t disable_aiss_core_handshake : 1;
+ uint64_t idle_state_override_value : 3;
+ uint64_t idle_state_override_en : 1;
+ uint64_t enable_suppress_purges_and_pcb_fence : 1;
+ uint64_t enable_pstate_tracing : 1;
+ uint64_t treat_winkle_as_sleep : 1;
+ uint64_t treat_sleep_as_nap : 1;
+ uint64_t enable_arch_idle_mode_sequencer : 1;
+ uint64_t enable_ignore_recov_errors : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_mode_reg_t;
+
+
+
+typedef union oha_error_and_error_mask_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t oha_error_mask : 8;
+ uint64_t oha_chiplet_errors : 8;
+ uint64_t _reserved0 : 48;
+#else
+ uint64_t _reserved0 : 48;
+ uint64_t oha_chiplet_errors : 8;
+ uint64_t oha_error_mask : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_error_and_error_mask_reg_t;
+
+
+
+typedef union oha_arch_idle_state_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t aiss_thold_sequence_select : 1;
+ uint64_t disable_waiting_on_l3 : 1;
+ uint64_t idle_seq_timer_select : 2;
+ uint64_t allow_aiss_interrupts : 1;
+ uint64_t enable_reset_of_counters_while_sleepwinkle : 1;
+ uint64_t select_p7p_seq_wait_time : 1;
+ uint64_t disable_auto_sleep_entry : 1;
+ uint64_t disable_auto_winkle_entry : 1;
+ uint64_t reset_idle_state_sequencer : 1;
+ uint64_t _reserved0 : 54;
+#else
+ uint64_t _reserved0 : 54;
+ uint64_t reset_idle_state_sequencer : 1;
+ uint64_t disable_auto_winkle_entry : 1;
+ uint64_t disable_auto_sleep_entry : 1;
+ uint64_t select_p7p_seq_wait_time : 1;
+ uint64_t enable_reset_of_counters_while_sleepwinkle : 1;
+ uint64_t allow_aiss_interrupts : 1;
+ uint64_t idle_seq_timer_select : 2;
+ uint64_t disable_waiting_on_l3 : 1;
+ uint64_t aiss_thold_sequence_select : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_arch_idle_state_reg_t;
+
+
+
+typedef union oha_pmu_config_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pmu_pstate_threshold_a : 8;
+ uint64_t pmu_pstate_threshold_b : 8;
+ uint64_t pmu_configuration : 3;
+ uint64_t _reserved0 : 45;
+#else
+ uint64_t _reserved0 : 45;
+ uint64_t pmu_configuration : 3;
+ uint64_t pmu_pstate_threshold_b : 8;
+ uint64_t pmu_pstate_threshold_a : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_pmu_config_reg_t;
+
+
+
+typedef union oha_aiss_io_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare_2bits_b : 2;
+ uint64_t tc_tp_chiplet_pm_state : 4;
+ uint64_t tc_pb_sleep : 1;
+ uint64_t tc_tc_pm_thold_ctrl : 3;
+ uint64_t tc_l3_fence_lco : 1;
+ uint64_t tc_ncu_fence : 1;
+ uint64_t chksw_hw237039dis : 1;
+ uint64_t tc_l3_init_dram : 1;
+ uint64_t tc_pb_purge : 1;
+ uint64_t tc_pc_pm_wake_up : 1;
+ uint64_t spare_entry_for_config_bit : 1;
+ uint64_t reset_of_counters_while_sleepwinkle : 1;
+ uint64_t tc_chtm_purge : 1;
+ uint64_t tc_tp_terminate_pcb : 1;
+ uint64_t tc_oha_therm_purge_lvl : 1;
+ uint64_t pscom_core_fence_lvl : 1;
+ uint64_t pb_eco_fence_lvl : 1;
+ uint64_t core2cache_fence_req : 1;
+ uint64_t cache2core_fence_req : 1;
+ uint64_t pervasive_eco_fence_req : 1;
+ uint64_t tc_oha_pmx_fence_req_lvl_l : 1;
+ uint64_t updateohafreq : 1;
+ uint64_t req_idle_state_change : 1;
+ uint64_t tc_l2_purge : 1;
+ uint64_t tc_l3_purge : 1;
+ uint64_t tc_ncu_purge : 1;
+ uint64_t tc_l2_purge_abort : 1;
+ uint64_t tc_l3_purge_abort : 1;
+ uint64_t pc_tc_pm_state : 3;
+ uint64_t l2_purge_is_done : 1;
+ uint64_t l3_ncu_chtm_purge_done : 3;
+ uint64_t tc_tc_xstop_err : 1;
+ uint64_t tc_tc_recov_err : 1;
+ uint64_t pb_tc_purge_active_lvl : 1;
+ uint64_t l3_tc_dram_ready_lvl : 1;
+ uint64_t core_fsm_non_idle : 1;
+ uint64_t tc_pscom_core_fence_done : 1;
+ uint64_t tc_pmx_oha_fence_done : 1;
+ uint64_t l2_purge_abort_sticky : 1;
+ uint64_t l3_purge_abort_sticky : 1;
+ uint64_t _reserved0 : 14;
+#else
+ uint64_t _reserved0 : 14;
+ uint64_t l3_purge_abort_sticky : 1;
+ uint64_t l2_purge_abort_sticky : 1;
+ uint64_t tc_pmx_oha_fence_done : 1;
+ uint64_t tc_pscom_core_fence_done : 1;
+ uint64_t core_fsm_non_idle : 1;
+ uint64_t l3_tc_dram_ready_lvl : 1;
+ uint64_t pb_tc_purge_active_lvl : 1;
+ uint64_t tc_tc_recov_err : 1;
+ uint64_t tc_tc_xstop_err : 1;
+ uint64_t l3_ncu_chtm_purge_done : 3;
+ uint64_t l2_purge_is_done : 1;
+ uint64_t pc_tc_pm_state : 3;
+ uint64_t tc_l3_purge_abort : 1;
+ uint64_t tc_l2_purge_abort : 1;
+ uint64_t tc_ncu_purge : 1;
+ uint64_t tc_l3_purge : 1;
+ uint64_t tc_l2_purge : 1;
+ uint64_t req_idle_state_change : 1;
+ uint64_t updateohafreq : 1;
+ uint64_t tc_oha_pmx_fence_req_lvl_l : 1;
+ uint64_t pervasive_eco_fence_req : 1;
+ uint64_t cache2core_fence_req : 1;
+ uint64_t core2cache_fence_req : 1;
+ uint64_t pb_eco_fence_lvl : 1;
+ uint64_t pscom_core_fence_lvl : 1;
+ uint64_t tc_oha_therm_purge_lvl : 1;
+ uint64_t tc_tp_terminate_pcb : 1;
+ uint64_t tc_chtm_purge : 1;
+ uint64_t reset_of_counters_while_sleepwinkle : 1;
+ uint64_t spare_entry_for_config_bit : 1;
+ uint64_t tc_pc_pm_wake_up : 1;
+ uint64_t tc_pb_purge : 1;
+ uint64_t tc_l3_init_dram : 1;
+ uint64_t chksw_hw237039dis : 1;
+ uint64_t tc_ncu_fence : 1;
+ uint64_t tc_l3_fence_lco : 1;
+ uint64_t tc_tc_pm_thold_ctrl : 3;
+ uint64_t tc_pb_sleep : 1;
+ uint64_t tc_tp_chiplet_pm_state : 4;
+ uint64_t spare_2bits_b : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_aiss_io_reg_t;
+
+
+
+typedef union oha_ppt_bar_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ppt_bar : 46;
+ uint64_t ppt_size_mask : 7;
+ uint64_t ppt_address_scope : 3;
+ uint64_t _reserved0 : 8;
+#else
+ uint64_t _reserved0 : 8;
+ uint64_t ppt_address_scope : 3;
+ uint64_t ppt_size_mask : 7;
+ uint64_t ppt_bar : 46;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_ppt_bar_reg_t;
+
+
+
+typedef union oha_l2_vcs_directory_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vcs_directory_read_weight_t;
+
+
+
+typedef union oha_l2_vcs_directory_write_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vcs_directory_write_weight_t;
+
+
+
+typedef union oha_l2_vcs_cache_full_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vcs_cache_full_read_weight_t;
+
+
+
+typedef union oha_l2_vcs_cache_targeted_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vcs_cache_targeted_read_weight_t;
+
+
+
+typedef union oha_l2_vcs_cache_write_cnt_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vcs_cache_write_cnt_weight_t;
+
+
+
+typedef union oha_l3_vcs_directory_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l3_vcs_directory_read_weight_t;
+
+
+
+typedef union oha_l3_vcs_directory_write_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l3_vcs_directory_write_weight_t;
+
+
+
+typedef union oha_l3_vcs_cache_access_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l3_vcs_cache_access_weight_t;
+
+
+
+typedef union oha_l2_vdd_directory_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vdd_directory_read_weight_t;
+
+
+
+typedef union oha_l2_vdd_directory_write_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vdd_directory_write_weight_t;
+
+
+
+typedef union oha_l2_vdd_cache_full_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vdd_cache_full_read_weight_t;
+
+
+
+typedef union oha_l2_vdd_cache_targeted_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vdd_cache_targeted_read_weight_t;
+
+
+
+typedef union oha_l2_vdd_cache_write_cnt_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l2_vdd_cache_write_cnt_weight_t;
+
+
+
+typedef union oha_l3_vdd_directory_read_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l3_vdd_directory_read_weight_t;
+
+
+
+typedef union oha_l3_vdd_directory_write_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l3_vdd_directory_write_weight_t;
+
+
+
+typedef union oha_l3_vdd_cache_access_weight {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 6;
+ uint64_t _reserved0 : 58;
+#else
+ uint64_t _reserved0 : 58;
+ uint64_t value : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_l3_vdd_cache_access_weight_t;
+
+
+
+typedef union oha_chksw_hw132623dis {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t value : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_chksw_hw132623dis_t;
+
+
+
+typedef union oha_activity_scale_factor_array {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 56;
+ uint64_t _reserved0 : 8;
+#else
+ uint64_t _reserved0 : 8;
+ uint64_t value : 56;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_activity_scale_factor_array_t;
+
+
+
+typedef union oha_activity_scale_shift_factor_array {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 42;
+ uint64_t _reserved0 : 22;
+#else
+ uint64_t _reserved0 : 22;
+ uint64_t value : 42;
+#endif // _BIG_ENDIAN
+ } fields;
+} oha_activity_scale_shift_factor_array_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __OHA_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/oha_register_addresses.h b/src/ssx/pgp/registers/oha_register_addresses.h
new file mode 100755
index 0000000..1f07b37
--- /dev/null
+++ b/src/ssx/pgp/registers/oha_register_addresses.h
@@ -0,0 +1,39 @@
+#ifndef __OHA_REGISTER_ADDRESSES_H__
+#define __OHA_REGISTER_ADDRESSES_H__
+
+// $Id: oha_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/oha_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file oha_register_addresses.h
+/// \brief Symbolic addresses for the OHA unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define OHA_PCB_BASE 0x10020000
+#define OHA_ACTIVITY_SAMPLE_MODE_REG 0x10020000
+#define OHA_VCS_ACTIVITY_CNT_REG 0x10020001
+#define OHA_VDD_ACTIVITY_CNT_REG 0x10020002
+#define OHA_LOW_ACTIVITY_DETECT_MODE_REG 0x10020003
+#define OHA_ACTIVITY_AND_FREQU_REG 0x10020004
+#define OHA_COUNTER_REG 0x10020005
+#define OHA_PROXY_REG 0x10020006
+#define OHA_PROXY_LEGACY_REG 0x10020007
+#define OHA_SKITTER_CTRL_MODE_REG 0x10020008
+#define OHA_CPM_CTRL_REG 0x1002000a
+#define OHA_CPM_HIST_RESET_REG 0x10020013
+#define OHA_RO_STATUS_REG 0x1002000b
+#define OHA_MODE_REG 0x1002000d
+#define OHA_ERROR_AND_ERROR_MASK_REG 0x1002000e
+#define OHA_ARCH_IDLE_STATE_REG 0x10020011
+#define OHA_PMU_CONFIG_REG 0x10020012
+#define OHA_AISS_IO_REG 0x10020014
+#define OHA_PPT_BAR_REG 0x10020015
+
+#endif // __OHA_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/pba_firmware_registers.h b/src/ssx/pgp/registers/pba_firmware_registers.h
new file mode 100755
index 0000000..502ef51
--- /dev/null
+++ b/src/ssx/pgp/registers/pba_firmware_registers.h
@@ -0,0 +1,2184 @@
+#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 $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pba_firmware_registers.h
+/// \brief C register structs for the PBA unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union pba_barn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_barn_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 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved0 : 23;
+ uint64_t mask : 21;
+ uint64_t _reserved0 : 20;
+#else
+ uint64_t _reserved0 : 20;
+ uint64_t mask : 21;
+ uint64_t reserved0 : 23;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_barmskn_t;
+
+#endif // __ASSEMBLER__
+#define PBA_BARMSKN_MASK_MASK SIXTYFOUR_BIT_CONSTANT(0x000001fffff00000)
+#ifndef __ASSEMBLER__
+
+
+typedef union pba_fir {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_fir_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 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_fir_and_t;
+
+
+
+typedef union pba_fir_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_fir_or_t;
+
+
+
+typedef union pba_firmask {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_firmask_t;
+
+
+
+typedef union pba_firmask_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_firmask_and_t;
+
+
+
+typedef union pba_firmask_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_firmask_or_t;
+
+
+
+typedef union pba_firact0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_firact0_t;
+
+
+
+typedef union pba_firact1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_firact1_t;
+
+
+
+typedef union pba_occact {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_occact_t;
+
+
+
+typedef union pba_cfg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_cfg_t;
+
+
+
+typedef union pba_errpt0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_errpt0_t;
+
+
+
+typedef union pba_errpt1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_errpt1_t;
+
+
+
+typedef union pba_errpt2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_errpt2_t;
+
+
+
+typedef union pba_rbufvaln {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_rbufvaln_t;
+
+
+
+typedef union pba_wbufvaln {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_wbufvaln_t;
+
+
+
+typedef union pba_mode {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_mode_t;
+
+
+
+typedef union pba_slvrst {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#else
+ uint64_t _reserved0 : 52;
+ uint64_t busy_status : 4;
+ uint64_t in_prog : 4;
+ uint64_t notimp1 : 1;
+ uint64_t set : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_slvrst_t;
+
+
+
+typedef union pba_slvctln {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_slvctln_t;
+
+
+
+typedef union pba_bcde_ctl {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcde_ctl_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 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcde_set_t;
+
+
+
+typedef union pba_bcde_stat {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcde_stat_t;
+
+
+
+typedef union pba_bcde_pbadr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#else
+ uint64_t _reserved2 : 23;
+ uint64_t extaddr : 14;
+ uint64_t _reserved1 : 2;
+ uint64_t pb_offset : 23;
+ uint64_t _reserved0 : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcde_pbadr_t;
+
+
+
+typedef union pba_bcde_ocibar {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t addr : 25;
+ uint64_t _reserved0 : 39;
+#else
+ uint64_t _reserved0 : 39;
+ uint64_t addr : 25;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcde_ocibar_t;
+
+
+
+typedef union pba_bcue_ctl {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcue_ctl_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 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcue_set_t;
+
+
+
+typedef union pba_bcue_stat {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcue_stat_t;
+
+
+
+typedef union pba_bcue_pbadr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#else
+ uint64_t _reserved2 : 23;
+ uint64_t extaddr : 14;
+ uint64_t _reserved1 : 2;
+ uint64_t pb_offset : 23;
+ uint64_t _reserved0 : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcue_pbadr_t;
+
+
+
+typedef union pba_bcue_ocibar {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t addr : 25;
+ uint64_t _reserved0 : 39;
+#else
+ uint64_t _reserved0 : 39;
+ uint64_t addr : 25;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_bcue_ocibar_t;
+
+
+
+typedef union pba_pbocrn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t _reserved0 : 16;
+ uint64_t event : 16;
+ uint64_t _reserved1 : 12;
+ uint64_t accum : 20;
+#else
+ uint64_t accum : 20;
+ uint64_t _reserved1 : 12;
+ uint64_t event : 16;
+ uint64_t _reserved0 : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_pbocrn_t;
+
+
+
+typedef union pba_xsndtx {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xsndtx_t;
+
+
+
+typedef union pba_xcfg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xcfg_t;
+
+
+
+typedef union pba_xsndstat {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xsndstat_t;
+
+
+
+typedef union pba_xsnddat {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pbax_datahi : 32;
+ uint64_t pbax_datalo : 32;
+#else
+ uint64_t pbax_datalo : 32;
+ uint64_t pbax_datahi : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xsnddat_t;
+
+
+
+typedef union pba_xrcvstat {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xrcvstat_t;
+
+
+
+typedef union pba_xshbrn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t push_start : 29;
+ uint64_t _reserved0 : 35;
+#else
+ uint64_t _reserved0 : 35;
+ uint64_t push_start : 29;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xshbrn_t;
+
+
+
+typedef union pba_xshcsn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } 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;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xshcsn_t;
+
+
+
+typedef union pba_xshincn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 64;
+#else
+ uint64_t reserved : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pba_xshincn_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __PBA_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/pba_register_addresses.h b/src/ssx/pgp/registers/pba_register_addresses.h
new file mode 100755
index 0000000..1703629
--- /dev/null
+++ b/src/ssx/pgp/registers/pba_register_addresses.h
@@ -0,0 +1,94 @@
+#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 $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pba_register_addresses.h
+/// \brief Symbolic addresses for the PBA unit
+
+// *** 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_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_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_XSHBRN(n) (PBA_XSHBR0 + ((PBA_XSHBR1 - PBA_XSHBR0) * (n)))
+#define PBA_XSHBR0 0x40020130
+#define PBA_XSHBR1 0x40020150
+#define PBA_XSHCSN(n) (PBA_XSHCS0 + ((PBA_XSHCS1 - PBA_XSHCS0) * (n)))
+#define PBA_XSHCS0 0x40020138
+#define PBA_XSHCS1 0x40020158
+#define PBA_XSHINCN(n) (PBA_XSHINC0 + ((PBA_XSHINC1 - PBA_XSHINC0) * (n)))
+#define PBA_XSHINC0 0x40020140
+#define PBA_XSHINC1 0x40020160
+
+#endif // __PBA_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/pc_firmware_registers.h b/src/ssx/pgp/registers/pc_firmware_registers.h
new file mode 100755
index 0000000..2c86308
--- /dev/null
+++ b/src/ssx/pgp/registers/pc_firmware_registers.h
@@ -0,0 +1,442 @@
+#ifndef __PC_FIRMWARE_REGISTERS_H__
+#define __PC_FIRMWARE_REGISTERS_H__
+
+// $Id: pc_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pc_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pc_firmware_registers.h
+/// \brief C register structs for the PC unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union pc_pfth_modereg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pfth_cntr_dis : 1;
+ uint64_t pfth_charac_mode : 1;
+ uint64_t pfth_cntr_run_latch_gate_dis : 1;
+ uint64_t sprd_pfth_tx_run_latches : 8;
+ uint64_t tx_threads_stopped : 8;
+ uint64_t _reserved0 : 45;
+#else
+ uint64_t _reserved0 : 45;
+ uint64_t tx_threads_stopped : 8;
+ uint64_t sprd_pfth_tx_run_latches : 8;
+ uint64_t pfth_cntr_run_latch_gate_dis : 1;
+ uint64_t pfth_charac_mode : 1;
+ uint64_t pfth_cntr_dis : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_pfth_modereg_t;
+
+
+
+typedef union pc_occ_sprc {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved0 : 53;
+ uint64_t autoinc : 1;
+ uint64_t sprn : 7;
+ uint64_t reserved1 : 3;
+#else
+ uint64_t reserved1 : 3;
+ uint64_t sprn : 7;
+ uint64_t autoinc : 1;
+ uint64_t reserved0 : 53;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_occ_sprc_t;
+
+
+
+typedef union pc_occ_sprd {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_occ_sprd_t;
+
+
+
+typedef union pc_pfth_oha_instr_cnt_sel {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t _reserved0 : 62;
+ uint64_t value : 2;
+#else
+ uint64_t value : 2;
+ uint64_t _reserved0 : 62;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_pfth_oha_instr_cnt_sel_t;
+
+
+
+typedef union pc_pfth_throt_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t didt_trigger_enable : 1;
+ uint64_t isu_trigger_enable : 1;
+ uint64_t didt_throttle : 2;
+ uint64_t uthrottle : 2;
+ uint64_t force_suppress_speedup : 1;
+ uint64_t suppress_speedup_on_throttle : 1;
+ uint64_t core_slowdown : 1;
+ uint64_t suppress_on_slowdown : 1;
+ uint64_t isu_only_count_mode : 1;
+ uint64_t spare : 5;
+ uint64_t reserved : 48;
+#else
+ uint64_t reserved : 48;
+ uint64_t spare : 5;
+ uint64_t isu_only_count_mode : 1;
+ uint64_t suppress_on_slowdown : 1;
+ uint64_t core_slowdown : 1;
+ uint64_t suppress_speedup_on_throttle : 1;
+ uint64_t force_suppress_speedup : 1;
+ uint64_t uthrottle : 2;
+ uint64_t didt_throttle : 2;
+ uint64_t isu_trigger_enable : 1;
+ uint64_t didt_trigger_enable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_pfth_throt_reg_t;
+
+
+
+typedef union pc_direct_controln {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved0 : 42;
+ uint64_t dc_prestart_sleep : 1;
+ uint64_t dc_prestart_winkle : 1;
+ uint64_t dc_clear_maint : 1;
+ uint64_t dc_ntc_flush : 1;
+ uint64_t reserved46 : 1;
+ uint64_t dc_prestart_nap : 1;
+ uint64_t dc_cancel_lost : 1;
+ uint64_t dc_reset_maint : 1;
+ uint64_t reserved50 : 1;
+ uint64_t dc_set_maint : 1;
+ uint64_t dc_goto_quiesce_state : 1;
+ uint64_t reserved53 : 1;
+ uint64_t dc_inj_test_hang : 2;
+ uint64_t dc_core_running : 1;
+ uint64_t dc_hang_inject : 1;
+ uint64_t dc_smt_start_suppress : 1;
+ uint64_t reserved59 : 1;
+ uint64_t dc_sreset_request : 1;
+ uint64_t dc_core_step : 1;
+ uint64_t dc_core_start : 1;
+ uint64_t dc_core_stop : 1;
+#else
+ uint64_t dc_core_stop : 1;
+ uint64_t dc_core_start : 1;
+ uint64_t dc_core_step : 1;
+ uint64_t dc_sreset_request : 1;
+ uint64_t reserved59 : 1;
+ uint64_t dc_smt_start_suppress : 1;
+ uint64_t dc_hang_inject : 1;
+ uint64_t dc_core_running : 1;
+ uint64_t dc_inj_test_hang : 2;
+ uint64_t reserved53 : 1;
+ uint64_t dc_goto_quiesce_state : 1;
+ uint64_t dc_set_maint : 1;
+ uint64_t reserved50 : 1;
+ uint64_t dc_reset_maint : 1;
+ uint64_t dc_cancel_lost : 1;
+ uint64_t dc_prestart_nap : 1;
+ uint64_t reserved46 : 1;
+ uint64_t dc_ntc_flush : 1;
+ uint64_t dc_clear_maint : 1;
+ uint64_t dc_prestart_winkle : 1;
+ uint64_t dc_prestart_sleep : 1;
+ uint64_t reserved0 : 42;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_direct_controln_t;
+
+
+
+typedef union pc_ras_moderegn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved0 : 43;
+ uint64_t mr_thread_in_debug_mode : 1;
+ uint64_t mr_pmon_inhibit : 1;
+ uint64_t mr_fence_interrupts : 1;
+ uint64_t mr_stop_fetch : 1;
+ uint64_t mr_stop_prefetch : 1;
+ uint64_t mr_stop_dispatch : 1;
+ uint64_t mr_single_decode : 1;
+ uint64_t mr_do_single_mode : 1;
+ uint64_t mr_one_ppc_mode : 1;
+ uint64_t mr_hang_test_ctrl : 2;
+ uint64_t mr_attempt_gps_hr : 3;
+ uint64_t mr_hang_dis : 1;
+ uint64_t mr_on_corehng : 1;
+ uint64_t mr_on_ambihng : 1;
+ uint64_t mr_on_nesthng : 1;
+ uint64_t mr_recov_enable : 1;
+ uint64_t mr_block_hmi_on_maint : 1;
+ uint64_t mr_fence_intr_on_checkstop : 1;
+#else
+ uint64_t mr_fence_intr_on_checkstop : 1;
+ uint64_t mr_block_hmi_on_maint : 1;
+ uint64_t mr_recov_enable : 1;
+ uint64_t mr_on_nesthng : 1;
+ uint64_t mr_on_ambihng : 1;
+ uint64_t mr_on_corehng : 1;
+ uint64_t mr_hang_dis : 1;
+ uint64_t mr_attempt_gps_hr : 3;
+ uint64_t mr_hang_test_ctrl : 2;
+ uint64_t mr_one_ppc_mode : 1;
+ uint64_t mr_do_single_mode : 1;
+ uint64_t mr_single_decode : 1;
+ uint64_t mr_stop_dispatch : 1;
+ uint64_t mr_stop_prefetch : 1;
+ uint64_t mr_stop_fetch : 1;
+ uint64_t mr_fence_interrupts : 1;
+ uint64_t mr_pmon_inhibit : 1;
+ uint64_t mr_thread_in_debug_mode : 1;
+ uint64_t reserved0 : 43;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_ras_moderegn_t;
+
+
+
+typedef union pc_ras_statusn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t quiesce_status : 20;
+ uint64_t reserved20 : 1;
+ uint64_t reserved21 : 1;
+ uint64_t reserved22 : 1;
+ uint64_t other_thread_active : 1;
+ uint64_t hang_fsm : 3;
+ uint64_t reserved27 : 1;
+ uint64_t hang_hist0 : 1;
+ uint64_t hang_hist1 : 1;
+ uint64_t hang_hist2 : 1;
+ uint64_t hang_hist3 : 1;
+ uint64_t reserved32 : 1;
+ uint64_t hr_comp_cnt : 8;
+ uint64_t smt_dead_stop : 1;
+ uint64_t stop_fetch : 1;
+ uint64_t stop_dispatch : 1;
+ uint64_t stop_completion : 1;
+ uint64_t hold_decode : 1;
+ uint64_t reserved46 : 1;
+ uint64_t reserved47 : 1;
+ uint64_t thread_enabled : 1;
+ uint64_t pow_status_thread_state : 4;
+ uint64_t reserved53 : 1;
+ uint64_t maint_single_mode : 1;
+ uint64_t reserved55 : 1;
+ uint64_t reserved56 : 1;
+ uint64_t reserved57 : 7;
+#else
+ uint64_t reserved57 : 7;
+ uint64_t reserved56 : 1;
+ uint64_t reserved55 : 1;
+ uint64_t maint_single_mode : 1;
+ uint64_t reserved53 : 1;
+ uint64_t pow_status_thread_state : 4;
+ uint64_t thread_enabled : 1;
+ uint64_t reserved47 : 1;
+ uint64_t reserved46 : 1;
+ uint64_t hold_decode : 1;
+ uint64_t stop_completion : 1;
+ uint64_t stop_dispatch : 1;
+ uint64_t stop_fetch : 1;
+ uint64_t smt_dead_stop : 1;
+ uint64_t hr_comp_cnt : 8;
+ uint64_t reserved32 : 1;
+ uint64_t hang_hist3 : 1;
+ uint64_t hang_hist2 : 1;
+ uint64_t hang_hist1 : 1;
+ uint64_t hang_hist0 : 1;
+ uint64_t reserved27 : 1;
+ uint64_t hang_fsm : 3;
+ uint64_t other_thread_active : 1;
+ uint64_t reserved22 : 1;
+ uint64_t reserved21 : 1;
+ uint64_t reserved20 : 1;
+ uint64_t quiesce_status : 20;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_ras_statusn_t;
+
+
+
+typedef union pc_pow_statusn {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t thread_state : 4;
+ uint64_t thread_pow_state : 2;
+ uint64_t smt_mode : 3;
+ uint64_t hmi_intr : 1;
+ uint64_t maybe_ext_intr : 1;
+ uint64_t decr_intr : 1;
+ uint64_t maybe_debug_intr : 1;
+ uint64_t hdec_intr : 1;
+ uint64_t maybe_pmu_intr : 1;
+ uint64_t sp_attn_intr : 1;
+ uint64_t sreset_type : 3;
+ uint64_t reserved19 : 1;
+ uint64_t sreset_pending : 1;
+ uint64_t debug_fetch_stop : 1;
+ uint64_t async_pending : 1;
+ uint64_t core_pow_state : 3;
+ uint64_t reserved26 : 3;
+ uint64_t _reserved0 : 35;
+#else
+ uint64_t _reserved0 : 35;
+ uint64_t reserved26 : 3;
+ uint64_t core_pow_state : 3;
+ uint64_t async_pending : 1;
+ uint64_t debug_fetch_stop : 1;
+ uint64_t sreset_pending : 1;
+ uint64_t reserved19 : 1;
+ uint64_t sreset_type : 3;
+ uint64_t sp_attn_intr : 1;
+ uint64_t maybe_pmu_intr : 1;
+ uint64_t hdec_intr : 1;
+ uint64_t maybe_debug_intr : 1;
+ uint64_t decr_intr : 1;
+ uint64_t maybe_ext_intr : 1;
+ uint64_t hmi_intr : 1;
+ uint64_t smt_mode : 3;
+ uint64_t thread_pow_state : 2;
+ uint64_t thread_state : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pc_pow_statusn_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __PC_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/pc_register_addresses.h b/src/ssx/pgp/registers/pc_register_addresses.h
new file mode 100755
index 0000000..8b9baf2
--- /dev/null
+++ b/src/ssx/pgp/registers/pc_register_addresses.h
@@ -0,0 +1,61 @@
+#ifndef __PC_REGISTER_ADDRESSES_H__
+#define __PC_REGISTER_ADDRESSES_H__
+
+// $Id: pc_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pc_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pc_register_addresses.h
+/// \brief Symbolic addresses for the PC unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define PC_PCB_BASE 0x10010000
+#define PC_PFTH_MODEREG 0x100132a7
+#define PC_OCC_SPRC 0x100132ab
+#define PC_OCC_SPRD 0x100132ac
+#define PC_PFTH_THROT_REG 0x100132ad
+#define PC_DIRECT_CONTROLN(n) (PC_DIRECT_CONTROL0 + ((PC_DIRECT_CONTROL1 - PC_DIRECT_CONTROL0) * (n)))
+#define PC_DIRECT_CONTROL0 0x10013000
+#define PC_DIRECT_CONTROL1 0x10013010
+#define PC_DIRECT_CONTROL2 0x10013020
+#define PC_DIRECT_CONTROL3 0x10013030
+#define PC_DIRECT_CONTROL4 0x10013040
+#define PC_DIRECT_CONTROL5 0x10013050
+#define PC_DIRECT_CONTROL6 0x10013060
+#define PC_DIRECT_CONTROL7 0x10013070
+#define PC_RAS_MODEREGN(n) (PC_RAS_MODEREG0 + ((PC_RAS_MODEREG1 - PC_RAS_MODEREG0) * (n)))
+#define PC_RAS_MODEREG0 0x10013001
+#define PC_RAS_MODEREG1 0x10013011
+#define PC_RAS_MODEREG2 0x10013021
+#define PC_RAS_MODEREG3 0x10013031
+#define PC_RAS_MODEREG4 0x10013041
+#define PC_RAS_MODEREG5 0x10013051
+#define PC_RAS_MODEREG6 0x10013061
+#define PC_RAS_MODEREG7 0x10013071
+#define PC_RAS_STATUSN(n) (PC_RAS_STATUS0 + ((PC_RAS_STATUS1 - PC_RAS_STATUS0) * (n)))
+#define PC_RAS_STATUS0 0x10013002
+#define PC_RAS_STATUS1 0x10013012
+#define PC_RAS_STATUS2 0x10013022
+#define PC_RAS_STATUS3 0x10013032
+#define PC_RAS_STATUS4 0x10013042
+#define PC_RAS_STATUS5 0x10013052
+#define PC_RAS_STATUS6 0x10013062
+#define PC_RAS_STATUS7 0x10013072
+#define PC_POW_STATUSN(n) (PC_POW_STATUS0 + ((PC_POW_STATUS1 - PC_POW_STATUS0) * (n)))
+#define PC_POW_STATUS0 0x10013004
+#define PC_POW_STATUS1 0x10013014
+#define PC_POW_STATUS2 0x10013024
+#define PC_POW_STATUS3 0x10013034
+#define PC_POW_STATUS4 0x10013044
+#define PC_POW_STATUS5 0x10013054
+#define PC_POW_STATUS6 0x10013064
+#define PC_POW_STATUS7 0x10013074
+
+#endif // __PC_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/pcbs_firmware_registers.h b/src/ssx/pgp/registers/pcbs_firmware_registers.h
new file mode 100755
index 0000000..1d268a2
--- /dev/null
+++ b/src/ssx/pgp/registers/pcbs_firmware_registers.h
@@ -0,0 +1,2477 @@
+#ifndef __PCBS_FIRMWARE_REGISTERS_H__
+#define __PCBS_FIRMWARE_REGISTERS_H__
+
+// $Id: pcbs_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pcbs_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pcbs_firmware_registers.h
+/// \brief C register structs for the PCBS unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union pcbs_pmgp0_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pm_disable : 1;
+ uint64_t pmgp0_spare_bit1 : 1;
+ uint64_t tp_tc_restart_core_domain : 1;
+ uint64_t dpll_thold : 1;
+ uint64_t perv_thold : 1;
+ uint64_t cpm_cal_set_override_en : 1;
+ uint64_t cpm_cal_set_val : 1;
+ uint64_t pm_dpll_timer_ena : 1;
+ uint64_t dpll_lock_sense : 1;
+ uint64_t pmgp0_spare2 : 1;
+ uint64_t dpll_reset : 1;
+ uint64_t pmgp0_spare_bit11 : 1;
+ uint64_t dpll_testout_ctl : 8;
+ uint64_t tp_tc_cache2core_fence : 1;
+ uint64_t tp_tc_core2cache_fence : 1;
+ uint64_t tp_tc_pervasive_eco_fence : 1;
+ uint64_t chksw_hw257424_disable : 1;
+ uint64_t tp_clk_async_reset_dc : 3;
+ uint64_t tp_clkglm_sel_dc : 3;
+ uint64_t tp_clkglm_eco_sel_dc : 1;
+ uint64_t special_wkup_done : 1;
+ uint64_t tp_clkglm_core_sel_dc : 2;
+ uint64_t tp_clkglm_const_dc : 1;
+ uint64_t thold_timer_sel : 2;
+ uint64_t block_all_wakeup_sources : 1;
+ uint64_t tp_tc_dpll_testmode_dc : 1;
+ uint64_t pm_slv_winkle_fence : 1;
+ uint64_t l3_enable_switch : 1;
+ uint64_t tp_cplt_ivrm_refbypass_dc : 1;
+ uint64_t chksw_hw241939_disable : 1;
+ uint64_t chksw_hw273115_disable : 1;
+ uint64_t chksw_hw245103_disable : 1;
+ uint64_t chksw_hw257534_disable : 1;
+ uint64_t chksw_hw259509_enable : 1;
+ uint64_t pmgp0_spare3 : 1;
+ uint64_t wakeup_int_type : 2;
+ uint64_t dpll_lock : 1;
+ uint64_t special_wkup_all_sources_ored : 1;
+ uint64_t regular_wkup_available : 1;
+ uint64_t block_reg_wkup_sources : 1;
+ uint64_t _reserved0 : 10;
+#else
+ uint64_t _reserved0 : 10;
+ uint64_t block_reg_wkup_sources : 1;
+ uint64_t regular_wkup_available : 1;
+ uint64_t special_wkup_all_sources_ored : 1;
+ uint64_t dpll_lock : 1;
+ uint64_t wakeup_int_type : 2;
+ uint64_t pmgp0_spare3 : 1;
+ uint64_t chksw_hw259509_enable : 1;
+ uint64_t chksw_hw257534_disable : 1;
+ uint64_t chksw_hw245103_disable : 1;
+ uint64_t chksw_hw273115_disable : 1;
+ uint64_t chksw_hw241939_disable : 1;
+ uint64_t tp_cplt_ivrm_refbypass_dc : 1;
+ uint64_t l3_enable_switch : 1;
+ uint64_t pm_slv_winkle_fence : 1;
+ uint64_t tp_tc_dpll_testmode_dc : 1;
+ uint64_t block_all_wakeup_sources : 1;
+ uint64_t thold_timer_sel : 2;
+ uint64_t tp_clkglm_const_dc : 1;
+ uint64_t tp_clkglm_core_sel_dc : 2;
+ uint64_t special_wkup_done : 1;
+ uint64_t tp_clkglm_eco_sel_dc : 1;
+ uint64_t tp_clkglm_sel_dc : 3;
+ uint64_t tp_clk_async_reset_dc : 3;
+ uint64_t chksw_hw257424_disable : 1;
+ uint64_t tp_tc_pervasive_eco_fence : 1;
+ uint64_t tp_tc_core2cache_fence : 1;
+ uint64_t tp_tc_cache2core_fence : 1;
+ uint64_t dpll_testout_ctl : 8;
+ uint64_t pmgp0_spare_bit11 : 1;
+ uint64_t dpll_reset : 1;
+ uint64_t pmgp0_spare2 : 1;
+ uint64_t dpll_lock_sense : 1;
+ uint64_t pm_dpll_timer_ena : 1;
+ uint64_t cpm_cal_set_val : 1;
+ uint64_t cpm_cal_set_override_en : 1;
+ uint64_t perv_thold : 1;
+ uint64_t dpll_thold : 1;
+ uint64_t tp_tc_restart_core_domain : 1;
+ uint64_t pmgp0_spare_bit1 : 1;
+ uint64_t pm_disable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmgp0_reg_t;
+
+
+
+typedef union pcbs_pmgp0_reg_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pm_disable : 1;
+ uint64_t pmgp0_spare_bit1 : 1;
+ uint64_t tp_tc_restart_core_domain : 1;
+ uint64_t dpll_thold : 1;
+ uint64_t perv_thold : 1;
+ uint64_t cpm_cal_set_override_en : 1;
+ uint64_t cpm_cal_set_val : 1;
+ uint64_t pm_dpll_timer_ena : 1;
+ uint64_t dpll_lock_sense : 1;
+ uint64_t pmgp0_spare2 : 1;
+ uint64_t dpll_reset : 1;
+ uint64_t pmgp0_spare_bit11 : 1;
+ uint64_t dpll_testout_ctl : 8;
+ uint64_t tp_tc_cache2core_fence : 1;
+ uint64_t tp_tc_core2cache_fence : 1;
+ uint64_t tp_tc_pervasive_eco_fence : 1;
+ uint64_t chksw_hw257424_disable : 1;
+ uint64_t tp_clk_async_reset_dc : 3;
+ uint64_t tp_clkglm_sel_dc : 3;
+ uint64_t tp_clkglm_eco_sel_dc : 1;
+ uint64_t special_wkup_done : 1;
+ uint64_t tp_clkglm_core_sel_dc : 2;
+ uint64_t tp_clkglm_const_dc : 1;
+ uint64_t thold_timer_sel : 2;
+ uint64_t block_all_wakeup_sources : 1;
+ uint64_t tp_tc_dpll_testmode_dc : 1;
+ uint64_t pm_slv_winkle_fence : 1;
+ uint64_t l3_enable_switch : 1;
+ uint64_t tp_cplt_ivrm_refbypass_dc : 1;
+ uint64_t chksw_hw241939_disable : 1;
+ uint64_t chksw_hw273115_disable : 1;
+ uint64_t chksw_hw245103_disable : 1;
+ uint64_t chksw_hw257534_disable : 1;
+ uint64_t chksw_hw259509_enable : 1;
+ uint64_t pmgp0_spare3 : 1;
+ uint64_t wakeup_int_type : 2;
+ uint64_t dpll_lock : 1;
+ uint64_t special_wkup_all_sources_ored : 1;
+ uint64_t regular_wkup_available : 1;
+ uint64_t block_reg_wkup_sources : 1;
+ uint64_t _reserved0 : 10;
+#else
+ uint64_t _reserved0 : 10;
+ uint64_t block_reg_wkup_sources : 1;
+ uint64_t regular_wkup_available : 1;
+ uint64_t special_wkup_all_sources_ored : 1;
+ uint64_t dpll_lock : 1;
+ uint64_t wakeup_int_type : 2;
+ uint64_t pmgp0_spare3 : 1;
+ uint64_t chksw_hw259509_enable : 1;
+ uint64_t chksw_hw257534_disable : 1;
+ uint64_t chksw_hw245103_disable : 1;
+ uint64_t chksw_hw273115_disable : 1;
+ uint64_t chksw_hw241939_disable : 1;
+ uint64_t tp_cplt_ivrm_refbypass_dc : 1;
+ uint64_t l3_enable_switch : 1;
+ uint64_t pm_slv_winkle_fence : 1;
+ uint64_t tp_tc_dpll_testmode_dc : 1;
+ uint64_t block_all_wakeup_sources : 1;
+ uint64_t thold_timer_sel : 2;
+ uint64_t tp_clkglm_const_dc : 1;
+ uint64_t tp_clkglm_core_sel_dc : 2;
+ uint64_t special_wkup_done : 1;
+ uint64_t tp_clkglm_eco_sel_dc : 1;
+ uint64_t tp_clkglm_sel_dc : 3;
+ uint64_t tp_clk_async_reset_dc : 3;
+ uint64_t chksw_hw257424_disable : 1;
+ uint64_t tp_tc_pervasive_eco_fence : 1;
+ uint64_t tp_tc_core2cache_fence : 1;
+ uint64_t tp_tc_cache2core_fence : 1;
+ uint64_t dpll_testout_ctl : 8;
+ uint64_t pmgp0_spare_bit11 : 1;
+ uint64_t dpll_reset : 1;
+ uint64_t pmgp0_spare2 : 1;
+ uint64_t dpll_lock_sense : 1;
+ uint64_t pm_dpll_timer_ena : 1;
+ uint64_t cpm_cal_set_val : 1;
+ uint64_t cpm_cal_set_override_en : 1;
+ uint64_t perv_thold : 1;
+ uint64_t dpll_thold : 1;
+ uint64_t tp_tc_restart_core_domain : 1;
+ uint64_t pmgp0_spare_bit1 : 1;
+ uint64_t pm_disable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmgp0_reg_and_t;
+
+
+
+typedef union pcbs_pmgp0_reg_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pm_disable : 1;
+ uint64_t pmgp0_spare_bit1 : 1;
+ uint64_t tp_tc_restart_core_domain : 1;
+ uint64_t dpll_thold : 1;
+ uint64_t perv_thold : 1;
+ uint64_t cpm_cal_set_override_en : 1;
+ uint64_t cpm_cal_set_val : 1;
+ uint64_t pm_dpll_timer_ena : 1;
+ uint64_t dpll_lock_sense : 1;
+ uint64_t pmgp0_spare2 : 1;
+ uint64_t dpll_reset : 1;
+ uint64_t pmgp0_spare_bit11 : 1;
+ uint64_t dpll_testout_ctl : 8;
+ uint64_t tp_tc_cache2core_fence : 1;
+ uint64_t tp_tc_core2cache_fence : 1;
+ uint64_t tp_tc_pervasive_eco_fence : 1;
+ uint64_t chksw_hw257424_disable : 1;
+ uint64_t tp_clk_async_reset_dc : 3;
+ uint64_t tp_clkglm_sel_dc : 3;
+ uint64_t tp_clkglm_eco_sel_dc : 1;
+ uint64_t special_wkup_done : 1;
+ uint64_t tp_clkglm_core_sel_dc : 2;
+ uint64_t tp_clkglm_const_dc : 1;
+ uint64_t thold_timer_sel : 2;
+ uint64_t block_all_wakeup_sources : 1;
+ uint64_t tp_tc_dpll_testmode_dc : 1;
+ uint64_t pm_slv_winkle_fence : 1;
+ uint64_t l3_enable_switch : 1;
+ uint64_t tp_cplt_ivrm_refbypass_dc : 1;
+ uint64_t chksw_hw241939_disable : 1;
+ uint64_t chksw_hw273115_disable : 1;
+ uint64_t chksw_hw245103_disable : 1;
+ uint64_t chksw_hw257534_disable : 1;
+ uint64_t chksw_hw259509_enable : 1;
+ uint64_t pmgp0_spare3 : 1;
+ uint64_t wakeup_int_type : 2;
+ uint64_t dpll_lock : 1;
+ uint64_t special_wkup_all_sources_ored : 1;
+ uint64_t regular_wkup_available : 1;
+ uint64_t block_reg_wkup_sources : 1;
+ uint64_t _reserved0 : 10;
+#else
+ uint64_t _reserved0 : 10;
+ uint64_t block_reg_wkup_sources : 1;
+ uint64_t regular_wkup_available : 1;
+ uint64_t special_wkup_all_sources_ored : 1;
+ uint64_t dpll_lock : 1;
+ uint64_t wakeup_int_type : 2;
+ uint64_t pmgp0_spare3 : 1;
+ uint64_t chksw_hw259509_enable : 1;
+ uint64_t chksw_hw257534_disable : 1;
+ uint64_t chksw_hw245103_disable : 1;
+ uint64_t chksw_hw273115_disable : 1;
+ uint64_t chksw_hw241939_disable : 1;
+ uint64_t tp_cplt_ivrm_refbypass_dc : 1;
+ uint64_t l3_enable_switch : 1;
+ uint64_t pm_slv_winkle_fence : 1;
+ uint64_t tp_tc_dpll_testmode_dc : 1;
+ uint64_t block_all_wakeup_sources : 1;
+ uint64_t thold_timer_sel : 2;
+ uint64_t tp_clkglm_const_dc : 1;
+ uint64_t tp_clkglm_core_sel_dc : 2;
+ uint64_t special_wkup_done : 1;
+ uint64_t tp_clkglm_eco_sel_dc : 1;
+ uint64_t tp_clkglm_sel_dc : 3;
+ uint64_t tp_clk_async_reset_dc : 3;
+ uint64_t chksw_hw257424_disable : 1;
+ uint64_t tp_tc_pervasive_eco_fence : 1;
+ uint64_t tp_tc_core2cache_fence : 1;
+ uint64_t tp_tc_cache2core_fence : 1;
+ uint64_t dpll_testout_ctl : 8;
+ uint64_t pmgp0_spare_bit11 : 1;
+ uint64_t dpll_reset : 1;
+ uint64_t pmgp0_spare2 : 1;
+ uint64_t dpll_lock_sense : 1;
+ uint64_t pm_dpll_timer_ena : 1;
+ uint64_t cpm_cal_set_val : 1;
+ uint64_t cpm_cal_set_override_en : 1;
+ uint64_t perv_thold : 1;
+ uint64_t dpll_thold : 1;
+ uint64_t tp_tc_restart_core_domain : 1;
+ uint64_t pmgp0_spare_bit1 : 1;
+ uint64_t pm_disable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmgp0_reg_or_t;
+
+
+
+typedef union pcbs_pmgp1_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t sleep_power_down_en : 1;
+ uint64_t sleep_power_up_en : 1;
+ uint64_t sleep_power_off_sel : 1;
+ uint64_t winkle_power_down_en : 1;
+ uint64_t winkle_power_up_en : 1;
+ uint64_t winkle_power_off_sel : 1;
+ uint64_t oha_wkup_override_en : 1;
+ uint64_t oha_pm_wkup_override : 1;
+ uint64_t oha_spc_wkup_override : 1;
+ uint64_t endp_reset_pm_only : 1;
+ uint64_t dpll_freq_override_enable : 1;
+ uint64_t pm_spr_override_en : 1;
+ uint64_t force_safe_mode : 1;
+ uint64_t ivrm_safe_mode_en : 1;
+ uint64_t ivrm_safe_mode_force_active : 1;
+ uint64_t pmicr_latency_en : 1;
+ uint64_t enable_occ_ctrl_for_local_pstate_eff_req : 1;
+ uint64_t serialize_pfet_powerdown : 1;
+ uint64_t serialize_pfet_powerup : 1;
+ uint64_t disable_force_deep_to_fast_sleep : 1;
+ uint64_t disable_force_deep_to_fast_winkle : 1;
+ uint64_t _reserved0 : 43;
+#else
+ uint64_t _reserved0 : 43;
+ uint64_t disable_force_deep_to_fast_winkle : 1;
+ uint64_t disable_force_deep_to_fast_sleep : 1;
+ uint64_t serialize_pfet_powerup : 1;
+ uint64_t serialize_pfet_powerdown : 1;
+ uint64_t enable_occ_ctrl_for_local_pstate_eff_req : 1;
+ uint64_t pmicr_latency_en : 1;
+ uint64_t ivrm_safe_mode_force_active : 1;
+ uint64_t ivrm_safe_mode_en : 1;
+ uint64_t force_safe_mode : 1;
+ uint64_t pm_spr_override_en : 1;
+ uint64_t dpll_freq_override_enable : 1;
+ uint64_t endp_reset_pm_only : 1;
+ uint64_t oha_spc_wkup_override : 1;
+ uint64_t oha_pm_wkup_override : 1;
+ uint64_t oha_wkup_override_en : 1;
+ uint64_t winkle_power_off_sel : 1;
+ uint64_t winkle_power_up_en : 1;
+ uint64_t winkle_power_down_en : 1;
+ uint64_t sleep_power_off_sel : 1;
+ uint64_t sleep_power_up_en : 1;
+ uint64_t sleep_power_down_en : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmgp1_reg_t;
+
+
+
+typedef union pcbs_pmgp1_reg_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t sleep_power_down_en : 1;
+ uint64_t sleep_power_up_en : 1;
+ uint64_t sleep_power_off_sel : 1;
+ uint64_t winkle_power_down_en : 1;
+ uint64_t winkle_power_up_en : 1;
+ uint64_t winkle_power_off_sel : 1;
+ uint64_t oha_wkup_override_en : 1;
+ uint64_t oha_pm_wkup_override : 1;
+ uint64_t oha_spc_wkup_override : 1;
+ uint64_t endp_reset_pm_only : 1;
+ uint64_t dpll_freq_override_enable : 1;
+ uint64_t pm_spr_override_en : 1;
+ uint64_t force_safe_mode : 1;
+ uint64_t ivrm_safe_mode_en : 1;
+ uint64_t ivrm_safe_mode_force_active : 1;
+ uint64_t pmicr_latency_en : 1;
+ uint64_t enable_occ_ctrl_for_local_pstate_eff_req : 1;
+ uint64_t serialize_pfet_powerdown : 1;
+ uint64_t serialize_pfet_powerup : 1;
+ uint64_t disable_force_deep_to_fast_sleep : 1;
+ uint64_t disable_force_deep_to_fast_winkle : 1;
+ uint64_t _reserved0 : 43;
+#else
+ uint64_t _reserved0 : 43;
+ uint64_t disable_force_deep_to_fast_winkle : 1;
+ uint64_t disable_force_deep_to_fast_sleep : 1;
+ uint64_t serialize_pfet_powerup : 1;
+ uint64_t serialize_pfet_powerdown : 1;
+ uint64_t enable_occ_ctrl_for_local_pstate_eff_req : 1;
+ uint64_t pmicr_latency_en : 1;
+ uint64_t ivrm_safe_mode_force_active : 1;
+ uint64_t ivrm_safe_mode_en : 1;
+ uint64_t force_safe_mode : 1;
+ uint64_t pm_spr_override_en : 1;
+ uint64_t dpll_freq_override_enable : 1;
+ uint64_t endp_reset_pm_only : 1;
+ uint64_t oha_spc_wkup_override : 1;
+ uint64_t oha_pm_wkup_override : 1;
+ uint64_t oha_wkup_override_en : 1;
+ uint64_t winkle_power_off_sel : 1;
+ uint64_t winkle_power_up_en : 1;
+ uint64_t winkle_power_down_en : 1;
+ uint64_t sleep_power_off_sel : 1;
+ uint64_t sleep_power_up_en : 1;
+ uint64_t sleep_power_down_en : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmgp1_reg_and_t;
+
+
+
+typedef union pcbs_pmgp1_reg_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t sleep_power_down_en : 1;
+ uint64_t sleep_power_up_en : 1;
+ uint64_t sleep_power_off_sel : 1;
+ uint64_t winkle_power_down_en : 1;
+ uint64_t winkle_power_up_en : 1;
+ uint64_t winkle_power_off_sel : 1;
+ uint64_t oha_wkup_override_en : 1;
+ uint64_t oha_pm_wkup_override : 1;
+ uint64_t oha_spc_wkup_override : 1;
+ uint64_t endp_reset_pm_only : 1;
+ uint64_t dpll_freq_override_enable : 1;
+ uint64_t pm_spr_override_en : 1;
+ uint64_t force_safe_mode : 1;
+ uint64_t ivrm_safe_mode_en : 1;
+ uint64_t ivrm_safe_mode_force_active : 1;
+ uint64_t pmicr_latency_en : 1;
+ uint64_t enable_occ_ctrl_for_local_pstate_eff_req : 1;
+ uint64_t serialize_pfet_powerdown : 1;
+ uint64_t serialize_pfet_powerup : 1;
+ uint64_t disable_force_deep_to_fast_sleep : 1;
+ uint64_t disable_force_deep_to_fast_winkle : 1;
+ uint64_t _reserved0 : 43;
+#else
+ uint64_t _reserved0 : 43;
+ uint64_t disable_force_deep_to_fast_winkle : 1;
+ uint64_t disable_force_deep_to_fast_sleep : 1;
+ uint64_t serialize_pfet_powerup : 1;
+ uint64_t serialize_pfet_powerdown : 1;
+ uint64_t enable_occ_ctrl_for_local_pstate_eff_req : 1;
+ uint64_t pmicr_latency_en : 1;
+ uint64_t ivrm_safe_mode_force_active : 1;
+ uint64_t ivrm_safe_mode_en : 1;
+ uint64_t force_safe_mode : 1;
+ uint64_t pm_spr_override_en : 1;
+ uint64_t dpll_freq_override_enable : 1;
+ uint64_t endp_reset_pm_only : 1;
+ uint64_t oha_spc_wkup_override : 1;
+ uint64_t oha_pm_wkup_override : 1;
+ uint64_t oha_wkup_override_en : 1;
+ uint64_t winkle_power_off_sel : 1;
+ uint64_t winkle_power_up_en : 1;
+ uint64_t winkle_power_down_en : 1;
+ uint64_t sleep_power_off_sel : 1;
+ uint64_t sleep_power_up_en : 1;
+ uint64_t sleep_power_down_en : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmgp1_reg_or_t;
+
+
+
+typedef union pcbs_pfvddcntlstat_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_vdd_pfet_force_state : 2;
+ uint64_t eco_vdd_pfet_force_state : 2;
+ uint64_t core_vdd_pfet_val_override : 1;
+ uint64_t core_vdd_pfet_sel_override : 1;
+ uint64_t eco_vdd_pfet_val_override : 1;
+ uint64_t eco_vdd_pfet_sel_override : 1;
+ uint64_t core_vdd_pfet_enable_regulation_finger : 1;
+ uint64_t eco_vdd_pfet_enable_regulation_finger : 1;
+ uint64_t core_vdd_pfet_enable_value : 12;
+ uint64_t core_vdd_pfet_sel_value : 4;
+ uint64_t eco_vdd_pfet_enable_value : 12;
+ uint64_t eco_vdd_pfet_sel_value : 4;
+ uint64_t core_vdd_pg_state : 4;
+ uint64_t core_vdd_pg_sel : 4;
+ uint64_t eco_vdd_pg_state : 4;
+ uint64_t eco_vdd_pg_sel : 4;
+ uint64_t _reserved0 : 6;
+#else
+ uint64_t _reserved0 : 6;
+ uint64_t eco_vdd_pg_sel : 4;
+ uint64_t eco_vdd_pg_state : 4;
+ uint64_t core_vdd_pg_sel : 4;
+ uint64_t core_vdd_pg_state : 4;
+ uint64_t eco_vdd_pfet_sel_value : 4;
+ uint64_t eco_vdd_pfet_enable_value : 12;
+ uint64_t core_vdd_pfet_sel_value : 4;
+ uint64_t core_vdd_pfet_enable_value : 12;
+ uint64_t eco_vdd_pfet_enable_regulation_finger : 1;
+ uint64_t core_vdd_pfet_enable_regulation_finger : 1;
+ uint64_t eco_vdd_pfet_sel_override : 1;
+ uint64_t eco_vdd_pfet_val_override : 1;
+ uint64_t core_vdd_pfet_sel_override : 1;
+ uint64_t core_vdd_pfet_val_override : 1;
+ uint64_t eco_vdd_pfet_force_state : 2;
+ uint64_t core_vdd_pfet_force_state : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pfvddcntlstat_reg_t;
+
+
+
+typedef union pcbs_pfvcscntlstat_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_vcs_pfet_force_state : 2;
+ uint64_t eco_vcs_pfet_force_state : 2;
+ uint64_t core_vcs_pfet_val_override : 1;
+ uint64_t core_vcs_pfet_sel_override : 1;
+ uint64_t eco_vcs_pfet_val_override : 1;
+ uint64_t eco_vcs_pfet_sel_override : 1;
+ uint64_t core_vcs_pfet_enable_regulation_finger : 1;
+ uint64_t eco_vcs_pfet_enable_regulation_finger : 1;
+ uint64_t core_vcs_pfet_enable_value : 12;
+ uint64_t core_vcs_pfet_sel_value : 4;
+ uint64_t eco_vcs_pfet_enable_value : 12;
+ uint64_t eco_vcs_pfet_sel_value : 4;
+ uint64_t core_vcs_pg_state : 4;
+ uint64_t core_vcs_pg_sel : 4;
+ uint64_t eco_vcs_pg_state : 4;
+ uint64_t eco_vcs_pg_sel : 4;
+ uint64_t _reserved0 : 6;
+#else
+ uint64_t _reserved0 : 6;
+ uint64_t eco_vcs_pg_sel : 4;
+ uint64_t eco_vcs_pg_state : 4;
+ uint64_t core_vcs_pg_sel : 4;
+ uint64_t core_vcs_pg_state : 4;
+ uint64_t eco_vcs_pfet_sel_value : 4;
+ uint64_t eco_vcs_pfet_enable_value : 12;
+ uint64_t core_vcs_pfet_sel_value : 4;
+ uint64_t core_vcs_pfet_enable_value : 12;
+ uint64_t eco_vcs_pfet_enable_regulation_finger : 1;
+ uint64_t core_vcs_pfet_enable_regulation_finger : 1;
+ uint64_t eco_vcs_pfet_sel_override : 1;
+ uint64_t eco_vcs_pfet_val_override : 1;
+ uint64_t core_vcs_pfet_sel_override : 1;
+ uint64_t core_vcs_pfet_val_override : 1;
+ uint64_t eco_vcs_pfet_force_state : 2;
+ uint64_t core_vcs_pfet_force_state : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pfvcscntlstat_reg_t;
+
+
+
+typedef union pcbs_pfsense_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t tp_core_vdd_pfet_enable_sense : 12;
+ uint64_t tp_eco_vdd_pfet_enable_sense : 12;
+ uint64_t tp_core_vcs_pfet_enable_sense : 12;
+ uint64_t tp_eco_vcs_pfet_enable_sense : 12;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t tp_eco_vcs_pfet_enable_sense : 12;
+ uint64_t tp_core_vcs_pfet_enable_sense : 12;
+ uint64_t tp_eco_vdd_pfet_enable_sense : 12;
+ uint64_t tp_core_vdd_pfet_enable_sense : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pfsense_reg_t;
+
+
+
+typedef union pcbs_pmerrsum_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pm_error : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t pm_error : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmerrsum_reg_t;
+
+
+
+typedef union pcbs_pmerr_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pcbs_sleep_entry_notify_pmc_hang_err : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_assist_hang_err : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_err : 1;
+ uint64_t pcbs_sleep_exit_invoke_pore_err : 1;
+ uint64_t pcbs_winkle_entry_notify_pmc_err : 1;
+ uint64_t pcbs_winkle_entry_send_int_assist_err : 1;
+ uint64_t pcbs_winkle_exit_notify_pmc_err : 1;
+ uint64_t pcbs_wait_dpll_lock_err : 1;
+ uint64_t pcbs_spare8_err : 1;
+ uint64_t pcbs_winkle_exit_send_int_assist_err : 1;
+ uint64_t pcbs_winkle_exit_send_int_powup_assist_err : 1;
+ uint64_t pcbs_write_fsm_goto_reg_in_invalid_state_err : 1;
+ uint64_t pcbs_write_pmgp0_in_invalid_state_err : 1;
+ uint64_t pcbs_freq_overflow_in_pstate_mode_err : 1;
+ uint64_t pcbs_eco_rs_bypass_confusion_err : 1;
+ uint64_t pcbs_core_rs_bypass_confusion_err : 1;
+ uint64_t pcbs_read_lpst_in_pstate_mode_err : 1;
+ uint64_t pcbs_lpst_read_corr_err : 1;
+ uint64_t pcbs_lpst_read_uncorr_err : 1;
+ uint64_t pcbs_pfet_strength_overflow_err : 1;
+ uint64_t pcbs_vds_lookup_err : 1;
+ uint64_t pcbs_idle_interrupt_timeout_err : 1;
+ uint64_t pcbs_pstate_interrupt_timeout_err : 1;
+ uint64_t pcbs_global_actual_sync_interrupt_timeout_err : 1;
+ uint64_t pcbs_pmax_sync_interrupt_timeout_err : 1;
+ uint64_t pcbs_global_actual_pstate_protocol_err : 1;
+ uint64_t pcbs_pmax_protocol_err : 1;
+ uint64_t pcbs_ivrm_gross_or_fine_err : 1;
+ uint64_t pcbs_ivrm_range_err : 1;
+ uint64_t pcbs_dpll_cpm_fmin_err : 1;
+ uint64_t pcbs_dpll_dco_full_err : 1;
+ uint64_t pcbs_dpll_dco_empty_err : 1;
+ uint64_t pcbs_dpll_int_err : 1;
+ uint64_t pcbs_fmin_and_not_cpmbit_err : 1;
+ uint64_t pcbs_dpll_faster_than_fmax_plus_delta1_err : 1;
+ uint64_t pcbs_dpll_slower_than_fmin_minus_delta2_err : 1;
+ uint64_t pcbs_resclk_csb_instr_vector_chg_in_invalid_state_err : 1;
+ uint64_t pcbs_reslkc_band_boundary_chg_in_invalid_state_err : 1;
+ uint64_t pcbs_occ_heartbeat_loss_err : 1;
+ uint64_t pcbs_spare39_err : 1;
+ uint64_t pcbs_spare40_err : 1;
+ uint64_t pcbs_spare41_err : 1;
+ uint64_t pcbs_spare42_err : 1;
+ uint64_t _reserved0 : 21;
+#else
+ uint64_t _reserved0 : 21;
+ uint64_t pcbs_spare42_err : 1;
+ uint64_t pcbs_spare41_err : 1;
+ uint64_t pcbs_spare40_err : 1;
+ uint64_t pcbs_spare39_err : 1;
+ uint64_t pcbs_occ_heartbeat_loss_err : 1;
+ uint64_t pcbs_reslkc_band_boundary_chg_in_invalid_state_err : 1;
+ uint64_t pcbs_resclk_csb_instr_vector_chg_in_invalid_state_err : 1;
+ uint64_t pcbs_dpll_slower_than_fmin_minus_delta2_err : 1;
+ uint64_t pcbs_dpll_faster_than_fmax_plus_delta1_err : 1;
+ uint64_t pcbs_fmin_and_not_cpmbit_err : 1;
+ uint64_t pcbs_dpll_int_err : 1;
+ uint64_t pcbs_dpll_dco_empty_err : 1;
+ uint64_t pcbs_dpll_dco_full_err : 1;
+ uint64_t pcbs_dpll_cpm_fmin_err : 1;
+ uint64_t pcbs_ivrm_range_err : 1;
+ uint64_t pcbs_ivrm_gross_or_fine_err : 1;
+ uint64_t pcbs_pmax_protocol_err : 1;
+ uint64_t pcbs_global_actual_pstate_protocol_err : 1;
+ uint64_t pcbs_pmax_sync_interrupt_timeout_err : 1;
+ uint64_t pcbs_global_actual_sync_interrupt_timeout_err : 1;
+ uint64_t pcbs_pstate_interrupt_timeout_err : 1;
+ uint64_t pcbs_idle_interrupt_timeout_err : 1;
+ uint64_t pcbs_vds_lookup_err : 1;
+ uint64_t pcbs_pfet_strength_overflow_err : 1;
+ uint64_t pcbs_lpst_read_uncorr_err : 1;
+ uint64_t pcbs_lpst_read_corr_err : 1;
+ uint64_t pcbs_read_lpst_in_pstate_mode_err : 1;
+ uint64_t pcbs_core_rs_bypass_confusion_err : 1;
+ uint64_t pcbs_eco_rs_bypass_confusion_err : 1;
+ uint64_t pcbs_freq_overflow_in_pstate_mode_err : 1;
+ uint64_t pcbs_write_pmgp0_in_invalid_state_err : 1;
+ uint64_t pcbs_write_fsm_goto_reg_in_invalid_state_err : 1;
+ uint64_t pcbs_winkle_exit_send_int_powup_assist_err : 1;
+ uint64_t pcbs_winkle_exit_send_int_assist_err : 1;
+ uint64_t pcbs_spare8_err : 1;
+ uint64_t pcbs_wait_dpll_lock_err : 1;
+ uint64_t pcbs_winkle_exit_notify_pmc_err : 1;
+ uint64_t pcbs_winkle_entry_send_int_assist_err : 1;
+ uint64_t pcbs_winkle_entry_notify_pmc_err : 1;
+ uint64_t pcbs_sleep_exit_invoke_pore_err : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_err : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_assist_hang_err : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_hang_err : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmerr_reg_t;
+
+
+
+typedef union pcbs_pmerrmask_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pcbs_sleep_entry_notify_pmc_hang_err_mask : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_assist_hang_err_mask : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_err_mask : 1;
+ uint64_t pcbs_sleep_exit_invoke_pore_err_mask : 1;
+ uint64_t pcbs_winkle_entry_notify_pmc_err_mask : 1;
+ uint64_t pcbs_winkle_entry_send_int_assist_err_mask : 1;
+ uint64_t pcbs_winkle_exit_notify_pmc_err_mask : 1;
+ uint64_t pcbs_wait_dpll_lock_err_mask : 1;
+ uint64_t pcbs_spare8_err_mask : 1;
+ uint64_t pcbs_winkle_exit_send_int_assist_err_mask : 1;
+ uint64_t pcbs_winkle_exit_send_int_powup_assist_err_mask : 1;
+ uint64_t pcbs_write_fsm_goto_reg_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_write_pmgp0_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_freq_overflow_in_pstate_mode_err_mask : 1;
+ uint64_t pcbs_eco_rs_bypass_confusion_err_mask : 1;
+ uint64_t pcbs_core_rs_bypass_confusion_err_mask : 1;
+ uint64_t pcbs_read_lpst_in_pstate_mode_err_mask : 1;
+ uint64_t pcbs_lpst_read_corr_err_mask : 1;
+ uint64_t pcbs_lpst_read_uncorr_err_mask : 1;
+ uint64_t pcbs_pfet_strength_overflow_err_mask : 1;
+ uint64_t pcbs_vds_lookup_err_mask : 1;
+ uint64_t pcbs_idle_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_pstate_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_global_actual_sync_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_pmax_sync_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_global_actual_pstate_protocol_err_mask : 1;
+ uint64_t pcbs_pmax_protocol_err_mask : 1;
+ uint64_t pcbs_ivrm_gross_or_fine_err_mask : 1;
+ uint64_t pcbs_ivrm_range_err_mask : 1;
+ uint64_t pcbs_dpll_cpm_fmin_err_mask : 1;
+ uint64_t pcbs_dpll_dco_full_err_mask : 1;
+ uint64_t pcbs_dpll_dco_empty_err_mask : 1;
+ uint64_t pcbs_dpll_int_err_mask : 1;
+ uint64_t pcbs_fmin_and_not_cpmbit_err_mask : 1;
+ uint64_t pcbs_dpll_faster_than_fmax_plus_delta1_err_mask : 1;
+ uint64_t pcbs_dpll_slower_than_fmin_minus_delta2_err_mask : 1;
+ uint64_t pcbs_resclk_csb_instr_vector_chg_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_reslkc_band_boundary_chg_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_occ_heartbeat_loss_err_mask : 1;
+ uint64_t pcbs_spare39_err_mask : 1;
+ uint64_t pcbs_spare40_err_mask : 1;
+ uint64_t pcbs_spare41_err_mask : 1;
+ uint64_t pcbs_spare42_err_mask : 1;
+ uint64_t _reserved0 : 21;
+#else
+ uint64_t _reserved0 : 21;
+ uint64_t pcbs_spare42_err_mask : 1;
+ uint64_t pcbs_spare41_err_mask : 1;
+ uint64_t pcbs_spare40_err_mask : 1;
+ uint64_t pcbs_spare39_err_mask : 1;
+ uint64_t pcbs_occ_heartbeat_loss_err_mask : 1;
+ uint64_t pcbs_reslkc_band_boundary_chg_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_resclk_csb_instr_vector_chg_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_dpll_slower_than_fmin_minus_delta2_err_mask : 1;
+ uint64_t pcbs_dpll_faster_than_fmax_plus_delta1_err_mask : 1;
+ uint64_t pcbs_fmin_and_not_cpmbit_err_mask : 1;
+ uint64_t pcbs_dpll_int_err_mask : 1;
+ uint64_t pcbs_dpll_dco_empty_err_mask : 1;
+ uint64_t pcbs_dpll_dco_full_err_mask : 1;
+ uint64_t pcbs_dpll_cpm_fmin_err_mask : 1;
+ uint64_t pcbs_ivrm_range_err_mask : 1;
+ uint64_t pcbs_ivrm_gross_or_fine_err_mask : 1;
+ uint64_t pcbs_pmax_protocol_err_mask : 1;
+ uint64_t pcbs_global_actual_pstate_protocol_err_mask : 1;
+ uint64_t pcbs_pmax_sync_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_global_actual_sync_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_pstate_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_idle_interrupt_timeout_err_mask : 1;
+ uint64_t pcbs_vds_lookup_err_mask : 1;
+ uint64_t pcbs_pfet_strength_overflow_err_mask : 1;
+ uint64_t pcbs_lpst_read_uncorr_err_mask : 1;
+ uint64_t pcbs_lpst_read_corr_err_mask : 1;
+ uint64_t pcbs_read_lpst_in_pstate_mode_err_mask : 1;
+ uint64_t pcbs_core_rs_bypass_confusion_err_mask : 1;
+ uint64_t pcbs_eco_rs_bypass_confusion_err_mask : 1;
+ uint64_t pcbs_freq_overflow_in_pstate_mode_err_mask : 1;
+ uint64_t pcbs_write_pmgp0_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_write_fsm_goto_reg_in_invalid_state_err_mask : 1;
+ uint64_t pcbs_winkle_exit_send_int_powup_assist_err_mask : 1;
+ uint64_t pcbs_winkle_exit_send_int_assist_err_mask : 1;
+ uint64_t pcbs_spare8_err_mask : 1;
+ uint64_t pcbs_wait_dpll_lock_err_mask : 1;
+ uint64_t pcbs_winkle_exit_notify_pmc_err_mask : 1;
+ uint64_t pcbs_winkle_entry_send_int_assist_err_mask : 1;
+ uint64_t pcbs_winkle_entry_notify_pmc_err_mask : 1;
+ uint64_t pcbs_sleep_exit_invoke_pore_err_mask : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_err_mask : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_assist_hang_err_mask : 1;
+ uint64_t pcbs_sleep_entry_notify_pmc_hang_err_mask : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmerrmask_reg_t;
+
+
+
+typedef union pcbs_pmspcwkupfsp_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t fsp_special_wakeup : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t fsp_special_wakeup : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmspcwkupfsp_reg_t;
+
+
+
+typedef union pcbs_pmspcwkupocc_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_special_wakeup : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t occ_special_wakeup : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmspcwkupocc_reg_t;
+
+
+
+typedef union pcbs_pmspcwkupphyp_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t phyp_special_wakeup : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t phyp_special_wakeup : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmspcwkupphyp_reg_t;
+
+
+
+typedef union pcbs_pmstatehistphyp_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t phyp_pm_state : 3;
+ uint64_t phyp_past_core_instruct_stop : 1;
+ uint64_t phyp_past_core_clk_stop : 1;
+ uint64_t phyp_past_core_pwr_off : 1;
+ uint64_t phyp_past_eco_clk_stop : 1;
+ uint64_t phyp_past_eco_pwr_off : 1;
+ uint64_t _reserved0 : 56;
+#else
+ uint64_t _reserved0 : 56;
+ uint64_t phyp_past_eco_pwr_off : 1;
+ uint64_t phyp_past_eco_clk_stop : 1;
+ uint64_t phyp_past_core_pwr_off : 1;
+ uint64_t phyp_past_core_clk_stop : 1;
+ uint64_t phyp_past_core_instruct_stop : 1;
+ uint64_t phyp_pm_state : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmstatehistphyp_reg_t;
+
+
+
+typedef union pcbs_pmstatehistfsp_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t fsp_pm_state : 3;
+ uint64_t fsp_past_core_instruct_stop : 1;
+ uint64_t fsp_past_core_clk_stop : 1;
+ uint64_t fsp_past_core_pwr_off : 1;
+ uint64_t fsp_past_eco_clk_stop : 1;
+ uint64_t fsp_past_eco_pwr_off : 1;
+ uint64_t _reserved0 : 56;
+#else
+ uint64_t _reserved0 : 56;
+ uint64_t fsp_past_eco_pwr_off : 1;
+ uint64_t fsp_past_eco_clk_stop : 1;
+ uint64_t fsp_past_core_pwr_off : 1;
+ uint64_t fsp_past_core_clk_stop : 1;
+ uint64_t fsp_past_core_instruct_stop : 1;
+ uint64_t fsp_pm_state : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmstatehistfsp_reg_t;
+
+
+
+typedef union pcbs_pmstatehistocc_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_pm_state : 3;
+ uint64_t occ_past_core_instruct_stop : 1;
+ uint64_t occ_past_core_clk_stop : 1;
+ uint64_t occ_past_core_pwr_off : 1;
+ uint64_t occ_past_eco_clk_stop : 1;
+ uint64_t occ_past_eco_pwr_off : 1;
+ uint64_t _reserved0 : 56;
+#else
+ uint64_t _reserved0 : 56;
+ uint64_t occ_past_eco_pwr_off : 1;
+ uint64_t occ_past_eco_clk_stop : 1;
+ uint64_t occ_past_core_pwr_off : 1;
+ uint64_t occ_past_core_clk_stop : 1;
+ uint64_t occ_past_core_instruct_stop : 1;
+ uint64_t occ_pm_state : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmstatehistocc_reg_t;
+
+
+
+typedef union pcbs_pmstatehistperf_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t perf_pm_state : 3;
+ uint64_t perf_past_core_instruct_stop : 1;
+ uint64_t perf_past_core_clk_stop : 1;
+ uint64_t perf_past_core_pwr_off : 1;
+ uint64_t perf_past_eco_clk_stop : 1;
+ uint64_t perf_past_eco_pwr_off : 1;
+ uint64_t _reserved0 : 56;
+#else
+ uint64_t _reserved0 : 56;
+ uint64_t perf_past_eco_pwr_off : 1;
+ uint64_t perf_past_eco_clk_stop : 1;
+ uint64_t perf_past_core_pwr_off : 1;
+ uint64_t perf_past_core_clk_stop : 1;
+ uint64_t perf_past_core_instruct_stop : 1;
+ uint64_t perf_pm_state : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmstatehistperf_reg_t;
+
+
+
+typedef union pcbs_idlefsmgotocmd_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t idle_fsm_goto_cmd : 2;
+ uint64_t babystp_trigger_sleep_entry : 1;
+ uint64_t babystp_trigger_winkle_entry : 1;
+ uint64_t babystp_trigger_wakeup : 1;
+ uint64_t _reserved0 : 59;
+#else
+ uint64_t _reserved0 : 59;
+ uint64_t babystp_trigger_wakeup : 1;
+ uint64_t babystp_trigger_winkle_entry : 1;
+ uint64_t babystp_trigger_sleep_entry : 1;
+ uint64_t idle_fsm_goto_cmd : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_idlefsmgotocmd_reg_t;
+
+
+
+typedef union pcbs_corepfpudly_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_powup_dly0 : 4;
+ uint64_t core_powup_dly1 : 4;
+ uint64_t core_power_up_delay_sel : 12;
+ uint64_t _reserved0 : 44;
+#else
+ uint64_t _reserved0 : 44;
+ uint64_t core_power_up_delay_sel : 12;
+ uint64_t core_powup_dly1 : 4;
+ uint64_t core_powup_dly0 : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_corepfpudly_reg_t;
+
+
+
+typedef union pcbs_corepfpddly_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_powdn_dly0 : 4;
+ uint64_t core_powdn_dly1 : 4;
+ uint64_t core_power_dn_delay_sel : 12;
+ uint64_t _reserved0 : 44;
+#else
+ uint64_t _reserved0 : 44;
+ uint64_t core_power_dn_delay_sel : 12;
+ uint64_t core_powdn_dly1 : 4;
+ uint64_t core_powdn_dly0 : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_corepfpddly_reg_t;
+
+
+
+typedef union pcbs_corepfvret_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t core_vret_sel : 4;
+ uint64_t core_voff_sel : 4;
+ uint64_t _reserved0 : 56;
+#else
+ uint64_t _reserved0 : 56;
+ uint64_t core_voff_sel : 4;
+ uint64_t core_vret_sel : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_corepfvret_reg_t;
+
+
+
+typedef union pcbs_ecopfpudly_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t eco_powup_dly0 : 4;
+ uint64_t eco_powup_dly1 : 4;
+ uint64_t eco_power_up_delay_sel : 12;
+ uint64_t _reserved0 : 44;
+#else
+ uint64_t _reserved0 : 44;
+ uint64_t eco_power_up_delay_sel : 12;
+ uint64_t eco_powup_dly1 : 4;
+ uint64_t eco_powup_dly0 : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ecopfpudly_reg_t;
+
+
+
+typedef union pcbs_ecopfpddly_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t eco_powdn_dly0 : 4;
+ uint64_t eco_powdn_dly1 : 4;
+ uint64_t eco_power_dn_delay_sel : 12;
+ uint64_t _reserved0 : 44;
+#else
+ uint64_t _reserved0 : 44;
+ uint64_t eco_power_dn_delay_sel : 12;
+ uint64_t eco_powdn_dly1 : 4;
+ uint64_t eco_powdn_dly0 : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ecopfpddly_reg_t;
+
+
+
+typedef union pcbs_ecopfvret_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t eco_vret_sel : 4;
+ uint64_t eco_voff_sel : 4;
+ uint64_t _reserved0 : 56;
+#else
+ uint64_t _reserved0 : 56;
+ uint64_t eco_voff_sel : 4;
+ uint64_t eco_vret_sel : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ecopfvret_reg_t;
+
+
+
+typedef union pcbs_freq_ctrl_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dpll_fmin : 9;
+ uint64_t dpll_fmax : 9;
+ uint64_t dpll_fmax_bias : 4;
+ uint64_t frequ_at_pstate0 : 9;
+ uint64_t _reserved0 : 33;
+#else
+ uint64_t _reserved0 : 33;
+ uint64_t frequ_at_pstate0 : 9;
+ uint64_t dpll_fmax_bias : 4;
+ uint64_t dpll_fmax : 9;
+ uint64_t dpll_fmin : 9;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_freq_ctrl_reg_t;
+
+
+
+typedef union pcbs_dpll_cpm_parm_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t lf_slewratexpi : 8;
+ uint64_t lf_use_cpmxpi : 1;
+ uint64_t ff_use_cpmxpi : 1;
+ uint64_t cpm_filter_enable : 1;
+ uint64_t ff_bypassxpi : 1;
+ uint64_t dco_override : 1;
+ uint64_t dco_incr : 1;
+ uint64_t dco_decr : 1;
+ uint64_t dpll_lock_timer_replacement_value : 9;
+ uint64_t pre_vret_pstate : 8;
+ uint64_t override_pcbs_dpll_synchronizer : 1;
+ uint64_t dpll_char_delta1 : 4;
+ uint64_t dpll_char_delta2 : 4;
+ uint64_t _reserved0 : 23;
+#else
+ uint64_t _reserved0 : 23;
+ uint64_t dpll_char_delta2 : 4;
+ uint64_t dpll_char_delta1 : 4;
+ uint64_t override_pcbs_dpll_synchronizer : 1;
+ uint64_t pre_vret_pstate : 8;
+ uint64_t dpll_lock_timer_replacement_value : 9;
+ uint64_t dco_decr : 1;
+ uint64_t dco_incr : 1;
+ uint64_t dco_override : 1;
+ uint64_t ff_bypassxpi : 1;
+ uint64_t cpm_filter_enable : 1;
+ uint64_t ff_use_cpmxpi : 1;
+ uint64_t lf_use_cpmxpi : 1;
+ uint64_t lf_slewratexpi : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_dpll_cpm_parm_reg_t;
+
+
+
+typedef union pcbs_power_management_status_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t global_pstate_actual : 8;
+ int64_t local_pstate_actual : 8;
+ int64_t pv_min : 8;
+ int64_t pvf_max : 8;
+ uint64_t spr_em_disabled : 1;
+ uint64_t psafe_mode_active : 1;
+ uint64_t ivrm_safe_mode_active : 1;
+ uint64_t ivrm_enable : 1;
+ uint64_t all_fsms_in_safe_state : 1;
+ uint64_t pmsr_spares : 4;
+ uint64_t _reserved0 : 23;
+#else
+ uint64_t _reserved0 : 23;
+ uint64_t pmsr_spares : 4;
+ uint64_t all_fsms_in_safe_state : 1;
+ uint64_t ivrm_enable : 1;
+ uint64_t ivrm_safe_mode_active : 1;
+ uint64_t psafe_mode_active : 1;
+ uint64_t spr_em_disabled : 1;
+ int64_t pvf_max : 8;
+ int64_t pv_min : 8;
+ int64_t local_pstate_actual : 8;
+ int64_t global_pstate_actual : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_power_management_status_reg_t;
+
+
+
+typedef union pcbs_ivrm_control_status_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ivrm_fsm_enable : 1;
+ uint64_t use_ivrm_for_vret : 1;
+ uint64_t binsearch_cal_ena : 1;
+ uint64_t pvref_en : 1;
+ uint64_t ivrm_core_vdd_bypass_b : 1;
+ uint64_t ivrm_core_vdd_poweron : 1;
+ uint64_t ivrm_core_vcs_bypass_b : 1;
+ uint64_t ivrm_core_vcs_poweron : 1;
+ uint64_t ivrm_eco_vdd_bypass_b : 1;
+ uint64_t ivrm_eco_vdd_poweron : 1;
+ uint64_t ivrm_eco_vcs_bypass_b : 1;
+ uint64_t ivrm_eco_vcs_poweron : 1;
+ uint64_t ivrm_vret_vdd : 7;
+ uint64_t ivrm_vret_vcs : 7;
+ uint64_t ivrm_vret_core_vdd_pfet_strength : 5;
+ uint64_t ivrm_vret_core_vcs_pfet_strength : 5;
+ uint64_t ivrm_vret_eco_vdd_pfet_strength : 5;
+ uint64_t ivrm_vret_eco_vcs_pfet_strength : 5;
+ uint64_t pvref_fail : 1;
+ uint64_t ivrm_pref_error_gross : 1;
+ uint64_t ivrm_pref_error_fine : 1;
+ uint64_t ivrm_core_vdd_range_hi : 1;
+ uint64_t ivrm_core_vdd_range_lo : 1;
+ uint64_t ivrm_eco_vdd_range_hi : 1;
+ uint64_t ivrm_eco_vdd_range_lo : 1;
+ uint64_t ivrm_core_vcs_range_hi : 1;
+ uint64_t ivrm_core_vcs_range_lo : 1;
+ uint64_t ivrm_eco_vcs_range_hi : 1;
+ uint64_t ivrm_eco_vcs_range_lo : 1;
+ uint64_t binsearch_cal_done : 1;
+ uint64_t ivrm_core_vdd_pfet_low_vout : 1;
+ uint64_t ivrm_core_vcs_pfet_low_vout : 1;
+ uint64_t ivrm_eco_vdd_pfet_low_vout : 1;
+ uint64_t ivrm_eco_vcs_pfet_low_vout : 1;
+ uint64_t ivrm_power_down_disable : 1;
+ uint64_t _reserved0 : 1;
+#else
+ uint64_t _reserved0 : 1;
+ uint64_t ivrm_power_down_disable : 1;
+ uint64_t ivrm_eco_vcs_pfet_low_vout : 1;
+ uint64_t ivrm_eco_vdd_pfet_low_vout : 1;
+ uint64_t ivrm_core_vcs_pfet_low_vout : 1;
+ uint64_t ivrm_core_vdd_pfet_low_vout : 1;
+ uint64_t binsearch_cal_done : 1;
+ uint64_t ivrm_eco_vcs_range_lo : 1;
+ uint64_t ivrm_eco_vcs_range_hi : 1;
+ uint64_t ivrm_core_vcs_range_lo : 1;
+ uint64_t ivrm_core_vcs_range_hi : 1;
+ uint64_t ivrm_eco_vdd_range_lo : 1;
+ uint64_t ivrm_eco_vdd_range_hi : 1;
+ uint64_t ivrm_core_vdd_range_lo : 1;
+ uint64_t ivrm_core_vdd_range_hi : 1;
+ uint64_t ivrm_pref_error_fine : 1;
+ uint64_t ivrm_pref_error_gross : 1;
+ uint64_t pvref_fail : 1;
+ uint64_t ivrm_vret_eco_vcs_pfet_strength : 5;
+ uint64_t ivrm_vret_eco_vdd_pfet_strength : 5;
+ uint64_t ivrm_vret_core_vcs_pfet_strength : 5;
+ uint64_t ivrm_vret_core_vdd_pfet_strength : 5;
+ uint64_t ivrm_vret_vcs : 7;
+ uint64_t ivrm_vret_vdd : 7;
+ uint64_t ivrm_eco_vcs_poweron : 1;
+ uint64_t ivrm_eco_vcs_bypass_b : 1;
+ uint64_t ivrm_eco_vdd_poweron : 1;
+ uint64_t ivrm_eco_vdd_bypass_b : 1;
+ uint64_t ivrm_core_vcs_poweron : 1;
+ uint64_t ivrm_core_vcs_bypass_b : 1;
+ uint64_t ivrm_core_vdd_poweron : 1;
+ uint64_t ivrm_core_vdd_bypass_b : 1;
+ uint64_t pvref_en : 1;
+ uint64_t binsearch_cal_ena : 1;
+ uint64_t use_ivrm_for_vret : 1;
+ uint64_t ivrm_fsm_enable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ivrm_control_status_reg_t;
+
+
+
+typedef union pcbs_ivrm_value_setting_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ivrm_core_vdd_ivid : 8;
+ uint64_t ivrm_core_vcs_ivid : 8;
+ uint64_t ivrm_eco_vdd_ivid : 8;
+ uint64_t ivrm_eco_vcs_ivid : 8;
+ uint64_t ivrm_core_vdd_pfet_strength : 5;
+ uint64_t ivrm_core_vcs_pfet_strength : 5;
+ uint64_t ivrm_eco_vdd_pfet_strength : 5;
+ uint64_t ivrm_eco_vcs_pfet_strength : 5;
+ uint64_t ivrm_vdd_core_pfetstr_valid : 1;
+ uint64_t ivrm_vcs_core_pfetstr_valid : 1;
+ uint64_t ivrm_vdd_eco_pfetstr_valid : 1;
+ uint64_t ivrm_vcs_eco_pfetstr_valid : 1;
+ uint64_t core_vdd_vpump_en : 1;
+ uint64_t core_vcs_vpump_en : 1;
+ uint64_t eco_vdd_vpump_en : 1;
+ uint64_t eco_vcs_vpump_en : 1;
+ uint64_t _reserved0 : 4;
+#else
+ uint64_t _reserved0 : 4;
+ uint64_t eco_vcs_vpump_en : 1;
+ uint64_t eco_vdd_vpump_en : 1;
+ uint64_t core_vcs_vpump_en : 1;
+ uint64_t core_vdd_vpump_en : 1;
+ uint64_t ivrm_vcs_eco_pfetstr_valid : 1;
+ uint64_t ivrm_vdd_eco_pfetstr_valid : 1;
+ uint64_t ivrm_vcs_core_pfetstr_valid : 1;
+ uint64_t ivrm_vdd_core_pfetstr_valid : 1;
+ uint64_t ivrm_eco_vcs_pfet_strength : 5;
+ uint64_t ivrm_eco_vdd_pfet_strength : 5;
+ uint64_t ivrm_core_vcs_pfet_strength : 5;
+ uint64_t ivrm_core_vdd_pfet_strength : 5;
+ uint64_t ivrm_eco_vcs_ivid : 8;
+ uint64_t ivrm_eco_vdd_ivid : 8;
+ uint64_t ivrm_core_vcs_ivid : 8;
+ uint64_t ivrm_core_vdd_ivid : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ivrm_value_setting_reg_t;
+
+
+
+typedef union pcbs_pcbspm_mode_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t enable_pstate_mode : 1;
+ uint64_t global_pstate_change_for_idle_state_enabled : 1;
+ uint64_t enable_global_pstate_req : 1;
+ uint64_t enable_winkle_with_cpm_mode : 1;
+ uint64_t enable_clipping_of_global_pstate_req : 1;
+ uint64_t chksw_hw214553 : 1;
+ uint64_t enable_pmc_pmax_sync_notification : 1;
+ uint64_t dpll_lock_replacement_timer_mode_en : 1;
+ uint64_t dpll_freqout_mode_en : 1;
+ uint64_t dpll_flock_mode_en : 1;
+ uint64_t enable_sense_delay_characterization : 1;
+ uint64_t sense_delay_timer_val : 7;
+ uint64_t cpm_fmin_clip_error_sel : 2;
+ uint64_t dbg_trace_sel : 4;
+ uint64_t trace_data_sel : 2;
+ uint64_t tp_cplt_ivrm_vpp_tune : 4;
+ uint64_t _reserved0 : 34;
+#else
+ uint64_t _reserved0 : 34;
+ uint64_t tp_cplt_ivrm_vpp_tune : 4;
+ uint64_t trace_data_sel : 2;
+ uint64_t dbg_trace_sel : 4;
+ uint64_t cpm_fmin_clip_error_sel : 2;
+ uint64_t sense_delay_timer_val : 7;
+ uint64_t enable_sense_delay_characterization : 1;
+ uint64_t dpll_flock_mode_en : 1;
+ uint64_t dpll_freqout_mode_en : 1;
+ uint64_t dpll_lock_replacement_timer_mode_en : 1;
+ uint64_t enable_pmc_pmax_sync_notification : 1;
+ uint64_t chksw_hw214553 : 1;
+ uint64_t enable_clipping_of_global_pstate_req : 1;
+ uint64_t enable_winkle_with_cpm_mode : 1;
+ uint64_t enable_global_pstate_req : 1;
+ uint64_t global_pstate_change_for_idle_state_enabled : 1;
+ uint64_t enable_pstate_mode : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pcbspm_mode_reg_t;
+
+#endif // __ASSEMBLER__
+#define PCBS_PCBSPM_MODE_REG_ENABLE_PSTATE_MODE SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PCBS_PCBSPM_MODE_REG_GLOBAL_PSTATE_CHANGE_FOR_IDLE_STATE_ENABLED SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PCBS_PCBSPM_MODE_REG_ENABLE_GLOBAL_PSTATE_REQ SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define PCBS_PCBSPM_MODE_REG_ENABLE_WINKLE_WITH_CPM_MODE SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define PCBS_PCBSPM_MODE_REG_ENABLE_CLIPPING_OF_GLOBAL_PSTATE_REQ SIXTYFOUR_BIT_CONSTANT(0x0800000000000000)
+#define PCBS_PCBSPM_MODE_REG_CHKSW_HW214553 SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
+#define PCBS_PCBSPM_MODE_REG_ENABLE_PMC_PMAX_SYNC_NOTIFICATION SIXTYFOUR_BIT_CONSTANT(0x0200000000000000)
+#define PCBS_PCBSPM_MODE_REG_DPLL_LOCK_REPLACEMENT_TIMER_MODE_EN SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
+#define PCBS_PCBSPM_MODE_REG_DPLL_FREQOUT_MODE_EN SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PCBS_PCBSPM_MODE_REG_DPLL_FLOCK_MODE_EN SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PCBS_PCBSPM_MODE_REG_ENABLE_SENSE_DELAY_CHARACTERIZATION SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define PCBS_PCBSPM_MODE_REG_SENSE_DELAY_TIMER_VAL_MASK SIXTYFOUR_BIT_CONSTANT(0x001fc00000000000)
+#define PCBS_PCBSPM_MODE_REG_CPM_FMIN_CLIP_ERROR_SEL_MASK SIXTYFOUR_BIT_CONSTANT(0x0000300000000000)
+#define PCBS_PCBSPM_MODE_REG_DBG_TRACE_SEL_MASK SIXTYFOUR_BIT_CONSTANT(0x00000f0000000000)
+#define PCBS_PCBSPM_MODE_REG_TRACE_DATA_SEL_MASK SIXTYFOUR_BIT_CONSTANT(0x000000c000000000)
+#define PCBS_PCBSPM_MODE_REG_TP_CPLT_IVRM_VPP_TUNE_MASK SIXTYFOUR_BIT_CONSTANT(0x0000003c00000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union pcbs_ivrm_pfetstr_sense_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ivrm_core_vdd_pfetstr_sns : 5;
+ uint64_t ivrm_core_vcs_pfetstr_sns : 5;
+ uint64_t ivrm_eco_vdd_pfetstr_sns : 5;
+ uint64_t ivrm_eco_vcs_pfetstr_sns : 5;
+ uint64_t ivrm_vdd_core_pfetstr_valid_sns : 1;
+ uint64_t ivrm_vcs_core_pfetstr_valid_sns : 1;
+ uint64_t ivrm_vdd_eco_pfetstr_valid_sns : 1;
+ uint64_t ivrm_vcs_eco_pfetstr_valid_sns : 1;
+ uint64_t core_vdd_bypass_b_sense : 1;
+ uint64_t core_vcs_bypass_b_sense : 1;
+ uint64_t eco_vdd_bypass_b_sense : 1;
+ uint64_t eco_vcs_bypass_b_sense : 1;
+ uint64_t core_vdd_poweron_sense : 1;
+ uint64_t core_vcs_poweron_sense : 1;
+ uint64_t eco_vdd_poweron_sense : 1;
+ uint64_t eco_vcs_poweron_sense : 1;
+ uint64_t core_vdd_vpump_en_sense : 1;
+ uint64_t core_vcs_vpump_en_sense : 1;
+ uint64_t eco_vdd_vpump_en_sense : 1;
+ uint64_t eco_vcs_vpump_en_sense : 1;
+ uint64_t core_vdd_pfet_low_vout_sns : 1;
+ uint64_t core_vcs_pfet_low_vout_sns : 1;
+ uint64_t eco_vdd_pfet_low_vout_sns : 1;
+ uint64_t eco_vcs_pfet_low_vout_sns : 1;
+ uint64_t _reserved0 : 24;
+#else
+ uint64_t _reserved0 : 24;
+ uint64_t eco_vcs_pfet_low_vout_sns : 1;
+ uint64_t eco_vdd_pfet_low_vout_sns : 1;
+ uint64_t core_vcs_pfet_low_vout_sns : 1;
+ uint64_t core_vdd_pfet_low_vout_sns : 1;
+ uint64_t eco_vcs_vpump_en_sense : 1;
+ uint64_t eco_vdd_vpump_en_sense : 1;
+ uint64_t core_vcs_vpump_en_sense : 1;
+ uint64_t core_vdd_vpump_en_sense : 1;
+ uint64_t eco_vcs_poweron_sense : 1;
+ uint64_t eco_vdd_poweron_sense : 1;
+ uint64_t core_vcs_poweron_sense : 1;
+ uint64_t core_vdd_poweron_sense : 1;
+ uint64_t eco_vcs_bypass_b_sense : 1;
+ uint64_t eco_vdd_bypass_b_sense : 1;
+ uint64_t core_vcs_bypass_b_sense : 1;
+ uint64_t core_vdd_bypass_b_sense : 1;
+ uint64_t ivrm_vcs_eco_pfetstr_valid_sns : 1;
+ uint64_t ivrm_vdd_eco_pfetstr_valid_sns : 1;
+ uint64_t ivrm_vcs_core_pfetstr_valid_sns : 1;
+ uint64_t ivrm_vdd_core_pfetstr_valid_sns : 1;
+ uint64_t ivrm_eco_vcs_pfetstr_sns : 5;
+ uint64_t ivrm_eco_vdd_pfetstr_sns : 5;
+ uint64_t ivrm_core_vcs_pfetstr_sns : 5;
+ uint64_t ivrm_core_vdd_pfetstr_sns : 5;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ivrm_pfetstr_sense_reg_t;
+
+
+
+typedef union pcbs_power_management_idle_control_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t nap_pstate_req : 8;
+ uint64_t nap_pstate_en : 1;
+ uint64_t nap_global_en : 1;
+ uint64_t nap_latency : 2;
+ uint64_t reserved_ppmicr_0 : 4;
+ int64_t sleep_pstate_req : 8;
+ uint64_t sleep_pstate_en : 1;
+ uint64_t sleep_global_en : 1;
+ uint64_t sleep_latency : 2;
+ uint64_t reserved_ppmicr_1 : 4;
+ int64_t winkle_pstate_req : 8;
+ uint64_t winkle_pstate_en : 1;
+ uint64_t winkle_global_en : 1;
+ uint64_t winkle_latency : 2;
+ uint64_t reserved_ppmicr_2 : 4;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t reserved_ppmicr_2 : 4;
+ uint64_t winkle_latency : 2;
+ uint64_t winkle_global_en : 1;
+ uint64_t winkle_pstate_en : 1;
+ int64_t winkle_pstate_req : 8;
+ uint64_t reserved_ppmicr_1 : 4;
+ uint64_t sleep_latency : 2;
+ uint64_t sleep_global_en : 1;
+ uint64_t sleep_pstate_en : 1;
+ int64_t sleep_pstate_req : 8;
+ uint64_t reserved_ppmicr_0 : 4;
+ uint64_t nap_latency : 2;
+ uint64_t nap_global_en : 1;
+ uint64_t nap_pstate_en : 1;
+ int64_t nap_pstate_req : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_power_management_idle_control_reg_t;
+
+
+
+typedef union pcbs_power_management_control_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t global_pstate_req : 8;
+ int64_t local_pstate_req : 8;
+ uint64_t auto_override0_pstate_limit_en : 1;
+ uint64_t auto_override1_pstate_limit_en : 1;
+ uint64_t reserved_ppmcr : 6;
+ int64_t auto_override_pstate0 : 8;
+ int64_t auto_override_pstate1 : 8;
+ uint64_t _reserved0 : 24;
+#else
+ uint64_t _reserved0 : 24;
+ int64_t auto_override_pstate1 : 8;
+ int64_t auto_override_pstate0 : 8;
+ uint64_t reserved_ppmcr : 6;
+ uint64_t auto_override1_pstate_limit_en : 1;
+ uint64_t auto_override0_pstate_limit_en : 1;
+ int64_t local_pstate_req : 8;
+ int64_t global_pstate_req : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_power_management_control_reg_t;
+
+
+
+typedef union pcbs_pmc_vf_ctrl_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t pglobal_actual : 8;
+ uint64_t maxregvcs : 8;
+ uint64_t maxregvdd : 8;
+ uint64_t evidvcs_eff : 8;
+ uint64_t evidvdd_eff : 8;
+ uint64_t _reserved0 : 24;
+#else
+ uint64_t _reserved0 : 24;
+ uint64_t evidvdd_eff : 8;
+ uint64_t evidvcs_eff : 8;
+ uint64_t maxregvdd : 8;
+ uint64_t maxregvcs : 8;
+ int64_t pglobal_actual : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pmc_vf_ctrl_reg_t;
+
+
+
+typedef union pcbs_undervolting_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t puv_min : 8;
+ int64_t puv_max : 8;
+ uint64_t kuv : 6;
+ uint64_t _reserved0 : 42;
+#else
+ uint64_t _reserved0 : 42;
+ uint64_t kuv : 6;
+ int64_t puv_max : 8;
+ int64_t puv_min : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_undervolting_reg_t;
+
+
+
+typedef union pcbs_pstate_index_bound_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t lpsi_min : 8;
+ uint64_t lpsi_entries_minus_1 : 7;
+ uint64_t _reserved0 : 49;
+#else
+ uint64_t _reserved0 : 49;
+ uint64_t lpsi_entries_minus_1 : 7;
+ uint64_t lpsi_min : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pstate_index_bound_reg_t;
+
+
+
+typedef union pcbs_power_management_bounds_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t pmin_clip : 8;
+ int64_t pmax_clip : 8;
+ uint64_t _reserved0 : 48;
+#else
+ uint64_t _reserved0 : 48;
+ int64_t pmax_clip : 8;
+ int64_t pmin_clip : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_power_management_bounds_reg_t;
+
+
+
+typedef union pcbs_pstate_table_ctrl_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pstate_table_address : 7;
+ uint64_t _reserved0 : 57;
+#else
+ uint64_t _reserved0 : 57;
+ uint64_t pstate_table_address : 7;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pstate_table_ctrl_reg_t;
+
+
+
+typedef union pcbs_pstate_table_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pstate_data : 64;
+#else
+ uint64_t pstate_data : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pstate_table_reg_t;
+
+
+
+typedef union pcbs_pstate_step_target_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t local_pstate_eff_req : 8;
+ int64_t local_pstate_target : 8;
+ int64_t local_core_pstate_step_target : 8;
+ int64_t local_eco_pstate_step_target : 8;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ int64_t local_eco_pstate_step_target : 8;
+ int64_t local_core_pstate_step_target : 8;
+ int64_t local_pstate_target : 8;
+ int64_t local_pstate_eff_req : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_pstate_step_target_reg_t;
+
+
+
+typedef union pcbs_dpll_status_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dpll_ff_freqout : 15;
+ uint64_t dpll_frequ_change : 1;
+ uint64_t dpll_status_spare_bit1 : 1;
+ uint64_t pmax_sync_pending : 1;
+ uint64_t ga_ack_pending : 1;
+ int64_t capped_global_pstate_req : 8;
+ uint64_t dpll_fmax_and_cpmbit2 : 1;
+ uint64_t dpll_fmax_and_cpmbit3 : 1;
+ uint64_t dpll_fmax_and_cpmbit4 : 1;
+ uint64_t dpll_fmin_and_not_cpmbit2 : 1;
+ uint64_t dpll_fmin_and_not_cpmbit1 : 1;
+ uint64_t dpll_fmin_and_not_cpmbit0 : 1;
+ uint64_t dpll_faster_than_fmax_plus_delta1 : 1;
+ uint64_t dpll_slower_than_fmin_minus_delta2 : 1;
+ uint64_t dpll_max_freqout_after_last_read : 14;
+ uint64_t dpll_min_freqout_after_last_read : 14;
+ uint64_t _reserved0 : 1;
+#else
+ uint64_t _reserved0 : 1;
+ uint64_t dpll_min_freqout_after_last_read : 14;
+ uint64_t dpll_max_freqout_after_last_read : 14;
+ uint64_t dpll_slower_than_fmin_minus_delta2 : 1;
+ uint64_t dpll_faster_than_fmax_plus_delta1 : 1;
+ uint64_t dpll_fmin_and_not_cpmbit0 : 1;
+ uint64_t dpll_fmin_and_not_cpmbit1 : 1;
+ uint64_t dpll_fmin_and_not_cpmbit2 : 1;
+ uint64_t dpll_fmax_and_cpmbit4 : 1;
+ uint64_t dpll_fmax_and_cpmbit3 : 1;
+ uint64_t dpll_fmax_and_cpmbit2 : 1;
+ int64_t capped_global_pstate_req : 8;
+ uint64_t ga_ack_pending : 1;
+ uint64_t pmax_sync_pending : 1;
+ uint64_t dpll_status_spare_bit1 : 1;
+ uint64_t dpll_frequ_change : 1;
+ uint64_t dpll_ff_freqout : 15;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_dpll_status_reg_t;
+
+
+
+typedef union pcbs_ivrm_vid_control_reg0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ivrm_req_pstate_stepdelay_rising : 8;
+ uint64_t ivrm_req_pstate_stepdelay_lowering : 8;
+ uint64_t _reserved0 : 48;
+#else
+ uint64_t _reserved0 : 48;
+ uint64_t ivrm_req_pstate_stepdelay_lowering : 8;
+ uint64_t ivrm_req_pstate_stepdelay_rising : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ivrm_vid_control_reg0_t;
+
+
+
+typedef union pcbs_ivrm_vid_control_reg1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ivrm_stabilize_delay_run : 8;
+ uint64_t ivrm_stabilize_delay_idle : 8;
+ uint64_t ivrm_pfstr_prop_delay : 8;
+ uint64_t ivrm_pfstrvalid_prop_delay : 8;
+ uint64_t ivrm_vpump_poweron_time : 8;
+ uint64_t ivrm_bypass_delay : 8;
+ uint64_t pfet_vpump_enable_delay : 8;
+ uint64_t ivrm_vid_vout_threshold : 7;
+ uint64_t _reserved0 : 1;
+#else
+ uint64_t _reserved0 : 1;
+ uint64_t ivrm_vid_vout_threshold : 7;
+ uint64_t pfet_vpump_enable_delay : 8;
+ uint64_t ivrm_bypass_delay : 8;
+ uint64_t ivrm_vpump_poweron_time : 8;
+ uint64_t ivrm_pfstrvalid_prop_delay : 8;
+ uint64_t ivrm_pfstr_prop_delay : 8;
+ uint64_t ivrm_stabilize_delay_idle : 8;
+ uint64_t ivrm_stabilize_delay_run : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_ivrm_vid_control_reg1_t;
+
+
+
+typedef union pcbs_occ_heartbeat_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t occ_heartbeat_time : 8;
+ uint64_t occ_heartbeat_enable : 1;
+ uint64_t occ_heartbeat_reg_addr_offset : 8;
+ int64_t psafe : 8;
+ uint64_t _reserved0 : 39;
+#else
+ uint64_t _reserved0 : 39;
+ int64_t psafe : 8;
+ uint64_t occ_heartbeat_reg_addr_offset : 8;
+ uint64_t occ_heartbeat_enable : 1;
+ uint64_t occ_heartbeat_time : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_occ_heartbeat_reg_t;
+
+
+
+typedef union pcbs_resonant_clock_control_reg0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t resclk_dis : 1;
+ uint64_t resclk_control_mode : 1;
+ uint64_t resclk_sync_pw : 3;
+ uint64_t res_sync_delay_cnt : 7;
+ uint64_t res_csb_str_instr_lo : 15;
+ uint64_t res_csb_str_instr_hi : 15;
+ uint64_t _reserved0 : 22;
+#else
+ uint64_t _reserved0 : 22;
+ uint64_t res_csb_str_instr_hi : 15;
+ uint64_t res_csb_str_instr_lo : 15;
+ uint64_t res_sync_delay_cnt : 7;
+ uint64_t resclk_sync_pw : 3;
+ uint64_t resclk_control_mode : 1;
+ uint64_t resclk_dis : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_resonant_clock_control_reg0_t;
+
+
+
+typedef union pcbs_resonant_clock_control_reg1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ int64_t full_csb_ps : 8;
+ int64_t res_low_lower_ps : 8;
+ int64_t res_low_upper_ps : 8;
+ int64_t res_high_lower_ps : 8;
+ int64_t res_high_upper_ps : 8;
+ uint64_t nonres_csb_value_ti : 4;
+ uint64_t full_csb_value_ti : 4;
+ uint64_t resclk_value : 9;
+ uint64_t resclk_core_sync_value : 1;
+ uint64_t csb_eco_sync_value : 1;
+ uint64_t _reserved0 : 5;
+#else
+ uint64_t _reserved0 : 5;
+ uint64_t csb_eco_sync_value : 1;
+ uint64_t resclk_core_sync_value : 1;
+ uint64_t resclk_value : 9;
+ uint64_t full_csb_value_ti : 4;
+ uint64_t nonres_csb_value_ti : 4;
+ int64_t res_high_upper_ps : 8;
+ int64_t res_high_lower_ps : 8;
+ int64_t res_low_upper_ps : 8;
+ int64_t res_low_lower_ps : 8;
+ int64_t full_csb_ps : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_resonant_clock_control_reg1_t;
+
+
+
+typedef union pcbs_resonant_clock_status_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t resclk_state : 1;
+ uint64_t res_hi_induct_en : 1;
+ uint64_t resclk_inprogress : 1;
+ uint64_t resclk_full_csb : 1;
+ uint64_t _reserved0 : 60;
+#else
+ uint64_t _reserved0 : 60;
+ uint64_t resclk_full_csb : 1;
+ uint64_t resclk_inprogress : 1;
+ uint64_t res_hi_induct_en : 1;
+ uint64_t resclk_state : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_resonant_clock_status_reg_t;
+
+
+
+typedef union pcbs_local_pstate_frequency_target_control_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t delay_time : 3;
+ uint64_t record_transitions : 1;
+ uint64_t multiplier : 15;
+ uint64_t enable_lpft_function : 1;
+ uint64_t _reserved0 : 44;
+#else
+ uint64_t _reserved0 : 44;
+ uint64_t enable_lpft_function : 1;
+ uint64_t multiplier : 15;
+ uint64_t record_transitions : 1;
+ uint64_t delay_time : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_local_pstate_frequency_target_control_reg_t;
+
+
+
+typedef union pcbs_local_pstate_frequency_target_status_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t valid : 1;
+ uint64_t cpm_dpll : 1;
+ uint64_t ivrm : 1;
+ uint64_t transition : 1;
+ uint64_t stable : 1;
+ uint64_t delta : 24;
+ uint64_t cumulative : 24;
+ uint64_t pstate : 8;
+ uint64_t _reserved0 : 3;
+#else
+ uint64_t _reserved0 : 3;
+ uint64_t pstate : 8;
+ uint64_t cumulative : 24;
+ uint64_t delta : 24;
+ uint64_t stable : 1;
+ uint64_t transition : 1;
+ uint64_t ivrm : 1;
+ uint64_t cpm_dpll : 1;
+ uint64_t valid : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_local_pstate_frequency_target_status_reg_t;
+
+
+
+typedef union pcbs_fsm_monitor1_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t babystep_main_fsm : 7;
+ uint64_t babystep_slave_fsm : 5;
+ uint64_t core_railstepper_main_fsm : 5;
+ uint64_t eco_railstepper_main_fsm : 5;
+ uint64_t core_railstepper_sub_fsm : 4;
+ uint64_t eco_railstepper_sub_fsm : 4;
+ uint64_t core_railstepper_byp_fsm : 5;
+ uint64_t eco_railstepper_byp_fsm : 5;
+ uint64_t ivrm_core_vdd_sequencer_fsm : 6;
+ uint64_t ivrm_core_vcs_sequencer_fsm : 6;
+ uint64_t ivrm_eco_vdd_sequencer_fsm : 6;
+ uint64_t ivrm_eco_vcs_sequencer_fsm : 6;
+#else
+ uint64_t ivrm_eco_vcs_sequencer_fsm : 6;
+ uint64_t ivrm_eco_vdd_sequencer_fsm : 6;
+ uint64_t ivrm_core_vcs_sequencer_fsm : 6;
+ uint64_t ivrm_core_vdd_sequencer_fsm : 6;
+ uint64_t eco_railstepper_byp_fsm : 5;
+ uint64_t core_railstepper_byp_fsm : 5;
+ uint64_t eco_railstepper_sub_fsm : 4;
+ uint64_t core_railstepper_sub_fsm : 4;
+ uint64_t eco_railstepper_main_fsm : 5;
+ uint64_t core_railstepper_main_fsm : 5;
+ uint64_t babystep_slave_fsm : 5;
+ uint64_t babystep_main_fsm : 7;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_fsm_monitor1_reg_t;
+
+
+
+typedef union pcbs_fsm_monitor2_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t resclk_band_fsm : 7;
+ uint64_t resclk_lowres_fsm : 4;
+ uint64_t resclk_highres_fsm : 4;
+ uint64_t resclk_fullcsb_fsm : 4;
+ uint64_t resclk_update_fsm : 4;
+ uint64_t idle_transition_fsm : 7;
+ uint64_t peco_step_target_uv : 8;
+ uint64_t pcore_step_target_uv : 8;
+ uint64_t _reserved0 : 18;
+#else
+ uint64_t _reserved0 : 18;
+ uint64_t pcore_step_target_uv : 8;
+ uint64_t peco_step_target_uv : 8;
+ uint64_t idle_transition_fsm : 7;
+ uint64_t resclk_update_fsm : 4;
+ uint64_t resclk_fullcsb_fsm : 4;
+ uint64_t resclk_highres_fsm : 4;
+ uint64_t resclk_lowres_fsm : 4;
+ uint64_t resclk_band_fsm : 7;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_fsm_monitor2_reg_t;
+
+
+
+typedef union pcbs_chksw_unassisted_interrupts {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 1;
+ uint64_t _reserved0 : 63;
+#else
+ uint64_t _reserved0 : 63;
+ uint64_t value : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pcbs_chksw_unassisted_interrupts_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __PCBS_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/pcbs_register_addresses.h b/src/ssx/pgp/registers/pcbs_register_addresses.h
new file mode 100755
index 0000000..8c465d1
--- /dev/null
+++ b/src/ssx/pgp/registers/pcbs_register_addresses.h
@@ -0,0 +1,74 @@
+#ifndef __PCBS_REGISTER_ADDRESSES_H__
+#define __PCBS_REGISTER_ADDRESSES_H__
+
+// $Id: pcbs_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:24 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pcbs_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pcbs_register_addresses.h
+/// \brief Symbolic addresses for the PCBS unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define PCBS_PIB_BASE 0x100f0100
+#define PCBS_PMGP0_REG 0x100f0100
+#define PCBS_PMGP0_REG_AND 0x100f0101
+#define PCBS_PMGP0_REG_OR 0x100f0102
+#define PCBS_PMGP1_REG 0x100f0103
+#define PCBS_PMGP1_REG_AND 0x100f0104
+#define PCBS_PMGP1_REG_OR 0x100f0105
+#define PCBS_PFVDDCNTLSTAT_REG 0x100f0106
+#define PCBS_PFVCSCNTLSTAT_REG 0x100f010e
+#define PCBS_PFSENSE_REG 0x100f0107
+#define PCBS_PMERRSUM_REG 0x100f0108
+#define PCBS_PMERR_REG 0x100f0109
+#define PCBS_PMERRMASK_REG 0x100f010a
+#define PCBS_PMSPCWKUPFSP_REG 0x100f010b
+#define PCBS_PMSPCWKUPOCC_REG 0x100f010c
+#define PCBS_PMSPCWKUPPHYP_REG 0x100f010d
+#define PCBS_PMSTATEHISTPHYP_REG 0x100f0110
+#define PCBS_PMSTATEHISTFSP_REG 0x100f0111
+#define PCBS_PMSTATEHISTOCC_REG 0x100f0112
+#define PCBS_PMSTATEHISTPERF_REG 0x100f0113
+#define PCBS_IDLEFSMGOTOCMD_REG 0x100f0114
+#define PCBS_COREPFPUDLY_REG 0x100f012c
+#define PCBS_COREPFPDDLY_REG 0x100f012d
+#define PCBS_COREPFVRET_REG 0x100f0130
+#define PCBS_ECOPFPUDLY_REG 0x100f014c
+#define PCBS_ECOPFPDDLY_REG 0x100f014d
+#define PCBS_ECOPFVRET_REG 0x100f0150
+#define PCBS_FREQ_CTRL_REG 0x100f0151
+#define PCBS_DPLL_CPM_PARM_REG 0x100f0152
+#define PCBS_POWER_MANAGEMENT_STATUS_REG 0x100f0153
+#define PCBS_IVRM_CONTROL_STATUS_REG 0x100f0154
+#define PCBS_IVRM_VALUE_SETTING_REG 0x100f0155
+#define PCBS_PCBSPM_MODE_REG 0x100f0156
+#define PCBS_IVRM_PFETSTR_SENSE_REG 0x100f0157
+#define PCBS_POWER_MANAGEMENT_IDLE_CONTROL_REG 0x100f0158
+#define PCBS_POWER_MANAGEMENT_CONTROL_REG 0x100f0159
+#define PCBS_PMC_VF_CTRL_REG 0x100f015a
+#define PCBS_UNDERVOLTING_REG 0x100f015b
+#define PCBS_PSTATE_INDEX_BOUND_REG 0x100f015c
+#define PCBS_POWER_MANAGEMENT_BOUNDS_REG 0x100f015d
+#define PCBS_PSTATE_TABLE_CTRL_REG 0x100f015e
+#define PCBS_PSTATE_TABLE_REG 0x100f015f
+#define PCBS_PSTATE_STEP_TARGET_REG 0x100f0160
+#define PCBS_DPLL_STATUS_REG 0x100f0161
+#define PCBS_IVRM_VID_CONTROL_REG0 0x100f0162
+#define PCBS_IVRM_VID_CONTROL_REG1 0x100f0163
+#define PCBS_OCC_HEARTBEAT_REG 0x100f0164
+#define PCBS_RESONANT_CLOCK_CONTROL_REG0 0x100f0165
+#define PCBS_RESONANT_CLOCK_CONTROL_REG1 0x100f0166
+#define PCBS_RESONANT_CLOCK_STATUS_REG 0x100f0167
+#define PCBS_LOCAL_PSTATE_FREQUENCY_TARGET_CONTROL_REG 0x100f0168
+#define PCBS_LOCAL_PSTATE_FREQUENCY_TARGET_STATUS_REG 0x100f0169
+#define PCBS_FSM_MONITOR1_REG 0x100f0170
+#define PCBS_FSM_MONITOR2_REG 0x100f0171
+
+#endif // __PCBS_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/pibmem_firmware_registers.h b/src/ssx/pgp/registers/pibmem_firmware_registers.h
new file mode 100644
index 0000000..3b36fc1
--- /dev/null
+++ b/src/ssx/pgp/registers/pibmem_firmware_registers.h
@@ -0,0 +1,264 @@
+#ifndef __PIBMEM_FIRMWARE_REGISTERS_H__
+#define __PIBMEM_FIRMWARE_REGISTERS_H__
+
+// $Id: pibmem_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pibmem_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pibmem_firmware_registers.h
+/// \brief C register structs for the PIBMEM unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union pibmem_data0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_data0_t;
+
+
+
+typedef union pibmem_control {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t auto_pre_increment : 1;
+ uint64_t auto_post_decrement : 1;
+ uint64_t _reserved0 : 62;
+#else
+ uint64_t _reserved0 : 62;
+ uint64_t auto_post_decrement : 1;
+ uint64_t auto_pre_increment : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_control_t;
+
+
+
+typedef union pibmem_address {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved0 : 48;
+ uint64_t address : 16;
+#else
+ uint64_t address : 16;
+ uint64_t reserved0 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_address_t;
+
+
+
+typedef union pibmem_data {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_data_t;
+
+
+
+typedef union pibmem_data_inc {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_data_inc_t;
+
+
+
+typedef union pibmem_data_dec {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_data_dec_t;
+
+
+
+typedef union pibmem_status {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t addr_invalid : 1;
+ uint64_t write_invalid : 1;
+ uint64_t read_invalid : 1;
+ uint64_t ecc_uncorrected_error : 1;
+ uint64_t ecc_corrected_error : 1;
+ uint64_t bad_array_address : 1;
+ uint64_t reserved6 : 5;
+ uint64_t fsm_present_state : 7;
+ uint64_t _reserved0 : 46;
+#else
+ uint64_t _reserved0 : 46;
+ uint64_t fsm_present_state : 7;
+ uint64_t reserved6 : 5;
+ uint64_t bad_array_address : 1;
+ uint64_t ecc_corrected_error : 1;
+ uint64_t ecc_uncorrected_error : 1;
+ uint64_t read_invalid : 1;
+ uint64_t write_invalid : 1;
+ uint64_t addr_invalid : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_status_t;
+
+
+
+typedef union pibmem_reset {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reset_code : 2;
+ uint64_t _reserved0 : 62;
+#else
+ uint64_t _reserved0 : 62;
+ uint64_t reset_code : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_reset_t;
+
+
+
+typedef union pibmem_repair {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 64;
+#else
+ uint64_t value : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pibmem_repair_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __PIBMEM_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/pibmem_register_addresses.h b/src/ssx/pgp/registers/pibmem_register_addresses.h
new file mode 100644
index 0000000..0cffaa2
--- /dev/null
+++ b/src/ssx/pgp/registers/pibmem_register_addresses.h
@@ -0,0 +1,30 @@
+#ifndef __PIBMEM_REGISTER_ADDRESSES_H__
+#define __PIBMEM_REGISTER_ADDRESSES_H__
+
+// $Id: pibmem_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/pibmem_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pibmem_register_addresses.h
+/// \brief Symbolic addresses for the PIBMEM unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define PIBMEM_PIB_BASE 0x00080000
+#define PIBMEM_DATA0 0x00080000
+#define PIBMEM_CONTROL 0x00088000
+#define PIBMEM_ADDRESS 0x00088001
+#define PIBMEM_DATA 0x00088002
+#define PIBMEM_DATA_INC 0x00088003
+#define PIBMEM_DATA_DEC 0x00088004
+#define PIBMEM_STATUS 0x00088005
+#define PIBMEM_RESET 0x00088006
+#define PIBMEM_REPAIR 0x00088007
+
+#endif // __PIBMEM_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/plb_arbiter_firmware_registers.h b/src/ssx/pgp/registers/plb_arbiter_firmware_registers.h
new file mode 100755
index 0000000..583e95d
--- /dev/null
+++ b/src/ssx/pgp/registers/plb_arbiter_firmware_registers.h
@@ -0,0 +1,215 @@
+#ifndef __PLB_ARBITER_FIRMWARE_REGISTERS_H__
+#define __PLB_ARBITER_FIRMWARE_REGISTERS_H__
+
+// $Id: plb_arbiter_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/plb_arbiter_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file plb_arbiter_firmware_registers.h
+/// \brief C register structs for the PLB_ARBITER unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union plb_prev {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} plb_prev_t;
+
+
+
+typedef union plb_pacr {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t ppm : 1;
+ uint32_t ppo : 3;
+ uint32_t hbu : 1;
+ uint32_t rdp : 2;
+ uint32_t wrp : 1;
+ uint32_t _reserved0 : 24;
+#else
+ uint32_t _reserved0 : 24;
+ uint32_t wrp : 1;
+ uint32_t rdp : 2;
+ uint32_t hbu : 1;
+ uint32_t ppo : 3;
+ uint32_t ppm : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} plb_pacr_t;
+
+
+
+typedef union plb_pesr {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pte0 : 1;
+ uint32_t rw0 : 1;
+ uint32_t flk0 : 1;
+ uint32_t alk0 : 1;
+ uint32_t pte1 : 1;
+ uint32_t rw1 : 1;
+ uint32_t flk1 : 1;
+ uint32_t alk1 : 1;
+ uint32_t pte2 : 1;
+ uint32_t rw2 : 1;
+ uint32_t flk2 : 1;
+ uint32_t alk2 : 1;
+ uint32_t pte3 : 1;
+ uint32_t rw3 : 1;
+ uint32_t flk3 : 1;
+ uint32_t alk3 : 1;
+ uint32_t pte4 : 1;
+ uint32_t rw4 : 1;
+ uint32_t flk4 : 1;
+ uint32_t alk4 : 1;
+ uint32_t pte5 : 1;
+ uint32_t rw5 : 1;
+ uint32_t flk5 : 1;
+ uint32_t alk5 : 1;
+ uint32_t pte6 : 1;
+ uint32_t rw6 : 1;
+ uint32_t flk6 : 1;
+ uint32_t alk6 : 1;
+ uint32_t pte7 : 1;
+ uint32_t rw7 : 1;
+ uint32_t flk7 : 1;
+ uint32_t alk7 : 1;
+#else
+ uint32_t alk7 : 1;
+ uint32_t flk7 : 1;
+ uint32_t rw7 : 1;
+ uint32_t pte7 : 1;
+ uint32_t alk6 : 1;
+ uint32_t flk6 : 1;
+ uint32_t rw6 : 1;
+ uint32_t pte6 : 1;
+ uint32_t alk5 : 1;
+ uint32_t flk5 : 1;
+ uint32_t rw5 : 1;
+ uint32_t pte5 : 1;
+ uint32_t alk4 : 1;
+ uint32_t flk4 : 1;
+ uint32_t rw4 : 1;
+ uint32_t pte4 : 1;
+ uint32_t alk3 : 1;
+ uint32_t flk3 : 1;
+ uint32_t rw3 : 1;
+ uint32_t pte3 : 1;
+ uint32_t alk2 : 1;
+ uint32_t flk2 : 1;
+ uint32_t rw2 : 1;
+ uint32_t pte2 : 1;
+ uint32_t alk1 : 1;
+ uint32_t flk1 : 1;
+ uint32_t rw1 : 1;
+ uint32_t pte1 : 1;
+ uint32_t alk0 : 1;
+ uint32_t flk0 : 1;
+ uint32_t rw0 : 1;
+ uint32_t pte0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} plb_pesr_t;
+
+
+
+typedef union plb_pearl {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} plb_pearl_t;
+
+
+
+typedef union plb_pearh {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} plb_pearh_t;
+
+
+
+typedef union plb_sto_pesr {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t icu_te : 1;
+ uint32_t icu_rw : 1;
+ uint32_t reserved2 : 2;
+ uint32_t dcu_te : 1;
+ uint32_t dcu_rw : 1;
+ uint32_t reserved6 : 2;
+ uint32_t _reserved0 : 24;
+#else
+ uint32_t _reserved0 : 24;
+ uint32_t reserved6 : 2;
+ uint32_t dcu_rw : 1;
+ uint32_t dcu_te : 1;
+ uint32_t reserved2 : 2;
+ uint32_t icu_rw : 1;
+ uint32_t icu_te : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} plb_sto_pesr_t;
+
+
+
+typedef union plb_sto_pear {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t value : 32;
+#else
+ uint32_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} plb_sto_pear_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __PLB_ARBITER_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/plb_arbiter_register_addresses.h b/src/ssx/pgp/registers/plb_arbiter_register_addresses.h
new file mode 100755
index 0000000..2bc2f41
--- /dev/null
+++ b/src/ssx/pgp/registers/plb_arbiter_register_addresses.h
@@ -0,0 +1,28 @@
+#ifndef __PLB_ARBITER_REGISTER_ADDRESSES_H__
+#define __PLB_ARBITER_REGISTER_ADDRESSES_H__
+
+// $Id: plb_arbiter_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:24 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/plb_arbiter_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file plb_arbiter_register_addresses.h
+/// \brief Symbolic addresses for the PLB_ARBITER unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define PLB_DCR_BASE 0x90
+#define PLB_PREV 0x00000092
+#define PLB_PACR 0x00000093
+#define PLB_PESR 0x00000094
+#define PLB_PEARL 0x00000096
+#define PLB_PEARH 0x00000097
+#define PLB_STO_PESR 0x00000099
+#define PLB_STO_PEAR 0x00000098
+
+#endif // __PLB_ARBITER_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/pmc_firmware_registers.h b/src/ssx/pgp/registers/pmc_firmware_registers.h
new file mode 100755
index 0000000..76642a4
--- /dev/null
+++ b/src/ssx/pgp/registers/pmc_firmware_registers.h
@@ -0,0 +1,3140 @@
+#ifndef __PMC_FIRMWARE_REGISTERS_H__
+#define __PMC_FIRMWARE_REGISTERS_H__
+
+// $Id: pmc_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pmc_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pmc_firmware_registers.h
+/// \brief C register structs for the PMC unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union pmc_mode_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t enable_hw_pstate_mode : 1;
+ uint32_t enable_fw_auction_pstate_mode : 1;
+ uint32_t enable_fw_pstate_mode : 1;
+ uint32_t enable_pstate_voltage_changes : 1;
+ uint32_t enable_global_actual_pstate_forwarding : 1;
+ uint32_t halt_pstate_master_fsm : 1;
+ uint32_t enable_interchip_interface : 1;
+ uint32_t interchip_mode : 1;
+ uint32_t enable_interchip_pstate_in_haps : 1;
+ uint32_t enable_pstate_stepping : 1;
+ uint32_t honor_oha_idle_state_requests : 1;
+ uint32_t vid_endianess : 1;
+ uint32_t reset_all_pmc_registers : 1;
+ uint32_t safe_mode_without_spivid : 1;
+ uint32_t halt_idle_state_master_fsm : 1;
+ uint32_t interchip_halt_if : 1;
+ uint32_t unfreeze_pstate_processing : 1;
+ uint32_t spivid_reset_if : 1;
+ uint32_t unfreeze_istate_processing : 1;
+ uint32_t _reserved0 : 13;
+#else
+ uint32_t _reserved0 : 13;
+ uint32_t unfreeze_istate_processing : 1;
+ uint32_t spivid_reset_if : 1;
+ uint32_t unfreeze_pstate_processing : 1;
+ uint32_t interchip_halt_if : 1;
+ uint32_t halt_idle_state_master_fsm : 1;
+ uint32_t safe_mode_without_spivid : 1;
+ uint32_t reset_all_pmc_registers : 1;
+ uint32_t vid_endianess : 1;
+ uint32_t honor_oha_idle_state_requests : 1;
+ uint32_t enable_pstate_stepping : 1;
+ uint32_t enable_interchip_pstate_in_haps : 1;
+ uint32_t interchip_mode : 1;
+ uint32_t enable_interchip_interface : 1;
+ uint32_t halt_pstate_master_fsm : 1;
+ uint32_t enable_global_actual_pstate_forwarding : 1;
+ uint32_t enable_pstate_voltage_changes : 1;
+ uint32_t enable_fw_pstate_mode : 1;
+ uint32_t enable_fw_auction_pstate_mode : 1;
+ uint32_t enable_hw_pstate_mode : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_mode_reg_t;
+
+
+
+typedef union pmc_hardware_auction_pstate_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t haps : 8;
+ uint32_t kuv_actual : 8;
+ uint32_t kuv_received : 8;
+ uint32_t _reserved0 : 8;
+#else
+ uint32_t _reserved0 : 8;
+ uint32_t kuv_received : 8;
+ uint32_t kuv_actual : 8;
+ int32_t haps : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_hardware_auction_pstate_reg_t;
+
+
+
+typedef union pmc_pstate_monitor_and_ctrl_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t gpst_val : 8;
+ int32_t gpsst : 8;
+ int32_t gpsa : 8;
+ int32_t gapr : 8;
+#else
+ int32_t gapr : 8;
+ int32_t gpsa : 8;
+ int32_t gpsst : 8;
+ int32_t gpst_val : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pstate_monitor_and_ctrl_reg_t;
+
+
+
+typedef union pmc_rail_bounds_register {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t pmin_rail : 8;
+ int32_t pmax_rail : 8;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ int32_t pmax_rail : 8;
+ int32_t pmin_rail : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_rail_bounds_register_t;
+
+
+
+typedef union pmc_global_pstate_bounds_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t gpsi_min : 8;
+ uint32_t gpst_number_of_entries_minus_one : 7;
+ uint32_t _reserved0 : 17;
+#else
+ uint32_t _reserved0 : 17;
+ uint32_t gpst_number_of_entries_minus_one : 7;
+ uint32_t gpsi_min : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_global_pstate_bounds_reg_t;
+
+
+
+typedef union pmc_parameter_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pstate_stepsize : 7;
+ uint32_t vrm_stepdelay_range : 4;
+ uint32_t vrm_stepdelay_value : 4;
+ uint32_t hangpulse_predivider : 6;
+ uint32_t gpsa_timeout_value : 8;
+ uint32_t gpsa_timeout_value_sel : 1;
+ uint32_t _reserved0 : 2;
+#else
+ uint32_t _reserved0 : 2;
+ uint32_t gpsa_timeout_value_sel : 1;
+ uint32_t gpsa_timeout_value : 8;
+ uint32_t hangpulse_predivider : 6;
+ uint32_t vrm_stepdelay_value : 4;
+ uint32_t vrm_stepdelay_range : 4;
+ uint32_t pstate_stepsize : 7;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_parameter_reg0_t;
+
+
+
+typedef union pmc_parameter_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t ba_sram_pstate_table : 22;
+ int32_t pvsafe : 8;
+ uint32_t _reserved0 : 2;
+#else
+ uint32_t _reserved0 : 2;
+ int32_t pvsafe : 8;
+ uint32_t ba_sram_pstate_table : 22;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_parameter_reg1_t;
+
+
+
+typedef union pmc_eff_global_actual_voltage_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t maxreg_vdd : 8;
+ uint32_t maxreg_vcs : 8;
+ uint32_t eff_evid_vdd : 8;
+ uint32_t eff_evid_vcs : 8;
+#else
+ uint32_t eff_evid_vcs : 8;
+ uint32_t eff_evid_vdd : 8;
+ uint32_t maxreg_vcs : 8;
+ uint32_t maxreg_vdd : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_eff_global_actual_voltage_reg_t;
+
+
+
+typedef union pmc_global_actual_voltage_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t evid_vdd : 8;
+ uint32_t evid_vcs : 8;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t evid_vcs : 8;
+ uint32_t evid_vdd : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_global_actual_voltage_reg_t;
+
+
+
+typedef union pmc_status_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pstate_processing_is_suspended : 1;
+ uint32_t gpsa_bdcst_error : 1;
+ uint32_t gpsa_bdcst_resp_info : 3;
+ uint32_t gpsa_vchg_error : 1;
+ uint32_t gpsa_timeout_error : 1;
+ uint32_t gpsa_chg_ongoing : 1;
+ uint32_t volt_chg_ongoing : 1;
+ uint32_t brd_cst_ongoing : 1;
+ uint32_t gps_table_error : 1;
+ uint32_t pstate_interchip_error : 1;
+ uint32_t istate_processing_is_suspended : 1;
+ uint32_t safe_mode_engaged : 1;
+ uint32_t _reserved0 : 18;
+#else
+ uint32_t _reserved0 : 18;
+ uint32_t safe_mode_engaged : 1;
+ uint32_t istate_processing_is_suspended : 1;
+ uint32_t pstate_interchip_error : 1;
+ uint32_t gps_table_error : 1;
+ uint32_t brd_cst_ongoing : 1;
+ uint32_t volt_chg_ongoing : 1;
+ uint32_t gpsa_chg_ongoing : 1;
+ uint32_t gpsa_timeout_error : 1;
+ uint32_t gpsa_vchg_error : 1;
+ uint32_t gpsa_bdcst_resp_info : 3;
+ uint32_t gpsa_bdcst_error : 1;
+ uint32_t pstate_processing_is_suspended : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_status_reg_t;
+
+
+
+typedef union pmc_phase_enable_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t phase_enable : 4;
+ uint32_t _reserved0 : 28;
+#else
+ uint32_t _reserved0 : 28;
+ uint32_t phase_enable : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_phase_enable_reg_t;
+
+
+
+typedef union pmc_undervolting_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t puv_min : 8;
+ int32_t puv_max : 8;
+ uint32_t kuv_request : 8;
+ uint32_t _reserved0 : 8;
+#else
+ uint32_t _reserved0 : 8;
+ uint32_t kuv_request : 8;
+ int32_t puv_max : 8;
+ int32_t puv_min : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_undervolting_reg_t;
+
+
+
+typedef union pmc_core_deconfiguration_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t core_chiplet_deconf_vector : 16;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t core_chiplet_deconf_vector : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_core_deconfiguration_reg_t;
+
+
+
+typedef union pmc_intchp_ctrl_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t interchip_ga_fsm_enable : 1;
+ uint32_t interchip_recv_done_valid_without_if_en : 1;
+ uint32_t pmcic1_reserved_2 : 1;
+ uint32_t interchip_cpha : 1;
+ uint32_t interchip_clock_divider : 10;
+ uint32_t pmcicr1_reserved_14_17 : 4;
+ uint32_t pmcicr1_reserved_18_20 : 3;
+ uint32_t _reserved0 : 11;
+#else
+ uint32_t _reserved0 : 11;
+ uint32_t pmcicr1_reserved_18_20 : 3;
+ uint32_t pmcicr1_reserved_14_17 : 4;
+ uint32_t interchip_clock_divider : 10;
+ uint32_t interchip_cpha : 1;
+ uint32_t pmcic1_reserved_2 : 1;
+ uint32_t interchip_recv_done_valid_without_if_en : 1;
+ uint32_t interchip_ga_fsm_enable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_ctrl_reg1_t;
+
+
+
+typedef union pmc_intchp_ctrl_reg2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t interchip_ping_send : 1;
+ uint32_t interchip_ping_detect_clear : 1;
+ uint32_t interchip_ping_mode : 1;
+ uint32_t pmcic2_reserved3 : 1;
+ uint32_t pmcic2_reserved4 : 1;
+ uint32_t pmcic2_reserved5_7 : 3;
+ uint32_t _reserved0 : 24;
+#else
+ uint32_t _reserved0 : 24;
+ uint32_t pmcic2_reserved5_7 : 3;
+ uint32_t pmcic2_reserved4 : 1;
+ uint32_t pmcic2_reserved3 : 1;
+ uint32_t interchip_ping_mode : 1;
+ uint32_t interchip_ping_detect_clear : 1;
+ uint32_t interchip_ping_send : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_ctrl_reg2_t;
+
+
+
+typedef union pmc_intchp_ctrl_reg4 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t interchip_ecc_gen_en : 1;
+ uint32_t interchip_ecc_check_en : 1;
+ uint32_t interchip_msg_rcv_overflow_check_en : 1;
+ uint32_t interchip_ecc_ue_block_en : 1;
+ uint32_t chksw_hw221732 : 1;
+ uint32_t slave_occ_timeout_forces_safe_mode_disable : 1;
+ uint32_t pmcic4_reserved6_7 : 2;
+ uint32_t _reserved0 : 24;
+#else
+ uint32_t _reserved0 : 24;
+ uint32_t pmcic4_reserved6_7 : 2;
+ uint32_t slave_occ_timeout_forces_safe_mode_disable : 1;
+ uint32_t chksw_hw221732 : 1;
+ uint32_t interchip_ecc_ue_block_en : 1;
+ uint32_t interchip_msg_rcv_overflow_check_en : 1;
+ uint32_t interchip_ecc_check_en : 1;
+ uint32_t interchip_ecc_gen_en : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_ctrl_reg4_t;
+
+
+
+typedef union pmc_intchp_status_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t interchip_ga_ongoing : 1;
+ uint32_t interchip_ecc_ue : 1;
+ uint32_t interchip_ecc_ce : 1;
+ uint32_t interchip_ping_detected : 1;
+ uint32_t interchip_ping_ack_detected : 1;
+ uint32_t interchip_msg_send_ongoing : 1;
+ uint32_t interchip_msg_recv_detected : 1;
+ uint32_t interchip_fsm_err : 1;
+ uint32_t interchip_ping_detect_count : 8;
+ uint32_t interchip_slave_error_code : 4;
+ uint32_t interchip_msg_snd_overflow_detected : 1;
+ uint32_t interchip_msg_rcv_overflow_detected : 1;
+ uint32_t interchip_ecc_ue_err : 1;
+ uint32_t _reserved0 : 9;
+#else
+ uint32_t _reserved0 : 9;
+ uint32_t interchip_ecc_ue_err : 1;
+ uint32_t interchip_msg_rcv_overflow_detected : 1;
+ uint32_t interchip_msg_snd_overflow_detected : 1;
+ uint32_t interchip_slave_error_code : 4;
+ uint32_t interchip_ping_detect_count : 8;
+ uint32_t interchip_fsm_err : 1;
+ uint32_t interchip_msg_recv_detected : 1;
+ uint32_t interchip_msg_send_ongoing : 1;
+ uint32_t interchip_ping_ack_detected : 1;
+ uint32_t interchip_ping_detected : 1;
+ uint32_t interchip_ecc_ce : 1;
+ uint32_t interchip_ecc_ue : 1;
+ uint32_t interchip_ga_ongoing : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_status_reg_t;
+
+
+
+typedef union pmc_intchp_command_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t interchip_reset_if : 1;
+ uint32_t interchip_halt_msg_fsm : 1;
+ uint32_t interchip_clear_sticky_bits : 1;
+ uint32_t _reserved0 : 29;
+#else
+ uint32_t _reserved0 : 29;
+ uint32_t interchip_clear_sticky_bits : 1;
+ uint32_t interchip_halt_msg_fsm : 1;
+ uint32_t interchip_reset_if : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_command_reg_t;
+
+
+
+typedef union pmc_intchp_msg_wdata {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t interchip_msg_wdata : 32;
+#else
+ uint32_t interchip_msg_wdata : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_msg_wdata_t;
+
+
+
+typedef union pmc_intchp_msg_rdata {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t interchip_msg_rdata : 32;
+#else
+ uint32_t interchip_msg_rdata : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_msg_rdata_t;
+
+
+
+typedef union pmc_intchp_pstate_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t pstate_interchip : 8;
+ uint32_t _reserved0 : 24;
+#else
+ uint32_t _reserved0 : 24;
+ int32_t pstate_interchip : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_pstate_reg_t;
+
+
+
+typedef union pmc_intchp_globack_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t gaack_interchip : 1;
+ int32_t gaack_interchip_pstate : 8;
+ uint32_t _reserved0 : 23;
+#else
+ uint32_t _reserved0 : 23;
+ int32_t gaack_interchip_pstate : 8;
+ uint32_t gaack_interchip : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_intchp_globack_reg_t;
+
+
+
+typedef union pmc_fsmstate_status_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t mis_fsm_state : 3;
+ uint32_t mps_fsm_state : 5;
+ uint32_t svs_fsm_state : 4;
+ uint32_t o2s_fsm_state : 4;
+ uint32_t m2p_fsm_state : 4;
+ uint32_t o2p_fsm_state : 4;
+ uint32_t icp_msg_fsm_state : 5;
+ uint32_t _reserved0 : 3;
+#else
+ uint32_t _reserved0 : 3;
+ uint32_t icp_msg_fsm_state : 5;
+ uint32_t o2p_fsm_state : 4;
+ uint32_t m2p_fsm_state : 4;
+ uint32_t o2s_fsm_state : 4;
+ uint32_t svs_fsm_state : 4;
+ uint32_t mps_fsm_state : 5;
+ uint32_t mis_fsm_state : 3;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_fsmstate_status_reg_t;
+
+
+
+typedef union pmc_trace_mode_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pmc_trace_mode : 4;
+ uint32_t trace_sel_data : 2;
+ uint32_t _reserved0 : 26;
+#else
+ uint32_t _reserved0 : 26;
+ uint32_t trace_sel_data : 2;
+ uint32_t pmc_trace_mode : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_trace_mode_reg_t;
+
+
+
+typedef union pmc_spiv_ctrl_reg0a {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_frame_size : 6;
+ uint32_t spivid_out_count1 : 6;
+ uint32_t spivid_in_delay1 : 6;
+ uint32_t spivid_in_count1 : 6;
+ uint32_t _reserved0 : 8;
+#else
+ uint32_t _reserved0 : 8;
+ uint32_t spivid_in_count1 : 6;
+ uint32_t spivid_in_delay1 : 6;
+ uint32_t spivid_out_count1 : 6;
+ uint32_t spivid_frame_size : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_ctrl_reg0a_t;
+
+
+
+typedef union pmc_spiv_ctrl_reg0b {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_out_count2 : 6;
+ uint32_t spivid_in_delay2 : 6;
+ uint32_t spivid_in_count2 : 6;
+ uint32_t _reserved0 : 14;
+#else
+ uint32_t _reserved0 : 14;
+ uint32_t spivid_in_count2 : 6;
+ uint32_t spivid_in_delay2 : 6;
+ uint32_t spivid_out_count2 : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_ctrl_reg0b_t;
+
+
+
+typedef union pmc_spiv_ctrl_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_fsm_enable : 1;
+ uint32_t pmcscr1_reserved_1 : 1;
+ uint32_t spivid_cpol : 1;
+ uint32_t spivid_cpha : 1;
+ uint32_t spivid_clock_divider : 10;
+ uint32_t pmcscr1_reserved_2 : 4;
+ uint32_t spivid_port_enable : 3;
+ uint32_t _reserved0 : 11;
+#else
+ uint32_t _reserved0 : 11;
+ uint32_t spivid_port_enable : 3;
+ uint32_t pmcscr1_reserved_2 : 4;
+ uint32_t spivid_clock_divider : 10;
+ uint32_t spivid_cpha : 1;
+ uint32_t spivid_cpol : 1;
+ uint32_t pmcscr1_reserved_1 : 1;
+ uint32_t spivid_fsm_enable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_ctrl_reg1_t;
+
+
+
+typedef union pmc_spiv_ctrl_reg2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_inter_frame_delay_write_status : 17;
+ uint32_t _reserved0 : 15;
+#else
+ uint32_t _reserved0 : 15;
+ uint32_t spivid_inter_frame_delay_write_status : 17;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_ctrl_reg2_t;
+
+
+
+typedef union pmc_spiv_ctrl_reg3 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_inter_retry_delay : 17;
+ uint32_t pmc_100ns_pls_range : 6;
+ uint32_t _reserved0 : 9;
+#else
+ uint32_t _reserved0 : 9;
+ uint32_t pmc_100ns_pls_range : 6;
+ uint32_t spivid_inter_retry_delay : 17;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_ctrl_reg3_t;
+
+
+
+typedef union pmc_spiv_ctrl_reg4 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_crc_gen_en : 1;
+ uint32_t spivid_crc_check_en : 1;
+ uint32_t spivid_majority_vote_en : 1;
+ uint32_t spivid_max_retries : 5;
+ uint32_t spivid_crc_polynomial_enables : 8;
+ uint32_t spivid_crc_const_gen_enable : 1;
+ uint32_t spivid_crc_const_check_enable : 1;
+ uint32_t spivid_frame_sync_wrong_enable : 1;
+ uint32_t _reserved0 : 13;
+#else
+ uint32_t _reserved0 : 13;
+ uint32_t spivid_frame_sync_wrong_enable : 1;
+ uint32_t spivid_crc_const_check_enable : 1;
+ uint32_t spivid_crc_const_gen_enable : 1;
+ uint32_t spivid_crc_polynomial_enables : 8;
+ uint32_t spivid_max_retries : 5;
+ uint32_t spivid_majority_vote_en : 1;
+ uint32_t spivid_crc_check_en : 1;
+ uint32_t spivid_crc_gen_en : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_ctrl_reg4_t;
+
+
+
+typedef union pmc_spiv_status_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_ongoing : 1;
+ uint32_t spivid_crc_error0 : 1;
+ uint32_t spivid_crc_error1 : 1;
+ uint32_t spivid_crc_error2 : 1;
+ uint32_t spivid_retry_timeout : 1;
+ uint32_t pmcssr_reserved_1 : 2;
+ uint32_t spivid_fsm_err : 1;
+ uint32_t spivid_majority_detected_a_minority0 : 1;
+ uint32_t spivid_majority_detected_a_minority1 : 1;
+ uint32_t spivid_majority_detected_a_minority2 : 1;
+ uint32_t spivid_majority_nr_of_minorities0 : 4;
+ uint32_t spivid_majority_nr_of_minorities1 : 4;
+ uint32_t spivid_majority_nr_of_minorities2 : 4;
+ uint32_t _reserved0 : 9;
+#else
+ uint32_t _reserved0 : 9;
+ uint32_t spivid_majority_nr_of_minorities2 : 4;
+ uint32_t spivid_majority_nr_of_minorities1 : 4;
+ uint32_t spivid_majority_nr_of_minorities0 : 4;
+ uint32_t spivid_majority_detected_a_minority2 : 1;
+ uint32_t spivid_majority_detected_a_minority1 : 1;
+ uint32_t spivid_majority_detected_a_minority0 : 1;
+ uint32_t spivid_fsm_err : 1;
+ uint32_t pmcssr_reserved_1 : 2;
+ uint32_t spivid_retry_timeout : 1;
+ uint32_t spivid_crc_error2 : 1;
+ uint32_t spivid_crc_error1 : 1;
+ uint32_t spivid_crc_error0 : 1;
+ uint32_t spivid_ongoing : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_status_reg_t;
+
+
+
+typedef union pmc_spiv_command_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t spivid_halt_fsm : 1;
+ uint32_t _reserved0 : 31;
+#else
+ uint32_t _reserved0 : 31;
+ uint32_t spivid_halt_fsm : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_spiv_command_reg_t;
+
+
+
+typedef union pmc_o2s_ctrl_reg0a {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_frame_size : 6;
+ uint32_t o2s_out_count1 : 6;
+ uint32_t o2s_in_delay1 : 6;
+ uint32_t o2s_in_count1 : 6;
+ uint32_t _reserved0 : 8;
+#else
+ uint32_t _reserved0 : 8;
+ uint32_t o2s_in_count1 : 6;
+ uint32_t o2s_in_delay1 : 6;
+ uint32_t o2s_out_count1 : 6;
+ uint32_t o2s_frame_size : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_ctrl_reg0a_t;
+
+
+
+typedef union pmc_o2s_ctrl_reg0b {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_out_count2 : 6;
+ uint32_t o2s_in_delay2 : 6;
+ uint32_t o2s_in_count2 : 6;
+ uint32_t _reserved0 : 14;
+#else
+ uint32_t _reserved0 : 14;
+ uint32_t o2s_in_count2 : 6;
+ uint32_t o2s_in_delay2 : 6;
+ uint32_t o2s_out_count2 : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_ctrl_reg0b_t;
+
+
+
+typedef union pmc_o2s_ctrl_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_bridge_enable : 1;
+ uint32_t pmcocr1_reserved_1 : 1;
+ uint32_t o2s_cpol : 1;
+ uint32_t o2s_cpha : 1;
+ uint32_t o2s_clock_divider : 10;
+ uint32_t pmcocr1_reserved_2 : 3;
+ uint32_t o2s_nr_of_frames : 1;
+ uint32_t o2s_port_enable : 3;
+ uint32_t _reserved0 : 11;
+#else
+ uint32_t _reserved0 : 11;
+ uint32_t o2s_port_enable : 3;
+ uint32_t o2s_nr_of_frames : 1;
+ uint32_t pmcocr1_reserved_2 : 3;
+ uint32_t o2s_clock_divider : 10;
+ uint32_t o2s_cpha : 1;
+ uint32_t o2s_cpol : 1;
+ uint32_t pmcocr1_reserved_1 : 1;
+ uint32_t o2s_bridge_enable : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_ctrl_reg1_t;
+
+
+
+typedef union pmc_o2s_ctrl_reg2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_inter_frame_delay : 17;
+ uint32_t _reserved0 : 15;
+#else
+ uint32_t _reserved0 : 15;
+ uint32_t o2s_inter_frame_delay : 17;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_ctrl_reg2_t;
+
+
+
+typedef union pmc_o2s_ctrl_reg4 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_crc_gen_en : 1;
+ uint32_t o2s_crc_check_en : 1;
+ uint32_t o2s_majority_vote_en : 1;
+ uint32_t o2s_max_retries : 5;
+ uint32_t pmcocr4_reserved8_15 : 8;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t pmcocr4_reserved8_15 : 8;
+ uint32_t o2s_max_retries : 5;
+ uint32_t o2s_majority_vote_en : 1;
+ uint32_t o2s_crc_check_en : 1;
+ uint32_t o2s_crc_gen_en : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_ctrl_reg4_t;
+
+
+
+typedef union pmc_o2s_status_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_ongoing : 1;
+ uint32_t o2s_crc_error0 : 1;
+ uint32_t o2s_crc_error1 : 1;
+ uint32_t o2s_crc_error2 : 1;
+ uint32_t o2s_retry_timeout : 1;
+ uint32_t o2s_write_while_bridge_busy_err : 1;
+ uint32_t pmcosr_reserved_6 : 1;
+ uint32_t o2s_fsm_err : 1;
+ uint32_t o2s_majority_detected_a_minority0 : 1;
+ uint32_t o2s_majority_detected_a_minority1 : 1;
+ uint32_t o2s_majority_detected_a_minority2 : 1;
+ uint32_t o2s_majority_nr_of_minorities0 : 4;
+ uint32_t o2s_majority_nr_of_minorities1 : 4;
+ uint32_t o2s_majority_nr_of_minorities2 : 4;
+ uint32_t _reserved0 : 9;
+#else
+ uint32_t _reserved0 : 9;
+ uint32_t o2s_majority_nr_of_minorities2 : 4;
+ uint32_t o2s_majority_nr_of_minorities1 : 4;
+ uint32_t o2s_majority_nr_of_minorities0 : 4;
+ uint32_t o2s_majority_detected_a_minority2 : 1;
+ uint32_t o2s_majority_detected_a_minority1 : 1;
+ uint32_t o2s_majority_detected_a_minority0 : 1;
+ uint32_t o2s_fsm_err : 1;
+ uint32_t pmcosr_reserved_6 : 1;
+ uint32_t o2s_write_while_bridge_busy_err : 1;
+ uint32_t o2s_retry_timeout : 1;
+ uint32_t o2s_crc_error2 : 1;
+ uint32_t o2s_crc_error1 : 1;
+ uint32_t o2s_crc_error0 : 1;
+ uint32_t o2s_ongoing : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_status_reg_t;
+
+
+
+typedef union pmc_o2s_command_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_halt_retries : 1;
+ uint32_t o2s_clear_sticky_bits : 1;
+ uint32_t _reserved0 : 30;
+#else
+ uint32_t _reserved0 : 30;
+ uint32_t o2s_clear_sticky_bits : 1;
+ uint32_t o2s_halt_retries : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_command_reg_t;
+
+
+
+typedef union pmc_o2s_wdata_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_wdata : 32;
+#else
+ uint32_t o2s_wdata : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_wdata_reg_t;
+
+
+
+typedef union pmc_o2s_rdata_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2s_rdata : 32;
+#else
+ uint32_t o2s_rdata : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2s_rdata_reg_t;
+
+
+
+typedef union pmc_o2p_addr_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2p_write_plus_read : 1;
+ uint32_t o2p_mc : 1;
+ uint32_t o2p_slave_addr : 6;
+ uint32_t o2p_read_not_write : 1;
+ uint32_t reserved_bit_pmco2par2 : 3;
+ uint32_t o2p_pcb_port : 4;
+ uint32_t o2p_pcb_reg_addr : 16;
+#else
+ uint32_t o2p_pcb_reg_addr : 16;
+ uint32_t o2p_pcb_port : 4;
+ uint32_t reserved_bit_pmco2par2 : 3;
+ uint32_t o2p_read_not_write : 1;
+ uint32_t o2p_slave_addr : 6;
+ uint32_t o2p_mc : 1;
+ uint32_t o2p_write_plus_read : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2p_addr_reg_t;
+
+
+
+typedef union pmc_o2p_ctrl_status_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2p_ongoing : 1;
+ uint32_t o2p_scresp : 3;
+ uint32_t o2p_write_while_bridge_busy_err : 1;
+ uint32_t o2p_fsm_err : 1;
+ uint32_t o2p_abort : 1;
+ uint32_t o2p_parity_error : 1;
+ uint32_t o2p_clear_sticky_bits : 1;
+ uint32_t _reserved0 : 23;
+#else
+ uint32_t _reserved0 : 23;
+ uint32_t o2p_clear_sticky_bits : 1;
+ uint32_t o2p_parity_error : 1;
+ uint32_t o2p_abort : 1;
+ uint32_t o2p_fsm_err : 1;
+ uint32_t o2p_write_while_bridge_busy_err : 1;
+ uint32_t o2p_scresp : 3;
+ uint32_t o2p_ongoing : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2p_ctrl_status_reg_t;
+
+
+
+typedef union pmc_o2p_send_data_hi_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2p_send_data_hi : 32;
+#else
+ uint32_t o2p_send_data_hi : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2p_send_data_hi_reg_t;
+
+
+
+typedef union pmc_o2p_send_data_lo_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2p_send_data_lo : 32;
+#else
+ uint32_t o2p_send_data_lo : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2p_send_data_lo_reg_t;
+
+
+
+typedef union pmc_o2p_recv_data_hi_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2p_receive_data_hi : 32;
+#else
+ uint32_t o2p_receive_data_hi : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2p_recv_data_hi_reg_t;
+
+
+
+typedef union pmc_o2p_recv_data_lo_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t o2p_receive_data_lo : 32;
+#else
+ uint32_t o2p_receive_data_lo : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_o2p_recv_data_lo_reg_t;
+
+
+
+typedef union pmc_occ_heartbeat_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pmc_occ_heartbeat_time : 16;
+ uint32_t pmc_occ_heartbeat_en : 1;
+ uint32_t _reserved0 : 15;
+#else
+ uint32_t _reserved0 : 15;
+ uint32_t pmc_occ_heartbeat_en : 1;
+ uint32_t pmc_occ_heartbeat_time : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_occ_heartbeat_reg_t;
+
+
+
+typedef union pmc_error_int_mask_hi_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pmc_error_int_mask_hi : 32;
+#else
+ uint32_t pmc_error_int_mask_hi : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_error_int_mask_hi_reg_t;
+
+
+
+typedef union pmc_error_int_mask_lo_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pmc_error_int_mask_lo : 32;
+#else
+ uint32_t pmc_error_int_mask_lo : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_error_int_mask_lo_reg_t;
+
+
+
+typedef union pmc_idle_suspend_mask_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pmc_idle_suspend_mask : 16;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t pmc_idle_suspend_mask : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_idle_suspend_mask_reg_t;
+
+
+
+typedef union pmc_pend_idle_req_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t idle_pending_0 : 1;
+ uint32_t idle_op_0 : 2;
+ uint32_t idle_type_0 : 1;
+ uint32_t idle_scope_0 : 1;
+ uint32_t assist_mode_0 : 1;
+ uint32_t reserved_pirr_0 : 2;
+ uint32_t idle_pending_1 : 1;
+ uint32_t idle_op_1 : 2;
+ uint32_t idle_type_1 : 1;
+ uint32_t idle_scope_1 : 1;
+ uint32_t assist_mode_1 : 1;
+ uint32_t reserved_pirr_1 : 2;
+ uint32_t idle_pending_2 : 1;
+ uint32_t idle_op_2 : 2;
+ uint32_t idle_type_2 : 1;
+ uint32_t idle_scope_2 : 1;
+ uint32_t assist_mode_2 : 1;
+ uint32_t reserved_pirr_2 : 2;
+ uint32_t idle_pending_3 : 1;
+ uint32_t idle_op_3 : 2;
+ uint32_t idle_type_3 : 1;
+ uint32_t idle_scope_3 : 1;
+ uint32_t assist_mode_3 : 1;
+ uint32_t reserved_pirr_3 : 2;
+#else
+ uint32_t reserved_pirr_3 : 2;
+ uint32_t assist_mode_3 : 1;
+ uint32_t idle_scope_3 : 1;
+ uint32_t idle_type_3 : 1;
+ uint32_t idle_op_3 : 2;
+ uint32_t idle_pending_3 : 1;
+ uint32_t reserved_pirr_2 : 2;
+ uint32_t assist_mode_2 : 1;
+ uint32_t idle_scope_2 : 1;
+ uint32_t idle_type_2 : 1;
+ uint32_t idle_op_2 : 2;
+ uint32_t idle_pending_2 : 1;
+ uint32_t reserved_pirr_1 : 2;
+ uint32_t assist_mode_1 : 1;
+ uint32_t idle_scope_1 : 1;
+ uint32_t idle_type_1 : 1;
+ uint32_t idle_op_1 : 2;
+ uint32_t idle_pending_1 : 1;
+ uint32_t reserved_pirr_0 : 2;
+ uint32_t assist_mode_0 : 1;
+ uint32_t idle_scope_0 : 1;
+ uint32_t idle_type_0 : 1;
+ uint32_t idle_op_0 : 2;
+ uint32_t idle_pending_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pend_idle_req_reg0_t;
+
+
+
+typedef union pmc_pend_idle_req_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t idle_pending_4 : 1;
+ uint32_t idle_op_4 : 2;
+ uint32_t idle_type_4 : 1;
+ uint32_t idle_scope_4 : 1;
+ uint32_t assist_mode_4 : 1;
+ uint32_t reserved_pirr_4 : 2;
+ uint32_t idle_pending_5 : 1;
+ uint32_t idle_op_5 : 2;
+ uint32_t idle_type_5 : 1;
+ uint32_t idle_scope_5 : 1;
+ uint32_t assist_mode_5 : 1;
+ uint32_t reserved_pirr_5 : 2;
+ uint32_t idle_pending_6 : 1;
+ uint32_t idle_op_6 : 2;
+ uint32_t idle_type_6 : 1;
+ uint32_t idle_scope_6 : 1;
+ uint32_t assist_mode_6 : 1;
+ uint32_t reserved_pirr_6 : 2;
+ uint32_t idle_pending_7 : 1;
+ uint32_t idle_op_7 : 2;
+ uint32_t idle_type_7 : 1;
+ uint32_t idle_scope_7 : 1;
+ uint32_t assist_mode_7 : 1;
+ uint32_t reserved_pirr_7 : 2;
+#else
+ uint32_t reserved_pirr_7 : 2;
+ uint32_t assist_mode_7 : 1;
+ uint32_t idle_scope_7 : 1;
+ uint32_t idle_type_7 : 1;
+ uint32_t idle_op_7 : 2;
+ uint32_t idle_pending_7 : 1;
+ uint32_t reserved_pirr_6 : 2;
+ uint32_t assist_mode_6 : 1;
+ uint32_t idle_scope_6 : 1;
+ uint32_t idle_type_6 : 1;
+ uint32_t idle_op_6 : 2;
+ uint32_t idle_pending_6 : 1;
+ uint32_t reserved_pirr_5 : 2;
+ uint32_t assist_mode_5 : 1;
+ uint32_t idle_scope_5 : 1;
+ uint32_t idle_type_5 : 1;
+ uint32_t idle_op_5 : 2;
+ uint32_t idle_pending_5 : 1;
+ uint32_t reserved_pirr_4 : 2;
+ uint32_t assist_mode_4 : 1;
+ uint32_t idle_scope_4 : 1;
+ uint32_t idle_type_4 : 1;
+ uint32_t idle_op_4 : 2;
+ uint32_t idle_pending_4 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pend_idle_req_reg1_t;
+
+
+
+typedef union pmc_pend_idle_req_reg2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t idle_pending_8 : 1;
+ uint32_t idle_op_8 : 2;
+ uint32_t idle_type_8 : 1;
+ uint32_t idle_scope_8 : 1;
+ uint32_t assist_mode_8 : 1;
+ uint32_t reserved_pirr_8 : 2;
+ uint32_t idle_pending_9 : 1;
+ uint32_t idle_op_9 : 2;
+ uint32_t idle_type_9 : 1;
+ uint32_t idle_scope_9 : 1;
+ uint32_t assist_mode_9 : 1;
+ uint32_t reserved_pirr_9 : 2;
+ uint32_t idle_pending_10 : 1;
+ uint32_t idle_op_10 : 2;
+ uint32_t idle_type_10 : 1;
+ uint32_t idle_scope_10 : 1;
+ uint32_t assist_mode_10 : 1;
+ uint32_t reserved_pirr_10 : 2;
+ uint32_t idle_pending_11 : 1;
+ uint32_t idle_op_11 : 2;
+ uint32_t idle_type_11 : 1;
+ uint32_t idle_scope_11 : 1;
+ uint32_t assist_mode_11 : 1;
+ uint32_t reserved_pirr_11 : 2;
+#else
+ uint32_t reserved_pirr_11 : 2;
+ uint32_t assist_mode_11 : 1;
+ uint32_t idle_scope_11 : 1;
+ uint32_t idle_type_11 : 1;
+ uint32_t idle_op_11 : 2;
+ uint32_t idle_pending_11 : 1;
+ uint32_t reserved_pirr_10 : 2;
+ uint32_t assist_mode_10 : 1;
+ uint32_t idle_scope_10 : 1;
+ uint32_t idle_type_10 : 1;
+ uint32_t idle_op_10 : 2;
+ uint32_t idle_pending_10 : 1;
+ uint32_t reserved_pirr_9 : 2;
+ uint32_t assist_mode_9 : 1;
+ uint32_t idle_scope_9 : 1;
+ uint32_t idle_type_9 : 1;
+ uint32_t idle_op_9 : 2;
+ uint32_t idle_pending_9 : 1;
+ uint32_t reserved_pirr_8 : 2;
+ uint32_t assist_mode_8 : 1;
+ uint32_t idle_scope_8 : 1;
+ uint32_t idle_type_8 : 1;
+ uint32_t idle_op_8 : 2;
+ uint32_t idle_pending_8 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pend_idle_req_reg2_t;
+
+
+
+typedef union pmc_pend_idle_req_reg3 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t idle_pending_12 : 1;
+ uint32_t idle_op_12 : 2;
+ uint32_t idle_type_12 : 1;
+ uint32_t idle_scope_12 : 1;
+ uint32_t assist_mode_12 : 1;
+ uint32_t reserved_pirr_12 : 2;
+ uint32_t idle_pending_13 : 1;
+ uint32_t idle_op_13 : 2;
+ uint32_t idle_type_13 : 1;
+ uint32_t idle_scope_13 : 1;
+ uint32_t assist_mode_13 : 1;
+ uint32_t reserved_pirr_13 : 2;
+ uint32_t idle_pending_14 : 1;
+ uint32_t idle_op_14 : 2;
+ uint32_t idle_type_14 : 1;
+ uint32_t idle_scope_14 : 1;
+ uint32_t assist_mode_14 : 1;
+ uint32_t reserved_pirr_14 : 2;
+ uint32_t idle_pending_15 : 1;
+ uint32_t idle_op_15 : 2;
+ uint32_t idle_type_15 : 1;
+ uint32_t idle_scope_15 : 1;
+ uint32_t assist_mode_15 : 1;
+ uint32_t reserved_pirr_15 : 2;
+#else
+ uint32_t reserved_pirr_15 : 2;
+ uint32_t assist_mode_15 : 1;
+ uint32_t idle_scope_15 : 1;
+ uint32_t idle_type_15 : 1;
+ uint32_t idle_op_15 : 2;
+ uint32_t idle_pending_15 : 1;
+ uint32_t reserved_pirr_14 : 2;
+ uint32_t assist_mode_14 : 1;
+ uint32_t idle_scope_14 : 1;
+ uint32_t idle_type_14 : 1;
+ uint32_t idle_op_14 : 2;
+ uint32_t idle_pending_14 : 1;
+ uint32_t reserved_pirr_13 : 2;
+ uint32_t assist_mode_13 : 1;
+ uint32_t idle_scope_13 : 1;
+ uint32_t idle_type_13 : 1;
+ uint32_t idle_op_13 : 2;
+ uint32_t idle_pending_13 : 1;
+ uint32_t reserved_pirr_12 : 2;
+ uint32_t assist_mode_12 : 1;
+ uint32_t idle_scope_12 : 1;
+ uint32_t idle_type_12 : 1;
+ uint32_t idle_op_12 : 2;
+ uint32_t idle_pending_12 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pend_idle_req_reg3_t;
+
+
+
+typedef union pmc_sleep_int_req_vec_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t fastsleepentry_int_req_vec : 32;
+#else
+ uint32_t fastsleepentry_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_sleep_int_req_vec_reg0_t;
+
+
+
+typedef union pmc_sleep_int_req_vec_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t deepsleepentry_int_req_vec : 32;
+#else
+ uint32_t deepsleepentry_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_sleep_int_req_vec_reg1_t;
+
+
+
+typedef union pmc_sleep_int_req_vec_reg2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t fastsleepexit_int_req_vec : 32;
+#else
+ uint32_t fastsleepexit_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_sleep_int_req_vec_reg2_t;
+
+
+
+typedef union pmc_sleep_int_req_vec_reg3 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t deepsleepexit_int_req_vec : 32;
+#else
+ uint32_t deepsleepexit_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_sleep_int_req_vec_reg3_t;
+
+
+
+typedef union pmc_winkle_int_req_vec_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t fastwinkleentry_int_req_vec : 32;
+#else
+ uint32_t fastwinkleentry_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_winkle_int_req_vec_reg0_t;
+
+
+
+typedef union pmc_winkle_int_req_vec_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t deepwinkleentry_int_req_vec : 32;
+#else
+ uint32_t deepwinkleentry_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_winkle_int_req_vec_reg1_t;
+
+
+
+typedef union pmc_winkle_int_req_vec_reg2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t fastwinkleexit_int_req_vec : 32;
+#else
+ uint32_t fastwinkleexit_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_winkle_int_req_vec_reg2_t;
+
+
+
+typedef union pmc_winkle_int_req_vec_reg3 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t deepwinkleexit_int_req_vec : 32;
+#else
+ uint32_t deepwinkleexit_int_req_vec : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_winkle_int_req_vec_reg3_t;
+
+
+
+typedef union pmc_nap_int_req_vec_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t napentry_int_req_vec : 16;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t napentry_int_req_vec : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_nap_int_req_vec_reg0_t;
+
+
+
+typedef union pmc_nap_int_req_vec_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t napexit_int_req_vec : 25;
+ uint32_t _reserved0 : 7;
+#else
+ uint32_t _reserved0 : 7;
+ uint32_t napexit_int_req_vec : 25;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_nap_int_req_vec_reg1_t;
+
+
+
+typedef union pmc_pore_req_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t porrr_reserved0 : 8;
+ uint32_t porrr_start_vector : 4;
+ uint32_t porrr_reserved1 : 8;
+ uint32_t porrr_pore_busy : 1;
+ uint32_t porrr_pore_suspended : 1;
+ uint32_t porrr_porrtc_busy : 1;
+ uint32_t _reserved0 : 9;
+#else
+ uint32_t _reserved0 : 9;
+ uint32_t porrr_porrtc_busy : 1;
+ uint32_t porrr_pore_suspended : 1;
+ uint32_t porrr_pore_busy : 1;
+ uint32_t porrr_reserved1 : 8;
+ uint32_t porrr_start_vector : 4;
+ uint32_t porrr_reserved0 : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pore_req_reg0_t;
+
+
+
+typedef union pmc_pore_req_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t porrr_chiplet_enable_0 : 1;
+ uint32_t porrr_chiplet_enable_1 : 1;
+ uint32_t porrr_chiplet_enable_2 : 1;
+ uint32_t porrr_chiplet_enable_3 : 1;
+ uint32_t porrr_chiplet_enable_4 : 1;
+ uint32_t porrr_chiplet_enable_5 : 1;
+ uint32_t porrr_chiplet_enable_6 : 1;
+ uint32_t porrr_chiplet_enable_7 : 1;
+ uint32_t porrr_chiplet_enable_8 : 1;
+ uint32_t porrr_chiplet_enable_9 : 1;
+ uint32_t porrr_chiplet_enable_10 : 1;
+ uint32_t porrr_chiplet_enable_11 : 1;
+ uint32_t porrr_chiplet_enable_12 : 1;
+ uint32_t porrr_chiplet_enable_13 : 1;
+ uint32_t porrr_chiplet_enable_14 : 1;
+ uint32_t porrr_chiplet_enable_15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t porrr_chiplet_enable_15 : 1;
+ uint32_t porrr_chiplet_enable_14 : 1;
+ uint32_t porrr_chiplet_enable_13 : 1;
+ uint32_t porrr_chiplet_enable_12 : 1;
+ uint32_t porrr_chiplet_enable_11 : 1;
+ uint32_t porrr_chiplet_enable_10 : 1;
+ uint32_t porrr_chiplet_enable_9 : 1;
+ uint32_t porrr_chiplet_enable_8 : 1;
+ uint32_t porrr_chiplet_enable_7 : 1;
+ uint32_t porrr_chiplet_enable_6 : 1;
+ uint32_t porrr_chiplet_enable_5 : 1;
+ uint32_t porrr_chiplet_enable_4 : 1;
+ uint32_t porrr_chiplet_enable_3 : 1;
+ uint32_t porrr_chiplet_enable_2 : 1;
+ uint32_t porrr_chiplet_enable_1 : 1;
+ uint32_t porrr_chiplet_enable_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pore_req_reg1_t;
+
+
+
+typedef union pmc_pore_req_stat_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t porrs_reserved0 : 8;
+ uint32_t porrs_start_vector : 4;
+ uint32_t pore_rc : 8;
+ uint32_t porrs_reserved1 : 1;
+ uint32_t porrs_recovery_write : 1;
+ uint32_t _reserved0 : 10;
+#else
+ uint32_t _reserved0 : 10;
+ uint32_t porrs_recovery_write : 1;
+ uint32_t porrs_reserved1 : 1;
+ uint32_t pore_rc : 8;
+ uint32_t porrs_start_vector : 4;
+ uint32_t porrs_reserved0 : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pore_req_stat_reg_t;
+
+
+
+typedef union pmc_pore_req_tout_th_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t porrtt_timeout_threshold : 8;
+ uint32_t porrtc_no_predivide : 1;
+ uint32_t _reserved0 : 23;
+#else
+ uint32_t _reserved0 : 23;
+ uint32_t porrtc_no_predivide : 1;
+ uint32_t porrtt_timeout_threshold : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pore_req_tout_th_reg_t;
+
+
+
+typedef union pmc_deep_exit_mask_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t chiplet_deep_exit_mask0 : 1;
+ uint32_t chiplet_deep_exit_mask1 : 1;
+ uint32_t chiplet_deep_exit_mask2 : 1;
+ uint32_t chiplet_deep_exit_mask3 : 1;
+ uint32_t chiplet_deep_exit_mask4 : 1;
+ uint32_t chiplet_deep_exit_mask5 : 1;
+ uint32_t chiplet_deep_exit_mask6 : 1;
+ uint32_t chiplet_deep_exit_mask7 : 1;
+ uint32_t chiplet_deep_exit_mask8 : 1;
+ uint32_t chiplet_deep_exit_mask9 : 1;
+ uint32_t chiplet_deep_exit_mask10 : 1;
+ uint32_t chiplet_deep_exit_mask11 : 1;
+ uint32_t chiplet_deep_exit_mask12 : 1;
+ uint32_t chiplet_deep_exit_mask13 : 1;
+ uint32_t chiplet_deep_exit_mask14 : 1;
+ uint32_t chiplet_deep_exit_mask15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t chiplet_deep_exit_mask15 : 1;
+ uint32_t chiplet_deep_exit_mask14 : 1;
+ uint32_t chiplet_deep_exit_mask13 : 1;
+ uint32_t chiplet_deep_exit_mask12 : 1;
+ uint32_t chiplet_deep_exit_mask11 : 1;
+ uint32_t chiplet_deep_exit_mask10 : 1;
+ uint32_t chiplet_deep_exit_mask9 : 1;
+ uint32_t chiplet_deep_exit_mask8 : 1;
+ uint32_t chiplet_deep_exit_mask7 : 1;
+ uint32_t chiplet_deep_exit_mask6 : 1;
+ uint32_t chiplet_deep_exit_mask5 : 1;
+ uint32_t chiplet_deep_exit_mask4 : 1;
+ uint32_t chiplet_deep_exit_mask3 : 1;
+ uint32_t chiplet_deep_exit_mask2 : 1;
+ uint32_t chiplet_deep_exit_mask1 : 1;
+ uint32_t chiplet_deep_exit_mask0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_deep_exit_mask_reg_t;
+
+
+
+typedef union pmc_deep_exit_mask_reg_and {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t chiplet_deep_exit_mask0 : 1;
+ uint32_t chiplet_deep_exit_mask1 : 1;
+ uint32_t chiplet_deep_exit_mask2 : 1;
+ uint32_t chiplet_deep_exit_mask3 : 1;
+ uint32_t chiplet_deep_exit_mask4 : 1;
+ uint32_t chiplet_deep_exit_mask5 : 1;
+ uint32_t chiplet_deep_exit_mask6 : 1;
+ uint32_t chiplet_deep_exit_mask7 : 1;
+ uint32_t chiplet_deep_exit_mask8 : 1;
+ uint32_t chiplet_deep_exit_mask9 : 1;
+ uint32_t chiplet_deep_exit_mask10 : 1;
+ uint32_t chiplet_deep_exit_mask11 : 1;
+ uint32_t chiplet_deep_exit_mask12 : 1;
+ uint32_t chiplet_deep_exit_mask13 : 1;
+ uint32_t chiplet_deep_exit_mask14 : 1;
+ uint32_t chiplet_deep_exit_mask15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t chiplet_deep_exit_mask15 : 1;
+ uint32_t chiplet_deep_exit_mask14 : 1;
+ uint32_t chiplet_deep_exit_mask13 : 1;
+ uint32_t chiplet_deep_exit_mask12 : 1;
+ uint32_t chiplet_deep_exit_mask11 : 1;
+ uint32_t chiplet_deep_exit_mask10 : 1;
+ uint32_t chiplet_deep_exit_mask9 : 1;
+ uint32_t chiplet_deep_exit_mask8 : 1;
+ uint32_t chiplet_deep_exit_mask7 : 1;
+ uint32_t chiplet_deep_exit_mask6 : 1;
+ uint32_t chiplet_deep_exit_mask5 : 1;
+ uint32_t chiplet_deep_exit_mask4 : 1;
+ uint32_t chiplet_deep_exit_mask3 : 1;
+ uint32_t chiplet_deep_exit_mask2 : 1;
+ uint32_t chiplet_deep_exit_mask1 : 1;
+ uint32_t chiplet_deep_exit_mask0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_deep_exit_mask_reg_and_t;
+
+
+
+typedef union pmc_deep_exit_mask_reg_or {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t chiplet_deep_exit_mask0 : 1;
+ uint32_t chiplet_deep_exit_mask1 : 1;
+ uint32_t chiplet_deep_exit_mask2 : 1;
+ uint32_t chiplet_deep_exit_mask3 : 1;
+ uint32_t chiplet_deep_exit_mask4 : 1;
+ uint32_t chiplet_deep_exit_mask5 : 1;
+ uint32_t chiplet_deep_exit_mask6 : 1;
+ uint32_t chiplet_deep_exit_mask7 : 1;
+ uint32_t chiplet_deep_exit_mask8 : 1;
+ uint32_t chiplet_deep_exit_mask9 : 1;
+ uint32_t chiplet_deep_exit_mask10 : 1;
+ uint32_t chiplet_deep_exit_mask11 : 1;
+ uint32_t chiplet_deep_exit_mask12 : 1;
+ uint32_t chiplet_deep_exit_mask13 : 1;
+ uint32_t chiplet_deep_exit_mask14 : 1;
+ uint32_t chiplet_deep_exit_mask15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t chiplet_deep_exit_mask15 : 1;
+ uint32_t chiplet_deep_exit_mask14 : 1;
+ uint32_t chiplet_deep_exit_mask13 : 1;
+ uint32_t chiplet_deep_exit_mask12 : 1;
+ uint32_t chiplet_deep_exit_mask11 : 1;
+ uint32_t chiplet_deep_exit_mask10 : 1;
+ uint32_t chiplet_deep_exit_mask9 : 1;
+ uint32_t chiplet_deep_exit_mask8 : 1;
+ uint32_t chiplet_deep_exit_mask7 : 1;
+ uint32_t chiplet_deep_exit_mask6 : 1;
+ uint32_t chiplet_deep_exit_mask5 : 1;
+ uint32_t chiplet_deep_exit_mask4 : 1;
+ uint32_t chiplet_deep_exit_mask3 : 1;
+ uint32_t chiplet_deep_exit_mask2 : 1;
+ uint32_t chiplet_deep_exit_mask1 : 1;
+ uint32_t chiplet_deep_exit_mask0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_deep_exit_mask_reg_or_t;
+
+
+
+typedef union pmc_core_pstate_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t pstate_core0 : 8;
+ int32_t pstate_core1 : 8;
+ int32_t pstate_core2 : 8;
+ int32_t pstate_core3 : 8;
+#else
+ int32_t pstate_core3 : 8;
+ int32_t pstate_core2 : 8;
+ int32_t pstate_core1 : 8;
+ int32_t pstate_core0 : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_core_pstate_reg0_t;
+
+
+
+typedef union pmc_core_pstate_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t pstate_core4 : 8;
+ int32_t pstate_core5 : 8;
+ int32_t pstate_core6 : 8;
+ int32_t pstate_core7 : 8;
+#else
+ int32_t pstate_core7 : 8;
+ int32_t pstate_core6 : 8;
+ int32_t pstate_core5 : 8;
+ int32_t pstate_core4 : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_core_pstate_reg1_t;
+
+
+
+typedef union pmc_core_pstate_reg2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t pstate_core8 : 8;
+ int32_t pstate_core9 : 8;
+ int32_t pstate_core10 : 8;
+ int32_t pstate_core11 : 8;
+#else
+ int32_t pstate_core11 : 8;
+ int32_t pstate_core10 : 8;
+ int32_t pstate_core9 : 8;
+ int32_t pstate_core8 : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_core_pstate_reg2_t;
+
+
+
+typedef union pmc_core_pstate_reg3 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ int32_t pstate_core12 : 8;
+ int32_t pstate_core13 : 8;
+ int32_t pstate_core14 : 8;
+ int32_t pstate_core15 : 8;
+#else
+ int32_t pstate_core15 : 8;
+ int32_t pstate_core14 : 8;
+ int32_t pstate_core13 : 8;
+ int32_t pstate_core12 : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_core_pstate_reg3_t;
+
+
+
+typedef union pmc_core_power_donation_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t power_donation_core0 : 1;
+ uint32_t power_donation_core1 : 1;
+ uint32_t power_donation_core2 : 1;
+ uint32_t power_donation_core3 : 1;
+ uint32_t power_donation_core4 : 1;
+ uint32_t power_donation_core5 : 1;
+ uint32_t power_donation_core6 : 1;
+ uint32_t power_donation_core7 : 1;
+ uint32_t power_donation_core8 : 1;
+ uint32_t power_donation_core9 : 1;
+ uint32_t power_donation_core10 : 1;
+ uint32_t power_donation_core11 : 1;
+ uint32_t power_donation_core12 : 1;
+ uint32_t power_donation_core13 : 1;
+ uint32_t power_donation_core14 : 1;
+ uint32_t power_donation_core15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t power_donation_core15 : 1;
+ uint32_t power_donation_core14 : 1;
+ uint32_t power_donation_core13 : 1;
+ uint32_t power_donation_core12 : 1;
+ uint32_t power_donation_core11 : 1;
+ uint32_t power_donation_core10 : 1;
+ uint32_t power_donation_core9 : 1;
+ uint32_t power_donation_core8 : 1;
+ uint32_t power_donation_core7 : 1;
+ uint32_t power_donation_core6 : 1;
+ uint32_t power_donation_core5 : 1;
+ uint32_t power_donation_core4 : 1;
+ uint32_t power_donation_core3 : 1;
+ uint32_t power_donation_core2 : 1;
+ uint32_t power_donation_core1 : 1;
+ uint32_t power_donation_core0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_core_power_donation_reg_t;
+
+
+
+typedef union pmc_pmax_sync_collection_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pmax_sync0 : 1;
+ uint32_t pmax_sync1 : 1;
+ uint32_t pmax_sync2 : 1;
+ uint32_t pmax_sync3 : 1;
+ uint32_t pmax_sync4 : 1;
+ uint32_t pmax_sync5 : 1;
+ uint32_t pmax_sync6 : 1;
+ uint32_t pmax_sync7 : 1;
+ uint32_t pmax_sync8 : 1;
+ uint32_t pmax_sync9 : 1;
+ uint32_t pmax_sync10 : 1;
+ uint32_t pmax_sync11 : 1;
+ uint32_t pmax_sync12 : 1;
+ uint32_t pmax_sync13 : 1;
+ uint32_t pmax_sync14 : 1;
+ uint32_t pmax_sync15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t pmax_sync15 : 1;
+ uint32_t pmax_sync14 : 1;
+ uint32_t pmax_sync13 : 1;
+ uint32_t pmax_sync12 : 1;
+ uint32_t pmax_sync11 : 1;
+ uint32_t pmax_sync10 : 1;
+ uint32_t pmax_sync9 : 1;
+ uint32_t pmax_sync8 : 1;
+ uint32_t pmax_sync7 : 1;
+ uint32_t pmax_sync6 : 1;
+ uint32_t pmax_sync5 : 1;
+ uint32_t pmax_sync4 : 1;
+ uint32_t pmax_sync3 : 1;
+ uint32_t pmax_sync2 : 1;
+ uint32_t pmax_sync1 : 1;
+ uint32_t pmax_sync0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pmax_sync_collection_reg_t;
+
+
+
+typedef union pmc_pmax_sync_collection_mask_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t pmax_sync_mask0 : 1;
+ uint32_t pmax_sync_mask1 : 1;
+ uint32_t pmax_sync_mask2 : 1;
+ uint32_t pmax_sync_mask3 : 1;
+ uint32_t pmax_sync_mask4 : 1;
+ uint32_t pmax_sync_mask5 : 1;
+ uint32_t pmax_sync_mask6 : 1;
+ uint32_t pmax_sync_mask7 : 1;
+ uint32_t pmax_sync_mask8 : 1;
+ uint32_t pmax_sync_mask9 : 1;
+ uint32_t pmax_sync_mask10 : 1;
+ uint32_t pmax_sync_mask11 : 1;
+ uint32_t pmax_sync_mask12 : 1;
+ uint32_t pmax_sync_mask13 : 1;
+ uint32_t pmax_sync_mask14 : 1;
+ uint32_t pmax_sync_mask15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t pmax_sync_mask15 : 1;
+ uint32_t pmax_sync_mask14 : 1;
+ uint32_t pmax_sync_mask13 : 1;
+ uint32_t pmax_sync_mask12 : 1;
+ uint32_t pmax_sync_mask11 : 1;
+ uint32_t pmax_sync_mask10 : 1;
+ uint32_t pmax_sync_mask9 : 1;
+ uint32_t pmax_sync_mask8 : 1;
+ uint32_t pmax_sync_mask7 : 1;
+ uint32_t pmax_sync_mask6 : 1;
+ uint32_t pmax_sync_mask5 : 1;
+ uint32_t pmax_sync_mask4 : 1;
+ uint32_t pmax_sync_mask3 : 1;
+ uint32_t pmax_sync_mask2 : 1;
+ uint32_t pmax_sync_mask1 : 1;
+ uint32_t pmax_sync_mask0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pmax_sync_collection_mask_reg_t;
+
+
+
+typedef union pmc_gpsa_ack_collection_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t gpsa_ack0 : 1;
+ uint32_t gpsa_ack1 : 1;
+ uint32_t gpsa_ack2 : 1;
+ uint32_t gpsa_ack3 : 1;
+ uint32_t gpsa_ack4 : 1;
+ uint32_t gpsa_ack5 : 1;
+ uint32_t gpsa_ack6 : 1;
+ uint32_t gpsa_ack7 : 1;
+ uint32_t gpsa_ack8 : 1;
+ uint32_t gpsa_ack9 : 1;
+ uint32_t gpsa_ack10 : 1;
+ uint32_t gpsa_ack11 : 1;
+ uint32_t gpsa_ack12 : 1;
+ uint32_t gpsa_ack13 : 1;
+ uint32_t gpsa_ack14 : 1;
+ uint32_t gpsa_ack15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t gpsa_ack15 : 1;
+ uint32_t gpsa_ack14 : 1;
+ uint32_t gpsa_ack13 : 1;
+ uint32_t gpsa_ack12 : 1;
+ uint32_t gpsa_ack11 : 1;
+ uint32_t gpsa_ack10 : 1;
+ uint32_t gpsa_ack9 : 1;
+ uint32_t gpsa_ack8 : 1;
+ uint32_t gpsa_ack7 : 1;
+ uint32_t gpsa_ack6 : 1;
+ uint32_t gpsa_ack5 : 1;
+ uint32_t gpsa_ack4 : 1;
+ uint32_t gpsa_ack3 : 1;
+ uint32_t gpsa_ack2 : 1;
+ uint32_t gpsa_ack1 : 1;
+ uint32_t gpsa_ack0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_gpsa_ack_collection_reg_t;
+
+
+
+typedef union pmc_gpsa_ack_collection_mask_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t gpsa_ack_mask0 : 1;
+ uint32_t gpsa_ack_mask1 : 1;
+ uint32_t gpsa_ack_mask2 : 1;
+ uint32_t gpsa_ack_mask3 : 1;
+ uint32_t gpsa_ack_mask4 : 1;
+ uint32_t gpsa_ack_mask5 : 1;
+ uint32_t gpsa_ack_mask6 : 1;
+ uint32_t gpsa_ack_mask7 : 1;
+ uint32_t gpsa_ack_mask8 : 1;
+ uint32_t gpsa_ack_mask9 : 1;
+ uint32_t gpsa_ack_mask10 : 1;
+ uint32_t gpsa_ack_mask11 : 1;
+ uint32_t gpsa_ack_mask12 : 1;
+ uint32_t gpsa_ack_mask13 : 1;
+ uint32_t gpsa_ack_mask14 : 1;
+ uint32_t gpsa_ack_mask15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t gpsa_ack_mask15 : 1;
+ uint32_t gpsa_ack_mask14 : 1;
+ uint32_t gpsa_ack_mask13 : 1;
+ uint32_t gpsa_ack_mask12 : 1;
+ uint32_t gpsa_ack_mask11 : 1;
+ uint32_t gpsa_ack_mask10 : 1;
+ uint32_t gpsa_ack_mask9 : 1;
+ uint32_t gpsa_ack_mask8 : 1;
+ uint32_t gpsa_ack_mask7 : 1;
+ uint32_t gpsa_ack_mask6 : 1;
+ uint32_t gpsa_ack_mask5 : 1;
+ uint32_t gpsa_ack_mask4 : 1;
+ uint32_t gpsa_ack_mask3 : 1;
+ uint32_t gpsa_ack_mask2 : 1;
+ uint32_t gpsa_ack_mask1 : 1;
+ uint32_t gpsa_ack_mask0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_gpsa_ack_collection_mask_reg_t;
+
+
+
+typedef union pmc_pore_scratch_reg0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t porscr_scratch0 : 32;
+#else
+ uint32_t porscr_scratch0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pore_scratch_reg0_t;
+
+
+
+typedef union pmc_pore_scratch_reg1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t porscr_scratch1 : 32;
+#else
+ uint32_t porscr_scratch1 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pore_scratch_reg1_t;
+
+
+
+typedef union pmc_deep_idle_exit_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t deep_exit_pending_and_masked_0 : 1;
+ uint32_t deep_exit_pending_and_masked_1 : 1;
+ uint32_t deep_exit_pending_and_masked_2 : 1;
+ uint32_t deep_exit_pending_and_masked_3 : 1;
+ uint32_t deep_exit_pending_and_masked_4 : 1;
+ uint32_t deep_exit_pending_and_masked_5 : 1;
+ uint32_t deep_exit_pending_and_masked_6 : 1;
+ uint32_t deep_exit_pending_and_masked_7 : 1;
+ uint32_t deep_exit_pending_and_masked_8 : 1;
+ uint32_t deep_exit_pending_and_masked_9 : 1;
+ uint32_t deep_exit_pending_and_masked_10 : 1;
+ uint32_t deep_exit_pending_and_masked_11 : 1;
+ uint32_t deep_exit_pending_and_masked_12 : 1;
+ uint32_t deep_exit_pending_and_masked_13 : 1;
+ uint32_t deep_exit_pending_and_masked_14 : 1;
+ uint32_t deep_exit_pending_and_masked_15 : 1;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t deep_exit_pending_and_masked_15 : 1;
+ uint32_t deep_exit_pending_and_masked_14 : 1;
+ uint32_t deep_exit_pending_and_masked_13 : 1;
+ uint32_t deep_exit_pending_and_masked_12 : 1;
+ uint32_t deep_exit_pending_and_masked_11 : 1;
+ uint32_t deep_exit_pending_and_masked_10 : 1;
+ uint32_t deep_exit_pending_and_masked_9 : 1;
+ uint32_t deep_exit_pending_and_masked_8 : 1;
+ uint32_t deep_exit_pending_and_masked_7 : 1;
+ uint32_t deep_exit_pending_and_masked_6 : 1;
+ uint32_t deep_exit_pending_and_masked_5 : 1;
+ uint32_t deep_exit_pending_and_masked_4 : 1;
+ uint32_t deep_exit_pending_and_masked_3 : 1;
+ uint32_t deep_exit_pending_and_masked_2 : 1;
+ uint32_t deep_exit_pending_and_masked_1 : 1;
+ uint32_t deep_exit_pending_and_masked_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_deep_idle_exit_reg_t;
+
+
+
+typedef union pmc_deep_status_reg {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t deep_idle_state_core0 : 1;
+ uint32_t deep_idle_state_core1 : 1;
+ uint32_t deep_idle_state_core2 : 1;
+ uint32_t deep_idle_state_core3 : 1;
+ uint32_t deep_idle_state_core4 : 1;
+ uint32_t deep_idle_state_core5 : 1;
+ uint32_t deep_idle_state_core6 : 1;
+ uint32_t deep_idle_state_core7 : 1;
+ uint32_t deep_idle_state_core8 : 1;
+ uint32_t deep_idle_state_core9 : 1;
+ uint32_t deep_idle_state_core10 : 1;
+ uint32_t deep_idle_state_core11 : 1;
+ uint32_t deep_idle_state_core12 : 1;
+ uint32_t deep_idle_state_core13 : 1;
+ uint32_t deep_idle_state_core14 : 1;
+ uint32_t deep_idle_state_core15 : 1;
+ uint32_t winkle_state_core0 : 1;
+ uint32_t winkle_state_core1 : 1;
+ uint32_t winkle_state_core2 : 1;
+ uint32_t winkle_state_core3 : 1;
+ uint32_t winkle_state_core4 : 1;
+ uint32_t winkle_state_core5 : 1;
+ uint32_t winkle_state_core6 : 1;
+ uint32_t winkle_state_core7 : 1;
+ uint32_t winkle_state_core8 : 1;
+ uint32_t winkle_state_core9 : 1;
+ uint32_t winkle_state_core10 : 1;
+ uint32_t winkle_state_core11 : 1;
+ uint32_t winkle_state_core12 : 1;
+ uint32_t winkle_state_core13 : 1;
+ uint32_t winkle_state_core14 : 1;
+ uint32_t winkle_state_core15 : 1;
+#else
+ uint32_t winkle_state_core15 : 1;
+ uint32_t winkle_state_core14 : 1;
+ uint32_t winkle_state_core13 : 1;
+ uint32_t winkle_state_core12 : 1;
+ uint32_t winkle_state_core11 : 1;
+ uint32_t winkle_state_core10 : 1;
+ uint32_t winkle_state_core9 : 1;
+ uint32_t winkle_state_core8 : 1;
+ uint32_t winkle_state_core7 : 1;
+ uint32_t winkle_state_core6 : 1;
+ uint32_t winkle_state_core5 : 1;
+ uint32_t winkle_state_core4 : 1;
+ uint32_t winkle_state_core3 : 1;
+ uint32_t winkle_state_core2 : 1;
+ uint32_t winkle_state_core1 : 1;
+ uint32_t winkle_state_core0 : 1;
+ uint32_t deep_idle_state_core15 : 1;
+ uint32_t deep_idle_state_core14 : 1;
+ uint32_t deep_idle_state_core13 : 1;
+ uint32_t deep_idle_state_core12 : 1;
+ uint32_t deep_idle_state_core11 : 1;
+ uint32_t deep_idle_state_core10 : 1;
+ uint32_t deep_idle_state_core9 : 1;
+ uint32_t deep_idle_state_core8 : 1;
+ uint32_t deep_idle_state_core7 : 1;
+ uint32_t deep_idle_state_core6 : 1;
+ uint32_t deep_idle_state_core5 : 1;
+ uint32_t deep_idle_state_core4 : 1;
+ uint32_t deep_idle_state_core3 : 1;
+ uint32_t deep_idle_state_core2 : 1;
+ uint32_t deep_idle_state_core1 : 1;
+ uint32_t deep_idle_state_core0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_deep_status_reg_t;
+
+
+
+typedef union pmc_ba_pore_exe_trigger_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_ba_pore_exe_trigger_reg_t;
+
+
+
+typedef union pmc_pcbs_gaps_brdcast_addr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t value : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t value : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_pcbs_gaps_brdcast_addr_t;
+
+
+
+typedef union pmc_lfir_err_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t lfir_pstate_oci_master_rderr : 1;
+ uint64_t lfir_pstate_oci_master_rddata_parity_err : 1;
+ uint64_t lfir_pstate_gpst_checkbyte_err : 1;
+ uint64_t lfir_pstate_gack_to_err : 1;
+ uint64_t lfir_pstate_pib_master_nonoffline_err : 1;
+ uint64_t lfir_pstate_pib_master_offline_err : 1;
+ uint64_t lfir_pstate_oci_master_to_err : 1;
+ uint64_t lfir_pstate_interchip_ue_err : 1;
+ uint64_t lfir_pstate_interchip_errorframe_err : 1;
+ uint64_t lfir_pstate_ms_fsm_err : 1;
+ uint64_t lfir_ms_comp_parity_err : 1;
+ uint64_t lfir_idle_poresw_fatal_err : 1;
+ uint64_t lfir_idle_poresw_status_rc_err : 1;
+ uint64_t lfir_idle_poresw_status_value_err : 1;
+ uint64_t lfir_idle_poresw_write_while_inactive_err : 1;
+ uint64_t lfir_idle_poresw_timeout_err : 1;
+ uint64_t lfir_idle_oci_master_write_timeout_err : 1;
+ uint64_t lfir_idle_internal_err : 1;
+ uint64_t lfir_int_comp_parity_err : 1;
+ uint64_t lfir_pmc_occ_heartbeat_timeout : 1;
+ uint64_t lfir_spivid_crc_error0 : 1;
+ uint64_t lfir_spivid_crc_error1 : 1;
+ uint64_t lfir_spivid_crc_error2 : 1;
+ uint64_t lfir_spivid_retry_timeout : 1;
+ uint64_t lfir_spivid_fsm_err : 1;
+ uint64_t lfir_spivid_majority_detected_a_minority : 1;
+ uint64_t lfir_o2s_crc_error0 : 1;
+ uint64_t lfir_o2s_crc_error1 : 1;
+ uint64_t lfir_o2s_crc_error2 : 1;
+ uint64_t lfir_o2s_retry_timeout : 1;
+ uint64_t lfir_o2s_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_fsm_err : 1;
+ uint64_t lfir_o2s_majority_detected_a_minority : 1;
+ uint64_t lfir_o2p_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2p_fsm_err : 1;
+ uint64_t lfir_oci_slave_err : 1;
+ uint64_t lfir_if_comp_parity_error : 1;
+ uint64_t spare_fir : 10;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t fir_parity_err : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t spare_fir : 10;
+ uint64_t lfir_if_comp_parity_error : 1;
+ uint64_t lfir_oci_slave_err : 1;
+ uint64_t lfir_o2p_fsm_err : 1;
+ uint64_t lfir_o2p_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_majority_detected_a_minority : 1;
+ uint64_t lfir_o2s_fsm_err : 1;
+ uint64_t lfir_o2s_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_retry_timeout : 1;
+ uint64_t lfir_o2s_crc_error2 : 1;
+ uint64_t lfir_o2s_crc_error1 : 1;
+ uint64_t lfir_o2s_crc_error0 : 1;
+ uint64_t lfir_spivid_majority_detected_a_minority : 1;
+ uint64_t lfir_spivid_fsm_err : 1;
+ uint64_t lfir_spivid_retry_timeout : 1;
+ uint64_t lfir_spivid_crc_error2 : 1;
+ uint64_t lfir_spivid_crc_error1 : 1;
+ uint64_t lfir_spivid_crc_error0 : 1;
+ uint64_t lfir_pmc_occ_heartbeat_timeout : 1;
+ uint64_t lfir_int_comp_parity_err : 1;
+ uint64_t lfir_idle_internal_err : 1;
+ uint64_t lfir_idle_oci_master_write_timeout_err : 1;
+ uint64_t lfir_idle_poresw_timeout_err : 1;
+ uint64_t lfir_idle_poresw_write_while_inactive_err : 1;
+ uint64_t lfir_idle_poresw_status_value_err : 1;
+ uint64_t lfir_idle_poresw_status_rc_err : 1;
+ uint64_t lfir_idle_poresw_fatal_err : 1;
+ uint64_t lfir_ms_comp_parity_err : 1;
+ uint64_t lfir_pstate_ms_fsm_err : 1;
+ uint64_t lfir_pstate_interchip_errorframe_err : 1;
+ uint64_t lfir_pstate_interchip_ue_err : 1;
+ uint64_t lfir_pstate_oci_master_to_err : 1;
+ uint64_t lfir_pstate_pib_master_offline_err : 1;
+ uint64_t lfir_pstate_pib_master_nonoffline_err : 1;
+ uint64_t lfir_pstate_gack_to_err : 1;
+ uint64_t lfir_pstate_gpst_checkbyte_err : 1;
+ uint64_t lfir_pstate_oci_master_rddata_parity_err : 1;
+ uint64_t lfir_pstate_oci_master_rderr : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_err_reg_t;
+
+
+
+typedef union pmc_lfir_err_reg_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t lfir_pstate_oci_master_rderr : 1;
+ uint64_t lfir_pstate_oci_master_rddata_parity_err : 1;
+ uint64_t lfir_pstate_gpst_checkbyte_err : 1;
+ uint64_t lfir_pstate_gack_to_err : 1;
+ uint64_t lfir_pstate_pib_master_nonoffline_err : 1;
+ uint64_t lfir_pstate_pib_master_offline_err : 1;
+ uint64_t lfir_pstate_oci_master_to_err : 1;
+ uint64_t lfir_pstate_interchip_ue_err : 1;
+ uint64_t lfir_pstate_interchip_errorframe_err : 1;
+ uint64_t lfir_pstate_ms_fsm_err : 1;
+ uint64_t lfir_ms_comp_parity_err : 1;
+ uint64_t lfir_idle_poresw_fatal_err : 1;
+ uint64_t lfir_idle_poresw_status_rc_err : 1;
+ uint64_t lfir_idle_poresw_status_value_err : 1;
+ uint64_t lfir_idle_poresw_write_while_inactive_err : 1;
+ uint64_t lfir_idle_poresw_timeout_err : 1;
+ uint64_t lfir_idle_oci_master_write_timeout_err : 1;
+ uint64_t lfir_idle_internal_err : 1;
+ uint64_t lfir_int_comp_parity_err : 1;
+ uint64_t lfir_pmc_occ_heartbeat_timeout : 1;
+ uint64_t lfir_spivid_crc_error0 : 1;
+ uint64_t lfir_spivid_crc_error1 : 1;
+ uint64_t lfir_spivid_crc_error2 : 1;
+ uint64_t lfir_spivid_retry_timeout : 1;
+ uint64_t lfir_spivid_fsm_err : 1;
+ uint64_t lfir_spivid_majority_detected_a_minority : 1;
+ uint64_t lfir_o2s_crc_error0 : 1;
+ uint64_t lfir_o2s_crc_error1 : 1;
+ uint64_t lfir_o2s_crc_error2 : 1;
+ uint64_t lfir_o2s_retry_timeout : 1;
+ uint64_t lfir_o2s_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_fsm_err : 1;
+ uint64_t lfir_o2s_majority_detected_a_minority : 1;
+ uint64_t lfir_o2p_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2p_fsm_err : 1;
+ uint64_t lfir_oci_slave_err : 1;
+ uint64_t lfir_if_comp_parity_error : 1;
+ uint64_t spare_fir : 10;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t fir_parity_err : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t spare_fir : 10;
+ uint64_t lfir_if_comp_parity_error : 1;
+ uint64_t lfir_oci_slave_err : 1;
+ uint64_t lfir_o2p_fsm_err : 1;
+ uint64_t lfir_o2p_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_majority_detected_a_minority : 1;
+ uint64_t lfir_o2s_fsm_err : 1;
+ uint64_t lfir_o2s_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_retry_timeout : 1;
+ uint64_t lfir_o2s_crc_error2 : 1;
+ uint64_t lfir_o2s_crc_error1 : 1;
+ uint64_t lfir_o2s_crc_error0 : 1;
+ uint64_t lfir_spivid_majority_detected_a_minority : 1;
+ uint64_t lfir_spivid_fsm_err : 1;
+ uint64_t lfir_spivid_retry_timeout : 1;
+ uint64_t lfir_spivid_crc_error2 : 1;
+ uint64_t lfir_spivid_crc_error1 : 1;
+ uint64_t lfir_spivid_crc_error0 : 1;
+ uint64_t lfir_pmc_occ_heartbeat_timeout : 1;
+ uint64_t lfir_int_comp_parity_err : 1;
+ uint64_t lfir_idle_internal_err : 1;
+ uint64_t lfir_idle_oci_master_write_timeout_err : 1;
+ uint64_t lfir_idle_poresw_timeout_err : 1;
+ uint64_t lfir_idle_poresw_write_while_inactive_err : 1;
+ uint64_t lfir_idle_poresw_status_value_err : 1;
+ uint64_t lfir_idle_poresw_status_rc_err : 1;
+ uint64_t lfir_idle_poresw_fatal_err : 1;
+ uint64_t lfir_ms_comp_parity_err : 1;
+ uint64_t lfir_pstate_ms_fsm_err : 1;
+ uint64_t lfir_pstate_interchip_errorframe_err : 1;
+ uint64_t lfir_pstate_interchip_ue_err : 1;
+ uint64_t lfir_pstate_oci_master_to_err : 1;
+ uint64_t lfir_pstate_pib_master_offline_err : 1;
+ uint64_t lfir_pstate_pib_master_nonoffline_err : 1;
+ uint64_t lfir_pstate_gack_to_err : 1;
+ uint64_t lfir_pstate_gpst_checkbyte_err : 1;
+ uint64_t lfir_pstate_oci_master_rddata_parity_err : 1;
+ uint64_t lfir_pstate_oci_master_rderr : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_err_reg_and_t;
+
+
+
+typedef union pmc_lfir_err_reg_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t lfir_pstate_oci_master_rderr : 1;
+ uint64_t lfir_pstate_oci_master_rddata_parity_err : 1;
+ uint64_t lfir_pstate_gpst_checkbyte_err : 1;
+ uint64_t lfir_pstate_gack_to_err : 1;
+ uint64_t lfir_pstate_pib_master_nonoffline_err : 1;
+ uint64_t lfir_pstate_pib_master_offline_err : 1;
+ uint64_t lfir_pstate_oci_master_to_err : 1;
+ uint64_t lfir_pstate_interchip_ue_err : 1;
+ uint64_t lfir_pstate_interchip_errorframe_err : 1;
+ uint64_t lfir_pstate_ms_fsm_err : 1;
+ uint64_t lfir_ms_comp_parity_err : 1;
+ uint64_t lfir_idle_poresw_fatal_err : 1;
+ uint64_t lfir_idle_poresw_status_rc_err : 1;
+ uint64_t lfir_idle_poresw_status_value_err : 1;
+ uint64_t lfir_idle_poresw_write_while_inactive_err : 1;
+ uint64_t lfir_idle_poresw_timeout_err : 1;
+ uint64_t lfir_idle_oci_master_write_timeout_err : 1;
+ uint64_t lfir_idle_internal_err : 1;
+ uint64_t lfir_int_comp_parity_err : 1;
+ uint64_t lfir_pmc_occ_heartbeat_timeout : 1;
+ uint64_t lfir_spivid_crc_error0 : 1;
+ uint64_t lfir_spivid_crc_error1 : 1;
+ uint64_t lfir_spivid_crc_error2 : 1;
+ uint64_t lfir_spivid_retry_timeout : 1;
+ uint64_t lfir_spivid_fsm_err : 1;
+ uint64_t lfir_spivid_majority_detected_a_minority : 1;
+ uint64_t lfir_o2s_crc_error0 : 1;
+ uint64_t lfir_o2s_crc_error1 : 1;
+ uint64_t lfir_o2s_crc_error2 : 1;
+ uint64_t lfir_o2s_retry_timeout : 1;
+ uint64_t lfir_o2s_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_fsm_err : 1;
+ uint64_t lfir_o2s_majority_detected_a_minority : 1;
+ uint64_t lfir_o2p_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2p_fsm_err : 1;
+ uint64_t lfir_oci_slave_err : 1;
+ uint64_t lfir_if_comp_parity_error : 1;
+ uint64_t spare_fir : 10;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t fir_parity_err : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t fir_parity_err : 1;
+ uint64_t fir_parity_err_dup : 1;
+ uint64_t spare_fir : 10;
+ uint64_t lfir_if_comp_parity_error : 1;
+ uint64_t lfir_oci_slave_err : 1;
+ uint64_t lfir_o2p_fsm_err : 1;
+ uint64_t lfir_o2p_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_majority_detected_a_minority : 1;
+ uint64_t lfir_o2s_fsm_err : 1;
+ uint64_t lfir_o2s_write_while_bridge_busy_err : 1;
+ uint64_t lfir_o2s_retry_timeout : 1;
+ uint64_t lfir_o2s_crc_error2 : 1;
+ uint64_t lfir_o2s_crc_error1 : 1;
+ uint64_t lfir_o2s_crc_error0 : 1;
+ uint64_t lfir_spivid_majority_detected_a_minority : 1;
+ uint64_t lfir_spivid_fsm_err : 1;
+ uint64_t lfir_spivid_retry_timeout : 1;
+ uint64_t lfir_spivid_crc_error2 : 1;
+ uint64_t lfir_spivid_crc_error1 : 1;
+ uint64_t lfir_spivid_crc_error0 : 1;
+ uint64_t lfir_pmc_occ_heartbeat_timeout : 1;
+ uint64_t lfir_int_comp_parity_err : 1;
+ uint64_t lfir_idle_internal_err : 1;
+ uint64_t lfir_idle_oci_master_write_timeout_err : 1;
+ uint64_t lfir_idle_poresw_timeout_err : 1;
+ uint64_t lfir_idle_poresw_write_while_inactive_err : 1;
+ uint64_t lfir_idle_poresw_status_value_err : 1;
+ uint64_t lfir_idle_poresw_status_rc_err : 1;
+ uint64_t lfir_idle_poresw_fatal_err : 1;
+ uint64_t lfir_ms_comp_parity_err : 1;
+ uint64_t lfir_pstate_ms_fsm_err : 1;
+ uint64_t lfir_pstate_interchip_errorframe_err : 1;
+ uint64_t lfir_pstate_interchip_ue_err : 1;
+ uint64_t lfir_pstate_oci_master_to_err : 1;
+ uint64_t lfir_pstate_pib_master_offline_err : 1;
+ uint64_t lfir_pstate_pib_master_nonoffline_err : 1;
+ uint64_t lfir_pstate_gack_to_err : 1;
+ uint64_t lfir_pstate_gpst_checkbyte_err : 1;
+ uint64_t lfir_pstate_oci_master_rddata_parity_err : 1;
+ uint64_t lfir_pstate_oci_master_rderr : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_err_reg_or_t;
+
+
+
+typedef union pmc_lfir_err_mask_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pmc_lfir_mask_0 : 1;
+ uint64_t pmc_lfir_mask_1 : 1;
+ uint64_t pmc_lfir_mask_2 : 1;
+ uint64_t pmc_lfir_mask_3 : 1;
+ uint64_t pmc_lfir_mask_4 : 1;
+ uint64_t pmc_lfir_mask_5 : 1;
+ uint64_t pmc_lfir_mask_6 : 1;
+ uint64_t pmc_lfir_mask_7 : 1;
+ uint64_t pmc_lfir_mask_8 : 1;
+ uint64_t pmc_lfir_mask_9 : 1;
+ uint64_t pmc_lfir_mask_10 : 1;
+ uint64_t pmc_lfir_mask_11 : 1;
+ uint64_t pmc_lfir_mask_12 : 1;
+ uint64_t pmc_lfir_mask_13 : 1;
+ uint64_t pmc_lfir_mask_14 : 1;
+ uint64_t pmc_lfir_mask_15 : 1;
+ uint64_t pmc_lfir_mask_16 : 1;
+ uint64_t pmc_lfir_mask_17 : 1;
+ uint64_t pmc_lfir_mask_18 : 1;
+ uint64_t pmc_lfir_mask_19 : 1;
+ uint64_t pmc_lfir_mask_20 : 1;
+ uint64_t pmc_lfir_mask_21 : 1;
+ uint64_t pmc_lfir_mask_22 : 1;
+ uint64_t pmc_lfir_mask_23 : 1;
+ uint64_t pmc_lfir_mask_24 : 1;
+ uint64_t pmc_lfir_mask_25 : 1;
+ uint64_t pmc_lfir_mask_26 : 1;
+ uint64_t pmc_lfir_mask_27 : 1;
+ uint64_t pmc_lfir_mask_28 : 1;
+ uint64_t pmc_lfir_mask_29 : 1;
+ uint64_t pmc_lfir_mask_30 : 1;
+ uint64_t pmc_lfir_mask_31 : 1;
+ uint64_t pmc_lfir_mask_32 : 1;
+ uint64_t pmc_lfir_mask_33 : 1;
+ uint64_t pmc_lfir_mask_34 : 1;
+ uint64_t pmc_lfir_mask_35 : 1;
+ uint64_t pmc_lfir_mask_36 : 1;
+ uint64_t pmc_lfir_mask1_37_46 : 10;
+ uint64_t pmc_lfir_mask1_47 : 1;
+ uint64_t pmc_lfir_mask1_48 : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t pmc_lfir_mask1_48 : 1;
+ uint64_t pmc_lfir_mask1_47 : 1;
+ uint64_t pmc_lfir_mask1_37_46 : 10;
+ uint64_t pmc_lfir_mask_36 : 1;
+ uint64_t pmc_lfir_mask_35 : 1;
+ uint64_t pmc_lfir_mask_34 : 1;
+ uint64_t pmc_lfir_mask_33 : 1;
+ uint64_t pmc_lfir_mask_32 : 1;
+ uint64_t pmc_lfir_mask_31 : 1;
+ uint64_t pmc_lfir_mask_30 : 1;
+ uint64_t pmc_lfir_mask_29 : 1;
+ uint64_t pmc_lfir_mask_28 : 1;
+ uint64_t pmc_lfir_mask_27 : 1;
+ uint64_t pmc_lfir_mask_26 : 1;
+ uint64_t pmc_lfir_mask_25 : 1;
+ uint64_t pmc_lfir_mask_24 : 1;
+ uint64_t pmc_lfir_mask_23 : 1;
+ uint64_t pmc_lfir_mask_22 : 1;
+ uint64_t pmc_lfir_mask_21 : 1;
+ uint64_t pmc_lfir_mask_20 : 1;
+ uint64_t pmc_lfir_mask_19 : 1;
+ uint64_t pmc_lfir_mask_18 : 1;
+ uint64_t pmc_lfir_mask_17 : 1;
+ uint64_t pmc_lfir_mask_16 : 1;
+ uint64_t pmc_lfir_mask_15 : 1;
+ uint64_t pmc_lfir_mask_14 : 1;
+ uint64_t pmc_lfir_mask_13 : 1;
+ uint64_t pmc_lfir_mask_12 : 1;
+ uint64_t pmc_lfir_mask_11 : 1;
+ uint64_t pmc_lfir_mask_10 : 1;
+ uint64_t pmc_lfir_mask_9 : 1;
+ uint64_t pmc_lfir_mask_8 : 1;
+ uint64_t pmc_lfir_mask_7 : 1;
+ uint64_t pmc_lfir_mask_6 : 1;
+ uint64_t pmc_lfir_mask_5 : 1;
+ uint64_t pmc_lfir_mask_4 : 1;
+ uint64_t pmc_lfir_mask_3 : 1;
+ uint64_t pmc_lfir_mask_2 : 1;
+ uint64_t pmc_lfir_mask_1 : 1;
+ uint64_t pmc_lfir_mask_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_err_mask_reg_t;
+
+
+
+typedef union pmc_lfir_err_mask_reg_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pmc_lfir_mask_0 : 1;
+ uint64_t pmc_lfir_mask_1 : 1;
+ uint64_t pmc_lfir_mask_2 : 1;
+ uint64_t pmc_lfir_mask_3 : 1;
+ uint64_t pmc_lfir_mask_4 : 1;
+ uint64_t pmc_lfir_mask_5 : 1;
+ uint64_t pmc_lfir_mask_6 : 1;
+ uint64_t pmc_lfir_mask_7 : 1;
+ uint64_t pmc_lfir_mask_8 : 1;
+ uint64_t pmc_lfir_mask_9 : 1;
+ uint64_t pmc_lfir_mask_10 : 1;
+ uint64_t pmc_lfir_mask_11 : 1;
+ uint64_t pmc_lfir_mask_12 : 1;
+ uint64_t pmc_lfir_mask_13 : 1;
+ uint64_t pmc_lfir_mask_14 : 1;
+ uint64_t pmc_lfir_mask_15 : 1;
+ uint64_t pmc_lfir_mask_16 : 1;
+ uint64_t pmc_lfir_mask_17 : 1;
+ uint64_t pmc_lfir_mask_18 : 1;
+ uint64_t pmc_lfir_mask_19 : 1;
+ uint64_t pmc_lfir_mask_20 : 1;
+ uint64_t pmc_lfir_mask_21 : 1;
+ uint64_t pmc_lfir_mask_22 : 1;
+ uint64_t pmc_lfir_mask_23 : 1;
+ uint64_t pmc_lfir_mask_24 : 1;
+ uint64_t pmc_lfir_mask_25 : 1;
+ uint64_t pmc_lfir_mask_26 : 1;
+ uint64_t pmc_lfir_mask_27 : 1;
+ uint64_t pmc_lfir_mask_28 : 1;
+ uint64_t pmc_lfir_mask_29 : 1;
+ uint64_t pmc_lfir_mask_30 : 1;
+ uint64_t pmc_lfir_mask_31 : 1;
+ uint64_t pmc_lfir_mask_32 : 1;
+ uint64_t pmc_lfir_mask_33 : 1;
+ uint64_t pmc_lfir_mask_34 : 1;
+ uint64_t pmc_lfir_mask_35 : 1;
+ uint64_t pmc_lfir_mask_36 : 1;
+ uint64_t pmc_lfir_mask1_37_46 : 10;
+ uint64_t pmc_lfir_mask1_47 : 1;
+ uint64_t pmc_lfir_mask1_48 : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t pmc_lfir_mask1_48 : 1;
+ uint64_t pmc_lfir_mask1_47 : 1;
+ uint64_t pmc_lfir_mask1_37_46 : 10;
+ uint64_t pmc_lfir_mask_36 : 1;
+ uint64_t pmc_lfir_mask_35 : 1;
+ uint64_t pmc_lfir_mask_34 : 1;
+ uint64_t pmc_lfir_mask_33 : 1;
+ uint64_t pmc_lfir_mask_32 : 1;
+ uint64_t pmc_lfir_mask_31 : 1;
+ uint64_t pmc_lfir_mask_30 : 1;
+ uint64_t pmc_lfir_mask_29 : 1;
+ uint64_t pmc_lfir_mask_28 : 1;
+ uint64_t pmc_lfir_mask_27 : 1;
+ uint64_t pmc_lfir_mask_26 : 1;
+ uint64_t pmc_lfir_mask_25 : 1;
+ uint64_t pmc_lfir_mask_24 : 1;
+ uint64_t pmc_lfir_mask_23 : 1;
+ uint64_t pmc_lfir_mask_22 : 1;
+ uint64_t pmc_lfir_mask_21 : 1;
+ uint64_t pmc_lfir_mask_20 : 1;
+ uint64_t pmc_lfir_mask_19 : 1;
+ uint64_t pmc_lfir_mask_18 : 1;
+ uint64_t pmc_lfir_mask_17 : 1;
+ uint64_t pmc_lfir_mask_16 : 1;
+ uint64_t pmc_lfir_mask_15 : 1;
+ uint64_t pmc_lfir_mask_14 : 1;
+ uint64_t pmc_lfir_mask_13 : 1;
+ uint64_t pmc_lfir_mask_12 : 1;
+ uint64_t pmc_lfir_mask_11 : 1;
+ uint64_t pmc_lfir_mask_10 : 1;
+ uint64_t pmc_lfir_mask_9 : 1;
+ uint64_t pmc_lfir_mask_8 : 1;
+ uint64_t pmc_lfir_mask_7 : 1;
+ uint64_t pmc_lfir_mask_6 : 1;
+ uint64_t pmc_lfir_mask_5 : 1;
+ uint64_t pmc_lfir_mask_4 : 1;
+ uint64_t pmc_lfir_mask_3 : 1;
+ uint64_t pmc_lfir_mask_2 : 1;
+ uint64_t pmc_lfir_mask_1 : 1;
+ uint64_t pmc_lfir_mask_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_err_mask_reg_and_t;
+
+
+
+typedef union pmc_lfir_err_mask_reg_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pmc_lfir_mask_0 : 1;
+ uint64_t pmc_lfir_mask_1 : 1;
+ uint64_t pmc_lfir_mask_2 : 1;
+ uint64_t pmc_lfir_mask_3 : 1;
+ uint64_t pmc_lfir_mask_4 : 1;
+ uint64_t pmc_lfir_mask_5 : 1;
+ uint64_t pmc_lfir_mask_6 : 1;
+ uint64_t pmc_lfir_mask_7 : 1;
+ uint64_t pmc_lfir_mask_8 : 1;
+ uint64_t pmc_lfir_mask_9 : 1;
+ uint64_t pmc_lfir_mask_10 : 1;
+ uint64_t pmc_lfir_mask_11 : 1;
+ uint64_t pmc_lfir_mask_12 : 1;
+ uint64_t pmc_lfir_mask_13 : 1;
+ uint64_t pmc_lfir_mask_14 : 1;
+ uint64_t pmc_lfir_mask_15 : 1;
+ uint64_t pmc_lfir_mask_16 : 1;
+ uint64_t pmc_lfir_mask_17 : 1;
+ uint64_t pmc_lfir_mask_18 : 1;
+ uint64_t pmc_lfir_mask_19 : 1;
+ uint64_t pmc_lfir_mask_20 : 1;
+ uint64_t pmc_lfir_mask_21 : 1;
+ uint64_t pmc_lfir_mask_22 : 1;
+ uint64_t pmc_lfir_mask_23 : 1;
+ uint64_t pmc_lfir_mask_24 : 1;
+ uint64_t pmc_lfir_mask_25 : 1;
+ uint64_t pmc_lfir_mask_26 : 1;
+ uint64_t pmc_lfir_mask_27 : 1;
+ uint64_t pmc_lfir_mask_28 : 1;
+ uint64_t pmc_lfir_mask_29 : 1;
+ uint64_t pmc_lfir_mask_30 : 1;
+ uint64_t pmc_lfir_mask_31 : 1;
+ uint64_t pmc_lfir_mask_32 : 1;
+ uint64_t pmc_lfir_mask_33 : 1;
+ uint64_t pmc_lfir_mask_34 : 1;
+ uint64_t pmc_lfir_mask_35 : 1;
+ uint64_t pmc_lfir_mask_36 : 1;
+ uint64_t pmc_lfir_mask1_37_46 : 10;
+ uint64_t pmc_lfir_mask1_47 : 1;
+ uint64_t pmc_lfir_mask1_48 : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t pmc_lfir_mask1_48 : 1;
+ uint64_t pmc_lfir_mask1_47 : 1;
+ uint64_t pmc_lfir_mask1_37_46 : 10;
+ uint64_t pmc_lfir_mask_36 : 1;
+ uint64_t pmc_lfir_mask_35 : 1;
+ uint64_t pmc_lfir_mask_34 : 1;
+ uint64_t pmc_lfir_mask_33 : 1;
+ uint64_t pmc_lfir_mask_32 : 1;
+ uint64_t pmc_lfir_mask_31 : 1;
+ uint64_t pmc_lfir_mask_30 : 1;
+ uint64_t pmc_lfir_mask_29 : 1;
+ uint64_t pmc_lfir_mask_28 : 1;
+ uint64_t pmc_lfir_mask_27 : 1;
+ uint64_t pmc_lfir_mask_26 : 1;
+ uint64_t pmc_lfir_mask_25 : 1;
+ uint64_t pmc_lfir_mask_24 : 1;
+ uint64_t pmc_lfir_mask_23 : 1;
+ uint64_t pmc_lfir_mask_22 : 1;
+ uint64_t pmc_lfir_mask_21 : 1;
+ uint64_t pmc_lfir_mask_20 : 1;
+ uint64_t pmc_lfir_mask_19 : 1;
+ uint64_t pmc_lfir_mask_18 : 1;
+ uint64_t pmc_lfir_mask_17 : 1;
+ uint64_t pmc_lfir_mask_16 : 1;
+ uint64_t pmc_lfir_mask_15 : 1;
+ uint64_t pmc_lfir_mask_14 : 1;
+ uint64_t pmc_lfir_mask_13 : 1;
+ uint64_t pmc_lfir_mask_12 : 1;
+ uint64_t pmc_lfir_mask_11 : 1;
+ uint64_t pmc_lfir_mask_10 : 1;
+ uint64_t pmc_lfir_mask_9 : 1;
+ uint64_t pmc_lfir_mask_8 : 1;
+ uint64_t pmc_lfir_mask_7 : 1;
+ uint64_t pmc_lfir_mask_6 : 1;
+ uint64_t pmc_lfir_mask_5 : 1;
+ uint64_t pmc_lfir_mask_4 : 1;
+ uint64_t pmc_lfir_mask_3 : 1;
+ uint64_t pmc_lfir_mask_2 : 1;
+ uint64_t pmc_lfir_mask_1 : 1;
+ uint64_t pmc_lfir_mask_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_err_mask_reg_or_t;
+
+
+
+typedef union pmc_lfir_action0_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pmc_lfir_action0_0 : 1;
+ uint64_t pmc_lfir_action0_1 : 1;
+ uint64_t pmc_lfir_action0_2 : 1;
+ uint64_t pmc_lfir_action0_3 : 1;
+ uint64_t pmc_lfir_action0_4 : 1;
+ uint64_t pmc_lfir_action0_5 : 1;
+ uint64_t pmc_lfir_action0_6 : 1;
+ uint64_t pmc_lfir_action0_7 : 1;
+ uint64_t pmc_lfir_action0_8 : 1;
+ uint64_t pmc_lfir_action0_9 : 1;
+ uint64_t pmc_lfir_action0_10 : 1;
+ uint64_t pmc_lfir_action0_11 : 1;
+ uint64_t pmc_lfir_action0_12 : 1;
+ uint64_t pmc_lfir_action0_13 : 1;
+ uint64_t pmc_lfir_action0_14 : 1;
+ uint64_t pmc_lfir_action0_15 : 1;
+ uint64_t pmc_lfir_action0_16 : 1;
+ uint64_t pmc_lfir_action0_17 : 1;
+ uint64_t pmc_lfir_action0_18 : 1;
+ uint64_t pmc_lfir_action0_19 : 1;
+ uint64_t pmc_lfir_action0_20 : 1;
+ uint64_t pmc_lfir_action0_21 : 1;
+ uint64_t pmc_lfir_action0_22 : 1;
+ uint64_t pmc_lfir_action0_23 : 1;
+ uint64_t pmc_lfir_action0_24 : 1;
+ uint64_t pmc_lfir_action0_25 : 1;
+ uint64_t pmc_lfir_action0_26 : 1;
+ uint64_t pmc_lfir_action0_27 : 1;
+ uint64_t pmc_lfir_action0_28 : 1;
+ uint64_t pmc_lfir_action0_29 : 1;
+ uint64_t pmc_lfir_action0_30 : 1;
+ uint64_t pmc_lfir_action0_31 : 1;
+ uint64_t pmc_lfir_action0_32 : 1;
+ uint64_t pmc_lfir_action0_33 : 1;
+ uint64_t pmc_lfir_action0_34 : 1;
+ uint64_t pmc_lfir_action0_35 : 1;
+ uint64_t pmc_lfir_action0_36 : 1;
+ uint64_t pmc_lfir_action0_37_46 : 10;
+ uint64_t pmc_lfir_action0_47 : 1;
+ uint64_t pmc_lfir_action0_48 : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t pmc_lfir_action0_48 : 1;
+ uint64_t pmc_lfir_action0_47 : 1;
+ uint64_t pmc_lfir_action0_37_46 : 10;
+ uint64_t pmc_lfir_action0_36 : 1;
+ uint64_t pmc_lfir_action0_35 : 1;
+ uint64_t pmc_lfir_action0_34 : 1;
+ uint64_t pmc_lfir_action0_33 : 1;
+ uint64_t pmc_lfir_action0_32 : 1;
+ uint64_t pmc_lfir_action0_31 : 1;
+ uint64_t pmc_lfir_action0_30 : 1;
+ uint64_t pmc_lfir_action0_29 : 1;
+ uint64_t pmc_lfir_action0_28 : 1;
+ uint64_t pmc_lfir_action0_27 : 1;
+ uint64_t pmc_lfir_action0_26 : 1;
+ uint64_t pmc_lfir_action0_25 : 1;
+ uint64_t pmc_lfir_action0_24 : 1;
+ uint64_t pmc_lfir_action0_23 : 1;
+ uint64_t pmc_lfir_action0_22 : 1;
+ uint64_t pmc_lfir_action0_21 : 1;
+ uint64_t pmc_lfir_action0_20 : 1;
+ uint64_t pmc_lfir_action0_19 : 1;
+ uint64_t pmc_lfir_action0_18 : 1;
+ uint64_t pmc_lfir_action0_17 : 1;
+ uint64_t pmc_lfir_action0_16 : 1;
+ uint64_t pmc_lfir_action0_15 : 1;
+ uint64_t pmc_lfir_action0_14 : 1;
+ uint64_t pmc_lfir_action0_13 : 1;
+ uint64_t pmc_lfir_action0_12 : 1;
+ uint64_t pmc_lfir_action0_11 : 1;
+ uint64_t pmc_lfir_action0_10 : 1;
+ uint64_t pmc_lfir_action0_9 : 1;
+ uint64_t pmc_lfir_action0_8 : 1;
+ uint64_t pmc_lfir_action0_7 : 1;
+ uint64_t pmc_lfir_action0_6 : 1;
+ uint64_t pmc_lfir_action0_5 : 1;
+ uint64_t pmc_lfir_action0_4 : 1;
+ uint64_t pmc_lfir_action0_3 : 1;
+ uint64_t pmc_lfir_action0_2 : 1;
+ uint64_t pmc_lfir_action0_1 : 1;
+ uint64_t pmc_lfir_action0_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_action0_reg_t;
+
+
+
+typedef union pmc_lfir_action1_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pmc_lfir_action1_0 : 1;
+ uint64_t pmc_lfir_action1_1 : 1;
+ uint64_t pmc_lfir_action1_2 : 1;
+ uint64_t pmc_lfir_action1_3 : 1;
+ uint64_t pmc_lfir_action1_4 : 1;
+ uint64_t pmc_lfir_action1_5 : 1;
+ uint64_t pmc_lfir_action1_6 : 1;
+ uint64_t pmc_lfir_action1_7 : 1;
+ uint64_t pmc_lfir_action1_8 : 1;
+ uint64_t pmc_lfir_action1_9 : 1;
+ uint64_t pmc_lfir_action1_10 : 1;
+ uint64_t pmc_lfir_action1_11 : 1;
+ uint64_t pmc_lfir_action1_12 : 1;
+ uint64_t pmc_lfir_action1_13 : 1;
+ uint64_t pmc_lfir_action1_14 : 1;
+ uint64_t pmc_lfir_action1_15 : 1;
+ uint64_t pmc_lfir_action1_16 : 1;
+ uint64_t pmc_lfir_action1_17 : 1;
+ uint64_t pmc_lfir_action1_18 : 1;
+ uint64_t pmc_lfir_action1_19 : 1;
+ uint64_t pmc_lfir_action1_20 : 1;
+ uint64_t pmc_lfir_action1_21 : 1;
+ uint64_t pmc_lfir_action1_22 : 1;
+ uint64_t pmc_lfir_action1_23 : 1;
+ uint64_t pmc_lfir_action1_24 : 1;
+ uint64_t pmc_lfir_action1_25 : 1;
+ uint64_t pmc_lfir_action1_26 : 1;
+ uint64_t pmc_lfir_action1_27 : 1;
+ uint64_t pmc_lfir_action1_28 : 1;
+ uint64_t pmc_lfir_action1_29 : 1;
+ uint64_t pmc_lfir_action1_30 : 1;
+ uint64_t pmc_lfir_action1_31 : 1;
+ uint64_t pmc_lfir_action1_32 : 1;
+ uint64_t pmc_lfir_action1_33 : 1;
+ uint64_t pmc_lfir_action1_34 : 1;
+ uint64_t pmc_lfir_action1_35 : 1;
+ uint64_t pmc_lfir_action1_36 : 1;
+ uint64_t pmc_lfir_action1_37_46 : 10;
+ uint64_t pmc_lfir_action1_47 : 1;
+ uint64_t pmc_lfir_action1_48 : 1;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t pmc_lfir_action1_48 : 1;
+ uint64_t pmc_lfir_action1_47 : 1;
+ uint64_t pmc_lfir_action1_37_46 : 10;
+ uint64_t pmc_lfir_action1_36 : 1;
+ uint64_t pmc_lfir_action1_35 : 1;
+ uint64_t pmc_lfir_action1_34 : 1;
+ uint64_t pmc_lfir_action1_33 : 1;
+ uint64_t pmc_lfir_action1_32 : 1;
+ uint64_t pmc_lfir_action1_31 : 1;
+ uint64_t pmc_lfir_action1_30 : 1;
+ uint64_t pmc_lfir_action1_29 : 1;
+ uint64_t pmc_lfir_action1_28 : 1;
+ uint64_t pmc_lfir_action1_27 : 1;
+ uint64_t pmc_lfir_action1_26 : 1;
+ uint64_t pmc_lfir_action1_25 : 1;
+ uint64_t pmc_lfir_action1_24 : 1;
+ uint64_t pmc_lfir_action1_23 : 1;
+ uint64_t pmc_lfir_action1_22 : 1;
+ uint64_t pmc_lfir_action1_21 : 1;
+ uint64_t pmc_lfir_action1_20 : 1;
+ uint64_t pmc_lfir_action1_19 : 1;
+ uint64_t pmc_lfir_action1_18 : 1;
+ uint64_t pmc_lfir_action1_17 : 1;
+ uint64_t pmc_lfir_action1_16 : 1;
+ uint64_t pmc_lfir_action1_15 : 1;
+ uint64_t pmc_lfir_action1_14 : 1;
+ uint64_t pmc_lfir_action1_13 : 1;
+ uint64_t pmc_lfir_action1_12 : 1;
+ uint64_t pmc_lfir_action1_11 : 1;
+ uint64_t pmc_lfir_action1_10 : 1;
+ uint64_t pmc_lfir_action1_9 : 1;
+ uint64_t pmc_lfir_action1_8 : 1;
+ uint64_t pmc_lfir_action1_7 : 1;
+ uint64_t pmc_lfir_action1_6 : 1;
+ uint64_t pmc_lfir_action1_5 : 1;
+ uint64_t pmc_lfir_action1_4 : 1;
+ uint64_t pmc_lfir_action1_3 : 1;
+ uint64_t pmc_lfir_action1_2 : 1;
+ uint64_t pmc_lfir_action1_1 : 1;
+ uint64_t pmc_lfir_action1_0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_action1_reg_t;
+
+
+
+typedef union pmc_lfir_wof_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pmc_lfir_wof : 49;
+ uint64_t _reserved0 : 15;
+#else
+ uint64_t _reserved0 : 15;
+ uint64_t pmc_lfir_wof : 49;
+#endif // _BIG_ENDIAN
+ } fields;
+} pmc_lfir_wof_reg_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __PMC_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/pmc_register_addresses.h b/src/ssx/pgp/registers/pmc_register_addresses.h
new file mode 100755
index 0000000..96f8dac
--- /dev/null
+++ b/src/ssx/pgp/registers/pmc_register_addresses.h
@@ -0,0 +1,116 @@
+#ifndef __PMC_REGISTER_ADDRESSES_H__
+#define __PMC_REGISTER_ADDRESSES_H__
+
+// $Id: pmc_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/pmc_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pmc_register_addresses.h
+/// \brief Symbolic addresses for the PMC unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define PMC_OCI_BASE 0x40010000
+#define PMC_MODE_REG 0x40010000
+#define PMC_HARDWARE_AUCTION_PSTATE_REG 0x40010008
+#define PMC_PSTATE_MONITOR_AND_CTRL_REG 0x40010010
+#define PMC_RAIL_BOUNDS_REGISTER 0x40010018
+#define PMC_GLOBAL_PSTATE_BOUNDS_REG 0x40010020
+#define PMC_PARAMETER_REG0 0x40010028
+#define PMC_PARAMETER_REG1 0x40010030
+#define PMC_EFF_GLOBAL_ACTUAL_VOLTAGE_REG 0x40010038
+#define PMC_GLOBAL_ACTUAL_VOLTAGE_REG 0x40010040
+#define PMC_STATUS_REG 0x40010048
+#define PMC_PHASE_ENABLE_REG 0x40010050
+#define PMC_UNDERVOLTING_REG 0x40010060
+#define PMC_CORE_DECONFIGURATION_REG 0x40010068
+#define PMC_INTCHP_CTRL_REG1 0x40010080
+#define PMC_INTCHP_CTRL_REG2 0x40010088
+#define PMC_INTCHP_CTRL_REG4 0x40010090
+#define PMC_INTCHP_STATUS_REG 0x40010098
+#define PMC_INTCHP_COMMAND_REG 0x400100a0
+#define PMC_INTCHP_MSG_WDATA 0x400100a8
+#define PMC_INTCHP_MSG_RDATA 0x400100b0
+#define PMC_INTCHP_PSTATE_REG 0x400100b8
+#define PMC_INTCHP_GLOBACK_REG 0x400100c0
+#define PMC_FSMSTATE_STATUS_REG 0x40010100
+#define PMC_TRACE_MODE_REG 0x40010180
+#define PMC_SPIV_CTRL_REG0A 0x40010200
+#define PMC_SPIV_CTRL_REG0B 0x40010208
+#define PMC_SPIV_CTRL_REG1 0x40010210
+#define PMC_SPIV_CTRL_REG2 0x40010218
+#define PMC_SPIV_CTRL_REG3 0x40010220
+#define PMC_SPIV_CTRL_REG4 0x40010228
+#define PMC_SPIV_STATUS_REG 0x40010230
+#define PMC_SPIV_COMMAND_REG 0x40010238
+#define PMC_O2S_CTRL_REG0A 0x40010280
+#define PMC_O2S_CTRL_REG0B 0x40010288
+#define PMC_O2S_CTRL_REG1 0x40010290
+#define PMC_O2S_CTRL_REG2 0x40010298
+#define PMC_O2S_CTRL_REG4 0x400102a8
+#define PMC_O2S_STATUS_REG 0x400102b0
+#define PMC_O2S_COMMAND_REG 0x400102b8
+#define PMC_O2S_WDATA_REG 0x400102c0
+#define PMC_O2S_RDATA_REG 0x400102c8
+#define PMC_O2P_ADDR_REG 0x40010300
+#define PMC_O2P_CTRL_STATUS_REG 0x40010308
+#define PMC_O2P_SEND_DATA_HI_REG 0x40010310
+#define PMC_O2P_SEND_DATA_LO_REG 0x40010318
+#define PMC_O2P_RECV_DATA_HI_REG 0x40010320
+#define PMC_O2P_RECV_DATA_LO_REG 0x40010328
+#define PMC_OCC_HEARTBEAT_REG 0x40010330
+#define PMC_ERROR_INT_MASK_HI_REG 0x40010338
+#define PMC_ERROR_INT_MASK_LO_REG 0x40010340
+#define PMC_IDLE_SUSPEND_MASK_REG 0x40010348
+#define PMC_PEND_IDLE_REQ_REG0 0x40010400
+#define PMC_PEND_IDLE_REQ_REG1 0x40010408
+#define PMC_PEND_IDLE_REQ_REG2 0x40010410
+#define PMC_PEND_IDLE_REQ_REG3 0x40010418
+#define PMC_SLEEP_INT_REQ_VEC_REG0 0x40010420
+#define PMC_SLEEP_INT_REQ_VEC_REG1 0x40010428
+#define PMC_SLEEP_INT_REQ_VEC_REG2 0x40010430
+#define PMC_SLEEP_INT_REQ_VEC_REG3 0x40010438
+#define PMC_WINKLE_INT_REQ_VEC_REG0 0x40010440
+#define PMC_WINKLE_INT_REQ_VEC_REG1 0x40010448
+#define PMC_WINKLE_INT_REQ_VEC_REG2 0x40010450
+#define PMC_WINKLE_INT_REQ_VEC_REG3 0x40010458
+#define PMC_NAP_INT_REQ_VEC_REG0 0x40010460
+#define PMC_NAP_INT_REQ_VEC_REG1 0x40010468
+#define PMC_PORE_REQ_REG0 0x40010470
+#define PMC_PORE_REQ_REG1 0x40010478
+#define PMC_PORE_REQ_STAT_REG 0x40010480
+#define PMC_PORE_REQ_TOUT_TH_REG 0x40010488
+#define PMC_DEEP_EXIT_MASK_REG 0x40010490
+#define PMC_DEEP_EXIT_MASK_REG_AND 0x40010500
+#define PMC_DEEP_EXIT_MASK_REG_OR 0x40010508
+#define PMC_CORE_PSTATE_REG0 0x400104a0
+#define PMC_CORE_PSTATE_REG1 0x400104a8
+#define PMC_CORE_PSTATE_REG2 0x400104b0
+#define PMC_CORE_PSTATE_REG3 0x400104b8
+#define PMC_CORE_POWER_DONATION_REG 0x400104c0
+#define PMC_PMAX_SYNC_COLLECTION_REG 0x400104c8
+#define PMC_PMAX_SYNC_COLLECTION_MASK_REG 0x400104d0
+#define PMC_GPSA_ACK_COLLECTION_REG 0x400104d8
+#define PMC_GPSA_ACK_COLLECTION_MASK_REG 0x400104e0
+#define PMC_PORE_SCRATCH_REG0 0x400104e8
+#define PMC_PORE_SCRATCH_REG1 0x400104f0
+#define PMC_DEEP_IDLE_EXIT_REG 0x400104f8
+#define PMC_DEEP_STATUS_REG 0x40010510
+#define PMC_PIB_BASE 0x01010840
+#define PMC_LFIR_ERR_REG 0x01010840
+#define PMC_LFIR_ERR_REG_AND 0x01010841
+#define PMC_LFIR_ERR_REG_OR 0x01010842
+#define PMC_LFIR_ERR_MASK_REG 0x01010843
+#define PMC_LFIR_ERR_MASK_REG_AND 0x01010844
+#define PMC_LFIR_ERR_MASK_REG_OR 0x01010845
+#define PMC_LFIR_ACTION0_REG 0x01010846
+#define PMC_LFIR_ACTION1_REG 0x01010847
+#define PMC_LFIR_WOF_REG 0x01010848
+
+#endif // __PMC_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/pore_firmware_registers.h b/src/ssx/pgp/registers/pore_firmware_registers.h
new file mode 100755
index 0000000..76127d9
--- /dev/null
+++ b/src/ssx/pgp/registers/pore_firmware_registers.h
@@ -0,0 +1,906 @@
+#ifndef __PORE_FIRMWARE_REGISTERS_H__
+#define __PORE_FIRMWARE_REGISTERS_H__
+
+// $Id: pore_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pore_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pore_firmware_registers.h
+/// \brief C register structs for the PORE unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union pore_status {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t cur_state : 8;
+ uint64_t freeze_action : 1;
+ uint64_t interrupt_pending : 1;
+ uint64_t spare : 2;
+ uint64_t stack_pointer : 4;
+ uint64_t pc : 48;
+#else
+ uint64_t pc : 48;
+ uint64_t stack_pointer : 4;
+ uint64_t spare : 2;
+ uint64_t interrupt_pending : 1;
+ uint64_t freeze_action : 1;
+ uint64_t cur_state : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_status_t;
+
+#endif // __ASSEMBLER__
+#define PORE_STATUS_CUR_STATE_MASK SIXTYFOUR_BIT_CONSTANT(0xff00000000000000)
+#define PORE_STATUS_FREEZE_ACTION SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PORE_STATUS_INTERRUPT_PENDING SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PORE_STATUS_SPARE_MASK SIXTYFOUR_BIT_CONSTANT(0x0030000000000000)
+#define PORE_STATUS_STACK_POINTER_MASK SIXTYFOUR_BIT_CONSTANT(0x000f000000000000)
+#define PORE_STATUS_PC_MASK SIXTYFOUR_BIT_CONSTANT(0xffffffffffffffff)
+#ifndef __ASSEMBLER__
+
+
+typedef union pore_control {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t start_stop : 1;
+ uint64_t continue_step : 1;
+ uint64_t skip : 1;
+ uint64_t set_pc : 1;
+ uint64_t set_tp_scan_clk : 3;
+ uint64_t lock_exe_trig : 1;
+ uint64_t freeze_mask : 1;
+ uint64_t check_parity : 1;
+ uint64_t prv_parity : 1;
+ uint64_t trap_enable : 1;
+ uint64_t narrow_mode_trace : 1;
+ uint64_t interruptible : 1;
+ uint64_t pore_done_override : 1;
+ uint64_t interruptible_en : 1;
+ uint64_t pc_brk_pt : 48;
+#else
+ uint64_t pc_brk_pt : 48;
+ uint64_t interruptible_en : 1;
+ uint64_t pore_done_override : 1;
+ uint64_t interruptible : 1;
+ uint64_t narrow_mode_trace : 1;
+ uint64_t trap_enable : 1;
+ uint64_t prv_parity : 1;
+ uint64_t check_parity : 1;
+ uint64_t freeze_mask : 1;
+ uint64_t lock_exe_trig : 1;
+ uint64_t set_tp_scan_clk : 3;
+ uint64_t set_pc : 1;
+ uint64_t skip : 1;
+ uint64_t continue_step : 1;
+ uint64_t start_stop : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_control_t;
+
+#endif // __ASSEMBLER__
+#define PORE_CONTROL_START_STOP SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PORE_CONTROL_CONTINUE_STEP SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PORE_CONTROL_SKIP SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define PORE_CONTROL_SET_PC SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define PORE_CONTROL_SET_TP_SCAN_CLK_MASK SIXTYFOUR_BIT_CONSTANT(0x0e00000000000000)
+#define PORE_CONTROL_LOCK_EXE_TRIG SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
+#define PORE_CONTROL_FREEZE_MASK SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PORE_CONTROL_CHECK_PARITY SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PORE_CONTROL_PRV_PARITY SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define PORE_CONTROL_TRAP_ENABLE SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
+#define PORE_CONTROL_NARROW_MODE_TRACE SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
+#define PORE_CONTROL_INTERRUPTIBLE SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
+#define PORE_CONTROL_PORE_DONE_OVERRIDE SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#define PORE_CONTROL_INTERRUPTIBLE_EN SIXTYFOUR_BIT_CONSTANT(0x0001000000000000)
+#define PORE_CONTROL_PC_BRK_PT_MASK SIXTYFOUR_BIT_CONSTANT(0xffffffffffffffff)
+#ifndef __ASSEMBLER__
+
+
+typedef union pore_reset {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t fn_reset : 1;
+ uint64_t oci_reset : 1;
+ uint64_t _reserved0 : 62;
+#else
+ uint64_t _reserved0 : 62;
+ uint64_t oci_reset : 1;
+ uint64_t fn_reset : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_reset_t;
+
+
+
+typedef union pore_error_mask {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t enable_err_handler0 : 1;
+ uint64_t enable_err_handler1 : 1;
+ uint64_t enable_err_handler2 : 1;
+ uint64_t enable_err_handler3 : 1;
+ uint64_t enable_err_handler4 : 1;
+ uint64_t enable_err_output0 : 1;
+ uint64_t enable_err_output1 : 1;
+ uint64_t enable_err_output2 : 1;
+ uint64_t enable_err_output3 : 1;
+ uint64_t enable_err_output4 : 1;
+ uint64_t enable_fatal_err_output0 : 1;
+ uint64_t enable_fatal_err_output1 : 1;
+ uint64_t enable_fatal_err_output2 : 1;
+ uint64_t enable_fatal_err_output3 : 1;
+ uint64_t enable_fatal_err_output4 : 1;
+ uint64_t stop_exe_on_error0 : 1;
+ uint64_t stop_exe_on_error1 : 1;
+ uint64_t stop_exe_on_error2 : 1;
+ uint64_t stop_exe_on_error3 : 1;
+ uint64_t stop_exe_on_error4 : 1;
+ uint64_t gate_chiplet_offline_err : 1;
+ uint64_t i2c_bad_status_0 : 1;
+ uint64_t i2c_bad_status_1 : 1;
+ uint64_t i2c_bad_status_2 : 1;
+ uint64_t i2c_bad_status_3 : 1;
+ uint64_t group_parity_error_0 : 1;
+ uint64_t group_parity_error_1 : 1;
+ uint64_t group_parity_error_2 : 1;
+ uint64_t group_parity_error_3 : 1;
+ uint64_t group_parity_error_4 : 1;
+ uint64_t _reserved0 : 34;
+#else
+ uint64_t _reserved0 : 34;
+ uint64_t group_parity_error_4 : 1;
+ uint64_t group_parity_error_3 : 1;
+ uint64_t group_parity_error_2 : 1;
+ uint64_t group_parity_error_1 : 1;
+ uint64_t group_parity_error_0 : 1;
+ uint64_t i2c_bad_status_3 : 1;
+ uint64_t i2c_bad_status_2 : 1;
+ uint64_t i2c_bad_status_1 : 1;
+ uint64_t i2c_bad_status_0 : 1;
+ uint64_t gate_chiplet_offline_err : 1;
+ uint64_t stop_exe_on_error4 : 1;
+ uint64_t stop_exe_on_error3 : 1;
+ uint64_t stop_exe_on_error2 : 1;
+ uint64_t stop_exe_on_error1 : 1;
+ uint64_t stop_exe_on_error0 : 1;
+ uint64_t enable_fatal_err_output4 : 1;
+ uint64_t enable_fatal_err_output3 : 1;
+ uint64_t enable_fatal_err_output2 : 1;
+ uint64_t enable_fatal_err_output1 : 1;
+ uint64_t enable_fatal_err_output0 : 1;
+ uint64_t enable_err_output4 : 1;
+ uint64_t enable_err_output3 : 1;
+ uint64_t enable_err_output2 : 1;
+ uint64_t enable_err_output1 : 1;
+ uint64_t enable_err_output0 : 1;
+ uint64_t enable_err_handler4 : 1;
+ uint64_t enable_err_handler3 : 1;
+ uint64_t enable_err_handler2 : 1;
+ uint64_t enable_err_handler1 : 1;
+ uint64_t enable_err_handler0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_error_mask_t;
+
+#endif // __ASSEMBLER__
+#define PORE_ERROR_MASK_ENABLE_ERR_HANDLER0 SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_HANDLER1 SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_HANDLER2 SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_HANDLER3 SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_HANDLER4 SIXTYFOUR_BIT_CONSTANT(0x0800000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_OUTPUT0 SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_OUTPUT1 SIXTYFOUR_BIT_CONSTANT(0x0200000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_OUTPUT2 SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_OUTPUT3 SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PORE_ERROR_MASK_ENABLE_ERR_OUTPUT4 SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PORE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT0 SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define PORE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT1 SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
+#define PORE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT2 SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
+#define PORE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT3 SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
+#define PORE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT4 SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#define PORE_ERROR_MASK_STOP_EXE_ON_ERROR0 SIXTYFOUR_BIT_CONSTANT(0x0001000000000000)
+#define PORE_ERROR_MASK_STOP_EXE_ON_ERROR1 SIXTYFOUR_BIT_CONSTANT(0x0000800000000000)
+#define PORE_ERROR_MASK_STOP_EXE_ON_ERROR2 SIXTYFOUR_BIT_CONSTANT(0x0000400000000000)
+#define PORE_ERROR_MASK_STOP_EXE_ON_ERROR3 SIXTYFOUR_BIT_CONSTANT(0x0000200000000000)
+#define PORE_ERROR_MASK_STOP_EXE_ON_ERROR4 SIXTYFOUR_BIT_CONSTANT(0x0000100000000000)
+#define PORE_ERROR_MASK_GATE_CHIPLET_OFFLINE_ERR SIXTYFOUR_BIT_CONSTANT(0x0000080000000000)
+#define PORE_ERROR_MASK_I2C_BAD_STATUS_0 SIXTYFOUR_BIT_CONSTANT(0x0000040000000000)
+#define PORE_ERROR_MASK_I2C_BAD_STATUS_1 SIXTYFOUR_BIT_CONSTANT(0x0000020000000000)
+#define PORE_ERROR_MASK_I2C_BAD_STATUS_2 SIXTYFOUR_BIT_CONSTANT(0x0000010000000000)
+#define PORE_ERROR_MASK_I2C_BAD_STATUS_3 SIXTYFOUR_BIT_CONSTANT(0x0000008000000000)
+#define PORE_ERROR_MASK_GROUP_PARITY_ERROR_0 SIXTYFOUR_BIT_CONSTANT(0x0000004000000000)
+#define PORE_ERROR_MASK_GROUP_PARITY_ERROR_1 SIXTYFOUR_BIT_CONSTANT(0x0000002000000000)
+#define PORE_ERROR_MASK_GROUP_PARITY_ERROR_2 SIXTYFOUR_BIT_CONSTANT(0x0000001000000000)
+#define PORE_ERROR_MASK_GROUP_PARITY_ERROR_3 SIXTYFOUR_BIT_CONSTANT(0x0000000800000000)
+#define PORE_ERROR_MASK_GROUP_PARITY_ERROR_4 SIXTYFOUR_BIT_CONSTANT(0x0000000400000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union pore_prv_base_address0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 25;
+ uint64_t mc : 1;
+ uint64_t chiplet_id : 6;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t chiplet_id : 6;
+ uint64_t mc : 1;
+ uint64_t spare : 25;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_prv_base_address0_t;
+
+
+
+typedef union pore_prv_base_address1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 25;
+ uint64_t mc : 1;
+ uint64_t chiplet_id : 6;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t chiplet_id : 6;
+ uint64_t mc : 1;
+ uint64_t spare : 25;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_prv_base_address1_t;
+
+
+
+typedef union pore_oci_base_address0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 18;
+ uint64_t oci_mem_route : 14;
+ uint64_t oci_base_address : 32;
+#else
+ uint64_t oci_base_address : 32;
+ uint64_t oci_mem_route : 14;
+ uint64_t spare : 18;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_oci_base_address0_t;
+
+
+
+typedef union pore_oci_base_address1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 18;
+ uint64_t oci_mem_route : 14;
+ uint64_t oci_base_address : 32;
+#else
+ uint64_t oci_base_address : 32;
+ uint64_t oci_mem_route : 14;
+ uint64_t spare : 18;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_oci_base_address1_t;
+
+
+
+typedef union pore_table_base_addr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 16;
+ uint64_t memory_space : 16;
+ uint64_t table_base_address : 32;
+#else
+ uint64_t table_base_address : 32;
+ uint64_t memory_space : 16;
+ uint64_t reserved : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_table_base_addr_t;
+
+
+
+typedef union pore_exe_trigger {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 8;
+ uint64_t start_vector : 4;
+ uint64_t zeroes : 8;
+ uint64_t unused : 12;
+ uint64_t mc_chiplet_select_mask : 32;
+#else
+ uint64_t mc_chiplet_select_mask : 32;
+ uint64_t unused : 12;
+ uint64_t zeroes : 8;
+ uint64_t start_vector : 4;
+ uint64_t reserved : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_exe_trigger_t;
+
+
+
+typedef union pore_scratch0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t zeroes : 8;
+ uint64_t scratch0 : 24;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t scratch0 : 24;
+ uint64_t zeroes : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_scratch0_t;
+
+
+
+typedef union pore_scratch1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t scratch1 : 64;
+#else
+ uint64_t scratch1 : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_scratch1_t;
+
+
+
+typedef union pore_scratch2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t scratch2 : 64;
+#else
+ uint64_t scratch2 : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_scratch2_t;
+
+
+
+typedef union pore_ibuf_01 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ibuf0 : 32;
+ uint64_t ibuf1 : 32;
+#else
+ uint64_t ibuf1 : 32;
+ uint64_t ibuf0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_ibuf_01_t;
+
+
+
+typedef union pore_ibuf_2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ibuf2 : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t ibuf2 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_ibuf_2_t;
+
+
+
+typedef union pore_dbg0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t last_completed_address : 32;
+ uint64_t last_pib_parity_fail : 1;
+ uint64_t last_ret_code_prv : 3;
+ uint64_t i2c_bad_status0 : 1;
+ uint64_t i2c_bad_status1 : 1;
+ uint64_t i2c_bad_status2 : 1;
+ uint64_t i2c_bad_status3 : 1;
+ uint64_t group_parity_error0 : 1;
+ uint64_t group_parity_error1 : 1;
+ uint64_t group_parity_error2 : 1;
+ uint64_t group_parity_error3 : 1;
+ uint64_t group_parity_error4 : 1;
+ uint64_t interrupt_counter : 8;
+ uint64_t _reserved0 : 11;
+#else
+ uint64_t _reserved0 : 11;
+ uint64_t interrupt_counter : 8;
+ uint64_t group_parity_error4 : 1;
+ uint64_t group_parity_error3 : 1;
+ uint64_t group_parity_error2 : 1;
+ uint64_t group_parity_error1 : 1;
+ uint64_t group_parity_error0 : 1;
+ uint64_t i2c_bad_status3 : 1;
+ uint64_t i2c_bad_status2 : 1;
+ uint64_t i2c_bad_status1 : 1;
+ uint64_t i2c_bad_status0 : 1;
+ uint64_t last_ret_code_prv : 3;
+ uint64_t last_pib_parity_fail : 1;
+ uint64_t last_completed_address : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_dbg0_t;
+
+
+
+typedef union pore_dbg1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_last_access : 48;
+ uint64_t oci_master_rd_parity_err : 1;
+ uint64_t last_ret_code_oci : 3;
+ uint64_t bad_instr_parity : 1;
+ uint64_t invalid_instr_code : 1;
+ uint64_t pc_overflow_underrun : 1;
+ uint64_t bad_scan_crc : 1;
+ uint64_t pc_stack_ovflw_undrn_err : 1;
+ uint64_t instruction_fetch_error : 1;
+ uint64_t invalid_instruction_operand : 1;
+ uint64_t invalid_instruction_path : 1;
+ uint64_t invalid_start_vector : 1;
+ uint64_t fast_i2c_protocol_hang : 1;
+ uint64_t spare : 1;
+ uint64_t debug_regs_locked : 1;
+#else
+ uint64_t debug_regs_locked : 1;
+ uint64_t spare : 1;
+ uint64_t fast_i2c_protocol_hang : 1;
+ uint64_t invalid_start_vector : 1;
+ uint64_t invalid_instruction_path : 1;
+ uint64_t invalid_instruction_operand : 1;
+ uint64_t instruction_fetch_error : 1;
+ uint64_t pc_stack_ovflw_undrn_err : 1;
+ uint64_t bad_scan_crc : 1;
+ uint64_t pc_overflow_underrun : 1;
+ uint64_t invalid_instr_code : 1;
+ uint64_t bad_instr_parity : 1;
+ uint64_t last_ret_code_oci : 3;
+ uint64_t oci_master_rd_parity_err : 1;
+ uint64_t pc_last_access : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_dbg1_t;
+
+
+
+typedef union pore_pc_stack0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_stack0 : 48;
+ uint64_t _reserved0 : 11;
+ uint64_t set_new_stack_pointer : 1;
+ uint64_t new_stack_pointer : 4;
+#else
+ uint64_t new_stack_pointer : 4;
+ uint64_t set_new_stack_pointer : 1;
+ uint64_t _reserved0 : 11;
+ uint64_t pc_stack0 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_pc_stack0_t;
+
+
+
+typedef union pore_pc_stack1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_stack1 : 48;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t pc_stack1 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_pc_stack1_t;
+
+
+
+typedef union pore_pc_stack2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_stack2 : 48;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t pc_stack2 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_pc_stack2_t;
+
+
+
+typedef union pore_id_flags {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved0 : 32;
+ uint64_t pib_parity_fail : 1;
+ uint64_t pib_status : 3;
+ uint64_t oci_parity_fail : 1;
+ uint64_t oci_status : 3;
+ uint64_t reserved1 : 8;
+ uint64_t ugt : 1;
+ uint64_t ult : 1;
+ uint64_t sgt : 1;
+ uint64_t slt : 1;
+ uint64_t c : 1;
+ uint64_t o : 1;
+ uint64_t n : 1;
+ uint64_t z : 1;
+ uint64_t reserved2 : 4;
+ uint64_t ibuf_id : 4;
+#else
+ uint64_t ibuf_id : 4;
+ uint64_t reserved2 : 4;
+ uint64_t z : 1;
+ uint64_t n : 1;
+ uint64_t o : 1;
+ uint64_t c : 1;
+ uint64_t slt : 1;
+ uint64_t sgt : 1;
+ uint64_t ult : 1;
+ uint64_t ugt : 1;
+ uint64_t reserved1 : 8;
+ uint64_t oci_status : 3;
+ uint64_t oci_parity_fail : 1;
+ uint64_t pib_status : 3;
+ uint64_t pib_parity_fail : 1;
+ uint64_t reserved0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_id_flags_t;
+
+
+
+typedef union pore_data0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t data0 : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t data0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_data0_t;
+
+
+
+typedef union pore_memory_reloc {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t _reserved0 : 30;
+ uint64_t memory_reloc_region : 2;
+ uint64_t memory_reloc_base : 20;
+ uint64_t _reserved1 : 12;
+#else
+ uint64_t _reserved1 : 12;
+ uint64_t memory_reloc_base : 20;
+ uint64_t memory_reloc_region : 2;
+ uint64_t _reserved0 : 30;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_memory_reloc_t;
+
+
+
+typedef union pore_i2c_en_param {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t i2c_engine_identifier : 4;
+ uint64_t reserved0 : 1;
+ uint64_t i2c_engine_address_range : 3;
+ uint64_t reserved1 : 3;
+ uint64_t i2c_engine_port : 5;
+ uint64_t reserved2 : 1;
+ uint64_t i2c_engine_device_id : 7;
+ uint64_t reserved3 : 2;
+ uint64_t i2c_engine_speed : 2;
+ uint64_t i2c_poll_threshold : 4;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t i2c_poll_threshold : 4;
+ uint64_t i2c_engine_speed : 2;
+ uint64_t reserved3 : 2;
+ uint64_t i2c_engine_device_id : 7;
+ uint64_t reserved2 : 1;
+ uint64_t i2c_engine_port : 5;
+ uint64_t reserved1 : 3;
+ uint64_t i2c_engine_address_range : 3;
+ uint64_t reserved0 : 1;
+ uint64_t i2c_engine_identifier : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_i2c_en_param_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __PORE_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/pore_register_addresses.h b/src/ssx/pgp/registers/pore_register_addresses.h
new file mode 100755
index 0000000..0fc769b
--- /dev/null
+++ b/src/ssx/pgp/registers/pore_register_addresses.h
@@ -0,0 +1,130 @@
+#ifndef __PORE_REGISTER_ADDRESSES_H__
+#define __PORE_REGISTER_ADDRESSES_H__
+
+// $Id: pore_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/pore_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file pore_register_addresses.h
+/// \brief Symbolic addresses for the PORE unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define PORE_GPE0_OCI_BASE 0x40000000
+#define PORE_GPE1_OCI_BASE 0x40000100
+#define PORE_SLW_OCI_BASE 0x40040000
+#define PORE_STATUS_OFFSET 0x00000000
+#define PORE_GPE0_STATUS 0x40000000
+#define PORE_GPE1_STATUS 0x40000100
+#define PORE_SLW_STATUS 0x40040000
+#define PORE_CONTROL_OFFSET 0x00000008
+#define PORE_GPE0_CONTROL 0x40000008
+#define PORE_GPE1_CONTROL 0x40000108
+#define PORE_SLW_CONTROL 0x40040008
+#define PORE_RESET_OFFSET 0x00000010
+#define PORE_GPE0_RESET 0x40000010
+#define PORE_GPE1_RESET 0x40000110
+#define PORE_SLW_RESET 0x40040010
+#define PORE_ERROR_MASK_OFFSET 0x00000018
+#define PORE_GPE0_ERROR_MASK 0x40000018
+#define PORE_GPE1_ERROR_MASK 0x40000118
+#define PORE_SLW_ERROR_MASK 0x40040018
+#define PORE_PRV_BASE_ADDRESS0_OFFSET 0x00000020
+#define PORE_GPE0_PRV_BASE_ADDRESS0 0x40000020
+#define PORE_GPE1_PRV_BASE_ADDRESS0 0x40000120
+#define PORE_SLW_PRV_BASE_ADDRESS0 0x40040020
+#define PORE_PRV_BASE_ADDRESS1_OFFSET 0x00000028
+#define PORE_GPE0_PRV_BASE_ADDRESS1 0x40000028
+#define PORE_GPE1_PRV_BASE_ADDRESS1 0x40000128
+#define PORE_SLW_PRV_BASE_ADDRESS1 0x40040028
+#define PORE_OCI_BASE_ADDRESS0_OFFSET 0x00000030
+#define PORE_GPE0_OCI_BASE_ADDRESS0 0x40000030
+#define PORE_GPE1_OCI_BASE_ADDRESS0 0x40000130
+#define PORE_SLW_OCI_BASE_ADDRESS0 0x40040030
+#define PORE_OCI_BASE_ADDRESS1_OFFSET 0x00000038
+#define PORE_GPE0_OCI_BASE_ADDRESS1 0x40000038
+#define PORE_GPE1_OCI_BASE_ADDRESS1 0x40000138
+#define PORE_SLW_OCI_BASE_ADDRESS1 0x40040038
+#define PORE_TABLE_BASE_ADDR_OFFSET 0x00000040
+#define PORE_GPE0_TABLE_BASE_ADDR 0x40000040
+#define PORE_GPE1_TABLE_BASE_ADDR 0x40000140
+#define PORE_SLW_TABLE_BASE_ADDR 0x40040040
+#define PORE_EXE_TRIGGER_OFFSET 0x00000048
+#define PORE_GPE0_EXE_TRIGGER 0x40000048
+#define PORE_GPE1_EXE_TRIGGER 0x40000148
+#define PORE_SLW_EXE_TRIGGER 0x40040048
+#define PORE_SCRATCH0_OFFSET 0x00000050
+#define PORE_GPE0_SCRATCH0 0x40000050
+#define PORE_GPE1_SCRATCH0 0x40000150
+#define PORE_SLW_SCRATCH0 0x40040050
+#define PORE_SCRATCH1_OFFSET 0x00000058
+#define PORE_GPE0_SCRATCH1 0x40000058
+#define PORE_GPE1_SCRATCH1 0x40000158
+#define PORE_SLW_SCRATCH1 0x40040058
+#define PORE_SCRATCH2_OFFSET 0x00000060
+#define PORE_GPE0_SCRATCH2 0x40000060
+#define PORE_GPE1_SCRATCH2 0x40000160
+#define PORE_SLW_SCRATCH2 0x40040060
+#define PORE_IBUF_01_OFFSET 0x00000068
+#define PORE_GPE0_IBUF_01 0x40000068
+#define PORE_GPE1_IBUF_01 0x40000168
+#define PORE_SLW_IBUF_01 0x40040068
+#define PORE_IBUF_2_OFFSET 0x00000070
+#define PORE_GPE0_IBUF_2 0x40000070
+#define PORE_GPE1_IBUF_2 0x40000170
+#define PORE_SLW_IBUF_2 0x40040070
+#define PORE_DBG0_OFFSET 0x00000078
+#define PORE_GPE0_DBG0 0x40000078
+#define PORE_GPE1_DBG0 0x40000178
+#define PORE_SLW_DBG0 0x40040078
+#define PORE_DBG1_OFFSET 0x00000080
+#define PORE_GPE0_DBG1 0x40000080
+#define PORE_GPE1_DBG1 0x40000180
+#define PORE_SLW_DBG1 0x40040080
+#define PORE_PC_STACK0_OFFSET 0x00000088
+#define PORE_GPE0_PC_STACK0 0x40000088
+#define PORE_GPE1_PC_STACK0 0x40000188
+#define PORE_SLW_PC_STACK0 0x40040088
+#define PORE_PC_STACK1_OFFSET 0x00000090
+#define PORE_GPE0_PC_STACK1 0x40000090
+#define PORE_GPE1_PC_STACK1 0x40000190
+#define PORE_SLW_PC_STACK1 0x40040090
+#define PORE_PC_STACK2_OFFSET 0x00000098
+#define PORE_GPE0_PC_STACK2 0x40000098
+#define PORE_GPE1_PC_STACK2 0x40000198
+#define PORE_SLW_PC_STACK2 0x40040098
+#define PORE_ID_FLAGS_OFFSET 0x000000a0
+#define PORE_GPE0_ID_FLAGS 0x400000a0
+#define PORE_GPE1_ID_FLAGS 0x400001a0
+#define PORE_SLW_ID_FLAGS 0x400400a0
+#define PORE_DATA0_OFFSET 0x000000a8
+#define PORE_GPE0_DATA0 0x400000a8
+#define PORE_GPE1_DATA0 0x400001a8
+#define PORE_SLW_DATA0 0x400400a8
+#define PORE_MEMORY_RELOC_OFFSET 0x000000b0
+#define PORE_GPE0_MEMORY_RELOC 0x400000b0
+#define PORE_GPE1_MEMORY_RELOC 0x400001b0
+#define PORE_SLW_MEMORY_RELOC 0x400400b0
+#define PORE_I2C_E0_PARAM_OFFSET 0x000000b8
+#define PORE_I2C_E1_PARAM_OFFSET 0x000000c0
+#define PORE_I2C_E2_PARAM_OFFSET 0x000000c8
+#define PORE_GPE0_I2C_EN_PARAM(n) (PORE_GPE0_I2C_E0_PARAM + ((PORE_GPE0_I2C_E1_PARAM - PORE_GPE0_I2C_E0_PARAM) * (n)))
+#define PORE_GPE1_I2C_EN_PARAM(n) (PORE_GPE1_I2C_E0_PARAM + ((PORE_GPE1_I2C_E1_PARAM - PORE_GPE1_I2C_E0_PARAM) * (n)))
+#define PORE_SLW_I2C_EN_PARAM(n) (PORE_SLW_I2C_E0_PARAM + ((PORE_SLW_I2C_E1_PARAM - PORE_SLW_I2C_E0_PARAM) * (n)))
+#define PORE_GPE0_I2C_E0_PARAM 0x400000b8
+#define PORE_GPE1_I2C_E0_PARAM 0x400001b8
+#define PORE_SLW_I2C_E0_PARAM 0x400400b8
+#define PORE_GPE0_I2C_E1_PARAM 0x400000c0
+#define PORE_GPE1_I2C_E1_PARAM 0x400001c0
+#define PORE_SLW_I2C_E1_PARAM 0x400400c0
+#define PORE_GPE0_I2C_E2_PARAM 0x400000c8
+#define PORE_GPE1_I2C_E2_PARAM 0x400001c8
+#define PORE_SLW_I2C_E2_PARAM 0x400400c8
+
+#endif // __PORE_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/sbe_firmware_registers.h b/src/ssx/pgp/registers/sbe_firmware_registers.h
new file mode 100644
index 0000000..8175c11
--- /dev/null
+++ b/src/ssx/pgp/registers/sbe_firmware_registers.h
@@ -0,0 +1,906 @@
+#ifndef __SBE_FIRMWARE_REGISTERS_H__
+#define __SBE_FIRMWARE_REGISTERS_H__
+
+// $Id: sbe_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/sbe_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file sbe_firmware_registers.h
+/// \brief C register structs for the SBE unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union pore_sbe_status {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t cur_state : 8;
+ uint64_t freeze_action : 1;
+ uint64_t interrupt_pending : 1;
+ uint64_t spare : 2;
+ uint64_t stack_pointer : 4;
+ uint64_t pc : 48;
+#else
+ uint64_t pc : 48;
+ uint64_t stack_pointer : 4;
+ uint64_t spare : 2;
+ uint64_t interrupt_pending : 1;
+ uint64_t freeze_action : 1;
+ uint64_t cur_state : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_status_t;
+
+#endif // __ASSEMBLER__
+#define PORE_SBE_STATUS_CUR_STATE_MASK SIXTYFOUR_BIT_CONSTANT(0xff00000000000000)
+#define PORE_SBE_STATUS_FREEZE_ACTION SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PORE_SBE_STATUS_INTERRUPT_PENDING SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PORE_SBE_STATUS_SPARE_MASK SIXTYFOUR_BIT_CONSTANT(0x0030000000000000)
+#define PORE_SBE_STATUS_STACK_POINTER_MASK SIXTYFOUR_BIT_CONSTANT(0x000f000000000000)
+#define PORE_SBE_STATUS_PC_MASK SIXTYFOUR_BIT_CONSTANT(0xffffffffffffffff)
+#ifndef __ASSEMBLER__
+
+
+typedef union pore_sbe_control {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t start_stop : 1;
+ uint64_t continue_step : 1;
+ uint64_t skip : 1;
+ uint64_t set_pc : 1;
+ uint64_t set_tp_scan_clk : 3;
+ uint64_t lock_exe_trig : 1;
+ uint64_t freeze_mask : 1;
+ uint64_t check_parity : 1;
+ uint64_t prv_parity : 1;
+ uint64_t trap_enable : 1;
+ uint64_t narrow_mode_trace : 1;
+ uint64_t interruptible : 1;
+ uint64_t pore_done_override : 1;
+ uint64_t interruptible_en : 1;
+ uint64_t pc_brk_pt : 48;
+#else
+ uint64_t pc_brk_pt : 48;
+ uint64_t interruptible_en : 1;
+ uint64_t pore_done_override : 1;
+ uint64_t interruptible : 1;
+ uint64_t narrow_mode_trace : 1;
+ uint64_t trap_enable : 1;
+ uint64_t prv_parity : 1;
+ uint64_t check_parity : 1;
+ uint64_t freeze_mask : 1;
+ uint64_t lock_exe_trig : 1;
+ uint64_t set_tp_scan_clk : 3;
+ uint64_t set_pc : 1;
+ uint64_t skip : 1;
+ uint64_t continue_step : 1;
+ uint64_t start_stop : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_control_t;
+
+#endif // __ASSEMBLER__
+#define PORE_SBE_CONTROL_START_STOP SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PORE_SBE_CONTROL_CONTINUE_STEP SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PORE_SBE_CONTROL_SKIP SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define PORE_SBE_CONTROL_SET_PC SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define PORE_SBE_CONTROL_SET_TP_SCAN_CLK_MASK SIXTYFOUR_BIT_CONSTANT(0x0e00000000000000)
+#define PORE_SBE_CONTROL_LOCK_EXE_TRIG SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
+#define PORE_SBE_CONTROL_FREEZE_MASK SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PORE_SBE_CONTROL_CHECK_PARITY SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PORE_SBE_CONTROL_PRV_PARITY SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define PORE_SBE_CONTROL_TRAP_ENABLE SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
+#define PORE_SBE_CONTROL_NARROW_MODE_TRACE SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
+#define PORE_SBE_CONTROL_INTERRUPTIBLE SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
+#define PORE_SBE_CONTROL_PORE_DONE_OVERRIDE SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#define PORE_SBE_CONTROL_INTERRUPTIBLE_EN SIXTYFOUR_BIT_CONSTANT(0x0001000000000000)
+#define PORE_SBE_CONTROL_PC_BRK_PT_MASK SIXTYFOUR_BIT_CONSTANT(0xffffffffffffffff)
+#ifndef __ASSEMBLER__
+
+
+typedef union pore_sbe_reset {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t fn_reset : 1;
+ uint64_t oci_reset : 1;
+ uint64_t _reserved0 : 62;
+#else
+ uint64_t _reserved0 : 62;
+ uint64_t oci_reset : 1;
+ uint64_t fn_reset : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_reset_t;
+
+
+
+typedef union pore_sbe_error_mask {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t enable_err_handler0 : 1;
+ uint64_t enable_err_handler1 : 1;
+ uint64_t enable_err_handler2 : 1;
+ uint64_t enable_err_handler3 : 1;
+ uint64_t enable_err_handler4 : 1;
+ uint64_t enable_err_output0 : 1;
+ uint64_t enable_err_output1 : 1;
+ uint64_t enable_err_output2 : 1;
+ uint64_t enable_err_output3 : 1;
+ uint64_t enable_err_output4 : 1;
+ uint64_t enable_fatal_err_output0 : 1;
+ uint64_t enable_fatal_err_output1 : 1;
+ uint64_t enable_fatal_err_output2 : 1;
+ uint64_t enable_fatal_err_output3 : 1;
+ uint64_t enable_fatal_err_output4 : 1;
+ uint64_t stop_exe_on_error0 : 1;
+ uint64_t stop_exe_on_error1 : 1;
+ uint64_t stop_exe_on_error2 : 1;
+ uint64_t stop_exe_on_error3 : 1;
+ uint64_t stop_exe_on_error4 : 1;
+ uint64_t gate_chiplet_offline_err : 1;
+ uint64_t i2c_bad_status_0 : 1;
+ uint64_t i2c_bad_status_1 : 1;
+ uint64_t i2c_bad_status_2 : 1;
+ uint64_t i2c_bad_status_3 : 1;
+ uint64_t group_parity_error_0 : 1;
+ uint64_t group_parity_error_1 : 1;
+ uint64_t group_parity_error_2 : 1;
+ uint64_t group_parity_error_3 : 1;
+ uint64_t group_parity_error_4 : 1;
+ uint64_t _reserved0 : 34;
+#else
+ uint64_t _reserved0 : 34;
+ uint64_t group_parity_error_4 : 1;
+ uint64_t group_parity_error_3 : 1;
+ uint64_t group_parity_error_2 : 1;
+ uint64_t group_parity_error_1 : 1;
+ uint64_t group_parity_error_0 : 1;
+ uint64_t i2c_bad_status_3 : 1;
+ uint64_t i2c_bad_status_2 : 1;
+ uint64_t i2c_bad_status_1 : 1;
+ uint64_t i2c_bad_status_0 : 1;
+ uint64_t gate_chiplet_offline_err : 1;
+ uint64_t stop_exe_on_error4 : 1;
+ uint64_t stop_exe_on_error3 : 1;
+ uint64_t stop_exe_on_error2 : 1;
+ uint64_t stop_exe_on_error1 : 1;
+ uint64_t stop_exe_on_error0 : 1;
+ uint64_t enable_fatal_err_output4 : 1;
+ uint64_t enable_fatal_err_output3 : 1;
+ uint64_t enable_fatal_err_output2 : 1;
+ uint64_t enable_fatal_err_output1 : 1;
+ uint64_t enable_fatal_err_output0 : 1;
+ uint64_t enable_err_output4 : 1;
+ uint64_t enable_err_output3 : 1;
+ uint64_t enable_err_output2 : 1;
+ uint64_t enable_err_output1 : 1;
+ uint64_t enable_err_output0 : 1;
+ uint64_t enable_err_handler4 : 1;
+ uint64_t enable_err_handler3 : 1;
+ uint64_t enable_err_handler2 : 1;
+ uint64_t enable_err_handler1 : 1;
+ uint64_t enable_err_handler0 : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_error_mask_t;
+
+#endif // __ASSEMBLER__
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_HANDLER0 SIXTYFOUR_BIT_CONSTANT(0x8000000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_HANDLER1 SIXTYFOUR_BIT_CONSTANT(0x4000000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_HANDLER2 SIXTYFOUR_BIT_CONSTANT(0x2000000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_HANDLER3 SIXTYFOUR_BIT_CONSTANT(0x1000000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_HANDLER4 SIXTYFOUR_BIT_CONSTANT(0x0800000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_OUTPUT0 SIXTYFOUR_BIT_CONSTANT(0x0400000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_OUTPUT1 SIXTYFOUR_BIT_CONSTANT(0x0200000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_OUTPUT2 SIXTYFOUR_BIT_CONSTANT(0x0100000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_OUTPUT3 SIXTYFOUR_BIT_CONSTANT(0x0080000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_ERR_OUTPUT4 SIXTYFOUR_BIT_CONSTANT(0x0040000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT0 SIXTYFOUR_BIT_CONSTANT(0x0020000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT1 SIXTYFOUR_BIT_CONSTANT(0x0010000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT2 SIXTYFOUR_BIT_CONSTANT(0x0008000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT3 SIXTYFOUR_BIT_CONSTANT(0x0004000000000000)
+#define PORE_SBE_ERROR_MASK_ENABLE_FATAL_ERR_OUTPUT4 SIXTYFOUR_BIT_CONSTANT(0x0002000000000000)
+#define PORE_SBE_ERROR_MASK_STOP_EXE_ON_ERROR0 SIXTYFOUR_BIT_CONSTANT(0x0001000000000000)
+#define PORE_SBE_ERROR_MASK_STOP_EXE_ON_ERROR1 SIXTYFOUR_BIT_CONSTANT(0x0000800000000000)
+#define PORE_SBE_ERROR_MASK_STOP_EXE_ON_ERROR2 SIXTYFOUR_BIT_CONSTANT(0x0000400000000000)
+#define PORE_SBE_ERROR_MASK_STOP_EXE_ON_ERROR3 SIXTYFOUR_BIT_CONSTANT(0x0000200000000000)
+#define PORE_SBE_ERROR_MASK_STOP_EXE_ON_ERROR4 SIXTYFOUR_BIT_CONSTANT(0x0000100000000000)
+#define PORE_SBE_ERROR_MASK_GATE_CHIPLET_OFFLINE_ERR SIXTYFOUR_BIT_CONSTANT(0x0000080000000000)
+#define PORE_SBE_ERROR_MASK_I2C_BAD_STATUS_0 SIXTYFOUR_BIT_CONSTANT(0x0000040000000000)
+#define PORE_SBE_ERROR_MASK_I2C_BAD_STATUS_1 SIXTYFOUR_BIT_CONSTANT(0x0000020000000000)
+#define PORE_SBE_ERROR_MASK_I2C_BAD_STATUS_2 SIXTYFOUR_BIT_CONSTANT(0x0000010000000000)
+#define PORE_SBE_ERROR_MASK_I2C_BAD_STATUS_3 SIXTYFOUR_BIT_CONSTANT(0x0000008000000000)
+#define PORE_SBE_ERROR_MASK_GROUP_PARITY_ERROR_0 SIXTYFOUR_BIT_CONSTANT(0x0000004000000000)
+#define PORE_SBE_ERROR_MASK_GROUP_PARITY_ERROR_1 SIXTYFOUR_BIT_CONSTANT(0x0000002000000000)
+#define PORE_SBE_ERROR_MASK_GROUP_PARITY_ERROR_2 SIXTYFOUR_BIT_CONSTANT(0x0000001000000000)
+#define PORE_SBE_ERROR_MASK_GROUP_PARITY_ERROR_3 SIXTYFOUR_BIT_CONSTANT(0x0000000800000000)
+#define PORE_SBE_ERROR_MASK_GROUP_PARITY_ERROR_4 SIXTYFOUR_BIT_CONSTANT(0x0000000400000000)
+#ifndef __ASSEMBLER__
+
+
+typedef union pore_sbe_prv_base_address0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 25;
+ uint64_t mc : 1;
+ uint64_t chiplet_id : 6;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t chiplet_id : 6;
+ uint64_t mc : 1;
+ uint64_t spare : 25;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_prv_base_address0_t;
+
+
+
+typedef union pore_sbe_prv_base_address1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 25;
+ uint64_t mc : 1;
+ uint64_t chiplet_id : 6;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t chiplet_id : 6;
+ uint64_t mc : 1;
+ uint64_t spare : 25;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_prv_base_address1_t;
+
+
+
+typedef union pore_sbe_oci_base_address0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 18;
+ uint64_t oci_mem_route : 14;
+ uint64_t oci_base_address : 32;
+#else
+ uint64_t oci_base_address : 32;
+ uint64_t oci_mem_route : 14;
+ uint64_t spare : 18;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_oci_base_address0_t;
+
+
+
+typedef union pore_sbe_oci_base_address1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t spare : 18;
+ uint64_t oci_mem_route : 14;
+ uint64_t oci_base_address : 32;
+#else
+ uint64_t oci_base_address : 32;
+ uint64_t oci_mem_route : 14;
+ uint64_t spare : 18;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_oci_base_address1_t;
+
+
+
+typedef union pore_sbe_table_base_addr {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 16;
+ uint64_t memory_space : 16;
+ uint64_t table_base_address : 32;
+#else
+ uint64_t table_base_address : 32;
+ uint64_t memory_space : 16;
+ uint64_t reserved : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_table_base_addr_t;
+
+
+
+typedef union pore_sbe_exe_trigger {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved : 8;
+ uint64_t start_vector : 4;
+ uint64_t zeroes : 8;
+ uint64_t unused : 12;
+ uint64_t mc_chiplet_select_mask : 32;
+#else
+ uint64_t mc_chiplet_select_mask : 32;
+ uint64_t unused : 12;
+ uint64_t zeroes : 8;
+ uint64_t start_vector : 4;
+ uint64_t reserved : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_exe_trigger_t;
+
+
+
+typedef union pore_sbe_scratch0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t zeroes : 8;
+ uint64_t scratch0 : 24;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t scratch0 : 24;
+ uint64_t zeroes : 8;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_scratch0_t;
+
+
+
+typedef union pore_sbe_scratch1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t scratch1 : 64;
+#else
+ uint64_t scratch1 : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_scratch1_t;
+
+
+
+typedef union pore_sbe_scratch2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t scratch2 : 64;
+#else
+ uint64_t scratch2 : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_scratch2_t;
+
+
+
+typedef union pore_sbe_ibuf_01 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ibuf0 : 32;
+ uint64_t ibuf1 : 32;
+#else
+ uint64_t ibuf1 : 32;
+ uint64_t ibuf0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_ibuf_01_t;
+
+
+
+typedef union pore_sbe_ibuf_2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t ibuf2 : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t ibuf2 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_ibuf_2_t;
+
+
+
+typedef union pore_sbe_dbg0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t last_completed_address : 32;
+ uint64_t last_pib_parity_fail : 1;
+ uint64_t last_ret_code_prv : 3;
+ uint64_t i2c_bad_status0 : 1;
+ uint64_t i2c_bad_status1 : 1;
+ uint64_t i2c_bad_status2 : 1;
+ uint64_t i2c_bad_status3 : 1;
+ uint64_t group_parity_error0 : 1;
+ uint64_t group_parity_error1 : 1;
+ uint64_t group_parity_error2 : 1;
+ uint64_t group_parity_error3 : 1;
+ uint64_t group_parity_error4 : 1;
+ uint64_t interrupt_counter : 8;
+ uint64_t _reserved0 : 11;
+#else
+ uint64_t _reserved0 : 11;
+ uint64_t interrupt_counter : 8;
+ uint64_t group_parity_error4 : 1;
+ uint64_t group_parity_error3 : 1;
+ uint64_t group_parity_error2 : 1;
+ uint64_t group_parity_error1 : 1;
+ uint64_t group_parity_error0 : 1;
+ uint64_t i2c_bad_status3 : 1;
+ uint64_t i2c_bad_status2 : 1;
+ uint64_t i2c_bad_status1 : 1;
+ uint64_t i2c_bad_status0 : 1;
+ uint64_t last_ret_code_prv : 3;
+ uint64_t last_pib_parity_fail : 1;
+ uint64_t last_completed_address : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_dbg0_t;
+
+
+
+typedef union pore_sbe_dbg1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_last_access : 48;
+ uint64_t oci_master_rd_parity_err : 1;
+ uint64_t last_ret_code_oci : 3;
+ uint64_t bad_instr_parity : 1;
+ uint64_t invalid_instr_code : 1;
+ uint64_t pc_overflow_underrun : 1;
+ uint64_t bad_scan_crc : 1;
+ uint64_t pc_stack_ovflw_undrn_err : 1;
+ uint64_t instruction_fetch_error : 1;
+ uint64_t invalid_instruction_operand : 1;
+ uint64_t invalid_instruction_path : 1;
+ uint64_t invalid_start_vector : 1;
+ uint64_t fast_i2c_protocol_hang : 1;
+ uint64_t spare : 1;
+ uint64_t debug_regs_locked : 1;
+#else
+ uint64_t debug_regs_locked : 1;
+ uint64_t spare : 1;
+ uint64_t fast_i2c_protocol_hang : 1;
+ uint64_t invalid_start_vector : 1;
+ uint64_t invalid_instruction_path : 1;
+ uint64_t invalid_instruction_operand : 1;
+ uint64_t instruction_fetch_error : 1;
+ uint64_t pc_stack_ovflw_undrn_err : 1;
+ uint64_t bad_scan_crc : 1;
+ uint64_t pc_overflow_underrun : 1;
+ uint64_t invalid_instr_code : 1;
+ uint64_t bad_instr_parity : 1;
+ uint64_t last_ret_code_oci : 3;
+ uint64_t oci_master_rd_parity_err : 1;
+ uint64_t pc_last_access : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_dbg1_t;
+
+
+
+typedef union pore_sbe_pc_stack0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_stack0 : 48;
+ uint64_t _reserved0 : 11;
+ uint64_t set_new_stack_pointer : 1;
+ uint64_t new_stack_pointer : 4;
+#else
+ uint64_t new_stack_pointer : 4;
+ uint64_t set_new_stack_pointer : 1;
+ uint64_t _reserved0 : 11;
+ uint64_t pc_stack0 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_pc_stack0_t;
+
+
+
+typedef union pore_sbe_pc_stack1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_stack1 : 48;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t pc_stack1 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_pc_stack1_t;
+
+
+
+typedef union pore_sbe_pc_stack2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t pc_stack2 : 48;
+ uint64_t _reserved0 : 16;
+#else
+ uint64_t _reserved0 : 16;
+ uint64_t pc_stack2 : 48;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_pc_stack2_t;
+
+
+
+typedef union pore_sbe_id_flags {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t reserved0 : 32;
+ uint64_t pib_parity_fail : 1;
+ uint64_t pib_status : 3;
+ uint64_t oci_parity_fail : 1;
+ uint64_t oci_status : 3;
+ uint64_t reserved1 : 8;
+ uint64_t ugt : 1;
+ uint64_t ult : 1;
+ uint64_t sgt : 1;
+ uint64_t slt : 1;
+ uint64_t c : 1;
+ uint64_t o : 1;
+ uint64_t n : 1;
+ uint64_t z : 1;
+ uint64_t reserved2 : 4;
+ uint64_t ibuf_id : 4;
+#else
+ uint64_t ibuf_id : 4;
+ uint64_t reserved2 : 4;
+ uint64_t z : 1;
+ uint64_t n : 1;
+ uint64_t o : 1;
+ uint64_t c : 1;
+ uint64_t slt : 1;
+ uint64_t sgt : 1;
+ uint64_t ult : 1;
+ uint64_t ugt : 1;
+ uint64_t reserved1 : 8;
+ uint64_t oci_status : 3;
+ uint64_t oci_parity_fail : 1;
+ uint64_t pib_status : 3;
+ uint64_t pib_parity_fail : 1;
+ uint64_t reserved0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_id_flags_t;
+
+
+
+typedef union pore_sbe_data0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t data0 : 32;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t data0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_data0_t;
+
+
+
+typedef union pore_sbe_memory_reloc {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t _reserved0 : 30;
+ uint64_t memory_reloc_region : 2;
+ uint64_t memory_reloc_base : 20;
+ uint64_t _reserved1 : 12;
+#else
+ uint64_t _reserved1 : 12;
+ uint64_t memory_reloc_base : 20;
+ uint64_t memory_reloc_region : 2;
+ uint64_t _reserved0 : 30;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_memory_reloc_t;
+
+
+
+typedef union pore_sbe_i2c_en_param {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t i2c_engine_identifier : 4;
+ uint64_t reserved0 : 1;
+ uint64_t i2c_engine_address_range : 3;
+ uint64_t reserved1 : 3;
+ uint64_t i2c_engine_port : 5;
+ uint64_t reserved2 : 1;
+ uint64_t i2c_engine_device_id : 7;
+ uint64_t reserved3 : 2;
+ uint64_t i2c_engine_speed : 2;
+ uint64_t i2c_poll_threshold : 4;
+ uint64_t _reserved0 : 32;
+#else
+ uint64_t _reserved0 : 32;
+ uint64_t i2c_poll_threshold : 4;
+ uint64_t i2c_engine_speed : 2;
+ uint64_t reserved3 : 2;
+ uint64_t i2c_engine_device_id : 7;
+ uint64_t reserved2 : 1;
+ uint64_t i2c_engine_port : 5;
+ uint64_t reserved1 : 3;
+ uint64_t i2c_engine_address_range : 3;
+ uint64_t reserved0 : 1;
+ uint64_t i2c_engine_identifier : 4;
+#endif // _BIG_ENDIAN
+ } fields;
+} pore_sbe_i2c_en_param_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __SBE_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/sbe_register_addresses.h b/src/ssx/pgp/registers/sbe_register_addresses.h
new file mode 100644
index 0000000..794acea
--- /dev/null
+++ b/src/ssx/pgp/registers/sbe_register_addresses.h
@@ -0,0 +1,48 @@
+#ifndef __SBE_REGISTER_ADDRESSES_H__
+#define __SBE_REGISTER_ADDRESSES_H__
+
+// $Id: sbe_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/sbe_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file sbe_register_addresses.h
+/// \brief Symbolic addresses for the SBE unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define PORE_SBE_PIB_BASE 0x000e0000
+#define PORE_SBE_STATUS 0x000e0000
+#define PORE_SBE_CONTROL 0x000e0001
+#define PORE_SBE_RESET 0x000e0002
+#define PORE_SBE_ERROR_MASK 0x000e0003
+#define PORE_SBE_PRV_BASE_ADDRESS0 0x000e0004
+#define PORE_SBE_PRV_BASE_ADDRESS1 0x000e0005
+#define PORE_SBE_OCI_BASE_ADDRESS0 0x000e0006
+#define PORE_SBE_OCI_BASE_ADDRESS1 0x000e0007
+#define PORE_SBE_TABLE_BASE_ADDR 0x000e0008
+#define PORE_SBE_EXE_TRIGGER 0x000e0009
+#define PORE_SBE_SCRATCH0 0x000e000a
+#define PORE_SBE_SCRATCH1 0x000e000b
+#define PORE_SBE_SCRATCH2 0x000e000c
+#define PORE_SBE_IBUF_01 0x000e000d
+#define PORE_SBE_IBUF_2 0x000e000e
+#define PORE_SBE_DBG0 0x000e000f
+#define PORE_SBE_DBG1 0x000e0010
+#define PORE_SBE_PC_STACK0 0x000e0011
+#define PORE_SBE_PC_STACK1 0x000e0012
+#define PORE_SBE_PC_STACK2 0x000e0013
+#define PORE_SBE_ID_FLAGS 0x000e0014
+#define PORE_SBE_DATA0 0x000e0015
+#define PORE_SBE_MEMORY_RELOC 0x000e0016
+#define PORE_SBE_I2C_EN_PARAM(n) (PORE_SBE_I2C_E0_PARAM + ((PORE_SBE_I2C_E1_PARAM - PORE_SBE_I2C_E0_PARAM) * (n)))
+#define PORE_SBE_I2C_E0_PARAM 0x000e0017
+#define PORE_SBE_I2C_E1_PARAM 0x000e0018
+#define PORE_SBE_I2C_E2_PARAM 0x000e0019
+
+#endif // __SBE_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/sensors_firmware_registers.h b/src/ssx/pgp/registers/sensors_firmware_registers.h
new file mode 100755
index 0000000..9cb252e
--- /dev/null
+++ b/src/ssx/pgp/registers/sensors_firmware_registers.h
@@ -0,0 +1,668 @@
+#ifndef __SENSORS_FIRMWARE_REGISTERS_H__
+#define __SENSORS_FIRMWARE_REGISTERS_H__
+
+// $Id: sensors_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/sensors_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file sensors_firmware_registers.h
+/// \brief C register structs for the SENSORS unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union sensors_v0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dts0 : 12;
+ uint64_t thermal_trip0 : 2;
+ uint64_t spare0 : 1;
+ uint64_t valid0 : 1;
+ uint64_t dts1 : 12;
+ uint64_t thermal_trip1 : 2;
+ uint64_t spare1 : 1;
+ uint64_t valid1 : 1;
+ uint64_t dts2 : 12;
+ uint64_t thermal_trip2 : 2;
+ uint64_t spare2 : 1;
+ uint64_t valid2 : 1;
+ uint64_t dts3 : 12;
+ uint64_t thermal_trip3 : 2;
+ uint64_t spare3 : 1;
+ uint64_t valid3 : 1;
+#else
+ uint64_t valid3 : 1;
+ uint64_t spare3 : 1;
+ uint64_t thermal_trip3 : 2;
+ uint64_t dts3 : 12;
+ uint64_t valid2 : 1;
+ uint64_t spare2 : 1;
+ uint64_t thermal_trip2 : 2;
+ uint64_t dts2 : 12;
+ uint64_t valid1 : 1;
+ uint64_t spare1 : 1;
+ uint64_t thermal_trip1 : 2;
+ uint64_t dts1 : 12;
+ uint64_t valid0 : 1;
+ uint64_t spare0 : 1;
+ uint64_t thermal_trip0 : 2;
+ uint64_t dts0 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v0_t;
+
+
+
+typedef union sensors_v1 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dts4 : 12;
+ uint64_t thermal_trip4 : 2;
+ uint64_t spare4 : 1;
+ uint64_t valid4 : 1;
+ uint64_t dts5 : 12;
+ uint64_t thermal_trip5 : 2;
+ uint64_t spare5 : 1;
+ uint64_t valid5 : 1;
+ uint64_t dts6 : 12;
+ uint64_t thermal_trip6 : 2;
+ uint64_t spare6 : 1;
+ uint64_t valid6 : 1;
+ uint64_t dts7 : 12;
+ uint64_t thermal_trip7 : 2;
+ uint64_t spare7 : 1;
+ uint64_t valid7 : 1;
+#else
+ uint64_t valid7 : 1;
+ uint64_t spare7 : 1;
+ uint64_t thermal_trip7 : 2;
+ uint64_t dts7 : 12;
+ uint64_t valid6 : 1;
+ uint64_t spare6 : 1;
+ uint64_t thermal_trip6 : 2;
+ uint64_t dts6 : 12;
+ uint64_t valid5 : 1;
+ uint64_t spare5 : 1;
+ uint64_t thermal_trip5 : 2;
+ uint64_t dts5 : 12;
+ uint64_t valid4 : 1;
+ uint64_t spare4 : 1;
+ uint64_t thermal_trip4 : 2;
+ uint64_t dts4 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v1_t;
+
+
+
+typedef union sensors_v2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dts8 : 12;
+ uint64_t thermal_trip8 : 2;
+ uint64_t spare8 : 1;
+ uint64_t valid8 : 1;
+ uint64_t dts9 : 12;
+ uint64_t thermal_trip9 : 2;
+ uint64_t spare9 : 1;
+ uint64_t valid9 : 1;
+ uint64_t dts10 : 12;
+ uint64_t thermal_trip10 : 2;
+ uint64_t spare10 : 1;
+ uint64_t valid10 : 1;
+ uint64_t dts12 : 12;
+ uint64_t thermal_trip12 : 2;
+ uint64_t spare12 : 1;
+ uint64_t valid12 : 1;
+#else
+ uint64_t valid12 : 1;
+ uint64_t spare12 : 1;
+ uint64_t thermal_trip12 : 2;
+ uint64_t dts12 : 12;
+ uint64_t valid10 : 1;
+ uint64_t spare10 : 1;
+ uint64_t thermal_trip10 : 2;
+ uint64_t dts10 : 12;
+ uint64_t valid9 : 1;
+ uint64_t spare9 : 1;
+ uint64_t thermal_trip9 : 2;
+ uint64_t dts9 : 12;
+ uint64_t valid8 : 1;
+ uint64_t spare8 : 1;
+ uint64_t thermal_trip8 : 2;
+ uint64_t dts8 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v2_t;
+
+
+
+typedef union sensors_v3 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t unknown : 64;
+#else
+ uint64_t unknown : 64;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v3_t;
+
+
+
+typedef union sensors_v5 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t raw_cpm0 : 12;
+ uint64_t spare0 : 4;
+ uint64_t raw_cpm1 : 12;
+ uint64_t spare1 : 4;
+ uint64_t raw_cpm2 : 12;
+ uint64_t spare2 : 4;
+ uint64_t raw_cpm3 : 12;
+ uint64_t spare3 : 4;
+#else
+ uint64_t spare3 : 4;
+ uint64_t raw_cpm3 : 12;
+ uint64_t spare2 : 4;
+ uint64_t raw_cpm2 : 12;
+ uint64_t spare1 : 4;
+ uint64_t raw_cpm1 : 12;
+ uint64_t spare0 : 4;
+ uint64_t raw_cpm0 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v5_t;
+
+
+
+typedef union sensors_v6 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t raw_cpm4 : 12;
+ uint64_t spare4 : 4;
+ uint64_t raw_cpm5 : 12;
+ uint64_t spare5 : 4;
+ uint64_t raw_cpm6 : 12;
+ uint64_t spare6 : 4;
+ uint64_t raw_cpm7 : 12;
+ uint64_t spare7 : 4;
+#else
+ uint64_t spare7 : 4;
+ uint64_t raw_cpm7 : 12;
+ uint64_t spare6 : 4;
+ uint64_t raw_cpm6 : 12;
+ uint64_t spare5 : 4;
+ uint64_t raw_cpm5 : 12;
+ uint64_t spare4 : 4;
+ uint64_t raw_cpm4 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v6_t;
+
+
+
+typedef union sensors_v7 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t raw_cpm8 : 12;
+ uint64_t spare8 : 4;
+ uint64_t raw_cpm9 : 12;
+ uint64_t spare9 : 4;
+ uint64_t raw_cpm10 : 12;
+ uint64_t spare10 : 4;
+ uint64_t raw_cpm11 : 12;
+ uint64_t spare11 : 4;
+#else
+ uint64_t spare11 : 4;
+ uint64_t raw_cpm11 : 12;
+ uint64_t spare10 : 4;
+ uint64_t raw_cpm10 : 12;
+ uint64_t spare9 : 4;
+ uint64_t raw_cpm9 : 12;
+ uint64_t spare8 : 4;
+ uint64_t raw_cpm8 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v7_t;
+
+
+
+typedef union sensors_v8 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dts0 : 12;
+ uint64_t thermal_trip0 : 2;
+ uint64_t spare0 : 1;
+ uint64_t valid0 : 1;
+ uint64_t dts1 : 12;
+ uint64_t thermal_trip1 : 2;
+ uint64_t spare1 : 1;
+ uint64_t valid1 : 1;
+ uint64_t dts2 : 12;
+ uint64_t thermal_trip2 : 2;
+ uint64_t spare2 : 1;
+ uint64_t valid2 : 1;
+ uint64_t encoded_cpm0 : 4;
+ uint64_t encoded_cpm1 : 4;
+ uint64_t encoded_cpm2 : 4;
+ uint64_t encoded_cpm3 : 4;
+#else
+ uint64_t encoded_cpm3 : 4;
+ uint64_t encoded_cpm2 : 4;
+ uint64_t encoded_cpm1 : 4;
+ uint64_t encoded_cpm0 : 4;
+ uint64_t valid2 : 1;
+ uint64_t spare2 : 1;
+ uint64_t thermal_trip2 : 2;
+ uint64_t dts2 : 12;
+ uint64_t valid1 : 1;
+ uint64_t spare1 : 1;
+ uint64_t thermal_trip1 : 2;
+ uint64_t dts1 : 12;
+ uint64_t valid0 : 1;
+ uint64_t spare0 : 1;
+ uint64_t thermal_trip0 : 2;
+ uint64_t dts0 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v8_t;
+
+
+
+typedef union sensors_v9 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dts4 : 12;
+ uint64_t thermal_trip4 : 2;
+ uint64_t spare4 : 1;
+ uint64_t valid4 : 1;
+ uint64_t dts5 : 12;
+ uint64_t thermal_trip5 : 2;
+ uint64_t spare5 : 1;
+ uint64_t valid5 : 1;
+ uint64_t dts6 : 12;
+ uint64_t thermal_trip6 : 2;
+ uint64_t spare6 : 1;
+ uint64_t valid6 : 1;
+ uint64_t encoded_cpm4 : 4;
+ uint64_t encoded_cpm5 : 4;
+ uint64_t encoded_cpm6 : 4;
+ uint64_t encoded_cpm7 : 4;
+#else
+ uint64_t encoded_cpm7 : 4;
+ uint64_t encoded_cpm6 : 4;
+ uint64_t encoded_cpm5 : 4;
+ uint64_t encoded_cpm4 : 4;
+ uint64_t valid6 : 1;
+ uint64_t spare6 : 1;
+ uint64_t thermal_trip6 : 2;
+ uint64_t dts6 : 12;
+ uint64_t valid5 : 1;
+ uint64_t spare5 : 1;
+ uint64_t thermal_trip5 : 2;
+ uint64_t dts5 : 12;
+ uint64_t valid4 : 1;
+ uint64_t spare4 : 1;
+ uint64_t thermal_trip4 : 2;
+ uint64_t dts4 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v9_t;
+
+
+
+typedef union sensors_v10 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dts8 : 12;
+ uint64_t thermal_trip8 : 2;
+ uint64_t spare8 : 1;
+ uint64_t valid8 : 1;
+ uint64_t dts9 : 12;
+ uint64_t thermal_trip9 : 2;
+ uint64_t spare9 : 1;
+ uint64_t valid9 : 1;
+ uint64_t dts10 : 12;
+ uint64_t thermal_trip10 : 2;
+ uint64_t spare10 : 1;
+ uint64_t valid10 : 1;
+ uint64_t encoded_cpm8 : 4;
+ uint64_t encoded_cpm9 : 4;
+ uint64_t encoded_cpm10 : 4;
+ uint64_t encoded_cpm11 : 4;
+#else
+ uint64_t encoded_cpm11 : 4;
+ uint64_t encoded_cpm10 : 4;
+ uint64_t encoded_cpm9 : 4;
+ uint64_t encoded_cpm8 : 4;
+ uint64_t valid10 : 1;
+ uint64_t spare10 : 1;
+ uint64_t thermal_trip10 : 2;
+ uint64_t dts10 : 12;
+ uint64_t valid9 : 1;
+ uint64_t spare9 : 1;
+ uint64_t thermal_trip9 : 2;
+ uint64_t dts9 : 12;
+ uint64_t valid8 : 1;
+ uint64_t spare8 : 1;
+ uint64_t thermal_trip8 : 2;
+ uint64_t dts8 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v10_t;
+
+
+
+typedef union sensors_v11 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dvs0 : 12;
+ uint64_t spare00 : 1;
+ uint64_t trip0 : 1;
+ uint64_t spare01 : 1;
+ uint64_t valid0 : 1;
+ uint64_t dvs1 : 12;
+ uint64_t spare10 : 1;
+ uint64_t trip1 : 1;
+ uint64_t spare11 : 1;
+ uint64_t valid1 : 1;
+ uint64_t dvs2 : 12;
+ uint64_t spare20 : 1;
+ uint64_t trip2 : 1;
+ uint64_t spare21 : 1;
+ uint64_t valid2 : 1;
+ uint64_t dvs3 : 12;
+ uint64_t spare30 : 1;
+ uint64_t trip3 : 1;
+ uint64_t spare31 : 1;
+ uint64_t valid3 : 1;
+#else
+ uint64_t valid3 : 1;
+ uint64_t spare31 : 1;
+ uint64_t trip3 : 1;
+ uint64_t spare30 : 1;
+ uint64_t dvs3 : 12;
+ uint64_t valid2 : 1;
+ uint64_t spare21 : 1;
+ uint64_t trip2 : 1;
+ uint64_t spare20 : 1;
+ uint64_t dvs2 : 12;
+ uint64_t valid1 : 1;
+ uint64_t spare11 : 1;
+ uint64_t trip1 : 1;
+ uint64_t spare10 : 1;
+ uint64_t dvs1 : 12;
+ uint64_t valid0 : 1;
+ uint64_t spare01 : 1;
+ uint64_t trip0 : 1;
+ uint64_t spare00 : 1;
+ uint64_t dvs0 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v11_t;
+
+
+
+typedef union sensors_v12 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dvs4 : 12;
+ uint64_t spare40 : 1;
+ uint64_t trip4 : 1;
+ uint64_t spare41 : 1;
+ uint64_t valid4 : 1;
+ uint64_t dvs5 : 12;
+ uint64_t spare50 : 1;
+ uint64_t trip5 : 1;
+ uint64_t spare51 : 1;
+ uint64_t valid5 : 1;
+ uint64_t dvs6 : 12;
+ uint64_t spare60 : 1;
+ uint64_t trip6 : 1;
+ uint64_t spare61 : 1;
+ uint64_t valid6 : 1;
+ uint64_t dvs7 : 12;
+ uint64_t spare70 : 1;
+ uint64_t trip7 : 1;
+ uint64_t spare71 : 1;
+ uint64_t valid7 : 1;
+#else
+ uint64_t valid7 : 1;
+ uint64_t spare71 : 1;
+ uint64_t trip7 : 1;
+ uint64_t spare70 : 1;
+ uint64_t dvs7 : 12;
+ uint64_t valid6 : 1;
+ uint64_t spare61 : 1;
+ uint64_t trip6 : 1;
+ uint64_t spare60 : 1;
+ uint64_t dvs6 : 12;
+ uint64_t valid5 : 1;
+ uint64_t spare51 : 1;
+ uint64_t trip5 : 1;
+ uint64_t spare50 : 1;
+ uint64_t dvs5 : 12;
+ uint64_t valid4 : 1;
+ uint64_t spare41 : 1;
+ uint64_t trip4 : 1;
+ uint64_t spare40 : 1;
+ uint64_t dvs4 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v12_t;
+
+
+
+typedef union sensors_v13 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t dvs8 : 12;
+ uint64_t spare80 : 1;
+ uint64_t trip8 : 1;
+ uint64_t spare81 : 1;
+ uint64_t valid8 : 1;
+ uint64_t dvs9 : 12;
+ uint64_t spare90 : 1;
+ uint64_t trip9 : 1;
+ uint64_t spare91 : 1;
+ uint64_t valid9 : 1;
+ uint64_t dvs10 : 12;
+ uint64_t spare100 : 1;
+ uint64_t trip10 : 1;
+ uint64_t spare101 : 1;
+ uint64_t valid10 : 1;
+ uint64_t dvs11 : 12;
+ uint64_t spare110 : 1;
+ uint64_t trip11 : 1;
+ uint64_t spare111 : 1;
+ uint64_t valid11 : 1;
+#else
+ uint64_t valid11 : 1;
+ uint64_t spare111 : 1;
+ uint64_t trip11 : 1;
+ uint64_t spare110 : 1;
+ uint64_t dvs11 : 12;
+ uint64_t valid10 : 1;
+ uint64_t spare101 : 1;
+ uint64_t trip10 : 1;
+ uint64_t spare100 : 1;
+ uint64_t dvs10 : 12;
+ uint64_t valid9 : 1;
+ uint64_t spare91 : 1;
+ uint64_t trip9 : 1;
+ uint64_t spare90 : 1;
+ uint64_t dvs9 : 12;
+ uint64_t valid8 : 1;
+ uint64_t spare81 : 1;
+ uint64_t trip8 : 1;
+ uint64_t spare80 : 1;
+ uint64_t dvs8 : 12;
+#endif // _BIG_ENDIAN
+ } fields;
+} sensors_v13_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __SENSORS_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/sensors_register_addresses.h b/src/ssx/pgp/registers/sensors_register_addresses.h
new file mode 100755
index 0000000..c815ace
--- /dev/null
+++ b/src/ssx/pgp/registers/sensors_register_addresses.h
@@ -0,0 +1,47 @@
+#ifndef __SENSORS_REGISTER_ADDRESSES_H__
+#define __SENSORS_REGISTER_ADDRESSES_H__
+
+// $Id: sensors_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/sensors_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file sensors_register_addresses.h
+/// \brief Symbolic addresses for the SENSORS unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define SENSORS_CORE_PCB_BASE 0x10050000
+#define SENSORS_V0_OFFSET 0x00000000
+#define SENSORS_CORE_V0 0x10050000
+#define SENSORS_V1_OFFSET 0x00000001
+#define SENSORS_CORE_V1 0x10050001
+#define SENSORS_V2_OFFSET 0x00000002
+#define SENSORS_CORE_V2 0x10050002
+#define SENSORS_V3_OFFSET 0x00000003
+#define SENSORS_CORE_V3 0x10050003
+#define SENSORS_V5_OFFSET 0x00000005
+#define SENSORS_CORE_V5 0x10050005
+#define SENSORS_V6_OFFSET 0x00000006
+#define SENSORS_CORE_V6 0x10050006
+#define SENSORS_V7_OFFSET 0x00000007
+#define SENSORS_CORE_V7 0x10050007
+#define SENSORS_V8_OFFSET 0x00000008
+#define SENSORS_CORE_V8 0x10050008
+#define SENSORS_V9_OFFSET 0x00000009
+#define SENSORS_CORE_V9 0x10050009
+#define SENSORS_V10_OFFSET 0x0000000a
+#define SENSORS_CORE_V10 0x1005000a
+#define SENSORS_V11_OFFSET 0x0000000b
+#define SENSORS_CORE_V11 0x1005000b
+#define SENSORS_V12_OFFSET 0x0000000c
+#define SENSORS_CORE_V12 0x1005000c
+#define SENSORS_V13_OFFSET 0x0000000d
+#define SENSORS_CORE_V13 0x1005000d
+
+#endif // __SENSORS_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/sramctl_firmware_registers.h b/src/ssx/pgp/registers/sramctl_firmware_registers.h
new file mode 100755
index 0000000..c8a7c26
--- /dev/null
+++ b/src/ssx/pgp/registers/sramctl_firmware_registers.h
@@ -0,0 +1,211 @@
+#ifndef __SRAMCTL_FIRMWARE_REGISTERS_H__
+#define __SRAMCTL_FIRMWARE_REGISTERS_H__
+
+// $Id: sramctl_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:24 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/sramctl_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file sramctl_firmware_registers.h
+/// \brief C register structs for the SRAMCTL unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union sramctl_srbar {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t sram_region_qualifier : 2;
+ uint32_t reserved : 3;
+ uint32_t sram_bar_region : 8;
+ uint32_t _reserved0 : 19;
+#else
+ uint32_t _reserved0 : 19;
+ uint32_t sram_bar_region : 8;
+ uint32_t reserved : 3;
+ uint32_t sram_region_qualifier : 2;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srbar_t;
+
+
+
+typedef union sramctl_srmr {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t sram_enable_remap : 1;
+ uint32_t sram_arb_en_send_all_writes : 1;
+ uint32_t sram_disable_lfsr : 1;
+ uint32_t sram_lfsr_fairness_mask : 5;
+ uint32_t sram_error_inject_enable : 1;
+ uint32_t sram_ctl_trace_en : 1;
+ uint32_t sram_ctl_trace_sel : 1;
+ uint32_t reserved : 5;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t reserved : 5;
+ uint32_t sram_ctl_trace_sel : 1;
+ uint32_t sram_ctl_trace_en : 1;
+ uint32_t sram_error_inject_enable : 1;
+ uint32_t sram_lfsr_fairness_mask : 5;
+ uint32_t sram_disable_lfsr : 1;
+ uint32_t sram_arb_en_send_all_writes : 1;
+ uint32_t sram_enable_remap : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srmr_t;
+
+
+
+typedef union sramctl_srmap {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t reserved : 1;
+ uint32_t sram_remap_source : 12;
+ uint32_t _reserved0 : 1;
+ uint32_t reserved1 : 3;
+ uint32_t sram_remap_dest : 13;
+ uint32_t reserved2 : 2;
+#else
+ uint32_t reserved2 : 2;
+ uint32_t sram_remap_dest : 13;
+ uint32_t reserved1 : 3;
+ uint32_t _reserved0 : 1;
+ uint32_t sram_remap_source : 12;
+ uint32_t reserved : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srmap_t;
+
+
+
+typedef union sramctl_srear {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t sram_error_address : 16;
+ uint32_t _reserved0 : 16;
+#else
+ uint32_t _reserved0 : 16;
+ uint32_t sram_error_address : 16;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srear_t;
+
+
+
+typedef union sramctl_srbv0 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t boot_vector_word0 : 32;
+#else
+ uint32_t boot_vector_word0 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srbv0_t;
+
+
+
+typedef union sramctl_srbv1 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t boot_vector_word1 : 32;
+#else
+ uint32_t boot_vector_word1 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srbv1_t;
+
+
+
+typedef union sramctl_srbv2 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t boot_vector_word2 : 32;
+#else
+ uint32_t boot_vector_word2 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srbv2_t;
+
+
+
+typedef union sramctl_srbv3 {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t boot_vector_word3 : 32;
+#else
+ uint32_t boot_vector_word3 : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srbv3_t;
+
+
+
+typedef union sramctl_srchsw {
+
+ uint32_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t chksw_wrfsm_dly_dis : 1;
+ uint32_t chksw_allow1_rd : 1;
+ uint32_t chksw_allow1_wr : 1;
+ uint32_t chksw_allow1_rdwr : 1;
+ uint32_t chksw_oci_parchk_dis : 1;
+ uint32_t chksw_tank_rddata_parchk_dis : 1;
+ uint32_t chksw_tank_sr_rderr_dis : 1;
+ uint32_t chksw_val_be_addr_chk_dis : 1;
+ uint32_t chksw_so_spare : 2;
+ uint32_t _reserved0 : 22;
+#else
+ uint32_t _reserved0 : 22;
+ uint32_t chksw_so_spare : 2;
+ uint32_t chksw_val_be_addr_chk_dis : 1;
+ uint32_t chksw_tank_sr_rderr_dis : 1;
+ uint32_t chksw_tank_rddata_parchk_dis : 1;
+ uint32_t chksw_oci_parchk_dis : 1;
+ uint32_t chksw_allow1_rdwr : 1;
+ uint32_t chksw_allow1_wr : 1;
+ uint32_t chksw_allow1_rd : 1;
+ uint32_t chksw_wrfsm_dly_dis : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} sramctl_srchsw_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __SRAMCTL_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/sramctl_register_addresses.h b/src/ssx/pgp/registers/sramctl_register_addresses.h
new file mode 100755
index 0000000..baec5d5
--- /dev/null
+++ b/src/ssx/pgp/registers/sramctl_register_addresses.h
@@ -0,0 +1,30 @@
+#ifndef __SRAMCTL_REGISTER_ADDRESSES_H__
+#define __SRAMCTL_REGISTER_ADDRESSES_H__
+
+// $Id: sramctl_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/sramctl_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file sramctl_register_addresses.h
+/// \brief Symbolic addresses for the SRAMCTL unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define SRAMCTL_OCI_BASE 0x40030000
+#define SRAMCTL_SRBAR 0x40030000
+#define SRAMCTL_SRMR 0x40030008
+#define SRAMCTL_SRMAP 0x40030010
+#define SRAMCTL_SREAR 0x40030018
+#define SRAMCTL_SRBV0 0x40030020
+#define SRAMCTL_SRBV1 0x40030028
+#define SRAMCTL_SRBV2 0x40030030
+#define SRAMCTL_SRBV3 0x40030038
+#define SRAMCTL_SRCHSW 0x40030040
+
+#endif // __SRAMCTL_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/tod_firmware_registers.h b/src/ssx/pgp/registers/tod_firmware_registers.h
new file mode 100755
index 0000000..7a700d7
--- /dev/null
+++ b/src/ssx/pgp/registers/tod_firmware_registers.h
@@ -0,0 +1,58 @@
+#ifndef __TOD_FIRMWARE_REGISTERS_H__
+#define __TOD_FIRMWARE_REGISTERS_H__
+
+// $Id: tod_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/tod_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file tod_firmware_registers.h
+/// \brief C register structs for the TOD unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union tod_value_reg {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t tod_incrementer : 60;
+ uint64_t tod_wof : 4;
+#else
+ uint64_t tod_wof : 4;
+ uint64_t tod_incrementer : 60;
+#endif // _BIG_ENDIAN
+ } fields;
+} tod_value_reg_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __TOD_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/tod_register_addresses.h b/src/ssx/pgp/registers/tod_register_addresses.h
new file mode 100755
index 0000000..ac7d136
--- /dev/null
+++ b/src/ssx/pgp/registers/tod_register_addresses.h
@@ -0,0 +1,22 @@
+#ifndef __TOD_REGISTER_ADDRESSES_H__
+#define __TOD_REGISTER_ADDRESSES_H__
+
+// $Id: tod_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/tod_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file tod_register_addresses.h
+/// \brief Symbolic addresses for the TOD unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define TOD_PIB_BASE 0x00040000
+#define TOD_VALUE_REG 0x00040020
+
+#endif // __TOD_REGISTER_ADDRESSES_H__
+
diff --git a/src/ssx/pgp/registers/tpc_firmware_registers.h b/src/ssx/pgp/registers/tpc_firmware_registers.h
new file mode 100644
index 0000000..62f1c42
--- /dev/null
+++ b/src/ssx/pgp/registers/tpc_firmware_registers.h
@@ -0,0 +1,213 @@
+#ifndef __TPC_FIRMWARE_REGISTERS_H__
+#define __TPC_FIRMWARE_REGISTERS_H__
+
+// $Id: tpc_firmware_registers.h,v 1.1.1.1 2013/12/11 21:03:25 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/tpc_firmware_registers.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file tpc_firmware_registers.h
+/// \brief C register structs for the TPC unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+#ifndef SIXTYFOUR_BIT_CONSTANT
+#ifdef __ASSEMBLER__
+#define SIXTYFOUR_BIT_CONSTANT(x) x
+#else
+#define SIXTYFOUR_BIT_CONSTANT(x) x##ull
+#endif
+#endif
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+
+
+
+typedef union tpc_perv_gp3 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t tp_chiplet_chiplet_en_dc : 1;
+ uint64_t put_in_later0 : 25;
+ uint64_t tp_chiplet_fence_pcb_dc : 1;
+ uint64_t put_in_later1 : 37;
+#else
+ uint64_t put_in_later1 : 37;
+ uint64_t tp_chiplet_fence_pcb_dc : 1;
+ uint64_t put_in_later0 : 25;
+ uint64_t tp_chiplet_chiplet_en_dc : 1;
+#endif // _BIG_ENDIAN
+ } fields;
+} tpc_perv_gp3_t;
+
+
+
+typedef union tpc_gp0 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t put_in_later0 : 40;
+ uint64_t tc_node_id_dc : 3;
+ uint64_t tc_chip_id_dc : 3;
+ uint64_t put_in_later1 : 18;
+#else
+ uint64_t put_in_later1 : 18;
+ uint64_t tc_chip_id_dc : 3;
+ uint64_t tc_node_id_dc : 3;
+ uint64_t put_in_later0 : 40;
+#endif // _BIG_ENDIAN
+ } fields;
+} tpc_gp0_t;
+
+
+
+typedef union tpc_gp0_and {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t put_in_later0 : 40;
+ uint64_t tc_node_id_dc : 3;
+ uint64_t tc_chip_id_dc : 3;
+ uint64_t put_in_later1 : 18;
+#else
+ uint64_t put_in_later1 : 18;
+ uint64_t tc_chip_id_dc : 3;
+ uint64_t tc_node_id_dc : 3;
+ uint64_t put_in_later0 : 40;
+#endif // _BIG_ENDIAN
+ } fields;
+} tpc_gp0_and_t;
+
+
+
+typedef union tpc_gp0_or {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t put_in_later0 : 40;
+ uint64_t tc_node_id_dc : 3;
+ uint64_t tc_chip_id_dc : 3;
+ uint64_t put_in_later1 : 18;
+#else
+ uint64_t put_in_later1 : 18;
+ uint64_t tc_chip_id_dc : 3;
+ uint64_t tc_node_id_dc : 3;
+ uint64_t put_in_later0 : 40;
+#endif // _BIG_ENDIAN
+ } fields;
+} tpc_gp0_or_t;
+
+
+
+typedef union tpc_hpr2 {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t hang_pulse_reg : 6;
+ uint64_t suppress_hang : 1;
+ uint64_t _reserved0 : 57;
+#else
+ uint64_t _reserved0 : 57;
+ uint64_t suppress_hang : 1;
+ uint64_t hang_pulse_reg : 6;
+#endif // _BIG_ENDIAN
+ } fields;
+} tpc_hpr2_t;
+
+
+
+typedef union tpc_device_id {
+
+ uint64_t value;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint32_t high_order;
+ uint32_t low_order;
+#else
+ uint32_t low_order;
+ uint32_t high_order;
+#endif // _BIG_ENDIAN
+ } words;
+ struct {
+#ifdef _BIG_ENDIAN
+ uint64_t cfam_id : 32;
+ uint64_t fuse_nx_allow_crypto : 1;
+ uint64_t fuse_vmx_crypto_dis : 1;
+ uint64_t fuse_fp_throttle_en : 1;
+ uint64_t reserved32 : 1;
+ uint64_t socket_id : 3;
+ uint64_t chippos_id : 1;
+ uint64_t _reserved0 : 24;
+#else
+ uint64_t _reserved0 : 24;
+ uint64_t chippos_id : 1;
+ uint64_t socket_id : 3;
+ uint64_t reserved32 : 1;
+ uint64_t fuse_fp_throttle_en : 1;
+ uint64_t fuse_vmx_crypto_dis : 1;
+ uint64_t fuse_nx_allow_crypto : 1;
+ uint64_t cfam_id : 32;
+#endif // _BIG_ENDIAN
+ } fields;
+} tpc_device_id_t;
+
+
+#endif // __ASSEMBLER__
+#endif // __TPC_FIRMWARE_REGISTERS_H__
+
diff --git a/src/ssx/pgp/registers/tpc_register_addresses.h b/src/ssx/pgp/registers/tpc_register_addresses.h
new file mode 100644
index 0000000..50c7e97
--- /dev/null
+++ b/src/ssx/pgp/registers/tpc_register_addresses.h
@@ -0,0 +1,30 @@
+#ifndef __TPC_REGISTER_ADDRESSES_H__
+#define __TPC_REGISTER_ADDRESSES_H__
+
+// $Id: tpc_register_addresses.h,v 1.1.1.1 2013/12/11 21:03:24 bcbrock Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ssx/pgp/registers/tpc_register_addresses.h,v $
+//-----------------------------------------------------------------------------
+// *! (C) Copyright International Business Machines Corp. 2013
+// *! All Rights Reserved -- Property of IBM
+// *! *** IBM Confidential ***
+//-----------------------------------------------------------------------------
+
+/// \file tpc_register_addresses.h
+/// \brief Symbolic addresses for the TPC unit
+
+// *** WARNING *** - This file is generated automatically, do not edit.
+
+
+#define TPC_PERVPIB_BASE 0x00050000
+#define TPC_PERV_GP3 0x0005001b
+#define TPC_PIB_BASE 0x01000000
+#define TPC_GP0 0x01000000
+#define TPC_GP0_AND 0x01000004
+#define TPC_GP0_OR 0x01000005
+#define TPC_MISCPIB_BASE 0x010f0000
+#define TPC_HPR2 0x010f0022
+#define TPC_TPCHIP_BASE 0x000f0000
+#define TPC_DEVICE_ID 0x000f000f
+
+#endif // __TPC_REGISTER_ADDRESSES_H__
+
OpenPOWER on IntegriCloud