blob: a0a6981dffe45ea853919da16add7728fd429125 [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2016
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*************************************************************
*
* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
*
* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
*
* Copyright (c) 1998-2010 VIA Telecom, Inc. All rights reserved.
*
*************************************************************/
#ifndef _LMDTDSO_H_
#define _LMDTDSO_H_
/*****************************************************************************
*
* FILE NAME : lmdtdso.h
*
* DESCRIPTION : Test Data Service Option definitions
*
* HISTORY :
* See Log at end of file
*
*****************************************************************************/
/*----------------------------------------------------------------------------
Include Files
----------------------------------------------------------------------------*/
#include "sysapi.h"
/*----------------------------------------------------------------------------
Test Data Service Option Defines and Macros
----------------------------------------------------------------------------*/
/* service option control counter response size */
#ifdef SYS_OPTION_SCH_RAM_INUSE
/* this is 3 times the max of (FUND_TDSO_RX_MAX, SUPP_TDSO_RX_MAX, PDU_TDSO_RX_MAX,
FUND_TDSO_TX_MAX, SUPP_TDSO_TX_MAX) */
#define MAX_COUNTER_RESPONSE_SIZE (3 * PDU_TDSO_RX_MAX)
#else
/* this is 3 times the max of (FUND_TDSO_RX_MAX, FUND_TDSO_TX_MAX) */
#define MAX_COUNTER_RESPONSE_SIZE (3 * FUND_TDSO_RX_MAX)
#endif /* SYS_OPTION_SCH_RAM_INUSE */
/*----------------------------------------------------------------------------
Test Data Service Option Typedefs
----------------------------------------------------------------------------*/
/* Traffic (channel) Direction type */
typedef enum
{
FUND_FORWARD = 0,
FUND_REVERSE,
#ifdef SYS_OPTION_SCH_RAM_INUSE
SUPP0_FORWARD,
SUPP0_REVERSE,
#endif /* SYS_OPTION_SCH_RAM_INUSE */
TDSO_MAX_DIR
} TdsoDirectionT;
/* Frame Type Index based on MuxOption and TrafficType
* This index can and will be used to access parameters
* from many fast look up tables. */
typedef enum
{
/* muxoption: 0x01 */
FTI_1X_171_FUND = 0, /* primary */
FTI_1X_168_FUND, /* secondary */
/* muxoption: 0x02 */
FTI_1X_266_FUND,
FTI_1X_262_FUND,
#ifdef SYS_OPTION_SCH_RAM_INUSE
/* muxoption: 0x03 */
FTI_1X_171_SUPP,
FTI_1X_168_SUPP,
/* muxoption: 0x04 */
FTI_1X_266_SUPP,
FTI_1X_262_SUPP,
/* muxoptions: 0x809, 0x811, 0x821 */
FTI_2X_170_PRI,
FTI_2X_170_SEC,
FTI_4X_170_PRI,
FTI_4X_170_SEC,
FTI_8X_170_PRI,
FTI_8X_170_SEC,
/* muxoptions: 0x80A, 0x812, 0x822 */
FTI_2X_266_PRI,
FTI_2X_266_SEC,
FTI_4X_266_PRI,
FTI_4X_266_SEC,
FTI_8X_266_PRI,
FTI_8X_266_SEC,
/* muxoptions: 0x905 0x909, 0x911, 0x921 */
FTI_1X_346_PRI,
FTI_1X_346_SEC,
FTI_2X_346_PRI,
FTI_2X_346_SEC,
FTI_4X_346_PRI,
FTI_4X_346_SEC,
FTI_8X_346_PRI,
FTI_8X_346_SEC,
/* muxoptions: 0x906 0x90A, 0x912, 0x922 */
FTI_1X_538_PRI,
FTI_1X_538_SEC,
FTI_2X_538_PRI,
FTI_2X_538_SEC,
FTI_4X_538_PRI,
FTI_4X_538_SEC,
FTI_8X_538_PRI,
FTI_8X_538_SEC,
#endif /* SYS_OPTION_SCH_RAM_INUSE */
FTI_MAX_SIZE
} TdsoFrameTypeIndexT;
/* Frame Params type */
typedef struct
{
kal_uint16 NumPdus;
kal_uint16 NumBits;
kal_uint16 PadBits;
} TdsoFrameParamsT;
/* Frame packet type */
typedef enum
{
FULL_PACKET = 0,
BLNK_PACKET
} TdsoPacketTypeT;
/* Data source used in the generation of local packets */
typedef enum
{
USE_PATTERN = 0,
USE_CIRBUF,
USE_ONES
} TdsoDataSourceT;
/* Frame activity types */
typedef enum
{
FA_DETERMINISTIC = 0,
FA_RANDOM
} TdsoFrameActivityT;
/* Control parameters */
typedef struct
{
kal_uint8 Nx;
TdsoFrameActivityT FrameActivity;
kal_uint32 OnThreshold;
kal_uint32 OffThreshold;
kal_uint8 TxOnPer;
kal_uint8 TxOffPer;
TdsoDataSourceT DataSource;
kal_uint8 DataPattern;
} TdsoControlParmT;
/* transition state definitions */
typedef enum
{
TDSO_STATE_OFF = 0,
TDSO_STATE_ON
} TdsoStateT;
typedef enum
{
LAST_TIME = 0,
THIS_TIME,
NEXT_TIME,
MAX_TIME
} TdsoTimeT;
typedef struct
{
kal_uint32 Value;
kal_uint32 Time;
} TdsoSRNGT;
/* Receive Counter Id Lookup Table type */
typedef struct
{
const kal_uint16 *FullRateTableP;
const kal_uint16 *BlnkRateTableP;
const kal_uint16 TableSize;
} TdsoRxLookUpTableT;
/* Receive frame counters on the fundicated channel
* NOTE: the order of these ids MUST match that described
* in section 3.8.1.4 - see GetFundRECCounters() */
typedef enum
{
FUND_TDSO_E1_R1 = 0,
FUND_TDSO_E1_RD,
FUND_TDSO_E1_RO,
FUND_TDSO_E1_RB,
FUND_TDSO_E1_RFL,
FUND_TDSO_E1_RE,
FUND_TDSO_E1_RERR,
FUND_TDSO_EN_RN,
FUND_TDSO_EN_RB,
FUND_TDSO_EN_RO,
FUND_TDSO_RX_MAX /* 10, check out MAX_COUNTER_RESPONSE_SIZE */
} TdsoFundRxCntrT;
/* Transmit frame counters on the fundicated channel
* NOTE: the order of these ids MUST match that described
* in section 3.8.2.3 - see GetFundTXCounters() */
typedef enum
{
FUND_TDSO_E1_T1 = 0,
FUND_TDSO_E1_TD,
FUND_TDSO_E1_TB,
FUND_TDSO_EB_TB,
FUND_TDSO_EB_TO,
FUND_TDSO_TX_MAX /* 5, check out MAX_COUNTER_RESPONSE_SIZE */
} TdsoFundTxCntrT;
#ifdef SYS_OPTION_SCH_RAM_INUSE
/* Receive frame counters on the supplemental channel */
typedef enum
{
SUPP_TDSO_ENx_RNx = 0,
SUPP_TDSO_ENx_RERR,
SUPP_TDSO_ENx_RE,
SUPP_TDSO_ENx_RB,
SUPP_TDSO_EB_RB,
SUPP_TDSO_EB_RO,
SUPP_TDSO_RX_MAX /* 6, check out MAX_COUNTER_RESPONSE_SIZE */
} TdsoSuppRxCntrT;
/* Receive PDU counters for the supplemental channel
* NOTE: the order of these ids MUST match that described
* in section 3.8.2.2 - see GetSuppPERCounters() */
typedef enum
{
PDU_TDSO_E3_R3 = 0,
PDU_TDSO_E3_RERR,
PDU_TDSO_E3_RE,
PDU_TDSO_E2_R2,
PDU_TDSO_E2_RERR,
PDU_TDSO_E2_RE,
PDU_TDSO_E1a_R1a,
PDU_TDSO_E1a_RERR,
PDU_TDSO_E1a_RE,
PDU_TDSO_E1b_R1b,
PDU_TDSO_E1b_RERR,
PDU_TDSO_E1b_RE,
PDU_TDSO_RX_MAX /* 12, check out MAX_COUNTER_RESPONSE_SIZE */
} TdsoRxPduCntrT;
/* Transmit frame counters on the supplemental channel
* NOTE: the order of these ids MUST match that of
* SuppTXData.Counters[] - see GetSuppTXCounters() */
typedef enum
{
SUPP_TDSO_ENx_TNx = 0,
SUPP_TDSO_ENx_TB,
SUPP_TDSO_EB_TB,
SUPP_TDSO_EB_TO,
SUPP_TDSO_TX_MAX /* 5, check out MAX_COUNTER_RESPONSE_SIZE */
} TdsoSuppTxCntrT;
#endif /* SYS_OPTION_SCH_RAM_INUSE */
/* signaling type */
typedef enum
{
SIGTYPE_NONE = 0,
SIGTYPE_BLNKnBURST
} TdsoSigTypeT;
/*
* Definitions used in processing the Service Option Control Message
*/
typedef PACKED_PREFIX struct
{
kal_uint8 CtlRecType;
PACKED_PREFIX union /* the meaning of the 2nd byte is dependent on CtlRecType */
{
kal_uint8 CtrlCode;
kal_uint8 VectorId;
} PACKED_POSTFIX Directive;
kal_uint8 Misc; /* ChannelDirection:2, CopyCounters:1, ClearCounters:1,
DataSource:1, FrameSource:2, FrameActivity:1 */
kal_uint8 TestOptions;
kal_uint8 Data[1]; /* NumCirBufFrames, On2OffProb, Off2OnProb, TxOnPer, TxOffPer, DataPat */
} PACKED_POSTFIX LmdTdsoControlDataT;
/* channel direction field */
typedef enum
{
CHANDIR_BOTH = 0,
CHANDIR_FORWARD,
CHANDIR_REVERSE
} TdsoChannelDirectionT;
/* control record type field */
typedef enum
{
DIRECTIVE_CONTROLS_FOR_ALL_CHANNELS = 0,
DIRECTIVE_CONTROLS_FOR_FCH,
DIRECTIVE_CONTROLS_FOR_DCCH,
DIRECTIVE_CONTROLS_FOR_SCH0,
DIRECTIVE_CONTROLS_FOR_SCH1,
DIRECTIVE_CNTR_RETRIEVAL_FOR_FCH,
DIRECTIVE_CNTR_RETRIEVAL_FOR_DCCH,
DIRECTIVE_CNTR_RETRIEVAL_FOR_SCH0,
DIRECTIVE_CNTR_RETRIEVAL_FOR_SCH1
} TdsoControlRecTypeT;
/* vector id field */
typedef enum
{
VECTORID_FER = 0, /* 0 */
VECTORID_PER, /* 1 */
VECTORID_REC = VECTORID_PER, /* 1 */
VECTORID_TX /* 2 */
} TdsoVectorIdT;
/* counter response definitions */
typedef struct
{
kal_uint8 CtlRecType;
kal_uint8 VectorId;
kal_uint8 Counters[MAX_COUNTER_RESPONSE_SIZE];
} TdsoCountersResponseT;
/*
* Definitions used in generating spy data
*/
/* FER structure */
typedef struct
{
kal_uint32 Good;
kal_uint32 Bad;
kal_uint32 Total;
kal_uint16 FER;
} TdsoRxFerT;
/* Fch/Dcch Transmit spy structure */
typedef struct
{
kal_uint16 MuxOption;
kal_uint32 Counters[FUND_TDSO_TX_MAX];
} TdsoFundTxSpyT;
/* Fch/Dcch Receive spy structure */
typedef struct
{
kal_uint16 MuxOption;
kal_uint32 Counters[FUND_TDSO_RX_MAX];
} TdsoFundRxSpyT;
#ifdef SYS_OPTION_SCH_RAM_INUSE
/* Sch Transmit spy structure */
typedef struct
{
kal_uint16 MuxOption;
kal_uint16 Rate; /* N times base rate */
kal_uint32 Counters[SUPP_TDSO_TX_MAX];
} TdsoSuppTxSpyT;
/* Sch Pdu Receive spy structure */
typedef struct
{
kal_uint16 MuxOption;
kal_uint32 Counters[PDU_TDSO_RX_MAX];
} TdsoSuppPduRxSpyT;
/* Sch Receive spy structure */
typedef struct
{
kal_uint16 MuxOption;
kal_uint16 Rate; /* N times base rate */
kal_uint32 Counters[SUPP_TDSO_RX_MAX];
} TdsoSuppRxSpyT;
#endif /* SYS_OPTION_SCH_RAM_INUSE */
/* Fch/Dcch/Sch Receive FER spy structure */
typedef struct
{
kal_uint16 MuxOption;
TdsoRxFerT FullRate;
} TdsoRxFerSpyT;
/* TDSO Functional Trace Types */
typedef enum
{
LMD_TDSO_FUNC_RESYNC_CHANNEL = 0,
LMD_TDSO_FUNC_COMPARE_NUMPDUS_DIFFER = 1,
LMD_TDSO_FUNC_COMPARE_NUMBITS_DIFFER = 2,
LMD_TDSO_FUNC_COMPARE_DATA_DIFFER = 3,
LMD_TDSO_FUNC_COMPARE_IDENTICAL = 4,
LMD_TDSO_FUNC_NOT_COMPARED = 5,
LMD_TDSO_FUNC_SSO_CONNECT = 6,
LMD_TDSO_FUNC_SSO_PROCESSING = 7,
LMD_TDSO_FUNC_SSO_DISCONNECT = 8,
LMD_TDSO_FUNC_CONTROL_MSG = 9,
LMD_TDSO_FUNC_CNTRRET_DIR = 10,
LMD_TDSO_FUNC_CONTROL_DIR = 11,
LMD_TDSO_PROC_RESET_CHANNEL = 12,
LMD_TDSO_PROC_SETUP_CHANNEL = 13,
LMD_TDSO_FUNC_DEBUG_RX_PACKET = 14
} TdsoFunctionalTraceTypeT;
/* TDSO Processing Trace Types */
typedef enum
{
LMD_TDSO_PROC_BUILD_CIRBUF = 0,
LMD_TDSO_PROC_GEN_INFO_BITS = 1,
LMD_TDSO_PROC_GEN_BLNK_BITS = 2,
LMD_TDSO_PROC_ADVANCE_OFFSET = 3,
LMD_TDSO_PROC_SET_CIRBUF_SIZE = 4
} TdsoProcessingTraceTypeT;
/*----------------------------------------------------------------------------
Global Variables
----------------------------------------------------------------------------*/
extern kal_uint32 TdsoRNG[]; /* Current Random Number */
extern kal_uint16 TdsoBn[]; /* Circular Buffer Size */
extern kal_uint8 * const TdsoCirBufP[]; /* Circular Buffer Pointers */
/*----------------------------------------------------------------------------
External Function Prototypes
----------------------------------------------------------------------------*/
extern void TdsoBuildCirBuf ( TdsoDirectionT Direction );
/*****************************************************************************
* $Log: lmdtdso.h $
* Revision 1.2 2004/03/25 11:55:23 fpeng
* Updated from 6.0 CP 2.5.0
* Revision 1.1 2003/05/12 15:31:54 fpeng
* Initial revision
* Revision 1.4 2002/07/15 18:36:31 vxnguyen
* Added global Tdso data and funtion declarations.
* Revision 1.3 2002/05/30 11:11:36 mshaver
* Added VIA Technologies copyright notice.
* Revision 1.2 2002/04/10 10:44:27 vxnguyen
* Added compilor option SYS_OPTION_SCH_RAM_INUSE.
* Revision 1.1 2002/02/07 16:56:39 vxnguyen
* Initial revision
*****************************************************************************/
/*****************************************************************************
* End of File
*****************************************************************************/
#endif