FreeCalypso > hg > fc-magnetite
view src/g23m-fad/ip/ip_tim.c @ 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 | 90eb61ecd093 |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | Project : GSM-FaD (8411) | Modul : IP_TIM +----------------------------------------------------------------------------- | Copyright 2002 Texas Instruments Berlin, AG | All rights reserved. | | This file is confidential and a trade secret of Texas | Instruments Berlin, AG | The receipt of or possession of this file does not convey | any rights to reproduce or disclose its contents or to | manufacture, use, or sell anything it may describe, in | whole, or in part, without the specific written consent of | Texas Instruments Berlin, AG. +----------------------------------------------------------------------------- | Purpose : This Modul defines the timer handling functions | for the component | Radio Link Protocol of the mobile station +----------------------------------------------------------------------------- */ #define ENTITY_IP /*==== INCLUDES ===================================================*/ #include <string.h> #include "typedefs.h" #include "pconst.cdg" #include "vsi.h" #include "macdef.h" #include "pconst.cdg" #include "custom.h" #include "gsm.h" #include "cnf_ip.h" #include "mon_ip.h" #include "prim.h" #include "pei.h" #include "tok.h" #include "ccdapi.h" #include "dti.h" #include "ip.h" #include "ip_udp.h" /*==== EXPORT =====================================================*/ /*==== PRIVAT =====================================================*/ /*==== VARIABLES ==================================================*/ /*==== FUNCTIONS ==================================================*/ /* +--------------------------------------------------------------------+ | PROJECT : GSM-FaD (8411) MODULE : IP_TIM | | STATE : code ROUTINE : tim_reassembly | +--------------------------------------------------------------------+ PURPOSE : Timeout of timer T_REASSEMBLY */ GLOBAL void tim_reassembly (/* USHORT layer, USHORT segm_server*/) { /* * shall be replaced for multiple instances by * * UBYTE sel_dl_layer = layer; * p_dl->pos_server = segm_server; */ /* T_HILA *p_ul = &(ip_data->hila); */ T_LOLA *p_dl = &(ip_data->lola); T_KER *p_ker = &(ip_data->ker); TRACE_FUNCTION ("tim_reassembly()"); switch (GET_STATE (KER)) { case CONNECTED: { build_ip_packet(FALSE, B_ICMP_REASSEMBLE_TIMEOUT); p_dl->state_reassembly[p_dl->pos_server] = NO_SEGMENTS; /* * If ready indication is received - send data_req at once */ if(GET_STATE(HILA) EQ WAIT) { T_DTI2_DATA_REQ *dti_data_req; p_ker->send_icmp = FALSE; dti_data_req = p_ker->icmp_dti_data_req; dti_data_req = p_ker->icmp_dti_data_req; dti_data_req->parameters.p_id = DTI_PID_IP; dti_data_req->parameters.st_lines.st_flow = DTI_FLOW_ON; dti_data_req->parameters.st_lines.st_line_sa = DTI_SA_ON; dti_data_req->parameters.st_lines.st_line_sb = DTI_SB_ON; dti_data_req->parameters.st_lines.st_break_len = DTI_BREAK_OFF; PACCESS (dti_data_req); { PPASS(dti_data_req, dti_data_ind, DTI2_DATA_IND); dti_send_data(ip_hDTI, IP_DTI_DEF_INSTANCE, IP_DTI_LL_INTERFACE, IP_DTI_DEF_CHANNEL, dti_data_ind); } dti_start(ip_hDTI, IP_DTI_DEF_INSTANCE, IP_DTI_LL_INTERFACE, IP_DTI_DEF_CHANNEL); SET_STATE(HILA, IDLE); } else /* * Send the ICMP-Message later on after ready indication */ p_ker->send_icmp = TRUE; } break; default: break; } /* * Free and stop the timer */ p_dl->timer_reass_running[p_dl->pos_server] = FALSE; } /* +--------------------------------------------------------------------+ | PROJECT : GSM-FaD (8411) MODULE : IP_TIM | | STATE : code ROUTINE : tim_init_timer | +--------------------------------------------------------------------+ PURPOSE : Initialise Time-out FIFO and configuration data. */ GLOBAL BOOL tim_init_timer (void) { return TRUE; } /* +--------------------------------------------------------------------+ | PROJECT : GSM-FaD (8411) MODULE : IP_TIM | | STATE : code ROUTINE : tim_set_timeout_flag | +--------------------------------------------------------------------+ PURPOSE : Set timeout flag according to timer handle */ /* +--------------------------------------------------------------------+ | PROJECT : GSM-FaD (8411) MODULE : IP_TIM | | STATE : code ROUTINE : tim_flush_fifo | +--------------------------------------------------------------------+ PURPOSE : Flush timer fifo for timer handle */ /* +--------------------------------------------------------------------+ | PROJECT : GSM-FaD (8411) MODULE : IP_TIM | | STATE : code ROUTINE : tim_handle_timeout | +--------------------------------------------------------------------+ PURPOSE : execute timeout function depending on t_flag */