FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/bsp/rtc/rtc_task.c @ 923:10b4bed10192
gsm-fw/L1: fix for the DSP patch corruption bug
The L1 code we got from the LoCosto fw contains a feature for DSP CPU load
measurement. This feature is a LoCosto-ism, i.e., not applicable to earlier
DBB chips (Calypso) with their respective earlier DSP ROMs. Most of the
code dealing with that feature is conditionalized as #if (DSP >= 38),
but one spot was missed, and the MCU code was writing into an API word
dealing with this feature. In TCS211 this DSP API word happens to be
used by the DSP code patch, hence that write was corrupting the patched
DSP code.
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 19 Oct 2015 17:13:56 +0000 |
parents | 98be4841eeb7 |
children |
rev | line source |
---|---|
159
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
1 /** |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
2 * @file rtc_task.c |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
3 * |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
4 * Coding of the main RTC function : rtc_core |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
5 * This function loop in the process message function for waiting messages. |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
6 * |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
7 * @author Laurent Sollier (l-sollier@ti.com) |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
8 * @version 0.1 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
9 */ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
10 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
11 /* |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
12 * History: |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
13 * |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
14 * Date Author Modification |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
15 * ------------------------------------ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
16 * 10/24/2001 L Sollier Create |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
17 * |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
18 * |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
19 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
20 */ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
21 |
161
98be4841eeb7
gsm-fw: RTC code hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
159
diff
changeset
|
22 #include "rtc_env.h" |
159
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
23 |
161
98be4841eeb7
gsm-fw: RTC code hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
159
diff
changeset
|
24 #include "../../riviera/rv/rv_general.h" |
98be4841eeb7
gsm-fw: RTC code hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
159
diff
changeset
|
25 #include "../../riviera/rvf/rvf_api.h" |
98be4841eeb7
gsm-fw: RTC code hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
159
diff
changeset
|
26 #include "../../riviera/rvm/rvm_use_id_list.h" |
159
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
27 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
28 #define RTC_MAILBOX_USED RVF_TASK_MBOX_0 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
29 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
30 /* External declaration until Riviera 1.6 is available*/ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
31 extern UINT8 rtc_handle_msg(T_RV_HDR* msg_p); |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
32 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
33 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
34 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
35 /** |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
36 * @name Functions implementation |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
37 * |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
38 */ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
39 /*@{*/ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
40 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
41 /** |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
42 * function: rtc_core |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
43 */ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
44 T_RV_RET rtc_core(void) |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
45 { |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
46 BOOLEAN error_occured = FALSE; |
161
98be4841eeb7
gsm-fw: RTC code hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
159
diff
changeset
|
47 T_RV_HDR * msg_ptr; |
159
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
48 UINT16 received_event; |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
49 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
50 rvf_send_trace("RTC: Initialization", 19, NULL_PARAM, RV_TRACE_LEVEL_DEBUG_HIGH, RTC_USE_ID ); |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
51 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
52 /* loop to process messages */ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
53 while (error_occured == FALSE) |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
54 { |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
55 /* Wait for the necessary events. */ |
161
98be4841eeb7
gsm-fw: RTC code hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
159
diff
changeset
|
56 received_event = rvf_wait ( 0xffff,0); |
159
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
57 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
58 if (received_event & RVF_TASK_MBOX_0_EVT_MASK) |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
59 { |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
60 /* Read the message */ |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
61 msg_ptr = (T_RV_HDR *) rvf_read_mbox(RTC_MAILBOX_USED); |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
62 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
63 rtc_handle_msg(msg_ptr); |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
64 } |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
65 } |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
66 |
3c42e6e5fc04
gsm-fw/bsp/rtc: initial import from Leonardo TCS211 semi-src
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
67 return RV_OK; |
161
98be4841eeb7
gsm-fw: RTC code hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
159
diff
changeset
|
68 } |