xref: /utopia/UTPA2-700.0.x/modules/hsl/api/hsl/frhsl_cfg.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2006-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // (uMStar Confidential Informationv) by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 #if defined (MSOS_TYPE_LINUX)
95 #include "frhsl_ringbuffer.h"
96 #include "frhsl_cfg.h"
97 #include "frhsl_RAWLOB.h"
98 
99 #include "MsCommon.h"
100 #include "drvWDT.h"
101 
102 #include <pthread.h>
103 
104 static MS_BOOL _bFrHslReset = FALSE;
105 
106 #define COUNTERS_PER_US 12 /* 1 counter = (1/12M) sec  */
107 
108 /*******************************************************************************
109 * Function    : frHslReset
110 * Group       : PC Simulation, Framework, HSL, Internals
111 * Parameter   :
112 * Returns     : nothing
113 * Description :
114 *******************************************************************************/
FrHslResetConnection(stHslController * const _hsl)115 void FrHslResetConnection(stHslController* const _hsl)
116 {
117   _bFrHslReset = TRUE;
118 
119     CmdInfo cmdinfo;
120     cmdinfo.u16Cmd = HSL_CMD_RESET;
121 
122     bufferProcessCommand(_hsl, &cmdinfo);
123 }
124 
125 /*******************************************************************************
126 * Function    : FrHslInitialiseBegin
127 * Group       : PC Simulation, Framework, HSL, Internals
128 * Parameter   : none
129 * Returns     : nothing
130 * Description : This function is called to perform any initialisation prior
131 *               to other generic initialisation configuration.
132 *******************************************************************************/
FrHslInitialiseBegin(void)133 MS_BOOL FrHslInitialiseBegin(void)
134 {
135     /* Initialise the counter for geting timestamp info. */
136 
137     MS_BOOL bRet = FALSE;
138 
139     if ( E_WDT_OK == MDrv_WDT_Init(E_WDT_DBGLV_ERR_ONLY) )
140     {
141         MDrv_TIMER_Count(E_TIMER_1, ENABLE);
142         bRet = TRUE;
143     }
144 
145     return bRet;
146 }
147 
148 /*******************************************************************************
149 * Function    : FrHslInitialiseEnd
150 * Group       : Linux uart, Framework, HSL, Internals
151 * Parameter   : none
152 * Returns     : nothing
153 * Description : This function is called to indicate when initialisation is
154 *               completed and we are ready to do some logging.
155 *******************************************************************************/
FrHslInitialiseEnd(void)156 MS_BOOL FrHslInitialiseEnd(void)
157 {
158     /* Nothing to do as stdout doesn't need closing here.
159     However we could possible output some extra information to let the
160     PC know that the logging can start.
161     Typical info could be outputting a single message log point.
162     This is useful to help the PC detect that the target system has been reset.*/
163 
164     return TRUE;
165 }
166 
FrHslStop(void)167 MS_BOOL FrHslStop(void)
168 {
169     return TRUE;
170 }
171 
172 /*******************************************************************************
173 * Function    : FrHslWritePayload
174 * Group       : Linux uart, Framework, HSL, Internals
175 * Parameter   : MS_BOOL: is the last payload?
176 * Parameter   : MS_U16: payload to write to the given file descriptor.
177 * Parameter   : MS_U8*: buffer to be written to
178 * Returns     : nothing
179 * Description : This function is used to write payload
180 *******************************************************************************/
FrHslWritePayload(const MS_BOOL bLast,const MS_U16 u16Payload,MS_U8 * pu8Buff)181 void FrHslWritePayload (const MS_BOOL bLast, const MS_U16 u16Payload, MS_U8 *pu8Buff)
182 {
183     if (bLast)
184     {
185         pu8Buff[HSL_RAWLOB_OFFSET_OF_PAYLOAD_MARKER_IN_PACKET] = HSL_RAWLOB_LAST_PAYLOAD_MARKER;
186     }
187     else
188     {
189         pu8Buff[HSL_RAWLOB_OFFSET_OF_PAYLOAD_MARKER_IN_PACKET] = HSL_RAWLOB_MORE_PAYLOAD_MARKER;
190     }
191 
192     memcpy(&pu8Buff[HSL_RAWLOB_OFFSET_OF_PAYLOAD_IN_PACKET], &u16Payload, 2);
193 }
194 
195 /*******************************************************************************
196 * Function    : FrHslWriteHeader
197 * Group       : Linux uart, Framework, HSL, Internals
198 * Parameter   : MS_U8: Message type
199 * Parameter   : MS_U16: Header id write to the given file descriptor.
200 * Parameter   : MS_U8*: buffer to be written to
201 * Returns     : nothing
202 * Description : This function is used to write header
203 *******************************************************************************/
FrHslWriteHeader(const MS_U8 u8MsgType,const MS_U16 u16ID,MS_U8 * pu8Buff,MS_U32 u32Time)204 void FrHslWriteHeader (const MS_U8 u8MsgType, const MS_U16 u16ID, MS_U8 *pu8Buff, MS_U32 u32Time)
205 {
206     MS_U16 u16TimeStamp = ~((MS_U16)u32Time);
207 
208     pu8Buff[HSL_RAWLOB_OFFSET_OF_MSG_TYPE] = u8MsgType;
209 
210     memcpy(&pu8Buff[HSL_RAWLOB_OFFSET_OF_MSG_ID], &u16ID, 2);
211 
212     memcpy(&pu8Buff[HSL_RAWLOB_OFFSET_OF_TIME_STAMP], &u16TimeStamp, 2);
213 }
214 
215 #endif
216