diff options
author | Octasic Inc <support@octasic.com> | 2006-11-13 14:37:50 +0200 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2011-02-27 21:07:45 +0200 |
commit | 8131500eb47e819518e0752f1c7f3e03a4a24271 (patch) | |
tree | b38c271fe8c333b78bbda868025ee87b06812055 /software/octdeviceapi | |
parent | 87350ddeca199ccf385dd52416d715b649659724 (diff) |
importing OCT612x-01.00-PR46
Diffstat (limited to 'software/octdeviceapi')
39 files changed, 715 insertions, 86 deletions
diff --git a/software/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h b/software/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h index fb9a5d4..fcbf8c9 100644 --- a/software/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 6 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c index 8430a2b..5e941b2 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 15 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c index 40a94f5..f067d9e 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ -$Octasic_Revision: 469 $ +$Octasic_Revision: 472 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c index d097613..4ca2bee 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c @@ -24,9 +24,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ -$Octasic_Revision: 312 $ +$Octasic_Revision: 331 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -236,6 +236,7 @@ UINT32 Oct6100ChipOpenDef( f_pChipOpen->fEnableChannelRecording = FALSE; f_pChipOpen->fEnableProductionBist = FALSE; + f_pChipOpen->ulProductionBistMode = cOCT6100_PRODUCTION_BIST_STANDARD; f_pChipOpen->ulNumProductionBistLoops = 1; return cOCT6100_ERR_OK; @@ -286,7 +287,6 @@ UINT32 Oct6100ChipOpen( /* Save the process context specified by the user. */ f_pApiInstance->pProcessContext = f_pChipOpen->pProcessContext; - /* Create serialization object handles. */ ulResult = Oct6100ApiCreateSerializeObjects( f_pApiInstance, f_pChipOpen->ulUserChipId ); if ( ulResult != cOCT6100_ERR_OK ) @@ -826,11 +826,171 @@ UINT32 Oct6100ApiGetVersion( return cOCT6100_ERR_OK; } +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +Function: Oct6100ApiGetCapacityPins + +Description: Retrieves the Capcity Pins value. + +------------------------------------------------------------------------------- +| Argument | Description +------------------------------------------------------------------------------- + +f_pGetCapacityPins Pointer to the parameters structure needed + by GetCapacityPins(). + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ +UINT32 Oct6100ApiGetCapacityPinsDef( + tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) +{ + + f_pGetCapacityPins->pProcessContext = NULL; + f_pGetCapacityPins->ulUserChipId = 0; + f_pGetCapacityPins->ulMemoryType = cOCT6100_MEM_TYPE_DDR; + f_pGetCapacityPins->ulCapacityValue = cOCT6100_INVALID_VALUE; + f_pGetCapacityPins->fEnableMemClkOut = TRUE; + f_pGetCapacityPins->ulMemClkFreq = 133000000; + + return cOCT6100_ERR_OK; +} + +UINT32 Oct6100ApiGetCapacityPins( + tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ) +{ + + UINT32 ulResult; + + tOCT6100_INSTANCE_API ApiInstance; + + Oct6100UserMemSet(&ApiInstance,0,sizeof(tOCT6100_INSTANCE_API)); + + /*Check parameters*/ + if ( f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_133_MHZ && + f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_125_MHZ && + f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_117_MHZ && + f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_108_MHZ && + f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_100_MHZ && + f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_92_MHZ && + f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_83_MHZ && + f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_75_MHZ ) + return cOCT6100_ERR_OPEN_MEM_CLK_FREQ; + + if ( f_pGetCapacityPins->fEnableMemClkOut != TRUE && + f_pGetCapacityPins->fEnableMemClkOut != FALSE ) + return cOCT6100_ERR_OPEN_ENABLE_MEM_CLK_OUT; + + if ( f_pGetCapacityPins->ulMemoryType != cOCT6100_MEM_TYPE_SDR && + f_pGetCapacityPins->ulMemoryType != cOCT6100_MEM_TYPE_DDR && + f_pGetCapacityPins->ulMemoryType != cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) + return cOCT6100_ERR_OPEN_MEMORY_TYPE; + + + + ApiInstance.pProcessContext = f_pGetCapacityPins->pProcessContext; + + + + ulResult = Oct6100ApiReadCapacity(&ApiInstance, f_pGetCapacityPins); + + + return ulResult; +} /*************************** PRIVATE FUNCTIONS *****************************/ +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +Function: Oct6100ApiReadCapacity +Description: Read the capacity pins using modified functions from the openchip. + +------------------------------------------------------------------------------- +| Argument | Description +------------------------------------------------------------------------------- +f_pChipOpen Pointer to chip configuration structure. + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ +UINT32 Oct6100ApiReadCapacity( IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) +{ + UINT32 ulResult; + tOCT6100_READ_PARAMS ReadParams; + UINT16 usReadData; + + /*Read capacity Pins*/ + + + ReadParams.pProcessContext = f_pGetCapacityPins->pProcessContext; + ReadParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; + ReadParams.pusReadData = &usReadData; + + /*Check the Reset register*/ + ReadParams.ulReadAddress = 0x100; + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + if ((usReadData & 0xFFFF) != 0x0000) + return cOCT6100_ERR_CAP_PINS_INVALID_CHIP_STATE; + + /* Test the CPU registers. */ + ulResult = Oct6100ApiCpuRegisterBistReadCap( f_pApiInstance, f_pGetCapacityPins ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Boot the FC2 PLL. */ + ulResult = Oct6100ApiBootFc2PllReadCap( f_pApiInstance,f_pGetCapacityPins ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Program the FC1 PLL. */ + ulResult = Oct6100ApiProgramFc1PllReadCap( f_pApiInstance,f_pGetCapacityPins ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + if ( (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR) || + (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS) ) + { + ReadParams.ulReadAddress = 0x168; + } + else + ReadParams.ulReadAddress = 0x166; + + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + switch (usReadData & 0xF) + { + case 0x9: + f_pGetCapacityPins->ulCapacityValue = 16; + break; + case 0x8: + f_pGetCapacityPins->ulCapacityValue = 32; + break; + case 0xE: + f_pGetCapacityPins->ulCapacityValue = 64; + break; + case 0x0: + f_pGetCapacityPins->ulCapacityValue = 128; + break; + case 0x2: + f_pGetCapacityPins->ulCapacityValue = 256; + break; + case 0x5: + f_pGetCapacityPins->ulCapacityValue = 512; + break; + case 0x6: + f_pGetCapacityPins->ulCapacityValue = 672; + break; + default: + f_pGetCapacityPins->ulCapacityValue = (usReadData & 0xF); + return cOCT6100_ERR_CAP_PINS_INVALID_CAPACITY_VALUE; + } + + return cOCT6100_ERR_OK; +} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiCheckChipConfiguration @@ -1109,6 +1269,10 @@ UINT32 Oct6100ApiCheckChipConfiguration( { if ( f_pChipOpen->ulNumProductionBistLoops == 0 ) return cOCT6100_ERR_OPEN_NUM_PRODUCTION_BIST_LOOPS; + + if ( (f_pChipOpen->ulProductionBistMode != cOCT6100_PRODUCTION_BIST_STANDARD) && + (f_pChipOpen->ulProductionBistMode != cOCT6100_PRODUCTION_BIST_SHORT) ) + return cOCT6100_ERR_OPEN_PRODUCTION_BIST_MODE; } /* If the production BIST has been requested, make sure all */ @@ -1227,6 +1391,7 @@ UINT32 Oct6100ApiCopyChipConfiguration( pSharedInfo->ChipConfig.fEnableProductionBist = (UINT8)( f_pChipOpen->fEnableProductionBist & 0xFF ); + pSharedInfo->ChipConfig.ulProductionBistMode = f_pChipOpen->ulProductionBistMode; pSharedInfo->ChipConfig.ulNumProductionBistLoops = f_pChipOpen->ulNumProductionBistLoops; return cOCT6100_ERR_OK; @@ -2004,7 +2169,241 @@ UINT32 Oct6100ApiDecodeKeyAndBist( return cOCT6100_ERR_OK; } +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +Function: Oct6100ApiBootFc2PllReadCap + +Description: Configures the chip's FC2 PLL. Special version for GetcapacityPins. +------------------------------------------------------------------------------- +| Argument | Description +------------------------------------------------------------------------------- +f_pApiInstance Pointer to API instance. This memory is used to keep the + present state of the chip and all its resources. + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ +UINT32 Oct6100ApiBootFc2PllReadCap( + IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) +{ + tOCT6100_WRITE_PARAMS WriteParams; + UINT32 aulWaitTime[ 2 ]; + UINT32 ulResult; + UINT32 ulFc2PllDivisor = 0; + UINT32 ulMtDivisor = 0; + UINT32 ulFcDivisor = 0; + + /* Set the process context and user chip ID parameters once and for all. */ + WriteParams.pProcessContext = f_pGetCapacityPins->pProcessContext; + + WriteParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; + + /* First put the chip and main registers in soft-reset. */ + WriteParams.ulWriteAddress = 0x100; + WriteParams.usWriteData = 0x0; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + ulFc2PllDivisor = 0x1050; + ulMtDivisor = 0x4300; + ulFcDivisor = 0x4043; + + /* Setup delay chains. */ + if ( (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR) || (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS) ) + { + /* SDRAM */ + WriteParams.ulWriteAddress = 0x1B0; + WriteParams.usWriteData = 0x1003; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1B2; + WriteParams.usWriteData = 0x0021; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1B4; + WriteParams.usWriteData = 0x4030; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1B6; + WriteParams.usWriteData = 0x0021; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + else /* if ( cOCT6100_MEM_TYPE_DDR == pChipConfig->byMemoryType ) */ + { + /* DDR */ + WriteParams.ulWriteAddress = 0x1B0; + WriteParams.usWriteData = 0x201F; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1B2; + WriteParams.usWriteData = 0x0021; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1B4; + WriteParams.usWriteData = 0x1000; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1B6; + WriteParams.usWriteData = 0x0021; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + + /* udqs */ + WriteParams.ulWriteAddress = 0x1B8; + WriteParams.usWriteData = 0x1003; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1BA; + WriteParams.usWriteData = 0x0021; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* ldqs */ + WriteParams.ulWriteAddress = 0x1BC; + WriteParams.usWriteData = 0x1000; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x1BE; + WriteParams.usWriteData = 0x0021; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x12C; + WriteParams.usWriteData = 0x0000; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x12E; + WriteParams.usWriteData = 0x0000; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Select fc2pll for fast_clk and mtsclk sources. Select mem_clk_i for afclk. */ + WriteParams.ulWriteAddress = 0x140; + WriteParams.usWriteData = (UINT16)ulMtDivisor; + + if ( f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) + WriteParams.usWriteData |= 0x0001; + else + WriteParams.usWriteData |= 0x0004; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x144; + WriteParams.usWriteData = (UINT16)ulFcDivisor; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.ulWriteAddress = 0x13E; + WriteParams.usWriteData = 0x0001; /* Remove reset from above divisors */ + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Select upclk directly as ref source for fc2pll. */ + WriteParams.ulWriteAddress = 0x134; + WriteParams.usWriteData = 0x0001; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Setup fc2pll. */ + WriteParams.ulWriteAddress = 0x132; + WriteParams.usWriteData = (UINT16)ulFc2PllDivisor; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.usWriteData |= 0x02; /* Raise fb divisor reset. */ + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + WriteParams.usWriteData |= 0x80; /* Raise IDDTN signal.*/ + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Wait for fc2pll to stabilize. */ + aulWaitTime[ 0 ] = 2000; + aulWaitTime[ 1 ] = 0; + ulResult = Oct6100ApiWaitForTime( f_pApiInstance, aulWaitTime ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Drive mem_clk_o out on proper interface. */ + if ( TRUE == f_pGetCapacityPins->fEnableMemClkOut ) + { + if ( (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR) || (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS) ) + { + WriteParams.ulWriteAddress = 0x128; + WriteParams.usWriteData = 0x0301; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + + if ( f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_DDR || f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) + { + WriteParams.ulWriteAddress = 0x12A; + WriteParams.usWriteData = 0x000F; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + } + + return cOCT6100_ERR_OK; +} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiBootFc2Pll @@ -2358,8 +2757,83 @@ UINT32 Oct6100ApiBootFc2Pll( return cOCT6100_ERR_OK; } +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +Function: Oct6100ApiProgramFc1PllReadCap + +Description: Configures the chip's FC1 PLL. Special version for getCapacityPins. + +------------------------------------------------------------------------------- +| Argument | Description +------------------------------------------------------------------------------- +f_pApiInstance Pointer to API instance. This memory is used to keep the + present state of the chip and all its resources. + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ +UINT32 Oct6100ApiProgramFc1PllReadCap( + IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) +{ + tOCT6100_WRITE_PARAMS WriteParams; + UINT32 aulWaitTime[ 2 ]; + UINT32 ulResult; + /* Set the process context and user chip ID parameters once and for all. */ + WriteParams.pProcessContext = f_pApiInstance->pProcessContext; + + WriteParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; + /* Programm P/Z bits. */ + WriteParams.ulWriteAddress = 0x130; + + if ( f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) + WriteParams.usWriteData = 0x0041; + else + WriteParams.usWriteData = 0x0040; + + WriteParams.usWriteData |= ( f_pGetCapacityPins->ulMemoryType << 8 ); + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Raise FB divisor. */ + WriteParams.usWriteData |= 0x0002; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Raise IDDTN. */ + WriteParams.usWriteData |= 0x0080; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Wait for fc1pll to stabilize. */ + aulWaitTime[ 0 ] = 2000; + aulWaitTime[ 1 ] = 0; + ulResult = Oct6100ApiWaitForTime( f_pApiInstance, aulWaitTime ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Enable all the clock domains to do reset procedure. */ + WriteParams.ulWriteAddress = 0x186; + WriteParams.usWriteData = 0x015F; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + aulWaitTime[ 0 ] = 15000; + aulWaitTime[ 1 ] = 0; + ulResult = Oct6100ApiWaitForTime( f_pApiInstance, aulWaitTime ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + return cOCT6100_ERR_OK; +} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiProgramFc1Pll @@ -2728,8 +3202,119 @@ UINT32 Oct6100ApiLoadImage( return cOCT6100_ERR_OK; } +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +Function: Oct6100ApiCpuRegisterBistReadCap + +Description: Tests the operation of the CPU registers. Special Version for + GetCapacityPins + +------------------------------------------------------------------------------- +| Argument | Description +------------------------------------------------------------------------------- +f_pApiInstance Pointer to API instance. This memory is used to keep the + present state of the chip and all its resources. + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ +UINT32 Oct6100ApiCpuRegisterBistReadCap( + IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins + ) +{ + tOCT6100_WRITE_PARAMS WriteParams; + tOCT6100_READ_PARAMS ReadParams; + UINT32 ulResult; + UINT16 i; + UINT16 usReadData; + + /* Set the process context and user chip ID parameters once and for all. */ + WriteParams.pProcessContext = f_pApiInstance->pProcessContext; + + WriteParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; + + ReadParams.pProcessContext = f_pApiInstance->pProcessContext; + + ReadParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; + + /* Assign read data pointer that will be used throughout the function. */ + ReadParams.pusReadData = &usReadData; + + /* Start with a walking bit test. */ + for ( i = 0; i < 16; i ++ ) + { + /* Write at address 0x150.*/ + WriteParams.ulWriteAddress = 0x150; + WriteParams.usWriteData = (UINT16)( 0x1 << i ); + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Write at address 0x180.*/ + WriteParams.ulWriteAddress = 0x180; + WriteParams.usWriteData = (UINT16)( 0x1 << ( 15 - i ) ); + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Now read back the two registers to make sure the acceses were successfull. */ + ReadParams.ulReadAddress = 0x150; + + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + if ( usReadData != ( 0x1 << i ) ) + return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; + + ReadParams.ulReadAddress = 0x180; + + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + if ( usReadData != ( 0x1 << ( 15 - i ) ) ) + return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; + } + + /* Write at address 0x150. */ + WriteParams.ulWriteAddress = 0x150; + WriteParams.usWriteData = 0xCAFE; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Write at address 0x180. */ + WriteParams.ulWriteAddress = 0x180; + WriteParams.usWriteData = 0xDECA; + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + /* Now read back the two registers to make sure the acceses were successfull. */ + ReadParams.ulReadAddress = 0x150; + + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + if ( usReadData != 0xCAFE ) + return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; + + ReadParams.ulReadAddress = 0x180; + + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + if ( usReadData != 0xDECA ) + return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; + + return cOCT6100_ERR_OK; +} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiCpuRegisterBist @@ -3743,7 +4328,10 @@ UINT32 Oct6100ApiProgramNLP( { if ( pSharedInfo->ChipConfig.fEnableProductionBist == TRUE ) { - WriteParams.usWriteData = cOCT6100_PRODUCTION_BOOT_TYPE; + if (pSharedInfo->ChipConfig.ulProductionBistMode == cOCT6100_PRODUCTION_BIST_SHORT) + WriteParams.usWriteData = cOCT6100_PRODUCTION_SHORT_BOOT_TYPE; + else + WriteParams.usWriteData = cOCT6100_PRODUCTION_BOOT_TYPE; } else { @@ -3825,7 +4413,8 @@ UINT32 Oct6100ApiProgramNLP( if ( pSharedInfo->ChipConfig.fEnableProductionBist == TRUE ) { /* Should read 0x0007 when bisting. */ - if ( ( usReadHighData & 0xFFFF ) == cOCT6100_PRODUCTION_BOOT_TYPE ) + if ( (( usReadHighData & 0xFFFF ) == cOCT6100_PRODUCTION_BOOT_TYPE) || + (( usReadHighData & 0xFFFF ) == cOCT6100_PRODUCTION_SHORT_BOOT_TYPE) ) { /* Verify if the bist has started successfully. */ if ( ( usReadData & 0xFFFF ) == 0x0002 ) @@ -5180,6 +5769,11 @@ UINT32 Oct6100ApiRandomMemoryWrite( UINT32 ulResult, i, j; UINT32 ulBistAddress; UINT16 usReadData; + UINT32 aulBistAddress[20]={0x00000000, 0x00000002, 0x00000004, 0x007FFFFE, + 0x00900000, 0x00900006, 0x00900008, 0x009FFFFE, + 0x01000000, 0x0100000A, 0x0200000C, 0x01FFFFFE, + 0x03000000, 0x03000002, 0x04000004, 0x03FFFFFE, + 0x04000000, 0x05000006, 0x06000008, 0x07FFFFFE}; /* Get local pointer to shared portion of instance. */ pSharedInfo = f_pApiInstance->pSharedInfo; @@ -5193,51 +5787,54 @@ UINT32 Oct6100ApiRandomMemoryWrite( ReadParams.ulUserChipId = pSharedInfo->ChipConfig.ulUserChipId; - /* Make sure we don't perform more access then the size of our BIST resources. */ - if ( f_ulNumAccesses > 1024 ) - return cOCT6100_ERR_FATAL_C0; - /* Determine mask for number of data bits. */ ulDataMask = (1 << f_ulNumDataBits) - 1; - /* Bist all data pin. */ - for ( i = 0; i < 32; i += 2 ) - { - WriteParams.ulWriteAddress = f_ulMemBase + i * 2; - WriteParams.usWriteData = (UINT16)(0x1 << (i / 2)); - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; + /* Write specific data to specific address */ + WriteParams.ulWriteAddress = f_ulMemBase | 0x00001000; + WriteParams.usWriteData = 0xCAFE; - WriteParams.ulWriteAddress = f_ulMemBase + i * 2 + 2; - WriteParams.usWriteData = (UINT16)(0x1 << (i / 2)); + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + for(j=0; j<20; j++) + { + /* Change address to test lower and higher part of the 32 bit bus */ + ulBistAddress = aulBistAddress[j]; + ulBistAddress &= f_ulMemSize - 2; + ulBistAddress |= f_ulMemBase; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } + /* Bist 16 data pins of this address */ + for ( i = 0; i < 16; i ++) + { + WriteParams.ulWriteAddress = ulBistAddress; + WriteParams.usWriteData = (UINT16)(0x1 << i); - /* Read back the data written. */ - for ( i = 0; i < 32; i += 2 ) - { - ReadParams.ulReadAddress = f_ulMemBase + i * 2; - ReadParams.pusReadData = &usReadData; - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; - if ( usReadData != (UINT16)(0x1 << (i / 2)) ) - return f_ulErrorCode; + /* Read back the specific data to flush the data bus.*/ + ReadParams.ulReadAddress = f_ulMemBase | 0x00001000; + ReadParams.pusReadData = &usReadData; + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; - ReadParams.ulReadAddress = f_ulMemBase + i * 2 + 2; - ReadParams.pusReadData = &usReadData; - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; + if ( usReadData != 0xCAFE ) + return f_ulErrorCode; + + /* Read back the data written.*/ + ReadParams.ulReadAddress = WriteParams.ulWriteAddress; + ReadParams.pusReadData = &usReadData; + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; - if ( usReadData != (UINT16)(0x1 << (i / 2)) ) - return f_ulErrorCode; + if ( usReadData != (UINT16)(0x1 << i) ) + return f_ulErrorCode; + } } /* Perform the first write at address 0 + mem base */ @@ -5305,6 +5902,7 @@ UINT32 Oct6100ApiRandomMemoryWrite( return f_ulErrorCode; } + return cOCT6100_ERR_OK; } diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c index bf1a55b..ca52868 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 87 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c index 6376a3a..056166c 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 145 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c index 18c82c0..d2e0244 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 63 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c index 056d717..8f8ab2a 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 79 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c index 573c480..0ba9164 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 72 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c index a7f330b..1a0d9eb 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 42 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c index 393134b..9e05e97 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 35 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c index 7f5936d..aec754f 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 42 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c index 19315f3..1ce04ca 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 43 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c index a5c41c0..d529865 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 109 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c index b9f747b..78f46a1 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 35 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c index 8a1a1b9..8e96f4d 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 111 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c index 37b25ab..229fad5 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ -$Octasic_Revision: 49 $ +$Octasic_Revision: 50 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -989,8 +989,23 @@ UINT32 Oct6100ApiIsSSTone( switch( f_ulToneEventNumber ) { - case cOCT6100_TONE_SIN_SYSTEM7_2000: - case cOCT6100_TONE_SIN_SYSTEM7_1780: + case cOCT6100_TONE_SIN_SYSTEM7_2000 : + case cOCT6100_TONE_SIN_SYSTEM7_1780 : + case cOCT6100_TONE_ROUT_G168_2100GB_ON : + case cOCT6100_TONE_ROUT_G168_2100GB_WSPR : + case cOCT6100_TONE_ROUT_G168_1100GB_ON : + case cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_A : + case cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_B : + case cOCT6100_TONE_ROUT_G168_2100GB_WSPR_WIDE : + case cOCT6100_TONE_SOUT_G168_2100GB_ON : + case cOCT6100_TONE_SOUT_G168_2100GB_WSPR : + case cOCT6100_TONE_SOUT_G168_1100GB_ON : + case cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_A : + case cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_B : + case cOCT6100_TONE_SOUT_G168_2100GB_WSPR_WIDE : + case cOCT6100_TONE_SIN_SYSTEM5_2400 : + case cOCT6100_TONE_SIN_SYSTEM5_2600 : + case cOCT6100_TONE_SIN_SYSTEM5_2400_2600 : *f_fSSTone = TRUE; break; default: diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c index 4b9e0e7..6f7b794 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 37 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c index b6ab475..1036a2b 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 39 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c index f54377c..afb6961 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 28 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c b/software/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c index 0c6970a..75b06d0 100644 --- a/software/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c +++ b/software/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 7 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_channel_priv.h b/software/octdeviceapi/oct6100api/oct6100_channel_priv.h index f8968c9..23b8c1d 100644 --- a/software/octdeviceapi/oct6100api/oct6100_channel_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_channel_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 62 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_chip_open_priv.h b/software/octdeviceapi/oct6100api/oct6100_chip_open_priv.h index 1d0e6aa..34ec6e3 100644 --- a/software/octdeviceapi/oct6100api/oct6100_chip_open_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_chip_open_priv.h @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ -$Octasic_Revision: 56 $ +$Octasic_Revision: 59 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -237,6 +237,22 @@ UINT32 Oct6100ApiProductionCrc( IN UINT32 f_ulMessageLength, OUT PUINT32 f_pulCrcResult ); +UINT32 Oct6100ApiReadCapacity( + IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); + +UINT32 Oct6100ApiCpuRegisterBistReadCap( + IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); + +UINT32 Oct6100ApiBootFc2PllReadCap( + IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); + +UINT32 Oct6100ApiProgramFc1PllReadCap( + IN tPOCT6100_INSTANCE_API f_pApiInstance, + IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); + UINT32 Oct6100ApiInitToneInfo( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance ); #endif /* __OCT6100_CHIP_OPEN_PRIV_H__ */ diff --git a/software/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h b/software/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h index 0e876d8..bd7367d 100644 --- a/software/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 8 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h b/software/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h index d63d87d..cdff76f 100644 --- a/software/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 30 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_debug_priv.h b/software/octdeviceapi/oct6100api/oct6100_debug_priv.h index a6292d8..c592c68 100644 --- a/software/octdeviceapi/oct6100api/oct6100_debug_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_debug_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 12 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_events_priv.h b/software/octdeviceapi/oct6100api/oct6100_events_priv.h index 33555e3..6bcb8d7 100644 --- a/software/octdeviceapi/oct6100api/oct6100_events_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_events_priv.h @@ -26,7 +26,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 13 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_interrupts_priv.h b/software/octdeviceapi/oct6100api/oct6100_interrupts_priv.h index 19856c5..a92a680 100644 --- a/software/octdeviceapi/oct6100api/oct6100_interrupts_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_interrupts_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 8 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_memory_priv.h b/software/octdeviceapi/oct6100api/oct6100_memory_priv.h index 9ed2963..32d109c 100644 --- a/software/octdeviceapi/oct6100api/oct6100_memory_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_memory_priv.h @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 17 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h b/software/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h index a00e2a3..3f28fb0 100644 --- a/software/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 20 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_mixer_priv.h b/software/octdeviceapi/oct6100api/oct6100_mixer_priv.h index 5d5f4c4..651f846 100644 --- a/software/octdeviceapi/oct6100api/oct6100_mixer_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_mixer_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 18 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h b/software/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h index bdae645..d124c27 100644 --- a/software/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 11 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h b/software/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h index 57e2e34..f11838f 100644 --- a/software/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 22 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h b/software/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h index d74e82c..c46e132 100644 --- a/software/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 13 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_tlv_priv.h b/software/octdeviceapi/oct6100api/oct6100_tlv_priv.h index 409939f..60c6c5b 100644 --- a/software/octdeviceapi/oct6100api/oct6100_tlv_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_tlv_priv.h @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 56 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h b/software/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h index 82a56c3..1e89c17 100644 --- a/software/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 13 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h b/software/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h index 1be80ef..872abbe 100644 --- a/software/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 13 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_tsst_priv.h b/software/octdeviceapi/oct6100api/oct6100_tsst_priv.h index e7a2733..04a3919 100644 --- a/software/octdeviceapi/oct6100api/oct6100_tsst_priv.h +++ b/software/octdeviceapi/oct6100api/oct6100_tsst_priv.h @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ $Octasic_Revision: 14 $ diff --git a/software/octdeviceapi/oct6100api/oct6100_version.h b/software/octdeviceapi/oct6100api/oct6100_version.h index 49ddb25..aa641a1 100644 --- a/software/octdeviceapi/oct6100api/oct6100_version.h +++ b/software/octdeviceapi/oct6100api/oct6100_version.h @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR43 $ +$Octasic_Release: OCT612xAPI-01.00-PR46 $ -$Octasic_Revision: 46 $ +$Octasic_Revision: 49 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -34,6 +34,6 @@ $Octasic_Revision: 46 $ /* String version of the OCT6100 API.*/ -#define cOCT6100_API_VERSION "OCT6100API-01.00-PR43" +#define cOCT6100_API_VERSION "OCT6100API-01.00-PR46" #endif /* __OCT6100_VERSION_H__ */ |