]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blob - psdk_cust/pdk_k2g_1_0_1_2_eng/packages/ti/board/diag/nand/src/evmk2g_elm.h
Merge pull request #1 in PASDK/pasdk_sr from PASDK-318-input-task-code-repetition...
[processor-sdk/performance-audio-sr.git] / psdk_cust / pdk_k2g_1_0_1_2_eng / packages / ti / board / diag / nand / src / evmk2g_elm.h
1 /*
2  * Copyright (c) 2016, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * *  Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  *
12  * *  Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * *  Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
34 /**
35  * \file      evmk2g_elm.h
36  *
37  * \brief     This file contains ELM specific structure, typedefs, function
38  *            prototypes.
39  *
40  */
42 #ifndef _EVMK2G_ELM_H_
43 #define _EVMK2G_ELM_H_
45 /*******************************************************************************
46 *                           MACRO DEFINITIONS
47 *******************************************************************************/
48 /*****************************************************************************/
50 /**
51  *  \brief Macros which can be used as 'configVal' parameter
52  *         to elmAutoGatingConfig API
53  */
54 /** OCP clock is free-running */
55 #define ELM_AUTOGATING_OCP_FREE                       (0)
56 /** Automatic internal OCP clock gating strategy is applied
57     based on the OCP interface activity */
58 #define ELM_AUTOGATING_OCP_GATING                     (1)
60 /**
61  *  \brief Macros which can be used as 'configVal' parameter
62  *         to elmIdleModeSelect API.
63  */
64 /** For selecting force-idle mode */
65 #define ELM_IDLEMODE_FORCEIDLE                        (0)
66 /** For selecting no-idle mode */
67 #define ELM_IDLEMODE_NOIDLE                           (1)
68 /** For selecting smart-idle mode */
69 #define ELM_IDLEMODE_SMARTIDLE                        (2)
71 /**
72  *  \brief Macros which can be used as 'configVal' parameter
73  *         to elmOCPClkActivityConfig API.
74  */
75 /** OCP Clock is maintained during wake up period */
76 #define ELM_CLOCKACTIVITYOCP_OCP_ON                   (1)
77 /** OCP clock is switch off */
78 #define ELM_CLOCKACTIVITYOCP_OCP_OFF                  (0)
80 /**
81  *  \brief Macros which can be used as 'flag' parameter to elmIntStatusGet API.
82  */
83 /** Error-location status for syndrome polynomial 0 */
84 #define ELM_LOC_VALID_0_STATUS                        (0)
85 /** Error-location status for syndrome polynomial 1 */
86 #define ELM_LOC_VALID_1_STATUS                        (1)
87 /** Error-location status for syndrome polynomial 2 */
88 #define ELM_LOC_VALID_2_STATUS                        (2)
89 /** Error-location status for syndrome polynomial 3 */
90 #define ELM_LOC_VALID_3_STATUS                        (3)
91 /** Error-location status for syndrome polynomial 4 */
92 #define ELM_LOC_VALID_4_STATUS                        (4)
93 /** Error-location status for syndrome polynomial 5 */
94 #define ELM_LOC_VALID_5_STATUS                        (5)
95 /** Error-location status for syndrome polynomial 6 */
96 #define ELM_LOC_VALID_6_STATUS                        (6)
97 /** Error-location status for syndrome polynomial 7 */
98 #define ELM_LOC_VALID_7_STATUS                        (7)
99 /** Error-location status for a full page */
100 #define ELM_PAGE_VALID_STATUS                         (8)
102 /**
103  *  \brief Macros which can be used as 'flag' parameter to elmIntConfig API.
104  */
105 /** Enables ELM interrupts */
106 #define ELM_INT_ENALBLE                               (1)
107 /** Disables ELM interrupts */
108 #define ELM_INT_DISALBLE                              (0)
110 /**
111  *  \brief Macros which can be used as 'bchECCLevel' parameter to
112  *         elmErrCorrectionLevelSet API.
113  */
114 /** BCH level for Upto 4 bits error correction */
115 #define ELM_ECC_BCH_LEVEL_4BITS                       (0)
116 /** BCH level for Upto 8 bits error correction */
117 #define ELM_ECC_BCH_LEVEL_8BITS                       (1)
118 /** BCH level for Upto 16 bits error correction */
119 #define ELM_ECC_BCH_LEVEL_16BITS                      (2)
121 /**
122  *  \brief Macros which can be used as 'mode' parameter to elmModeSet API.
123  */
124 /** Enables continuous mode of ELM module */
125 #define ELM_MODE_CONTINUOUS                           (0)
126 /** Enables page mode of ELM module */
127 #define ELM_MODE_PAGE                                 (1)
129 /**
130  *  \brief Macros which can be used as 'sectorNum' parameter to elmModeSet API.
131  */
132 /** For selecting syndrome polynomial 0 as part of the page in page mode */
133 #define ELM_PAGEMODE_SECTOR_0                         (0)
134 /** For selecting syndrome polynomial 1 as part of the page in page mode */
135 #define ELM_PAGEMODE_SECTOR_1                         (1)
136 /** For selecting syndrome polynomial 2 as part of the page in page mode */
137 #define ELM_PAGEMODE_SECTOR_2                         (2)
138 /** For selecting syndrome polynomial 3 as part of the page in page mode */
139 #define ELM_PAGEMODE_SECTOR_3                         (3)
140 /** For selecting syndrome polynomial 4 as part of the page in page mode */
141 #define ELM_PAGEMODE_SECTOR_4                         (4)
142 /** For selecting syndrome polynomial 5 as part of the page in page mode */
143 #define ELM_PAGEMODE_SECTOR_5                         (5)
144 /** For selecting syndrome polynomial 6 as part of the page in page mode */
145 #define ELM_PAGEMODE_SECTOR_6                         (6)
146 /** For selecting syndrome polynomial 7 as part of the page in page mode */
147 #define ELM_PAGEMODE_SECTOR_7                         (7)
149 /**
150  *  \brief Macros which can be used as 'synFrgmtId' parameter to
151  *         elmSyndromeFrgmtSet API
152  */
153 /** Selects syndrome fragment 0 for error-location processing */
154 #define ELM_SYNDROME_FRGMT_0                          (0)
155 /** Selects syndrome fragment 1 for error-location processing */
156 #define ELM_SYNDROME_FRGMT_1                          (1)
157 /** Selects syndrome fragment 2 for error-location processing */
158 #define ELM_SYNDROME_FRGMT_2                          (2)
159 /** Selects syndrome fragment 3 for error-location processing */
160 #define ELM_SYNDROME_FRGMT_3                          (3)
161 /** Selects syndrome fragment 4 for error-location processing */
162 #define ELM_SYNDROME_FRGMT_4                          (4)
163 /** Selects syndrome fragment 5 for error-location processing */
164 #define ELM_SYNDROME_FRGMT_5                          (5)
165 /** Selects syndrome fragment 6 for error-location processing */
166 #define ELM_SYNDROME_FRGMT_6                          (6)
168 /**
169  *  \brief Macros which can be used as 'errNum' parameter to
170  *         elmErrLocBitAddrGet API.
171  */
172 /** Indicates 0th error of ELM */
173 #define ELM_ERROR_NUM_0                               (0)
174 /** Indicates 1st error of ELM */
175 #define ELM_ERROR_NUM_1                               (1)
176 /** Indicates 2nd error of ELM */
177 #define ELM_ERROR_NUM_2                               (2)
178 /** Indicates 3rd error of ELM */
179 #define ELM_ERROR_NUM_3                               (3)
180 /** Indicates 4th error of ELM */
181 #define ELM_ERROR_NUM_4                               (4)
182 /** Indicates 5th error of ELM */
183 #define ELM_ERROR_NUM_5                               (5)
184 /** Indicates 6th error of ELM */
185 #define ELM_ERROR_NUM_6                               (6)
186 /** Indicates 7th error of ELM */
187 #define ELM_ERROR_NUM_7                               (7)
188 /** Indicates 8th error of ELM */
189 #define ELM_ERROR_NUM_8                               (8)
190 /** Indicates 9th error of ELM */
191 #define ELM_ERROR_NUM_9                               (9)
192 /** Indicates 10th error of ELM */
193 #define ELM_ERROR_NUM_10                              (10)
194 /** Indicates 11th error of ELM */
195 #define ELM_ERROR_NUM_11                              (11)
196 /** Indicates 12th error of ELM */
197 #define ELM_ERROR_NUM_12                              (12)
198 /** Indicates 13th error of ELM */
199 #define ELM_ERROR_NUM_13                              (13)
200 /** Indicates 14th error of ELM */
201 #define ELM_ERROR_NUM_14                              (14)
202 /** Indicates 15th error of ELM */
203 #define ELM_ERROR_NUM_15                              (15)
205 /** Sets a bit of ELM register to high */
206 #define ELM_BIT_SET_HIGH        (1)
207 /** Sets a bit of ELM register to low */
208 #define ELM_BIT_SET_LOW         (0)
210 /** Enables a bit of ELM register */
211 #define ELM_BIT_ENABLE          (1)
212 /** Disables a bit of ELM register */
213 #define ELM_BIT_DISABLE         (0)
215 /** Handle to access ELM registers. */
216 #define hElmCfg  ((CSL_elmRegs *)CSL_ELM_0_CFG_REGS)
218 /** ELM Handle */
219 typedef CSL_elmRegs * elmHandle;
221 /*****************************************************************************
222 **                    FUNCTION PROTOTYPES
223 *****************************************************************************/
225 /**
226 * \brief   This function reads the IP revision code of ELM.\n
228 * \param   hElm    ELM handle for accessing HW registers.\n
230 * \return  ipRev    IP revision code of ELM.\n
231 */
232 Uint32 elmRevisionGet(elmHandle hElm);
234 /**
235 * \brief   This function configs the Internal OCP clock gating strategy.\n
237 * \param   hElm           ELM handle for accessing HW registers.\n
239 * \param   configVal      Config value for OCP clk gating.\n
240 *                         This can take one of the following values :\n
241 *                         ELM_AUTOGATING_OCP_FREE   -- OCP clock is free-running\n
242 *                         ELM_AUTOGATING_OCP_GATING -- Automatic internal OCP
243 *                                                      clock gating strategy is
244 *                                                      applied based on the OCP
245 *                                                      interface activity.\n
247 * \return  none.\n
248 */
249 void elmAutoGatingConfig(elmHandle hElm, Uint32 configVal);
251 /**
252 * \brief   This function sets the idle mode for ELM.\n
254 * \param   hElm           ELM handle for accessing HW registers.\n
256 * \param   mode           Idle mode.\n
257 *                         This can take one of the following values :\n
258 *                         ELM_IDLEMODE_FORCEIDLE -- for force-idle. \n
259 *                         ELM_IDLEMODE_NOIDLE    -- for no-idle. \n
260 *                         ELM_IDLEMODE_SMARTIDLE -- for smart-idle.\n
262 * \return  none.\n
263 */
264 void elmIdleModeSelect(elmHandle hElm, Uint32 mode);
266 /**
267 * \brief   This function Resets the ELM.\n
269 * \param   hElm       ELM handle for accessing HW registers.\n
271 * \return  None.\n
272 */
273 void elmModuleReset(elmHandle hElm);
275 /**
276 * \brief   This function sets the OCP Clock activity when module is in IDLE
277 *          mode.\n
279 * \param   hElm           ELM handle for accessing HW registers.\n
281 * \param   configVal      Config value.\n
282 *                         This can take one of the following values :\n
283 *                         ELM_CLOCKACTIVITYOCP_OCP_OFF -- OCP clock is swith off\n
284 *                         ELM_CLOCKACTIVITYOCP_OCP_ON  -- OCP Clock is
285 *                                                         maintained during
286 *                                                         wake up period.\n
288 * \return  none.\n
289 */
290 void elmOCPClkActivityConfig(elmHandle hElm, Uint32 configVal);
292 /**
293 * \brief   This function gets the software resets status of ELM.\n
295 * \param   hElm       ELM handle for accessing HW registers.\n
297 * \return  status     Reset status : \n
298 *                       0 : Module reset is on-going.\n
299 *                       1 : Module reset is completed.\n
300 */
301 Uint32 elmModuleResetStatusGet(elmHandle hElm);
303 /**
304 * \brief   This function gets Interrupt status.\n
306 * \param   hElm           ELM handle for accessing HW registers.\n
308 * \param   flag           Flag for which interrupt status has to get.\n
309 *                         This can take one of the following values :\n
310 *                         ELM_LOC_VALID_0_STATUS         : Error-location
311 *                                                          status for syndrome
312 *                                                          polynomial 0.\n
313 *                         ELM_LOC_VALID_1_STATUS         : Error-location
314 *                                                          status for syndrome
315 *                                                          polynomial 1.\n
316 *                         ELM_LOC_VALID_2_STATUS         : Error-location
317 *                                                          status for syndrome
318 *                                                          polynomial 2.\n
319 *                         ELM_LOC_VALID_3_STATUS         : Error-location
320 *                                                          status for syndrome
321 *                                                          polynomial 3.\n
322 *                         ELM_LOC_VALID_4_STATUS         : Error-location
323 *                                                          status for syndrome
324 *                                                          polynomial 4.\n
325 *                         ELM_LOC_VALID_5_STATUS         : Error-location
326 *                                                          status for syndrome
327 *                                                          polynomial 5.\n
328 *                         ELM_LOC_VALID_6_STATUS         : Error-location
329 *                                                          status for syndrome
330 *                                                          polynomial 6.\n
331 *                         ELM_LOC_VALID_7_STATUS         : Error-location
332 *                                                          status for syndrome
333 *                                                          polynomial 7.\n
334 *                         ELM_PAGE_VALID_STATUS          : Error-location
335 *                                                          status for a full
336 *                                                          page. \n
338 * \return  intSts         Interrupt Status. Return value meaning depends on the
339 *                         param flag. \n
340 *                         If flag is ELM_LOC_VALID_i_STATUS where i = 0 to 7,
341 *                         then\n
342 *                            0 : No syndrome processed or process in progress.\n
343 *                            1 : Error-location process completed.\n
345 *                         If flag is ELM_PAGE_VALID_STATUS, then\n
346 *                            0 : Error locations invalid for all polynomials
347 *                                enabled.\n
348 *                            1 : All error locations valid.\n
350 */
351 Uint32 elmIntStatusGet(elmHandle hElm, Uint32 flag);
353 /**
354 * \brief   This function clears the interrupt.\n
356 * \param   hElm           ELM handle for accessing HW registers.\n
358 * \param   flag           Flag for which interrupt status has to clear.\n
359 *                         This can take one of the following values :\n
360 *                         ELM_LOC_VALID_0_STATUS        : Error-location
361 *                                                         interrupt for syndrome
362 *                                                         polynomial 0.\n
363 *                         ELM_LOC_VALID_1_STATUS        : Error-location
364 *                                                         interrupt for syndrome
365 *                                                         polynomial 1.\n
366 *                         ELM_LOC_VALID_2_STATUS        : Error-location
367 *                                                         interrupt for syndrome
368 *                                                         polynomial 2.\n
369 *                         ELM_LOC_VALID_3_STATUS        : Error-location
370 *                                                         interrupt for syndrome
371 *                                                         polynomial 3.\n
372 *                         ELM_LOC_VALID_4_STATUS        : Error-location
373 *                                                         interrupt for syndrome
374 *                                                         polynomial 4.\n
375 *                         ELM_LOC_VALID_5_STATUS        : Error-location
376 *                                                         interrupt for syndrome
377 *                                                         polynomial 5.\n
378 *                         ELM_LOC_VALID_6_STATUS        : Error-location
379 *                                                         interrupt for syndrome
380 *                                                         polynomial 6.\n
381 *                         ELM_LOC_VALID_7_STATUS        : Error-location
382 *                                                         interrupt for syndrome
383 *                                                         polynomial 7.\n
384 *                         ELM_PAGE_VALID_STATUS         : Error-location
385 *                                                         interrupt for a full
386 *                                                         page.\n
388 * \return  None. \n
390 */
391 void elmIntStatusClear(elmHandle hElm, Uint32 flag);
393 /**
394 * \brief   This function configs i.e enables or disables the interrupts.\n
396 * \param   hElm           ELM handle for accessing HW registers.\n
398 * \param   intflag        intFlag for which interrupt has to config.\n
399 *                         This can take one of the following values :\n
400 *                         ELM_LOC_VALID_0_STATUS        : Error-location
401 *                                                         interrupt for syndrome
402 *                                                         polynomial 0.\n
403 *                         ELM_LOC_VALID_1_STATUS        : Error-location
404 *                                                         interrupt for syndrome
405 *                                                         polynomial 1.\n
406 *                         ELM_LOC_VALID_2_STATUS        : Error-location
407 *                                                         interrupt for syndrome
408 *                                                         polynomial 2.\n
409 *                         ELM_LOC_VALID_3_STATUS        : Error-location
410 *                                                         interrupt for syndrome
411 *                                                         polynomial 3.\n
412 *                         ELM_LOC_VALID_4_STATUS        : Error-location
413 *                                                         interrupt for syndrome
414 *                                                         polynomial 4.\n
415 *                         ELM_LOC_VALID_5_STATUS        : Error-location
416 *                                                         interrupt for syndrome
417 *                                                         polynomial 5.\n
418 *                         ELM_LOC_VALID_6_STATUS        : Error-location
419 *                                                         interrupt for syndrome
420 *                                                         polynomial 6.\n
421 *                         ELM_LOC_VALID_7_STATUS        : Error-location
422 *                                                         interrupt for syndrome
423 *                                                         polynomial 7.\n
424 *                         ELM_PAGE_VALID_STATUS         : Error-location
425 *                                                         interrupt for a full
426 *                                                         page. \n
428 * \param   configVal     Config Value.\n
429 *                        This can take one of the following values :\n
430 *                        ELM_INT_ENALBLE                : To enble the interrupt\n
431 *                        ELM_INT_DISALBLE               : To disable the
432 *                                                         interrupt.\n
433 * \return  None. \n
435 */
436 void elmIntConfig(elmHandle hElm, Uint32 intFlag, Uint32 configVal);
438 /**
439 * \brief   This function sets the Error correction level for BCH alogorithm.\n
441 * \param   hElm           ELM handle for accessing HW registers.\n
443 * \param   bchECCLevel    BCH error correction level.\n
444 *                         This can take one of the following values :\n
445 *                         ELM_ECC_BCH_LEVEL_16BITS    : For Upto 16 bits error
446 *                                                       correction.\n
447 *                         ELM_ECC_BCH_LEVEL_8BITS     : For Upto 8 bits error
448 *                                                       correction.\n
449 *                         ELM_ECC_BCH_LEVEL_4BITS     : For Upto 4 bits error
450 *                                                       correction.\n
452 * \return  None. \n
454 */
455 void elmErrCorrectionLevelSet(elmHandle hElm, Uint32 bchECCLevel);
457 /**
458 * \brief   This function sets the size of the buffers for which
459 *          the error-location engine is used.\n
461 * \param   hElm       ELM handle for accessing HW registers.\n
463 * \param   eccSize    eccSize in number of nibbles (i.e 4-bits entities).\n
465 * \return  None. \n
467 */
468 void elmECCSizeSet(elmHandle hElm, Uint32 eccSize);
470 /**
471 * \brief   This function sets mode of the ELM module.\n
473 * \param   hElm           ELM handle for accessing HW registers.\n
474 * \param   mode           mode of the ELM.\n
475 *                         This can take one of the following values :\n
476 *                         ELM_MODE_PAGE       -- For page mode.\n
477 *                         ELM_MODE_CONTINUOUS -- For continuous mode.\n
479 * \param   sectorNum      Sector number or syndrome polynomial number which has
480 *                         to select as part of the page in page mode.\n
481 *                         This can take one of the following values :\n
482 *                         ELM_PAGEMODE_SECTOR_0 -- For selecting syndrome
483 *                                                  polynomial 0 as part of the
484 *                                                  page in page mode.\n
485 *                         ELM_PAGEMODE_SECTOR_1 -- For selecting syndrome
486 *                                                  polynomial 1 as part of the
487 *                                                  page in page mode.\n
488 *                         ELM_PAGEMODE_SECTOR_2 -- For selecting syndrome
489 *                                                  polynomial 2 as part of the
490 *                                                  page in page mode.\n
491 *                         ELM_PAGEMODE_SECTOR_3 -- For selecting syndrome
492 *                                                  polynomial 3 as part of the
493 *                                                  page in page mode.\n
494 *                         ELM_PAGEMODE_SECTOR_4 -- For selecting syndrome
495 *                                                  polynomial 4 as part of the
496 *                                                  page in page mode.\n
497 *                         ELM_PAGEMODE_SECTOR_5 -- For selecting syndrome
498 *                                                  polynomial 5 as part of the
499 *                                                  page in page mode.\n
500 *                         ELM_PAGEMODE_SECTOR_6 -- For selecting syndrome
501 *                                                  polynomial 6 as part of the
502 *                                                  page in page mode.\n
503 *                         ELM_PAGEMODE_SECTOR_7 -- For selecting syndrome
504 *                                                  polynomial 7 as part of the
505 *                                                  page in page mode.\n
507 * \return  None. \n
509 */
510 void elmModeSet(elmHandle hElm, Uint32 mode, Uint32 sectorNum);
512 /**
513 * \brief   This function sets the fragments of syndrome polynomial for
514 *          error-location processing.\n
516 * \param   hElm           ELM handle for accessing HW registers.\n
518 * \param   synFrgmtId     Syndrome fragment ID.\n
519 *                         This can take one of the following values :\n
520 *                         ELM_SYNDROME_FRGMT_0 - For syndrome fragment 0.\n
521 *                         ELM_SYNDROME_FRGMT_1 - For syndrome fragment 1.\n
522 *                         ELM_SYNDROME_FRGMT_2 - For syndrome fragment 2.\n
523 *                         ELM_SYNDROME_FRGMT_3 - For syndrome fragment 3.\n
524 *                         ELM_SYNDROME_FRGMT_4 - For syndrome fragment 4.\n
525 *                         ELM_SYNDROME_FRGMT_5 - For syndrome fragment 5.\n
526 *                         ELM_SYNDROME_FRGMT_6 - For syndrome fragment 6.\n
527 * \param   synFrgmtVal    Syndrome fragment value.\n
529 * \param   csNum          Chip Select Number, 0 - 7.\n
531 * \return  None. \n
533 */
534 void elmSyndromeFrgmtSet(elmHandle hElm, Uint32 synFrgmtId,
535                          Uint32 synFrgmtVal, Uint32 csNum);
537 /**
538 * \brief   This function starts the error-location processing for the polynomial
539 *          set in the syndrome fragment registers.\n
541 * \param   hElm       ELM handle for accessing HW registers.\n
543 * \param   csNum      Chip Select Number, 0 - 7.\n
545 * \return  None. \n
547 */
548 void elmErrLocProcessingStart(elmHandle hElm, Uint32 csNum);
550 /**
551 * \brief   This function gets the error-location processing status.\n
553 * \param   hElm       ELM handle for accessing HW registers.\n
555 * \param   csNum      Chip Select Number, 0 - 7.\n
557 * \return  status. \n
558 *          0 : ECC error-location process failed.\n
559 *          1 : ECC error-location process passed.\n
561 */
562 Uint32 elmErrLocProcessingStatusGet(elmHandle hElm, Uint32 csNum);
564 /**
565 * \brief   This function gets the number of errors detected and located
566 *          during error-location processing.\n
568 * \param   hElm       ELM handle for accessing HW registers.\n
570 * \param   csNum      Chip Select Number, 0 - 7.\n
572 * \return  Number of errors detected and located.\n
574 */
575 Uint32 elmNumOfErrsGet(elmHandle hElm, Uint32 csNum);
577 /**
578 * \brief   This function gets the Error-location bit address for the error
579 *          number passed.\n
581 * \param   hElm           ELM handle for accessing HW registers.\n
583 * \param   errNum         Error number.\n
584 *                         This can take one of the following values :\n
585 *                         ELM_ERROR_NUM_0 - For 0th error.\n
586 *                         ELM_ERROR_NUM_1 - For 1th error.\n
587 *                         ELM_ERROR_NUM_2 - For 2th error.\n
588 *                         ELM_ERROR_NUM_3 - For 3th error.\n
589 *                         ELM_ERROR_NUM_4 - For 4th error.\n
590 *                         ELM_ERROR_NUM_5 - For 5th error.\n
591 *                         ELM_ERROR_NUM_6 - For 6th error.\n
592 *                         ELM_ERROR_NUM_7 - For 7th error.\n
593 *                         ELM_ERROR_NUM_8 - For 8th error.\n
594 *                         ELM_ERROR_NUM_9 - For 9th error.\n
595 *                         ELM_ERROR_NUM_10 - For 10th error.\n
596 *                         ELM_ERROR_NUM_11 - For 11th error.\n
597 *                         ELM_ERROR_NUM_12 - For 12th error.\n
598 *                         ELM_ERROR_NUM_13 - For 13th error.\n
599 *                         ELM_ERROR_NUM_14 - For 14th error.\n
600 *                         ELM_ERROR_NUM_15 - For 15th error.\n
602 * \param   csNum      Chip Select Number, 0 - 7.\n
604 * \return  Bit address for the error number.\n
606 */
607 Uint32 elmErrLocBitAddrGet(elmHandle hElm, Uint32 errNum, Uint32 csNum);
609 #endif // _EVMK2G_ELM_H_