view src/cs/services/tty/tty_task.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 945cf7f506b2
children
line wrap: on
line source

/**
 * @file   tty_task.c
 *
 * Coding of the main TTY function : tty_core
 * This function loop in the process message function for waiting messages.
 *
 * @author	Frederic Turgis (f-turgis@ti.com) & Gerard Cauvy (g-cauvy@ti.com)
 * @version 0.1
 */

/*
 * History:
 *
 * 	Date       	Modification
 *  ------------------------------------
 *  01/27/2003	Create
 *
 * (C) Copyright 2003 by Texas Instruments Incorporated, All Rights Reserved
 */

#ifndef _WINDOWS
  #include "config/l1sw.cfg"
#endif

#include "tty/tty_env.h"
#include "tty/tty_i.h"

#include "rv/rv_general.h"
#include "rvf/rvf_api.h"
#include "rvm/rvm_use_id_list.h"

#if (TRACE_TYPE == 1) || (TRACE_TYPE == 4)
  #ifndef _WINDOWS
    #include "config/sys.cfg"
    #include "config/chipset.cfg"
  #endif
  #include "l1_types.h"
  #include "l1_confg.h"
  #include "l1_trace.h"
#endif

#if (L1_GTT == 1)
  /* External prototype. */
  extern void l1gtt_initialize(void);
  extern void l1gtt_exit(void);
  extern void l1gtt_main_processing(void);
  extern void l1gtt_init_trace(void);
#else
  /* Dummy functions */
  void l1gtt_initialize(void) {}
  void l1gtt_exit(void) {}
  void l1gtt_main_processing(void) {}
  void l1gtt_init_trace(void) {}
#endif


/**
 * @name Functions implementation
 *
 */
/*@{*/

/**
 * function: tty_core
 */
T_RV_RET tty_core(void)
{
  BOOLEAN error_occured = FALSE;
  T_RV_HDR* msg_p;
  UINT16 received_event;

  TTY_SEND_TRACE("TTY TASK Started", RV_TRACE_LEVEL_DEBUG_HIGH );

  l1gtt_init_trace();

  /* loop to process messages */
  while (error_occured == FALSE)
  {
    /* Wait for the necessary events. */
    received_event = rvf_wait ( 0xffff,0);

    if (received_event & TTY_INIT_EVENT_MASK)
    {
      l1gtt_initialize();
    }
    else if (received_event & TTY_EXIT_EVENT_MASK)
    {
      l1gtt_exit();
    }
    else if (received_event & TTY_DATA_EVENT_MASK)
    {
      l1gtt_main_processing();
    }
  }

  return RV_OK;
}