view cdg211/cdginc/p_8010_147_l1_include.h @ 673:62a5285e014a

Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango Back in 2015 the Mother's idea was to produce a FreeCalypso development board that would be a clone of TI Leonardo, including the original quadband RFFE; one major additional stipulation was that this board needed to be able to run original unmodified TCS211-20070608 firmware with all blobs intact, with only minimal binary patches to main.lib and tpudrv.lib. The necessary patched libs were produced at that time in the tcs211-patches repository. That plan was changed and we produced FCDEV3B instead, with Openmoko's triband RFFE instead of Leonardo quadband, but when FC Magnetite started in 2016, a TPUDRV_blob= provision was still made, allowing the possibility of patching OM's tpudrv.lib for a restored Leonardo RFFE. Now in 2020 we have FC Tango which is essentially a verbatim clone of Leonardo core, including the original quadband RFFE. We have also deblobbed our firmware so much that we have absolutely no real need for a blob version of tpudrv.lib - but I thought it would be neat to put the ancient TPUDRV_blob= mechanism (classic config) to its originally intended use, just for the heck of it.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 29 May 2020 03:55:36 +0000
parents 56abf6cf8a0b
children
line wrap: on
line source

/*
+--------------------------------------------------------------------------+
| PROJECT : PROTOCOL STACK                                                 |
| FILE    : p_8010_147_l1_include.h                                        |
| SOURCE  : "__out__\g23m_dfile\prim\8010_147_L1_include.pdf"              |
| LastModified : "2003-07-28"                                              |
| IdAndVersion : "8010.147.03.002"                                         |
| SrcFileTime  : "Mon Sep 26 14:30:58 2005"                                |
| Generated by CCDGEN_2.5.5 on Fri Jun 08 13:59:14 2007                    |
|           !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!!                |
+--------------------------------------------------------------------------+
*/

/* PRAGMAS
 * PREFIX                 : NONE
 * COMPATIBILITY_DEFINES  : NO (require PREFIX)
 * ALWAYS_ENUM_IN_VAL_FILE: YES
 * ENABLE_GROUP: NO
 * CAPITALIZE_TYPENAME: YES
 */


#ifndef P_8010_147_L1_INCLUDE_H
#define P_8010_147_L1_INCLUDE_H


#define CDG_ENTER__P_8010_147_L1_INCLUDE_H

#define CDG_ENTER__FILENAME _P_8010_147_L1_INCLUDE_H
#define CDG_ENTER__P_8010_147_L1_INCLUDE_H__FILE_TYPE CDGINC
#define CDG_ENTER__P_8010_147_L1_INCLUDE_H__LAST_MODIFIED _2003_07_28
#define CDG_ENTER__P_8010_147_L1_INCLUDE_H__ID_AND_VERSION _8010_147_03_002

#define CDG_ENTER__P_8010_147_L1_INCLUDE_H__SRC_FILE_TIME _Mon_Sep_26_14_30_58_2005

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_8010_147_L1_INCLUDE_H

#undef CDG_ENTER__FILENAME


#include "p_8010_147_l1_include.val"


/*
 * typedef between var and valtab enums
 */
#ifndef __T_RF_CHAN_CNT__
#define __T_RF_CHAN_CNT__
typedef T_VAL_RF_CHAN_CNT T_RF_CHAN_CNT;
#endif

#ifndef __T_RADIO_FREQ__
#define __T_RADIO_FREQ__
typedef T_VAL_RADIO_FREQ T_RADIO_FREQ;
#endif

#ifndef __T_RADIO_FREQ_NO__
#define __T_RADIO_FREQ_NO__
typedef T_VAL_RADIO_FREQ T_RADIO_FREQ_NO;
#endif

#ifndef __T_RADIO_FREQ_ARRAY__
#define __T_RADIO_FREQ_ARRAY__
typedef T_VAL_RADIO_FREQ T_RADIO_FREQ_ARRAY;
#endif

#ifndef __T_BCCH_CARRIER__
#define __T_BCCH_CARRIER__
typedef T_VAL_RADIO_FREQ T_BCCH_CARRIER;
#endif

#ifndef __T_BCCH_FREQ__
#define __T_BCCH_FREQ__
typedef T_VAL_RADIO_FREQ T_BCCH_FREQ;
#endif

#ifndef __T_RF_CHAN_NUM__
#define __T_RF_CHAN_NUM__
typedef T_VAL_RADIO_FREQ T_RF_CHAN_NUM;
#endif

#ifndef __T_ERROR_FLAG__
#define __T_ERROR_FLAG__
typedef T_VAL_ERROR_FLAG T_ERROR_FLAG;
#endif

#ifndef __T_ERROR_CAUSE__
#define __T_ERROR_CAUSE__
typedef T_VAL_ERROR_FLAG T_ERROR_CAUSE;
#endif

#ifndef __T_FN__
#define __T_FN__
typedef T_VAL_FN T_FN;
#endif

#ifndef __T_ABSOLUTE_FN__
#define __T_ABSOLUTE_FN__
typedef T_VAL_FN T_ABSOLUTE_FN;
#endif

#ifndef __T_FN_OFFSET__
#define __T_FN_OFFSET__
typedef T_VAL_FN_OFFSET T_FN_OFFSET;
#endif

#ifndef __T_MAIO__
#define __T_MAIO__
typedef T_VAL_MAIO T_MAIO;
#endif

#ifndef __T_HSN__
#define __T_HSN__
typedef T_VAL_HSN T_HSN;
#endif

#ifndef __T_L2_CHANNEL__
#define __T_L2_CHANNEL__
typedef T_VAL_L2_CHANNEL T_L2_CHANNEL;
#endif

#ifndef __T_L2_CHANNEL_TYPE__
#define __T_L2_CHANNEL_TYPE__
typedef T_VAL_L2_CHANNEL T_L2_CHANNEL_TYPE;
#endif

#ifndef __T_PAGE_MODE__
#define __T_PAGE_MODE__
typedef T_VAL_PAGE_MODE T_PAGE_MODE;
#endif

#ifndef __T_RXLEV__
#define __T_RXLEV__
typedef T_VAL_RXLEV T_RXLEV;
#endif

#ifndef __T_S_RXLEV__
#define __T_S_RXLEV__
typedef T_VAL_RXLEV T_S_RXLEV;
#endif

#ifndef __T_TIMESLOT_NO__
#define __T_TIMESLOT_NO__
typedef T_VAL_TIMESLOT_NO T_TIMESLOT_NO;
#endif

#ifndef __T_TIMESLOT_NUMBER__
#define __T_TIMESLOT_NUMBER__
typedef T_VAL_TIMESLOT_NO T_TIMESLOT_NUMBER;
#endif

#ifndef __T_TA_TN__
#define __T_TA_TN__
typedef T_VAL_TIMESLOT_NO T_TA_TN;
#endif

#ifndef __T_CTRL_TIMESLOT__
#define __T_CTRL_TIMESLOT__
typedef T_VAL_TIMESLOT_NO T_CTRL_TIMESLOT;
#endif

#ifndef __T_TSC__
#define __T_TSC__
typedef T_VAL_TSC T_TSC;
#endif

#ifndef __T_HOPPING_RF__
#define __T_HOPPING_RF__
/*
 * Channel choice
 * CCDGEN:WriteStruct_Count==911
 */
typedef struct
{
  U8                        maio;                     /*<  0:  1> T_MAIO,  Mobile allocation index offset            */
  U8                        hsn;                      /*<  1:  1> T_HSN,  Hopping sequence number                    */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_HOPPING_RF;
#endif

#ifndef __T_RADIO_FRAME__
#define __T_RADIO_FRAME__
/*
 * Layer 2 frame
 * CCDGEN:WriteStruct_Count==912
 */
typedef struct
{
  U8                        A[MAX_L2_FRAME_SIZE];     /*<  0: 23> Frame content                                      */
  U8                        _align0;                  /*< 23:  1> alignment                                          */
} T_RADIO_FRAME;
#endif

#ifndef __T_MA_FIELD__
#define __T_MA_FIELD__
/*
 * Frequency list
 * CCDGEN:WriteStruct_Count==913
 */
typedef struct
{
  U16                       A[MAX_MA_CARRIER];        /*<  0:128> T_RADIO_FREQ,  Radio frequency channel number      */
} T_MA_FIELD;
#endif

#ifndef __T_MOBILE_ALLOCATION__
#define __T_MOBILE_ALLOCATION__
/*
 * List of frequencies for MA
 * CCDGEN:WriteStruct_Count==914
 */
typedef struct
{
  U16                       rf_chan_cnt;              /*<  0:  2> T_RF_CHAN_CNT,  Number of channels in the mobile allocation list */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  T_MA_FIELD                rf_chan_no;               /*<  4:128> Frequency list                                     */
} T_MOBILE_ALLOCATION;
#endif

#ifndef __T_SINGLE_RF__
#define __T_SINGLE_RF__
/*
 * Single RF channel number
 * CCDGEN:WriteStruct_Count==915
 */
typedef struct
{
  U16                       radio_freq;               /*<  0:  2> T_RADIO_FREQ,  Radio frequency channel number      */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_SINGLE_RF;
#endif

#ifndef __T_CHN_SEL_CHOICE__
#define __T_CHN_SEL_CHOICE__
/*
 * Channel choice
 * CCDGEN:WriteStruct_Count==916
 */
typedef union
{
  T_SINGLE_RF               single_rf;                /*<  0:  4> Single RF channel number                           */
  T_HOPPING_RF              hopping_rf;               /*<  0:  4> Channel choice                                     */
} T_CHN_SEL_CHOICE;
#endif

#ifndef __T_CHN_SEL__
#define __T_CHN_SEL__
/*
 * Channel selector
 * CCDGEN:WriteStruct_Count==917
 */
typedef struct
{
  T_CTRL_CHN_SEL_CHOICE     ctrl_rf_channel;          /*<  0:  4> (enum=32bit) controller for union                  */
  T_CHN_SEL_CHOICE          rf_channel;               /*<  4:  4> Channel choice                                     */
} T_CHN_SEL;
#endif


/*
 * End of substructure section, begin of primitive definition section
 */

#ifndef __T_L1_EXPORT__
#define __T_L1_EXPORT__
/*
 * 
 * CCDGEN:WriteStruct_Count==918
 */
typedef struct
{
  U16                       rf_chan_cnt;              /*<  0:  2> T_RF_CHAN_CNT,  Number of channels in the mobile allocation list */
  U16                       radio_freq;               /*<  2:  2> T_RADIO_FREQ,  Radio frequency channel number      */
  U16                       radio_freq_no;            /*<  4:  2> T_RADIO_FREQ_NO,  Radio frequency channel number   */
  U16                       radio_freq_array;         /*<  6:  2> T_RADIO_FREQ_ARRAY,  Radio frequency channel number (used in array) */
  U16                       bcch_carrier;             /*<  8:  2> T_BCCH_CARRIER,  Radio frequency channel number of BCCH */
  U16                       bcch_freq;                /*< 10:  2> T_BCCH_FREQ,  Radio frequency channel number of BCCH */
  U16                       rf_chan_num;              /*< 12:  2> T_RF_CHAN_NUM,  Radio frequency channel number     */
  U8                        _align0;                  /*< 14:  1> alignment                                          */
  U8                        _align1;                  /*< 15:  1> alignment                                          */
  T_CTRL_CHN_SEL_CHOICE     ctrl_rf_channel;          /*< 16:  4> (enum=32bit) controller for union                  */
  T_CHN_SEL_CHOICE          rf_channel;               /*< 20:  4> Channel choice                                     */
  T_CHN_SEL                 chan_sel;                 /*< 24:  8> Channel selector                                   */
  U8                        error_flag;               /*< 32:  1> T_ERROR_FLAG,  Error cause                         */
  U8                        error_cause;              /*< 33:  1> T_ERROR_CAUSE,  Error cause                        */
  U8                        _align2;                  /*< 34:  1> alignment                                          */
  U8                        _align3;                  /*< 35:  1> alignment                                          */
  U32                       fn;                       /*< 36:  4> T_FN,  Frame number                                */
  U32                       absolute_fn;              /*< 40:  4> T_ABSOLUTE_FN,  Full frame number                  */
  U32                       fn_offset;                /*< 44:  4> T_FN_OFFSET,  Frame offset                         */
  T_HOPPING_RF              hopping_rf;               /*< 48:  4> Channel choice                                     */
  U8                        l2_channel;               /*< 52:  1> T_L2_CHANNEL,  Layer 2 channel-type                */
  U8                        l2_channel_type;          /*< 53:  1> T_L2_CHANNEL_TYPE,  Layer 2 channel-type           */
  U8                        _align4;                  /*< 54:  1> alignment                                          */
  U8                        _align5;                  /*< 55:  1> alignment                                          */
  T_RADIO_FRAME             l2_frame;                 /*< 56: 24> Layer 2 frame                                      */
  T_MOBILE_ALLOCATION       frequency_list;           /*< 80:132> List of frequencies for MA                         */
  T_MOBILE_ALLOCATION       freq_list;                /*<212:132> List of frequencies for MA                         */
  T_MOBILE_ALLOCATION       cbch_freq_list;           /*<344:132> CBCH frequency list                                */
  T_MOBILE_ALLOCATION       frequency_list_bef_sti;   /*<476:132> Frequency list before starting time                */
  U8                        page_mode;                /*<608:  1> T_PAGE_MODE,  Paging mode                          */
  S8                        rxlev;                    /*<609:  1> T_RXLEV,  The (accumulated) result of power measurements. */
  S8                        s_rxlev;                  /*<610:  1> T_S_RXLEV,  The serving cell received power level (average of the 4 PCH bursts read during the particular PCH block). */
  U8                        _align6;                  /*<611:  1> alignment                                          */
  T_MA_FIELD                rf_chan_no;               /*<612:128> Frequency list                                     */
  T_SINGLE_RF               single_rf;                /*<740:  4> Single RF channel number                           */
  U8                        timeslot_no;              /*<744:  1> T_TIMESLOT_NO,  Timeslot number                    */
  U8                        timeslot_number;          /*<745:  1> T_TIMESLOT_NUMBER,  Timeslot number                */
  U8                        ta_tn;                    /*<746:  1> T_TA_TN,  Timing advance timeslot number           */
  U8                        ctrl_timeslot;            /*<747:  1> T_CTRL_TIMESLOT,  Downlink control timeslot        */
  U8                        tsc;                      /*<748:  1> T_TSC,  Training sequence code                     */
  U8                        _align7;                  /*<749:  1> alignment                                          */
  U8                        _align8;                  /*<750:  1> alignment                                          */
  U8                        _align9;                  /*<751:  1> alignment                                          */
} T_L1_EXPORT;
#endif


#include "CDG_LEAVE.h"


#endif