From bae814cdb7dc0206d13bdd4c1b0f531f3da814eb Mon Sep 17 00:00:00 2001 From: Caleb Palmer Date: Mon, 1 Jul 2019 09:47:06 -0500 Subject: NPU target SCOM translation non-instance 0 fix Change-Id: Ie5dad0327766411aeb6dce45e4bd488b29c3dc7a RTC: 202524 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79824 Tested-by: FSP CI Jenkins Reviewed-by: Brian J. Stegmiller Reviewed-by: Zane C. Shelley Reviewed-by: Martha Broyles --- src/occ_gpe0/firdata/scom_util.c | 11 ++++++++--- src/occ_gpe0/firdata/scom_util.h | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/occ_gpe0/firdata/scom_util.c b/src/occ_gpe0/firdata/scom_util.c index d716963..0102477 100644 --- a/src/occ_gpe0/firdata/scom_util.c +++ b/src/occ_gpe0/firdata/scom_util.c @@ -309,7 +309,9 @@ int32_t translate_addr( SCOM_Trgt_t i_trgt, uint64_t i_addr, uint64_t * o_addr ) // NPU0: 05011000 to 050113FF // NPU1: 05011400 to 050117FF // NPU2: 03011C00 to 03011FFF - if ( N3_NPU_0_RING_ID == l_ring ) + if ( N3_NPU_0_RING_ID == l_ring || + N3_NPU_1_RING_ID == l_ring || + P9A_NPU_2_RING_ID == l_ring ) { // NPU0/NPU1 if ( N3_CHIPLET_ID == l_chiplet_id ) @@ -326,17 +328,20 @@ int32_t translate_addr( SCOM_Trgt_t i_trgt, uint64_t i_addr, uint64_t * o_addr ) // NPU0: 05013C00 to 05013C8F // NPU1: 05013CC0 to 05013D4F // NPU2: 03012000 to 0301208F - else if ( P9A_NPU_0_FIR_RING_ID == l_ring ) + else if ( P9A_NPU_0_FIR_RING_ID == l_ring || + P9A_NPU_2_FIR_RING_ID == l_ring ) { // NPU0/NPU1 if ( N3_CHIPLET_ID == l_chiplet_id ) { - set_sat_id( l_sat_id + (3 * l_chip_unit_num), o_addr ); + set_ring( P9A_NPU_0_FIR_RING_ID, o_addr ); + set_sat_id( (l_sat_id % 3) + (3 * l_chip_unit_num), o_addr ); } // NPU2 else if ( N1_CHIPLET_ID == l_chiplet_id ) { set_ring( P9A_NPU_2_FIR_RING_ID, o_addr ); + set_sat_id( (l_sat_id % 3), o_addr ); } } } diff --git a/src/occ_gpe0/firdata/scom_util.h b/src/occ_gpe0/firdata/scom_util.h index 9a367c3..8da0c02 100644 --- a/src/occ_gpe0/firdata/scom_util.h +++ b/src/occ_gpe0/firdata/scom_util.h @@ -91,7 +91,8 @@ typedef enum typedef enum { - N3_NPU_0_RING_ID = 0x5, + N3_NPU_0_RING_ID = 0x4, + N3_NPU_1_RING_ID = 0x5, P9A_NPU_2_RING_ID = 0x7, P9A_NPU_2_FIR_RING_ID = 0x8, P9A_NPU_0_FIR_RING_ID = 0xF, -- cgit v1.2.1