xref: /utopia/UTPA2-700.0.x/modules/dscmb/api/nsk2hdi/nsk2hdi_header.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 /*
2 Copyright (c) NDS Limited 2010
3 
4 P R O P R I E T A R Y & C O N F I D E N T I A L
5 
6 The copyright of this code and related documentation together with
7 any other associated intellectual property rights are vested in
8 NDS Limited and may not be used except in accordance with the terms
9 of the license that you have entered into with NDS Limited.
10 Use of this material without an express license from NDS Limited
11 shall be an infringement of copyright and any other intellectual
12 property rights that may be incorporated with this material.
13 */
14 
15 #ifndef NSK2HDI_HEADER_H_
16 #define NSK2HDI_HEADER_H_
17 
18 /**
19 * @mainpage NSK2 API - HDI Bootloader API for NSK2 Chips
20 *
21 * @author Reuben Sumner, Julia Rabinovich
22 * @date 28/06/2011
23 * @version 4.01
24 *
25 * @file nsk2hdi_bl.h
26 
27 * @brief NSK2 API - HDI Bootloader API for NSK2 Chips
28 
29 * This file contains the definitions and functions of the NSK2 Bootloader supplement
30 
31 *
32 */
33 
34 #include "ndstypes.h"
35 #include "nsk_282.h"
36 #include "nsk_3014.h"
37 #include "hdi_121.h"
38 
39 
40 //#define DebugEnable
41 
42 #define NSK2HDI_PVRENG      0   //DMX_PVR_EGN0
43 #define NSK2HDI_SPSPVRENG   0   //E_DSCMB_SPSPVR_ENG0
44 
45 #define NSK21_Change
46 
47 
48 
49 //typedef (void *)NSK2Util_AllocateMemory (MS_U32 u32Size, NSKUTIL_MEMORY_TYPE_e eMemType)
50 typedef void *  (*P_NSK2_CbAllocateMemory)(MS_U32 u32Size, MS_BOOL bCached);
51 typedef MS_BOOL (*P_NSK2_CbFreeMemory)(void *pAddress, MS_BOOL bCached);
52 typedef MS_U32  (*P_NSK2_CbEcmGetType)(MS_U32 x_conn);
53 
54 //typedef MS_BOOL (*P_NSK2_CbDMXOpenStart)(NDS_ULONG xconn, NDS_USHORT es_pid, NDS_UBYTE  es_type, MS_U8 *DmxIdSect);
55 
56 
57 typedef struct
58 {
59     MS_BOOL                 bHarmonizer;
60     P_NSK2_CbAllocateMemory cbAllocMemory;
61     P_NSK2_CbFreeMemory     cbFreeMemory;
62     P_NSK2_CbEcmGetType     cbEcmGetType;
63 } HDIPara_Init_t;
64 
65 MS_U32 MApi_NSK2HDI_Initial(HDIPara_Init_t *pInit);
66 MS_BOOL MApi_NSK2_IsHarmonizer(void);
67 void *MApi_NSK2_AllocateMemory(MS_U32 u32Size, MS_BOOL bCached);
68 MS_BOOL MApi_NSK2_FreeMemory(void *pAddress, MS_BOOL bCached);
69 MS_BOOL MApi_NSK2_DTV_ClosePidNo(MS_U8 PidNo);
70 MS_U32 MApi_NSK2_EcmGetFilterType(MS_U32 x_conn);
71 
72 NSK2HDI_STATUS NSKHDI_CaSoCGroupDevice_Open (NSK2HDI_DEVICE_ID CaSoCGroup_ID,
73                                              NSK2HDI_HANDLE    *CaSoCGroup_handle);
74 
75 NSK2HDI_STATUS NSKHDI_CaSoCGroupDevice_Close (NSK2HDI_HANDLE CaSoCGroup_handle);
76 
77 NSK2HDI_STATUS NSKHDI_CaSoCGroupDevice_EnumerateChildren( NSK2HDI_HANDLE       CaSoCGroup_handle,
78                                                           NDS_ULONG            *child_device_num,
79                                                           NSK2HDI_CHILD_DEVICE *child_device);
80 
81 NSK2HDI_STATUS NSKHDI_CaSoCGroupDevice_RegisterEnumerationChangeCB (NSK2HDI_HANDLE                   CaSoCGroup_handle,
82                                                                     HDINSK2_ENUMERATION_CHANGE_CB_FN *cb_routine,
83                                                                     void                             *cookie);
84 
85 NSK2HDI_STATUS NSKHDI_CmChannelTable_Open (NSK2HDI_DEVICE_ID CmChannelTable_ID,
86                                            NSK2HDI_HANDLE    *CmChannelTable_handle);
87 
88 NSK2HDI_STATUS NSKHDI_CmChannelTable_Close (NSK2HDI_HANDLE CmChannelTable_handle);
89 
90 NSK2HDI_STATUS NSKHDI_CmChannelTable_EnumerateChildren( NSK2HDI_HANDLE       CmChannelTable_handle,
91                                                         NDS_ULONG            *child_device_num,
92                                                         NSK2HDI_CHILD_DEVICE *child_device);
93 
94 NSK2HDI_STATUS NSKHDI_CmChannelGroup_Open (NSK2HDI_DEVICE_ID CmChannelGroup_ID,
95                                            NSK2HDI_HANDLE    *CmChannelGroup_handle);
96 
97 NSK2HDI_STATUS NSKHDI_CmChannelGroup_Close (NSK2HDI_HANDLE CmChannelGroup_handle);
98 
99 NSK2HDI_STATUS NSKHDI_CmChannelGroup_GetProperties( NSK2HDI_HANDLE  CmChannelGroup_handle,
100                                                     NDS_ULONG       request_id,
101                                                     NDS_ULONG       *desc_size,
102                                                     NDS_UBYTE       *desc);
103 
104 NSK2HDI_STATUS NSKHDI_CmChannelDevice_Open (NSK2HDI_DEVICE_ID CmChannelGroup_ID,
105                                             NSK2HDI_HANDLE    *CmChannele_handle);
106 
107 NSK2HDI_STATUS NSKHDI_CmChannelDevice_Close (NSK2HDI_HANDLE CmChannele_handle);
108 
109 NSK2HDI_STATUS NSKHDI_CmChannelDevice_Configure ( NSK2HDI_HANDLE  CmChannele_handle,
110                                                   NDS_ULONG       lda_desc_size,
111                                                   const NDS_UBYTE *lda_desc,
112                                                   NDS_ULONG       esa_desc_size,
113                                                   const NDS_UBYTE *esa_desc,
114                                                   NDS_ULONG       lsa_desc_size,
115                                                   const NDS_UBYTE *lsa_desc);
116 
117 NSK2HDI_STATUS NSKHDI_CmChannelDevice_WriteTransportKey ( NSK2HDI_HANDLE  CmChannelDevice_handle,
118                                                           NDS_ULONG       scb_in_out_size,
119                                                           NDS_UBYTE       *scb_in,
120                                                           NDS_UBYTE       *scb_out,
121                                                           NDS_ULONG       lda_desc_size,
122                                                           const NDS_UBYTE *lda_desc,
123                                                           NDS_ULONG       esa_desc_size,
124                                                           const NDS_UBYTE *esa_desc,
125                                                           NDS_ULONG       lsa_desc_size,
126                                                           const NDS_UBYTE *lsa_desc);
127 
128 NSK2HDI_STATUS NSKHDI_CmChannelDevice_InvalidateKeys (NSK2HDI_HANDLE CmChannelDevice_handle);
129 
130 NSK2HDI_STATUS NSKHDI_CmChannelDevice_GetCookie(NSK2HDI_HANDLE CmChannelDevice_handle,
131                                                 void **cookie);
132 
133 NSK2HDI_STATUS NSKHDI_CaPIDProxy_Open (NDS_ULONG      xconn,
134                                        NSK2HDI_HANDLE *CaPIDProxy_handle);
135 
136 NSK2HDI_STATUS NSKHDI_CaPIDProxy_Close (NSK2HDI_HANDLE CaPIDProxy_handle);
137 
138 NSK2HDI_STATUS NSKHDI_CaPIDProxy_SetPrimaryStreamPID (NSK2HDI_HANDLE CaPIDProxy_handle,
139                                                       NDS_USHORT     es_pid);
140 
141 NSK2HDI_STATUS NSKHDI_CaPIDProxy_SetPrimaryStreamCmChannel (NSK2HDI_HANDLE CaPIDProxy_handle,
142                                                             void           *CmChannel_cookie);
143 
144 NSK2HDI_STATUS NSKHDI_CaPIDProxy_RemovePrimaryStreamCmChannel (NSK2HDI_HANDLE CaPIDProxy_handle);
145 
146 NSK2HDI_STATUS NSKHDI_CaPIDProxy_SetSecondaryStream (NSK2HDI_HANDLE CaPIDProxy_handle,
147                                                      void           *CmChannel_cookie,
148                                                      NDS_USHORT     es_pid,
149                                                      NDS_ULONG      merge_mode);
150 
151 NSK2HDI_STATUS NSKHDI_CaPIDProxy_RemoveSecondaryStream (NSK2HDI_HANDLE CaPIDProxy_handle);
152 
153 
154 NSK2HDI_STATUS NSKHDI_OtpDevice_Open (NSK2HDI_DEVICE_ID   Otp_ID,
155                                       NSK2HDI_HANDLE      *Otp_handle);
156 
157 NSK2HDI_STATUS NSKHDI_OtpDevice_Close (NSK2HDI_HANDLE Otp_handle);
158 
159 NSK2HDI_STATUS NSKHDI_OtpDevice_GetProperties( NSK2HDI_HANDLE  Otp_handle,
160                                                NDS_ULONG       request_id,
161                                                NDS_ULONG       *desc_size,
162                                                NDS_UBYTE       *desc);
163 
164 NSK2HDI_STATUS NSKHDI_NskDevice_Open (NSK2HDI_DEVICE_ID   Nsk_ID,
165                                       NSK2HDI_HANDLE      *Nsk_handle);
166 
167 NSK2HDI_STATUS NSKHDI_NskDevice_Close (NSK2HDI_HANDLE Nsk_handle);
168 
169 NSK2HDI_STATUS NSKHDI_NskDevice_Read8 (NSK2HDI_HANDLE      Nsk_handle,
170                                        NDS_ULONG           register_offset,
171                                        NDS_ULONG           data_size,
172                                        NDS_UBYTE           *data);
173 
174 NSK2HDI_STATUS NSKHDI_NskDevice_Write8 (NSK2HDI_HANDLE     Nsk_handle,
175                                          NDS_ULONG          register_offset,
176                                          NDS_ULONG          data_size,
177                                          const NDS_UBYTE    *data);
178 
179 NSK2HDI_STATUS NSKHDI_NskDevice_Read32 (NSK2HDI_HANDLE     Nsk_handle,
180                                         NDS_ULONG          register_offset,
181                                         NDS_ULONG          data_size,
182                                         NDS_ULONG          *data);
183 
184 NSK2HDI_STATUS NSKHDI_NskDevice_Write32 (NSK2HDI_HANDLE     Nsk_handle,
185                                          NDS_ULONG          register_offset,
186                                          NDS_ULONG          data_size,
187                                          const NDS_ULONG    *data);
188 
189 NSK2HDI_STATUS NSKHDI_NskDevice_ExecuteCmd (NSK2HDI_HANDLE     Nsk_handle,
190                                             NDS_ULONG          command,
191                                             NDS_ULONG          control,
192                                             NDS_ULONG          register_offset,
193                                             NDS_ULONG          data_size,
194                                             const NDS_UBYTE    *data);
195 
196 NSK2HDI_STATUS NSKHDI_NskDevice_RegisterEventCB ( NSK2HDI_HANDLE          Nsk_handle,
197                                                   HDINSK2_NSKEVENT_CB_FN  *cb_routine,
198                                                   void                    *cookie);
199 
200 NSK2HDI_STATUS NSKHDI_NskDevice_AcknowledgeKte(NSK2HDI_HANDLE Nsk_handle);
201 
202 NSK2HDI_STATUS NSKHDI_NskDevice_BasicInitializationComplete( NSK2HDI_HANDLE Nsk_handle, NDS_ULONG stage);
203 
204 NSK2HDI_STATUS NSKHDI_NskDevice_UpdateNVCounter(NSK2HDI_HANDLE Nsk_handle);
205 
206 NSK2HDI_STATUS NSKHDI_NskDevice_WriteOTPKey(NSK2HDI_HANDLE     Nsk_handle,
207                                             NDS_ULONG          desc_size,
208                                             const NDS_UBYTE    *desc);
209 
210 NSK2HDI_STATUS NSKHDI_NskDevice_SetOneShotGenInBit(NSK2HDI_HANDLE     Nsk_handle,
211                                                    NDS_ULONG          bits);
212 
213 NSK2HDI_STATUS NSKHDI_M2MTable_Open (NSK2HDI_DEVICE_ID M2MTable_ID,
214                                      NSK2HDI_HANDLE    *M2MTable_handle);
215 
216 NSK2HDI_STATUS NSKHDI_M2MTable_Close (NSK2HDI_HANDLE M2MTable_handle);
217 
218 NSK2HDI_STATUS NSKHDI_M2MTable_EnumerateChildren( NSK2HDI_HANDLE       M2MTable_handle,
219                                                   NDS_ULONG            *child_device_num,
220                                                   NSK2HDI_CHILD_DEVICE *child_device);
221 
222 
223 NSK2HDI_STATUS NSKHDI_DMADevice_Open (NSK2HDI_DEVICE_ID DMADevice_ID,
224                                       NSK2HDI_HANDLE    *DMADevice_handle);
225 
226 NSK2HDI_STATUS NSKHDI_DMADevice_Close (NSK2HDI_HANDLE DMADevice_handle);
227 
228 NSK2HDI_STATUS NSKHDI_DMADevice_GetProperties( NSK2HDI_HANDLE  DMADevice_handle,
229                                                NDS_ULONG       request_id,
230                                                NDS_ULONG       *desc_size,
231                                                NDS_UBYTE       *desc);
232 
233 NSK2HDI_STATUS NSKHDI_DMADevice_WriteData( NSK2HDI_HANDLE  DMADevice_handle,
234                                            void            *M2MChannel_cookie,
235                                            NDS_ULONG       desc_size,
236                                            const NDS_UBYTE *desc,
237                                            NDS_ULONG       data_size,
238                                            NDS_UBYTE       *in_data,
239                                            NDS_UBYTE       *out_data);
240 
241 
242 NSK2HDI_STATUS NSKHDI_M2MChannelGroup_Open (NSK2HDI_DEVICE_ID M2MChannelGroup_ID,
243                                             NSK2HDI_HANDLE    *M2MChannelGroup_handle);
244 
245 NSK2HDI_STATUS NSKHDI_M2MChannelGroup_Close (NSK2HDI_HANDLE M2MChannelGroup_handle);
246 
247 NSK2HDI_STATUS NSKHDI_M2MChannelGroup_GetProperties( NSK2HDI_HANDLE  M2MChannelGroup_handle,
248                                                      NDS_ULONG       request_id,
249                                                      NDS_ULONG       *desc_size,
250                                                      NDS_UBYTE       *desc);
251 
252 NSK2HDI_STATUS NSKHDI_M2MChannelDevice_Open (NSK2HDI_DEVICE_ID M2MChannelGroup_ID,
253                                              NSK2HDI_HANDLE    *M2MChannel_handle);
254 
255 NSK2HDI_STATUS NSKHDI_M2MChannelDevice_Close (NSK2HDI_HANDLE M2MChannel_handle);
256 
257 NSK2HDI_STATUS NSKHDI_M2MChannelDevice_GetCookie(NSK2HDI_HANDLE M2MChannele_handle,
258                                                  void **cookie);
259 
260 NSK2HDI_STATUS NSKHDI_M2MChannelDevice_Configure (NSK2HDI_HANDLE  M2MChannele_handle,
261                                                   NDS_ULONG       desc_size,
262                                                   const NDS_UBYTE *desc);
263 
264 NSK2HDI_STATUS NSKHDI_M2MChannelDevice_WriteM2MKey(NSK2HDI_HANDLE  M2MChannele_handle,
265                                                    NDS_ULONG       desc_size,
266                                                    const NDS_UBYTE *desc);
267 
268 NSK2HDI_STATUS NSKHDI_M2MChannelDevice_NSKWriteM2MKey(NSK2HDI_HANDLE  M2MChannele_handle,
269                                                       NDS_ULONG       desc_size,
270                                                       const NDS_UBYTE *desc);
271 
272 
273 MS_U32 NSKHDI_GetHandle(NSK2HDI_HANDLE Handle);
274 
275 MS_U32 NSKHDI_IVDataTrans(MS_U8 NSK2HDI_Algo, MS_U8 *pu8IV1, MS_U8 *pu8IV2, MS_U32 *pu32HWIV);
276 
277 MS_U32 NSKHDI_AddDscmbConnect(NDS_ULONG  xconn, NDS_USHORT es_pid, MS_U32     u32FltID);
278 MS_U32 NSKHDI_RemoveDscmbConnect(NDS_ULONG xconn, NDS_USHORT es_pid);
279 void NSK2HDI_ParamInit(void);
280 
281 #endif /*NSK2HDI_HEADER_H_*/
282 
283 
284