FreeCalypso > hg > ffs-editor
diff src/cs/layer1/include/l1_confg.h @ 0:92470e5d0b9e
src: partial import from FC Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 15 May 2020 01:28:16 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/layer1/include/l1_confg.h Fri May 15 01:28:16 2020 +0000 @@ -0,0 +1,975 @@ +/************* Revision Controle System Header ************* + * GSM Layer 1 software + * L1_CONFG.H + * + * Filename l1_confg.h + * Copyright 2003 (C) Texas Instruments + * + ************* Revision Controle System Header *************/ + +#ifndef __L1_CONFG_H__ +#define __L1_CONFG_H__ + +#ifndef _WINDOWS +#include "l1sw.cfg" // Configuration Software +#include "board.cfg" +#include "chipset.cfg" +#include "rf.cfg" +#include "swconfig.cfg" +#include "sys.cfg" +#endif + +// Traces... +// TRACE_TYPE == 1,2,3 are used in standalone mode (L2-L3 Simul) with USART +// TRACE_TYPE == 4 is used on A-sample only (with UART): L1 + protocol stack +// TRACE_TYPE == 1 -> L1/L3 interface trace +// TRACE_TYPE == 2 -> Trace mode: ~33~~1~011... +// TRACE_TYPE == 3 -> same as above (2) plus FER or stats trace +// TRACE_TYPE == 4 -> L1/L3 interface trace on A-sample with protocol stack +// TRACE_TYPE == 5 -> trace for full simulation +// TRACE_TYPE == 6 -> CPU load trace for hisr +// TRACE_TYPE == 7 -> CPU LOAD trace for layer 1 hisr for all TDMA. Output on +// UART at 38400 bps => +// format : <hisr cpu value in microseconds> <frame number> + +// Code PB reported workaround +//------------------------------ + + +// Code Version possible choices +//------------------------------ +#define SIMULATION 1 +#define NOT_SIMULATION 2 + +// RCL functions Version possible choices +//------------------------------ +#define POLL_FORCED 0 +#define RLC_SCENARIO 1 +#define MODEM_FLOW 2 + +// possible choices for UART trace output +//------------------------------ +#define MODEM_UART 0 +#define IRDA_UART 1 +#if (CHIPSET == 12) + #define MODEM2_UART 2 +#endif + +//============ +// CODE CHOICE +//============ +#if (OP_L1_STANDALONE==0) +#define CODE_VERSION NOT_SIMULATION +#else // OP_L1_STANDALONE +#ifdef WIN32 +#define CODE_VERSION SIMULATION +#else // WIN32 +#define CODE_VERSION NOT_SIMULATION +#endif // WIN32 +#endif // OP_L1_STANDALONE + +//--------------------------------------------------------------------------------- +// Test with full simulation. +//--------------------------------------------------------------------------------- +#if (CODE_VERSION == SIMULATION) + + // Test Scenari... + #define SCENARIO_FILE 1 // Test Scenario comes from input files. + #define SCENARIO_MEM 0 // Test Scenario comes from RAM. + + // Traces... + #undef TRACE_TYPE + #define TRACE_TYPE 5 + #define LOGFILE_TRACE 1 // trace in an output logfile + #define FLOWCHART 0 // Message sequence/flow chart trace. + #define NUCLEUS_TRACE 0 // Nucleus error trace + #define EOTD_TRACE 1 // EOTD log trace + #define TRACE_FULL_NAME 0 // display full fct names after a PM/COM error + + #define L2_L3_SIMUL 1 // Layer 2 & Layer 3 simulated, main within NU_MAIN.C, trace possible. + + // Control algorithms... + #define AFC_ALGO 1 // AFC algorithm. + #define TOA_ALGO 1 // TOA algorithm. + #define AGC_ALGO 1 // AGC algorithm. + #define TA_ALGO 0 // TA (Timing Advance) algorithm. + #undef VCXO_ALGO + #define VCXO_ALGO 0 // VCXO algo + #undef DCO_ALGO + #define DCO_ALGO 0 // DCO algo (TIDE) + #undef ORDER2_TX_TEMP_CAL + #define ORDER2_TX_TEMP_CAL 0 // TX Temperature Compensation Algorithm selection + + + #define FACCH_TEST 0 // FACCH test enabled. + + #define ADC_TIMER_ON 0 // Timer for ADC measurements + #define AFC_ON 1 // Enable of the Omega AFC module + + #define AUDIO_TASK 1 // Enable the L1 audio features + #define AUDIO_SIMULATION 1 // Audio simulator for the audio tasks (works only with the new audio design i.e. AUDIO_TASK=1) + #define AUDIO_L1_STANDALONE 0 // Flag to enable the audio simulator used with the L1 stand-alone (works only with the new audio design i.e. AUDIO_TASK=1) + + #define GTT_SIMULATION 1 // Gtt simulator for the gtt tasks (works only with if L1_GTT=1) + #define TTY_SYNC_MCU 1 // TTY WORKAROUND BUG03401 + #define TTY_SYNC_MCU_2 1 // + #define L1_GTT_FIFO_TEST_ATOMIC 0 // + #define NEW_WKA_PATCH 0 + #define OPTIMISED 1 + + #define L1_RECOVERY 0 // L1 recovery + + #undef L1_GPRS + #define L1_GPRS 1 // GPRS L1: MS supporting both Circuit Switched and Packet (GPRS) capabilities + + #undef AMR + #define AMR 1 // AMR version 1.0 supported + + #undef L1_12NEIGH + #define L1_12NEIGH 1 // new L1-RR interface for 12 neighbour cells + + #undef L1_GTT + #define L1_GTT 1 // Enable Global Text Telephony feature for simulation + + #undef OP_L1_STANDALONE + #define OP_L1_STANDALONE 1 // Selection of code for L1 stand alone + + #undef OP_RIV_AUDIO + #define OP_RIV_AUDIO 0 // Selection of code for Riviera audio + + #undef OP_WCP + #define OP_WCP 0 // No WCP integration +//--------------------------------------------------------------------------------- +// Test with H/W platform. +//--------------------------------------------------------------------------------- +#elif (CODE_VERSION == NOT_SIMULATION) + + #define WA_PCTM_AGC_PARAMS 0 // to work by default with 4 parameters to calibration (compatible with PCTM if 1) + // Work around about Calypso RevA: the bus is floating (Cf PB01435) + // (corrected with Calypso ReV B and Calypso C035) + #if (CHIPSET == 7) + #define W_A_CALYPSO_BUG_01435 1 + #else + #define W_A_CALYPSO_BUG_01435 0 + #endif + + + // for AMR thresolds definition CQ22226 + #define AMR_THRESHOLDS_WORKAROUND 1 + + #if (L1_GTT==1) + #define TTY_SYNC_MCU 1 + #define TTY_SYNC_MCU_2 1 + #define L1_GTT_FIFO_TEST_ATOMIC 0 + #define NEW_WKA_PATCH 0 + #define OPTIMISED 1 + #else + #define TTY_SYNC_MCU_2 0 + #define L1_GTT_FIFO_TEST_ATOMIC 0 + #define TTY_SYNC_MCU 0 + #define NEW_WKA_PATCH 0 + #define OPTIMISED 0 + + #endif + + // Traces... + #define NUCLEUS_TRACE 0 // Nucleus error trace + #define FLOWCHART 0 // Message sequence/flow chart trace. + #define LOGFILE_TRACE 0 // trace in an output logfile + #define TRACE_FULL_NAME 0 // display full fct names after a PM/COM error + + // Test Scenari... + #define SCENARIO_FILE 0 // Test Scenario comes from input files. + #define SCENARIO_MEM 1 // // Test Scenario comes from RAM. + + #if (OP_L1_STANDALONE == 1) + #define L2_L3_SIMUL 1 // Layer 2 & Layer 3 simulated, main within NU_MAIN.C, trace possible. + #else + #define L2_L3_SIMUL 0 + #endif + + // Control algorithms... + #define AFC_ALGO 1 // AFC algorithm. + //TOA Algorithm needs to be on for TestMode, otherwise no dedic test will be succesful!!! + #define TOA_ALGO 1 // TOA algorithm. + #define AGC_ALGO 1 // AGC algorithm. + #define TA_ALGO 1 // TA (Timing Advance) algorithm. + + #define FACCH_TEST 0 // FACCH test enabled. + + #define ADC_TIMER_ON 0 // Timer for ADC measurements + #define AFC_ON 1 // Enable of the Omega AFC module + + #define AUDIO_TASK 1 // Enable the L1 audio features + #define AUDIO_SIMULATION 0 // Audio simulator for the audio tasks (works only with the new audio design i.e. AUDIO_TASK=1) + #if (OP_L1_STANDALONE == 1) + #define AUDIO_L1_STANDALONE 1 // Flag to enable the audio simulator used with the L1 stand-alone (works only with the new audio design i.e. AUDIO_TASK=1) + #else + #define AUDIO_L1_STANDALONE 0 + #endif + + #define GTT_SIMULATION 0 // Gtt simulator for the gtt tasks (works only with if L1_GTT=1) + + #define OP_BT 0 // Simulation of ISLAND (BLUETOOTH) sleep management + + #define L1_RECOVERY 1 // L1 recovery + + + #if (L1_GPRS == 1) + #define RLC_VERSION RLC_SCENARIO + #if (RLC_VERSION == RLC_SCENARIO) + #define RLC_DL_BLOCK_STAT 0 // Works with RLC_VERSION = RLC_SCENARIO + // output stat on CRC error blocks + // The user must enter the cs type and + // the number of frames desired. + #else + #define RLC_DL_BLOCK_STAT 0 // Default value; Never change it + #endif + + #if (OP_L1_STANDALONE == 1) + #define DSP_BACKGROUND_TASKS 1 // Enable the TEST of DSP background.tasks + // activated by a layer 3 message (BG_TASK_START (<task number>)) + // deactivated by a layer 3 message (BG_TASK_STOP (<task number>)) + // Warning : Works only with DSP>=31 + #else + #define DSP_BACKGROUND_TASKS 0 + #endif + + #else + #define DSP_BACKGROUND_TASKS 0 + #define RLC_DL_BLOCK_STAT 0 // Default value; Never change it + #endif +#endif + +// Audio tasks selection +//----------------------- + +#if (AUDIO_TASK == 1) + #define KEYBEEP 1 // Enable keybeep feature + #define TONE 1 // Enable tone feature + // Temporary modification for protocol stack compatibility - GSMLITE will be removed + #if (OP_L1_STANDALONE == 1) + #define GSMLITE 1 + #endif + #if ((OP_L1_STANDALONE == 1) || (!GSMLITE)) + #define MELODY_E1 1 // Enable melody format E1 feature + #define VOICE_MEMO 1 // Enable voice memorization feature + + #define FIR 1 // Enable FIR feature + #if (DSP == 33) || (DSP == 34) || (DSP == 35) || (DSP == 36) + #define AUDIO_MODE 1 // Enable Audio mode feature + #else + #define AUDIO_MODE 0 // Disable Audio mode feature + #endif + #else + #define MELODY_E1 0 // Disable melody format E1 feature + #define VOICE_MEMO 0 // Disable voice memorization feature + #if (MELODY_E2) + #define FIR 1 // Enable FIR feature + #else + #define FIR 0 // Disable FIR feature + #endif + + #define AUDIO_MODE 0 // Disable Audio mode feature + #endif + // Define CPORT for ESample only + #if ((CHIPSET == 12) && ((DSP == 35) || (DSP == 36))) + #define L1_CPORT 1 // Enable cport feature + #else + #define L1_CPORT 0 // Disable cport feature + #endif + +#else + #define KEYBEEP 0 // Enable keybeep feature + #define TONE 0 // Enable tone feature + #define MELODY_E1 0 // Enable melody format E1 feature + #define VOICE_MEMO 0 // Enable voice memorization feature + + #define FIR 0 // Enable FIR feature + #define AUDIO_MODE 0 // Enable Audio mode feature + #define L1_CPORT 0 // Enable cport feature +#endif + +#define L1_AUDIO_BACKGROUND_TASK (SPEECH_RECO | MELODY_E2) // audio background task is used by speech reco and melody_e2 +#if (OP_RIV_AUDIO == 1) + #define L1_AUDIO_DRIVER L1_VOICE_MEMO_AMR // Riviera audio driver (only Voice Memo AMR is available) +#endif + + +// Vocoder selections +//------------------- + +#define FR 1 // Full Rate +#define FR_HR 2 // Full Rate + Half Rate +#define FR_EFR 3 // Full Rate + Enhanced Full Rate +#define FR_HR_EFR 4 // Full Rate + Half Rate + Enhanced Full Rate + +// Standard (frequency plan) selections +//------------------------------------- + +#define GSM 1 // GSM900. +#define GSM_E 2 // GSM900 Extended. +#define PCS1900 3 // PCS1900. +#define DCS1800 4 // DCS1800. +#define DUAL 5 // Dual Band (GSM900 + DCS 1800 bands) +#define DUALEXT 6 // Dual Band (E-GSM900 + DCS 1800 bands) +#define GSM850 7 // GSM850 Band +#define DUAL_US 8 // PCS1900 + GSM850 + +/*------------------------------------*/ +/* Power Management */ +/*------------------------------------*/ +#define PWR_MNGT 1 // POWER management active if l1_config.pwr_mngt=1 + + +/*---------------------------------------------------------------------------*/ +/* DSP configurations */ +/* ------------------ */ +/* DSP | FR| HR|EFR|14.4| SPEED |12LA68|12LA68 |4L32|AEC| MCU/DSP */ +/* (version) | | | | | |POLE80|POLE112| |/NS| interface */ +/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */ +/* 0 (821) | x | | | | 39Mhz | x | | | | 1 */ +/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */ +/* 1 (830) | x | | | | 39Mhz | (1) | | x | | 1 */ +/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */ +/* 2 (912) | x | x | | | 58.5Mhz | x | | | | 2 */ +/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */ +/* 3 (10xx) | x | | x | x | 65Mhz | x | | | x | 3 */ +/* ----------+---+---+---+----+---------+------+-------+----|---+---------- */ +/* 4 (11xx) | x | x | x | x | 65Mhz | x | x (3)| | x | 3 */ +/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */ +/* 5 (830) | x | | | | 39Mhz | x | | | | 1 */ +/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */ +/* 6 (11xx) | x | x | x | x | 65Mhz | x | x (3)| |(2)| 3 */ +/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */ +/* */ +/*(1) this version can be loaded on a 12LA68/POLE80 but the RIF/DL problem is*/ +/* not corrected. */ +/* */ +/*(2) AEC is disabled at DSP level but L1 must be compiled with MCU/DSP */ +/* interface which support AEC, therefore AEC is defined as 1. */ +/* */ +/*(3) Pole112 include RIF DL correction. No patch is needed if this one only */ +/* include RIF/DL problem. */ +/* */ +/*---------------------------------------------------------------------------*/ +#if (DSP == 16 || DSP == 17) + +/* #define CLKMOD1 0x414e // ... + #define CLKMOD2 0x414e // ...65 Mips + #define CLKSTART 0x29 // ...65 Mips */ + + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + +/* #define CLKMOD1 0x2116 //This settings force the DSP to never enteridle + #define CLKMOD2 0x2116 //In this case the PLL will be always on. 39 Mips + #define CLKSTART 0x25 // ...39 Mips */ + + #define VOC FR_HR_EFR // FR + HR + EFR. + #define DATA14_4 1 // No 14.4 data allowed. + #define AEC 1 // AEC/NS supported. + #define MAP 3 + #define DSP_START 0x2000 + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + + #define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task. + + /* DSP debug trace configuration */ + /*-------------------------------*/ + #if (MELODY_E2) + // In case of the melody E2 the DSP trace must be disable because the + // melody instrument waves are overlayed with DSP trace buffer + + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer. + #else + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 2047 // Real size is incremented by 1 for DSP write pointer. + #endif + +#elif (DSP == 30) // First GPRS. + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + + #define VOC FR_HR_EFR // FR + HR + EFR. + #define DATA14_4 1 // No 14.4 data allowed. + #define AEC 1 // AEC/NS not supported. + #define MAP 3 + #define DSP_START 0x1F81 + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + #define ULYSSE 0 + + #define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task. +#elif (DSP == 31) // ROM Code GPRS G0. + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + + #define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs). + #define DATA14_4 1 // 14.4 data allowed. + #define AEC 1 // AEC/NS not supported. + #define MAP 3 + + #define DSP_START 0x8763 + + #define INSTALL_ADD 0x87c9 // Used to set gprs_install_address pointer + #define INSTALL_ADD_WITH_PATCH 0x1352 // Used to set gprs_install_address pointer + + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + #define ULYSSE 0 + + #define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task. +#elif (DSP == 32) // ROM Code GPRS G1. + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + + #define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs). + #define DATA14_4 1 // 14.4 data allowed. + #define AEC 1 // AEC/NS not supported. + #define MAP 3 + + #define DSP_START 0x8763 + + #define INSTALL_ADD 0x87c9 // Used to set gprs_install_address pointer + + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + #define ULYSSE 0 + + #define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task. +#elif (DSP == 33) // ROM Code GPRS. + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + #define C_PLL_CONFIG 0x154 // For VTCXO = 13 MHz and max DSP speed = 84.5 Mips + #define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs). + #define AEC 1 // AEC/NS not supported. + #if (OP_RIV_AUDIO == 0) + #define L1_NEW_AEC 1 + #else + // Available but not yet tuned with Riviera AUDIO + #define L1_NEW_AEC 0 + #endif + #if ((L1_NEW_AEC) && (!AEC)) + // First undef the flag to avoid warnings at compilation time + #undef AEC + #define AEC 1 + #endif + + #define MAP 3 + + #define DSP_START 0x7000 + + #define INSTALL_ADD 0x7002 // Used to set gprs_install_address pointer + + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + #define ULYSSE 0 + + #define W_A_DSP_SR_BGD 1 // Work around about the DSP speech reco background task. + + #if ( (CHIPSET != 12) && (CODE_VERSION == NOT_SIMULATION)) + + #define W_A_DSP_IDLE3 1 // Work around to report DSP state to the ARM for Deep Sleep + + // management. + + // DSP_IDLE3 is not supported in simulation + + #else + #define W_A_DSP_IDLE3 0 + #endif + + // DSP software work-around config + // bit0 - Work-around to support CRTG. + // bit1 - DMA reset on critical DMA still running cases, refer to REQ01260. + // bit2 - Solve Read/Write BULDATA pointers Omega & Nausica issue, refer to BUG00650. + // bit3 - Solve IBUFPTRx reset IOTA issue, refer to BUG01911. + + #if (ANLG_FAM == 1) // OMEGA / NAUSICA + #define C_DSP_SW_WORK_AROUND 0x0006 + + #elif (ANLG_FAM == 2) // IOTA + #define C_DSP_SW_WORK_AROUND 0x000E + + #elif (ANLG_FAM == 3) // SYREN + #define C_DSP_SW_WORK_AROUND 0x000E + + #endif + + /* DSP debug trace configuration */ + /*-------------------------------*/ + #if (MELODY_E2) + // In case of the melody E2 the DSP trace must be disable because the + // melody instrument waves are overlayed with DSP trace buffer + + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0000 // Level = BASIC; Features = Timer + Buffer Header + Burst. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability + // Currently not supported ! + #endif + #else + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 2047 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0012 // Level = BASIC; Features = Buffer Header. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability (supported since patch 2090) + #endif + #endif + /* d_error_status */ + /*-------------------------------*/ + + #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define D_ERROR_STATUS_TRACE_ENABLE 1 // Enable d_error_status checking capability (supported since patch 2090) + + // masks to apply on d_error_status bit field for DSP patch 0x2061 or 0x2062 + #define DSP_DEBUG_GSM_MASK 0x0000 + #define DSP_DEBUG_GPRS_MASK 0x0f3d + #endif + + #if DCO_ALGO + // DCO type of scheduling + #define C_CN_DCO_PARAM 0xA248 + #endif + +#elif (DSP == 34) // ROM Code GPRS AMR. + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + #define C_PLL_CONFIG 0x154 // For VTCXO = 13 MHz and max DSP speed = 84.5 Mips + #define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs). + #define AEC 1 // AEC/NS not supported. + #if (OP_RIV_AUDIO == 0) + #define L1_NEW_AEC 1 + #else + // Available but not yet tuned with Riviera AUDIO + #define L1_NEW_AEC 0 + #endif + #if ((L1_NEW_AEC) && (!AEC)) + // First undef the flag to avoid warnings at compilation time + #undef AEC + #define AEC 1 + #endif + #define MAP 3 + + #define DSP_START 0x7000 + + #define INSTALL_ADD 0x7002 // Used to set gprs_install_address pointer + + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + #define ULYSSE 0 + + #define W_A_DSP_SR_BGD 1 // Work around about the DSP speech reco background task. + + #if ( (CHIPSET != 12) && (CODE_VERSION == NOT_SIMULATION)) + + #define W_A_DSP_IDLE3 1 // Work around to report DSP state to the ARM for Deep Sleep + + // management. + + // DSP_IDLE3 is not supported in simulation + + #else + #define W_A_DSP_IDLE3 0 + #endif + + // DSP software work-around config + // bit0 - Work-around to support CRTG. + // bit1 - DMA reset on critical DMA still running cases, refer to REQ01260. + // bit2 - Solve Read/Write BULDATA pointers Omega & Nausica issue, refer to BUG00650. + // bit3 - Solve IBUFPTRx reset IOTA issue, refer to BUG01911. + #if (ANLG_FAM == 1) // OMEGA / NAUSICA + #define C_DSP_SW_WORK_AROUND 0x0006 + + #elif (ANLG_FAM == 2) // IOTA + #define C_DSP_SW_WORK_AROUND 0x000E + + #elif (ANLG_FAM == 3) // SYREN + #define C_DSP_SW_WORK_AROUND 0x000E + + #endif + + /* DSP debug trace configuration */ + /*-------------------------------*/ + #if (MELODY_E2) + // In case of the melody E2 the DSP trace must be disable because the + // melody instrument waves are overlayed with DSP trace buffer + + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0000 // Level = BASIC; Features = Timer + Buffer Header + Burst. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability + // Currently not supported ! + #endif + #else + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 2047 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0012 // Level = BASIC; Features = Buffer Header. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability (supported since patch 2090) + #endif + + // AMR trace + #define C_AMR_TRACE_ID 55 + + #endif + /* d_error_status */ + /*-------------------------------*/ + + #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define D_ERROR_STATUS_TRACE_ENABLE 1 // Enable d_error_status checking capability (supported since patch 2090) + + // masks to apply on d_error_status bit field + #define DSP_DEBUG_GSM_MASK 0x0000 + #define DSP_DEBUG_GPRS_MASK 0x0f3d + #endif + +#elif (DSP == 35) // ROM Code GPRS AMR. + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + #define C_PLL_CONFIG 0x154 // For VTCXO = 13 MHz and max DSP speed = 84.5 Mips + #define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs). + #define AEC 1 // AEC/NS not supported. + #if (OP_RIV_AUDIO == 0) + #define L1_NEW_AEC 1 + #else + // Available but not yet tuned with Riviera AUDIO + #define L1_NEW_AEC 0 + #endif + #if ((L1_NEW_AEC) && (!AEC)) + // First undef the flag to avoid warnings at compilation time + #undef AEC + #define AEC 1 + #endif + #define MAP 3 + + #define FF_L1_TCH_VOCODER_CONTROL 1 + #define L1M_WAIT_DSP_RESTART_AFTER_VOCODER_ENABLE 1 + + #define DSP_START 0x7000 + + #define INSTALL_ADD 0x7002 // Used to set gprs_install_address pointer + + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + #define ULYSSE 0 + + #define W_A_DSP_SR_BGD 1 // Work around about the DSP speech reco background task. + + #if ( (CHIPSET != 12) && (CODE_VERSION == NOT_SIMULATION)) + + #define W_A_DSP_IDLE3 1 // Work around to report DSP state to the ARM for Deep Sleep + + // management. + + // DSP_IDLE3 is not supported in simulation + + #else + #define W_A_DSP_IDLE3 0 + #endif + + // DSP software work-around config + // bit0 - Work-around to support CRTG. + // bit1 - DMA reset on critical DMA still running cases, refer to REQ01260. + // bit2 - Solve Read/Write BULDATA pointers Omega & Nausica issue, refer to BUG00650. + // bit3 - Solve IBUFPTRx reset IOTA issue, refer to BUG01911. + #if (ANLG_FAM == 1) // OMEGA / NAUSICA + #define C_DSP_SW_WORK_AROUND 0x0006 + + #elif (ANLG_FAM == 2) // IOTA + #define C_DSP_SW_WORK_AROUND 0x000E + + #elif (ANLG_FAM == 3) // SYREN + #define C_DSP_SW_WORK_AROUND 0x000E + + #endif + + /* DSP debug trace configuration */ + /*-------------------------------*/ + #if (MELODY_E2) + // In case of the melody E2 the DSP trace must be disable because the + // melody instrument waves are overlayed with DSP trace buffer + + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0000 // Level = BASIC; Features = Timer + Buffer Header + Burst. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability + // Currently not supported ! + #endif + #else + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 2047 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0012 // Level = BASIC; Features = Timer + Buffer Header + Burst. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability (supported since patch 2090) + #endif + + // AMR trace + #define C_AMR_TRACE_ID 55 + + #endif + /* d_error_status */ + /*-------------------------------*/ + + #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define D_ERROR_STATUS_TRACE_ENABLE 1 // Enable d_error_status checking capability (supported since patch 2090) + + // masks to apply on d_error_status bit field for DSP patch 0x2061 or 0x2062 + #define DSP_DEBUG_GSM_MASK 0x08BD + #define DSP_DEBUG_GPRS_MASK 0x0f3d + #endif +#elif (DSP == 36) // ROM Code GPRS AMR. + #define CLKMOD1 0x4006 // ... + #define CLKMOD2 0x4116 // ...65 Mips pll free + #define CLKSTART 0x29 // ...65 Mips + #define C_PLL_CONFIG 0x154 // For VTCXO = 13 MHz and max DSP speed = 84.5 Mips + #define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs). + #define AEC 1 // AEC/NS not supported. + #if (OP_RIV_AUDIO == 0) + #define L1_NEW_AEC 1 + #else + // Available but not yet tuned with Riviera AUDIO + #define L1_NEW_AEC 0 + #endif + #if ((L1_NEW_AEC) && (!AEC)) + // First undef the flag to avoid warnings at compilation time + #undef AEC + #define AEC 1 + #endif + #define MAP 3 + #undef L1_AMR_NSYNC + #define L1_AMR_NSYNC 1 + #define FF_L1_TCH_VOCODER_CONTROL 1 + #define L1M_WAIT_DSP_RESTART_AFTER_VOCODER_ENABLE 1 + + #define DSP_START 0x7000 + + #define INSTALL_ADD 0x7002 // Used to set gprs_install_address pointer + + #define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH + #define ULYSSE 0 + + #define W_A_DSP_SR_BGD 1 // Work around about the DSP speech reco background task. + + #if ( (CHIPSET != 12) && (CODE_VERSION == NOT_SIMULATION)) + + #define W_A_DSP_IDLE3 1 // Work around to report DSP state to the ARM for Deep Sleep + + // management. + + // DSP_IDLE3 is not supported in simulation + + #else + #define W_A_DSP_IDLE3 0 + #endif + + // DSP software work-around config + // bit0 - Work-around to support CRTG. + // bit1 - DMA reset on critical DMA still running cases, refer to REQ01260. + // bit2 - Solve Read/Write BULDATA pointers Omega & Nausica issue, refer to BUG00650. + // bit3 - Solve IBUFPTRx reset IOTA issue, refer to BUG01911. + #if (ANLG_FAM == 1) // OMEGA / NAUSICA + #define C_DSP_SW_WORK_AROUND 0x0006 + + #elif (ANLG_FAM == 2) // IOTA + #define C_DSP_SW_WORK_AROUND 0x000E + + #elif (ANLG_FAM == 3) // SYREN + #define C_DSP_SW_WORK_AROUND 0x000E + #endif + + // This workaround should be enabled only for H2-sample on full build config + #if (OP_L1_STANDALONE==1) + #define RAZ_VULSWITCH_REGAUDIO 0 + #endif + + /* DSP debug trace configuration */ + /*-------------------------------*/ + #if (MELODY_E2) + // In case of the melody E2 the DSP trace must be disable because the + // melody instrument waves are overlayed with DSP trace buffer + + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0000 // Level = BASIC; Features = Timer + Buffer Header + Burst. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability + // Currently not supported ! + #endif + #else + // DSP debug trace API buufer config + #define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after. + #define C_DEBUG_BUFFER_SIZE 2047 // Real size is incremented by 1 for DSP write pointer. + + // DSP debug trace type config + // |<-------------- Features -------------->|<---------- Levels ----------->| + // [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR] + #define C_DEBUG_TRACE_TYPE 0x0012 // Level = BASIC; Features = Buffer Header. + + #if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability (supported since patch 2090) + #endif + + // AMR trace + #define C_AMR_TRACE_ID 55 + + #endif + /* d_error_status */ + /*-------------------------------*/ + + #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4)) + #define D_ERROR_STATUS_TRACE_ENABLE 1 // Enable d_error_status checking capability (supported since patch 2090) + + // masks to apply on d_error_status bit field for DSP patch 0x2061 or 0x2062 + #define DSP_DEBUG_GSM_MASK 0x08BD + #define DSP_DEBUG_GPRS_MASK 0x0f3d + #endif +#endif // DSP + +/*------------------------------------*/ +/* Default value */ +/*------------------------------------*/ +#ifndef W_A_DSP1 + #define W_A_DSP1 0 +#endif + +#ifndef DATA14_4 + #define DATA14_4 0 +#endif + +#ifndef W_A_ITFORCE + #define W_A_ITFORCE 0 +#endif + +#ifndef W_A_DSP_IDLE3 + #define W_A_DSP_IDLE3 0 +#endif + +#ifndef L1_NEW_AEC + #define L1_NEW_AEC 0 +#endif + +#ifndef DSP_DEBUG_TRACE_ENABLE + #define DSP_DEBUG_TRACE_ENABLE 0 +#endif + +#ifndef DEBUG_DEDIC_TCH_BLOCK_STAT + #define DEBUG_DEDIC_TCH_BLOCK_STAT 0 +#endif + +#ifndef D_ERROR_STATUS_TRACE_ENABLE + #define D_ERROR_STATUS_TRACE_ENABLE 0 +#endif + +#ifndef L1_GTT + #define L1_GTT 0 + #define TTY_SYNC_MCU 0 + #define TTY_SYNC_MCU_2 0 + #define L1_GTT_FIFO_TEST_ATOMIC 0 + #define NEW_WKA_PATCH 0 + #define OPTIMISED 0 +#endif + +#ifndef L1_AMR_NSYNC + #define L1_AMR_NSYNC 0 +#endif + +#ifndef FF_L1_TCH_VOCODER_CONTROL + #define FF_L1_TCH_VOCODER_CONTROL 0 + #define L1M_WAIT_DSP_RESTART_AFTER_VOCODER_ENABLE 0 +#endif + +/*------------------------------------*/ +/* Download */ +/*------------------------------------*/ + + +/* Possible values for the download status */ + +#define LEAD_READY 1 +#define BLOCK_READY 2 +#define PROGRAM_DONE 3 +#define PAGE_SELECTION 4 + + +/************************************/ +/* Options of compilation... */ +/************************************/ + +// Possible choice of hardware plateform. +#define GEMINI 1 // GEMINI chip (rom dsp code) +#define POLESTAR 2 // POLESTAR chip (no rom) + +// Possible choice for DSP software setup. +#define NO_DWNLD 0 +#define PATCH_DWNLD 1 +#define DSP_DWNLD 2 +#define PATCH_DSP_DWNLD 3 + +// MAC-S status reporting to Layer 1 +#define MACS_STATUS 0 // MAC-S STATUS activated if set to 1 + + +// Possible choice for dll_dcch_downlink interface (with FN or without FN) +#define SEND_FN_TO_L2_IN_DCCH 1 /* 0=without, 1=with FN parameter */ + +//--------------------------------------------------------------------------------- + +// Neighbor Cell RXLEV indication +#if ((OP_L1_STANDALONE==1) && (CODE_VERSION == NOT_SIMULATION)) + #define L1_MPHC_RXLEV_IND_REPORT_SORT 1 +#else + #define L1_MPHC_RXLEV_IND_REPORT_SORT 0 +#endif + +#endif /* __L1_CONFG_H__ */