summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_scominit.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/io/p9_io_xbus_scominit.C')
-rw-r--r--src/import/chips/p9/procedures/hwp/io/p9_io_xbus_scominit.C30
1 files changed, 23 insertions, 7 deletions
diff --git a/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_scominit.C b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_scominit.C
index 8660508d9..2bcec33d2 100644
--- a/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_scominit.C
+++ b/src/import/chips/p9/procedures/hwp/io/p9_io_xbus_scominit.C
@@ -108,7 +108,6 @@ fapi2::ReturnCode p9_io_xbus_scominit(
{
// mark HWP entry
FAPI_INF("p9_io_xbus_scominit: Entering ...");
- const uint8_t GROUP_00 = 0;
const uint8_t LANE_00 = 0;
fapi2::ReturnCode rc = fapi2::FAPI2_RC_SUCCESS;
@@ -119,10 +118,27 @@ fapi2::ReturnCode p9_io_xbus_scominit(
// assert IO reset to power-up bus endpoint logic
// read-modify-write, set single reset bit (HW auto-clears)
// on writeback
- FAPI_TRY( io::rmw( EDIP_IORESET_HARD_BUS0, i_target, GROUP_00, LANE_00, 1 ),
+ FAPI_TRY( io::rmw( EDIP_RX_IORESET, i_target, i_group, LANE_00, 1 ),
"I/O Xbus Scominit: Primary Set Reset Hard Failed." );
- FAPI_TRY( io::rmw( EDIP_IORESET_HARD_BUS0, i_connected_target, GROUP_00, LANE_00, 1 ),
+ FAPI_TRY( io::rmw( EDIP_TX_IORESET, i_target, i_group, LANE_00, 1 ),
+ "I/O Xbus Scominit: Primary Set Reset Hard Failed." );
+ FAPI_TRY( io::rmw( EDIP_RX_IORESET, i_connected_target, i_group, LANE_00, 1 ),
"I/O Xbus Scominit: Connected Set Reset Hard Failed." );
+ FAPI_TRY( io::rmw( EDIP_TX_IORESET, i_connected_target, i_group, LANE_00, 1 ),
+ "I/O Xbus Scominit: Primary Set Reset Hard Failed." );
+
+ // Delay 1ns, 1 Million cycles -- Needed in sim, may not be needed in hw.
+ FAPI_TRY( fapi2::delay( 1, 1000000 ) );
+
+ FAPI_TRY( io::rmw( EDIP_RX_IORESET, i_target, i_group, LANE_00, 0 ),
+ "I/O Xbus Scominit: Primary Set Reset Hard Failed." );
+ FAPI_TRY( io::rmw( EDIP_TX_IORESET, i_target, i_group, LANE_00, 0 ),
+ "I/O Xbus Scominit: Primary Set Reset Hard Failed." );
+ FAPI_TRY( io::rmw( EDIP_RX_IORESET, i_connected_target, i_group, LANE_00, 0 ),
+ "I/O Xbus Scominit: Connected Set Reset Hard Failed." );
+ FAPI_TRY( io::rmw( EDIP_TX_IORESET, i_connected_target, i_group, LANE_00, 0 ),
+ "I/O Xbus Scominit: Primary Set Reset Hard Failed." );
+
// Set rx master/slave attribute prior to calling the scominit procedures.
// The scominit procedure will reference the attribute to set the register field.
@@ -175,11 +191,11 @@ fapi2::ReturnCode set_rx_master_mode(
uint32_t l_connected_id = 0;
uint8_t l_connected_attr = 0;
- FAPI_TRY( p9_get_proc_fabric_group_id( i_target, l_primary_group_id ) );
- FAPI_TRY( p9_get_proc_fabric_group_id( i_target, l_connected_group_id ) );
+ FAPI_TRY( p9_get_proc_fabric_group_id( i_target, l_primary_group_id ) );
+ FAPI_TRY( p9_get_proc_fabric_group_id( i_ctarget, l_connected_group_id ) );
- FAPI_TRY( p9_get_proc_fabric_chip_id( i_target, l_primary_chip_id ) );
- FAPI_TRY( p9_get_proc_fabric_chip_id( i_target, l_connected_chip_id ) );
+ FAPI_TRY( p9_get_proc_fabric_chip_id( i_target, l_primary_chip_id ) );
+ FAPI_TRY( p9_get_proc_fabric_chip_id( i_ctarget, l_connected_chip_id ) );
l_primary_id = ( (uint32_t)l_primary_group_id << 8 ) + (uint32_t)l_primary_chip_id;
l_connected_id = ( (uint32_t)l_connected_group_id << 8 ) + (uint32_t)l_connected_chip_id;
OpenPOWER on IntegriCloud