view src/cs/layer1/tm_include/l1tm_defty.h @ 287:3dee79757ae4

UI fw: load handheld audio mode on boot We have now reached the point where use of audio mode config files should be considered mandatory. In ACI usage we can tell users that they need to perform an AT@AUL of some appropriate audio mode, but in UI-enabled fw we really need to have the firmware load audio modes on its own, so that correct audio config gets established when the handset or development board runs on its own, without a connected host computer. Once have FC Venus with both main and headset audio channels and headset plug insertion detection, our fw will need to automatically load the handheld mode or the headset mode depending on the plug insertion state. For now we load only the handheld mode, which has been tuned for FC-HDS4 on FC Luna.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 13 Nov 2021 03:20:57 +0000
parents 4e78acac3d88
children
line wrap: on
line source

/************* Revision Controle System Header *************
 *                  GSM Layer 1 software 
 * L1TM_DEFTY.H
 *
 *        Filename l1tm_defty.h
 *  Copyright 2003 (C) Texas Instruments  
 *
 ************* Revision Controle System Header *************/


// Max size of data portion of a testmode packet
#define TM_PAYLOAD_UPLINK_SIZE_MAX   128

// CID, STATUS and CHECKSUM
#define TM_UPLINK_PACKET_OVERHEAD 3

typedef struct
{
  UWORD32   toa_sum;
  UWORD32   toa_sq_sum;
  UWORD32   toa_recent;  
  UWORD32   pm_sum;
  UWORD32   pm_sq_sum;
  UWORD16   pm_recent;  
  WORD16    angle_sum;
  UWORD32   angle_sq_sum;
  WORD16    angle_min;
  WORD16    angle_max;
  WORD16    angle_recent;  
  UWORD32   snr_sum;
  UWORD32   snr_sq_sum;
  UWORD32   snr_recent;  
  UWORD8    rssi_fifo[4];
  UWORD8    rssi_recent;  
  WORD32    loop_count;  //Must be signed for divide operation in statistics!!!
  WORD32    flag_count;  //Must be signed for divide operation in statistics!!!
  UWORD32   flag_recent;
  UWORD8    bsic;
  UWORD32   fn;
  UWORD32   qual_acc_full;      // Fullset: accu. rxqual meas.
  UWORD32   qual_nbr_meas_full; // Fullset: nbr meas. of rxqual.
  #if L1_GPRS
    UWORD8    nb_dl_pdtch_slots;
  #endif
}
T_TM_STATS;

typedef struct
{
  UWORD8  dedicated_active;
  UWORD32 rx_counter;
  UWORD16 num_bcchs;
  #if L1_GPRS
    BOOL packet_transfer_active;
  #endif
}
T_TM_STATE;

typedef struct
{
    UWORD16 prbs1_seed;
 // UWORD16 prbs2_seed; 	//for future use
}
T_TM_PRBS;

// Global TM variable
typedef struct
{
  BOOL       tm_msg_received;
  T_TM_STATS tmode_stats;
  T_TM_STATE tmode_state;
  T_TM_PRBS  tmode_prbs;
}
T_L1TM_GLOBAL;

typedef struct
{
  UWORD16     bcch_arfcn;
  UWORD16     tch_arfcn;
  UWORD16     mon_arfcn;
  #if L1_GPRS
    UWORD16     pdtch_arfcn;
    UWORD8      multislot_class;
  #endif
  UWORD8      down_up;
  UWORD8      channel_type;
  UWORD8      subchannel;
  UWORD8      tmode_continuous;
  UWORD8      reload_ramps_flag;
  BOOL        mon_report; //Used to determine wether RX stats are done in Monitor channel or TCH channel 
  BOOL        mon_tasks;  //Used to enable tasks associated with Monitor Channel
}
T_TM_RF_PARAMS;

typedef struct
{
  UWORD8      slot_num;
  WORD8       agc;
  WORD8       lna_off;
  UWORD8      number_of_measurements;
  UWORD8      place_of_measurement;
  BOOL        pm_enable;
  UWORD8      rssi_band;
  #if L1_GPRS
    UWORD8      timeslot_alloc;
    UWORD8      coding_scheme;
  #endif
}
T_TM_RX_PARAMS;

typedef struct
{
  UWORD8      tsc;
  UWORD8      txpwr;
  UWORD8      txpwr_skip;
  UWORD8      timing_advance;
  UWORD8      burst_type;
  UWORD8      burst_data;
  #if L1_GPRS
    UWORD8      timeslot_alloc;
    UWORD8      txpwr_gprs[8];
    UWORD8      coding_scheme;
    UWORD8      rlc_buffer_size;
    UWORD16     rlc_buffer[27];
  #endif
}
T_TM_TX_PARAMS;

typedef struct
{
  UWORD32     num_loops;
  UWORD32     auto_result_loops;
  UWORD32     auto_reset_loops;
  UWORD8      stat_type;
  UWORD16     stat_bitmask;
  #if L1_GPRS
    UWORD8      stat_gprs_slots;
  #endif
}
T_TM_STATS_CONFIG;

typedef struct 
{
  T_TM_RF_PARAMS    rf_params;
  T_TM_RX_PARAMS    rx_params;
  T_TM_TX_PARAMS    tx_params;
  T_TM_STATS_CONFIG stats_config;
}
T_TM_PARAMS;

typedef struct
{
  UWORD8  cid;
  UWORD8  index;
  UWORD8  status;
  UWORD16 size;  // size of result[] array
  UWORD8  result[TM_PAYLOAD_UPLINK_SIZE_MAX];
}
T_TM_RETURN;

typedef struct
{
  UWORD8  cid;
  UWORD8  index;
  UWORD8  status;
  UWORD16 size;  // size of result[] array
  UWORD8  result[5];
}
T_TM_RETURN_ABBREV;