diff options
Diffstat (limited to 'src/occ_gpe0/firdata/firData.c')
-rw-r--r-- | src/occ_gpe0/firdata/firData.c | 71 |
1 files changed, 66 insertions, 5 deletions
diff --git a/src/occ_gpe0/firdata/firData.c b/src/occ_gpe0/firdata/firData.c index ea1fa26..5e35056 100644 --- a/src/occ_gpe0/firdata/firData.c +++ b/src/occ_gpe0/firdata/firData.c @@ -886,10 +886,10 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd ) ADD_TO_PNOR( PROC, 0 ) ADD_UNITS_TO_PNOR( xbusMask, XBUS ) - ADD_UNITS_TO_PNOR( obusMask, OBUS ) - ADD_UNITS_TO_PNOR( cappMask, CAPP ) + ADD_UNITS_TO_PNOR( ecMask, EC ) + ADD_UNITS_TO_PNOR( mcsMask, MCS ) START_UNIT_LOOP( u1, PROC_MAX(PEC) ) @@ -912,8 +912,6 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd ) END_UNIT_LOOP - ADD_UNITS_TO_PNOR( ecMask, EC ) - START_UNIT_LOOP( u1, PROC_MAX(EQ) ) ADD_UNIT_TO_PNOR( eqMask, EQ, u1 ) ADD_SUBUNITS_TO_PNOR( exMask, EQ, EX ) @@ -923,8 +921,63 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd ) ADD_UNIT_TO_PNOR( mcbistMask, MCBIST, u1 ) ADD_SUBUNITS_TO_PNOR( mcaMask, MCBIST, MCA ) END_UNIT_LOOP + } + else if ( HOMER_CHIP_AXONE == chipHdr->chipType ) + { + // Keep a pointer of the current chip data. + HOMER_ChipAxone_t * chipData = (HOMER_ChipAxone_t *) byteIdx; + byteIdx += sizeof(HOMER_ChipAxone_t); - ADD_UNITS_TO_PNOR( mcsMask, MCS ) + isM = chipData->isMaster; + + ADD_TO_PNOR( PROC, 0 ) + + ADD_UNITS_TO_PNOR( xbusMask, XBUS ) + ADD_UNITS_TO_PNOR( obusMask, OBUS ) + ADD_UNITS_TO_PNOR( cappMask, CAPP ) + ADD_UNITS_TO_PNOR( ecMask, EC ) + ADD_UNITS_TO_PNOR( npuMask, NPU ) + ADD_UNITS_TO_PNOR( miMask, MI ) + + START_UNIT_LOOP( u1, PROC_MAX(PEC) ) + + ADD_UNIT_TO_PNOR( pecMask, PEC, u1 ) + + // The PEC unit number matches the number of PHBs under + // that PEC. + START_UNIT_LOOP( u2, u1 + 1 ) + + // Calculate the PHB unit position. + // PEC0-> PHB0 + // PEC1-> PHB1 PHB2 + // PEC2-> PHB3 PHB4 PHB5 + u3 = u1 + u2; + if ( (PROC_MAX(PEC) - 1) == u1 ) u3++; + + ADD_UNIT_TO_PNOR( phbMask, PHB, u3 ) + + END_UNIT_LOOP + + END_UNIT_LOOP + + START_UNIT_LOOP( u1, PROC_MAX(EQ) ) + ADD_UNIT_TO_PNOR( eqMask, EQ, u1 ) + ADD_SUBUNITS_TO_PNOR( exMask, EQ, EX ) + END_UNIT_LOOP + + START_UNIT_LOOP( u1, PROC_MAX(MC) ) + ADD_UNIT_TO_PNOR( mcMask, MC, u1 ) + ADD_SUBUNITS_TO_PNOR( mccMask, MC, MCC ) + ADD_SUBUNITS_TO_PNOR( omicMask, MC, OMIC ) + END_UNIT_LOOP + } + else if ( HOMER_CHIP_EXPLORER == chipHdr->chipType ) + { + // NOTE: The Explorer chip does not have any unit data. + + isM = false; // processor chips only. + + ADD_TO_PNOR( OCMB, 0 ); } else { @@ -1079,6 +1132,14 @@ int32_t FirData_init( FirData_t * io_fd, { reglist += sizeof(HOMER_ChipNimbus_t); } + else if (HOMER_CHIP_AXONE == l_chiptPtr->chipType) + { + reglist += sizeof(HOMER_ChipAxone_t); + } + else if (HOMER_CHIP_EXPLORER == l_chiptPtr->chipType) + { + // There is no chip unit data for Explorer. + } else { TRAC_ERR(FUNC"Chiptype is invalid %X ", (uint32_t)l_chiptPtr->chipType); |