diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2019-07-01 09:47:06 -0500 |
---|---|---|
committer | Martha Broyles <mbroyles@us.ibm.com> | 2019-07-15 10:25:05 -0500 |
commit | bae814cdb7dc0206d13bdd4c1b0f531f3da814eb (patch) | |
tree | 3d9c97b5d52fd5e1438a0397be0ee8efe0451ff1 | |
parent | 8bbfabefb85feea1f7a47804f8e167f238dd149a (diff) | |
download | talos-occ-bae814cdb7dc0206d13bdd4c1b0f531f3da814eb.tar.gz talos-occ-bae814cdb7dc0206d13bdd4c1b0f531f3da814eb.zip |
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 <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
-rw-r--r-- | src/occ_gpe0/firdata/scom_util.c | 11 | ||||
-rw-r--r-- | 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, |