view src/condat2/frame/config/gprsinit.c @ 635:baa0a02bc676

niq32.c DTR handling restored for targets that have it TI's original TCS211 fw treated GPIO 3 as the DTR input (wired so on C-Sample and D-Sample boards, also compatible with Leonardo and FCDEV3B which have a fixed pull-down resistor on this GPIO line), and the code in niq32.c called UAF_DTRInterruptHandler() (implemented in uartfax.c) from the IQ_KeypadGPIOHandler() function. But on Openmoko's GTA02 with their official fw this GPIO is a floating input, all of the DTR handling code in uartfax.c including the interrupt logic is still there, but the hobbled TCS211-20070608 semi-src delivery which OM got from TI contained a change in niq32.c (which had been kept in FC until now) that removed the call to UAF_DTRInterruptHandler() as part of those not-quite-understood "CC test" hacks. The present change fixes this bug at a long last: if we are building fw for a target that has TI's "classic" DTR & DCD GPIO arrangement (dsample, fcmodem and gtm900), we bring back all of TI's original code in both uartfax.c and niq32.c, whereas if we are building fw for a target that does not use this classic GPIO arrangement, the code in niq32.c goes back to what we got from OM and all DTR & DCD code in uartfax.c is conditioned out. This change also removes the very last remaining bit of "CC test" bogosity from our FreeCalypso code base.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 19 Jan 2020 01:41:35 +0000
parents 93999a60b835
children
line wrap: on
line source

/* 
+----------------------------------------------------------------------------- 
|  Project :  
|  Modul   :  
+----------------------------------------------------------------------------- 
|  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 :  Nucleus Entry Function Application_Initialize()
+----------------------------------------------------------------------------- 
*/ 

#ifndef _TARGET_
#define NEW_ENTITY
#endif

/*==== INCLUDES ===================================================*/

#ifdef _TARGET_
 #include "uart/serialswitch.h"
#endif

#include "nucleus.h"
#include "typedefs.h"
#include "os.h"
#include "vsi.h"
#include "os_types.h"
#include "pcon.h"
#include "p_mem.h"

/*==== CONSTANTS ==================================================*/

/*==== TYPES ======================================================*/

/*==== EXTERMALS ==================================================*/

#ifndef _TARGET_
extern void GpInitTarget (void);
extern void Cust_Init_Layer1 (void);
extern void GpUnmaskInterrupts (void);
extern void GpInitExternalDevices (void);
#endif

/*==== PROTOTYPES =================================================*/

short StartFrame (void);

/*==== VARIABLES ==================================================*/

T_PCON_PROPERTIES *pcon = NULL;
T_MEM_PROPERTIES *mem = NULL;

/*==== FUNCTIONS ==================================================*/

#ifdef _TARGET_

void DummyCallback ( void )
{
}

#endif
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-PS (6147)          MODULE  : GPRSINIT                |
| STATE   : code                   ROUTINE : Application_Initialize  |
+--------------------------------------------------------------------+

  PURPOSE : Main entry function for NUCLEUS

*/
/*
 * NOTE: Application_Initalize() must not be used when compiling for target,
 * because it is already defined in a TI lib (as of TI 5.1.1).
 */
#ifndef _TARGET_
void Application_Initialize (void *first_available_memory)
{

#ifdef _TARGET_
  GpInitTarget ();
  Cust_Init_Layer1 ();
  GpInitExternalDevices ();
  SER_tr_Init ( 0, 2, DummyCallback );
#endif

  StartFrame();

#ifdef _TARGET_
  GpUnmaskInterrupts ();
#endif
}
#endif /* !_TARGET_ */

/*
+----------------------------------------------------------------------+
| PROJECT : xxx                        MODULE  : GPRSINIT              |
| STATE   : code                       ROUTINE : InitializeApplication |
+----------------------------------------------------------------------+

  PURPOSE : General initialization function to be filled with
            application specific initializations. Function is
            called by the frame after creation of all tasks
            prior to the starting of the tasks.

*/
void InitializeApplication ( void )
{
  /*
   * It has to defined if the allocated partition memory shall be
   * initialized with a dedicated pattern. Select 
   * ENABLE_PARTITON_INIT or DISABLE_PARTITON_INIT
   * and a pattern to be used for initialization
   */
#ifdef _TARGET_
  vsi_m_init ( DISABLE_PARTITON_INIT, (char)0x00 );
#else
  vsi_m_init ( ENABLE_PARTITON_INIT, (char)0x00 );
#endif

#ifdef _TARGET_
  /*
   * The RTOS tick has to be set.Currently it can be set to
   * SYSTEM_TICK_TDMA_FRAME for the TDMA frame system tick of 4.615ms
   * or
   * SYSTEM_TICK_10_MS for the 10ms tick used for UMTS
   */
  os_set_tick ( SYSTEM_TICK_TDMA_FRAME );
#endif
}