TLE986x Device Family SDK
bootrom.h
Go to the documentation of this file.
1 /*
2  ***********************************************************************************************************************
3  *
4  * Copyright (c) 2015, Infineon Technologies AG
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without modification,are permitted provided that the
8  * following conditions are met:
9  *
10  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following
11  * disclaimer.
12  *
13  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
14  * following disclaimer in the documentation and/or other materials provided with the distribution.
15  *
16  * Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
17  * products derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
25  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  **********************************************************************************************************************/
37 /*******************************************************************************
38 ** Author(s) Identity **
39 ********************************************************************************
40 ** Initials Name **
41 ** ---------------------------------------------------------------------------**
42 ** DM Daniel Mysliwitz **
43 ** TA Thomas Albersinger **
44 ** BG Blandine Guillot **
45 ** JO Julia Ott **
46 *******************************************************************************/
47 
48 /*******************************************************************************
49 ** Revision Control History **
50 ********************************************************************************
51 ** V0.1.0: 2012-08-31, DM: Initial version **
52 ** V0.1.1: 2012-11-30, DM: Implementation of all BOOTROM functions **
53 ** described in the TLE986x AA-Step BootROM UM V0.9 **
54 ** V0.1.2: 2012-12-03, DM: Defining the function pointers to be const to **
55 ** save unnecessary RAM usage, BootROM_Init removed **
56 ** V0.1.3: 2013-11-20, DM: Handle WDT1 and Interrupts in ProgramPage() **
57 ** function, GetCustomerID() function added **
58 ** V0.1.4: 2014-05-14, DM: Add NVM protect/unprotect functions (BB-step) **
59 ** V0.1.5: 2014-05-18, DM: Provide a union/struct for the encoding of the **
60 ** Customer ID **
61 ** V0.1.6: 2014-06-27, TA: Changed to type definitions from Types.h **
62 ** V0.1.7: 2014-09-22, DM: USER_ECC_CHECK modified, parameter added **
63 ** ProgramPage: interrupts disabled over the entire **
64 ** NVM programming flow, to prevent from nested **
65 ** NVM operations during assembly buffer filling **
66 ** V0.1.8: 2015-06-03, DM: BootROM entry point defines moved into bootrom.h **
67 ** V0.1.9: 2015-07-03, DM: BE-Step compatible, USER_MAPRAM_INIT function **
68 ** added **
69 ** V0.2.0: 2015-07-22, DM: Typedef unions added for various return values **
70 ** V0.2.1: 2016-04-14, DM: BF-Step BootROM API extension added **
71 ** V0.2.2: 2017-09-29, DM: BootROM functions return values corrected **
72 ** GetCustomerID() parameter changed, function **
73 ** simplified **
74 ** MISRA 2012 compliance, the following PC-Lint **
75 ** rules are globally deactivated: **
76 ** - Info 793: ANSI/ISO limit of 6 'significant **
77 ** characters in an external identifier **
78 ** - Info 835: A zero has been given as right **
79 ** argument to operator **
80 ** - Info 845: The left argument to operator '&' **
81 ** is certain to be 0 **
82 ** Replaced macros by INLINE functions **
83 ** Replaced register accesses within functions by **
84 ** function calls **
85 ** Replaced __STATIC_INLINE by INLINE **
86 ** The following rules are locally deactivated: **
87 ** - Note 19: Suppressing MISRA 2012 Error 19: **
88 ** Useless Declaration **
89 ** - Note 970: Suppressing MISRA 2012 MISRA 2012 **
90 ** Directive 4.6 **
91 ** - Note 923: cast from unsigned int to pointer **
92 ** [MISRA Rule 45] **
93 ** V0.2.3: 2018-03-12, DM: The following rules are locally deactivated: **
94 ** - Note 929: cast from pointer to pointer [MISRA **
95 ** 2012 Rule 11.3, required], [MISRA 2012 **
96 ** Rule 11.5, advisory] **
97 ** - Note 9018: declaration of symbol 'CustID' with **
98 ** union based type 'const TCustomerID *' [MISRA **
99 ** 2012 Rule 19.2, advisory] **
100 ** The following rules are activated: **
101 ** - Note 970: Suppressing MISRA 2012 MISRA 2012 **
102 ** Directive 4.6 **
103 ** V0.2.4: 2018-11-27, JO: Doxygen update, moved revision history from **
104 ** bootrom.c to bootrom.h **
105 ** V0.2.5: 2019-02-11, DM: Entry points definition reworked to remove MISRA **
106 ** error **
107 ** V0.2.6: 2019-05-22, JO: Enable interrupts in ProgramPage in case of an **
108 ** NVM error **
109 ** V0.2.7: 2020-02-20, JO: Corrected indentation for MISRA compliancy **
110 ** V0.2.8: 2020-02-28, BG: Updated revision history format **
111 ** V0.2.9: 2020-10-12, JO: EP-505: Added example code for USER_READ_CAL, **
112 ** Corrected example code of USER_MAPRAM_INIT **
113 ** V0.3.0: 2020-10-12, JO: EP-506: remove ARMCC v6 Compiler warnings **
114 ** - Added const to parameter CustID in call of **
115 ** function USER_READ_100TP **
116 *******************************************************************************/
117 
118 #ifndef _BOOTROM_H
119 #define _BOOTROM_H
120 
121 /*******************************************************************************
122 ** Includes **
123 *******************************************************************************/
124 #include "types.h"
125 #include "RTE_Components.h"
126 
127 /*******************************************************************************
128 ** Global Macro Definitions **
129 *******************************************************************************/
130 #define FlashPageSize (128U)
131 #define FlashSectorSize (4096U)
132 
133 /*******************************************************************************
134 ** Entry points into the BootROM **
135 *******************************************************************************/
136 #define addr_USER_CFLASH_WR_PROT_EN (0x3925u)
137 #define addr_USER_CFLASH_WR_PROT_DIS (0x391Du)
138 #define addr_USER_CFLASH_RD_PROT_EN (0x3915u)
139 #define addr_USER_CFLASH_RD_PROT_DIS (0x390Du)
140 #define addr_USER_DFLASH_WR_PROT_EN (0x3905u)
141 #define addr_USER_DFLASH_WR_PROT_DIS (0x38FDu)
142 #define addr_USER_DFLASH_RD_PROT_EN (0x38F5u)
143 #define addr_USER_DFLASH_RD_PROT_DIS (0x38EDu)
144 #define addr_USER_OPENAB (0x38E5u)
145 #define addr_USER_PROG (0x38DDu)
146 #define addr_USER_ERASEPG (0x38D5u)
147 #define addr_USER_ABORTPROG (0x38CDu)
148 #define addr_USER_NVMRDY (0x38C5u)
149 #define addr_USER_READ_CAL (0x38BDu)
150 #define addr_USER_NVM_CONFIG (0x38B5u)
151 #define addr_USER_NVM_ECC2ADDR (0x38ADu)
152 #define addr_USER_MAPRAM_INIT (0x389Du)
153 #define addr_USER_READ_100TP (0x3875u)
154 #define addr_USER_100TP_PROG (0x386Du)
155 #define addr_USER_ERASE_SECTOR (0x3865u)
156 #define addr_USER_RAM_MBIST_START (0x384Du)
157 #define addr_USER_NVM_ECC_CHECK (0x3845u)
158 #define addr_USER_ECC_CHECK (0x383Du)
159 /* BF-Step BootROM API extension */
160 #ifdef RTE_DEVICE_BF_STEP
161  #define addr_USER_ERASEPG_VERIFY (0x3885u)
162  #define addr_USER_ERASE_SECTOR_VERIFY (0x388Du)
163  #define addr_USER_VERIFY_PAGE (0x3895u)
164 #endif /* RTE_DEVICE_BF_STEP */
165 
166 /*******************************************************************************
167 ** Customer ID struct **
168 *******************************************************************************/
172 typedef union
173 {
174  uint32 reg;
175  struct
176  {
177  uint32 : 8;
178  uint32 Step : 8;
179  uint32 Clock : 2;
180  uint32 Package : 2;
181  uint32 SalesCode : 4;
182  uint32 Family : 8;
183  } bit;
184 } TCustomerID;
185 
186 /*******************************************************************************
187 ** USER_100TP_PROG input struct **
188 *******************************************************************************/
192 typedef struct
193 {
194  uint8 offset;
195  uint8 date;
196 } TData;
197 
198 typedef struct
199 {
200  uint8 count;
201  TData data[127];
203 
204 /*******************************************************************************
205 ** Function USER_100TP_PROG: return value decoding **
206 *******************************************************************************/
210 typedef union
211 {
212  uint8 reg;
213  struct
214  {
215  uint8 GlobFail : 1;
216  uint8 OffsetFail: 1;
217  uint8 CustIDFail: 1;
218  uint8 : 4;
219  uint8 ExecFail : 1;
220  } bit;
222 
223 /*******************************************************************************
224 ** Function USER_PROG: type definition of the parameter PROG_FLAG **
225 *******************************************************************************/
229 typedef union
230 {
231  uint8 reg;
232  struct
233  {
234  uint8 RAM_Branch : 1;
235  uint8 CorrAct : 1;
236  } bit;
238 
239 /*******************************************************************************
240 ** Function USER_PROG: return value decoding **
241 *******************************************************************************/
245 typedef union
246 {
247  uint8 reg;
248  struct
249  {
250  uint8 GlobFail : 1;
251  uint8 : 3;
252  uint8 VerifyFail : 1;
253  uint8 EmergExit : 1;
254  uint8 SparePgFail: 1;
255  uint8 ExecFail : 1;
256  } bit;
257 } TUser_Prog;
258 
259 /*******************************************************************************
260 ** Function USER_OpenAB: return value decoding **
261 *******************************************************************************/
265 typedef union
266 {
267  uint8 reg;
268  struct
269  {
270  uint8 ABFail : 1;
271  uint8 : 6;
272  uint8 ExecFail : 1;
273  } bit;
274 } TUser_OpenAB;
275 
276 /*******************************************************************************
277 ** Function USER_MAPRAM_INIT: return value decoding **
278 *******************************************************************************/
282 typedef union
283 {
284  uint8 reg;
285  struct
286  {
287  uint8 GlobFail : 1;
288  uint8 : 4;
289  uint8 DoubleMapping : 1;
290  uint8 FaultyPage : 1;
291  uint8 ExecFail : 1;
292  } bit;
294 
295 /*******************************************************************************
296 ** Function USER_NVM_ECC_CHECK: return value decoding **
297 *******************************************************************************/
301 typedef union
302 {
303  uint8 reg;
304  struct
305  {
306  uint8 SBE : 1;
307  uint8 DBE : 1;
308  uint8 : 5;
309  uint8 ExecFail : 1;
310  } bit;
312 
313 /*******************************************************************************
314 ** Function USER_ECC_CHECK: return value decoding **
315 *******************************************************************************/
319 typedef union
320 {
321  uint8 reg;
322  struct
323  {
324  uint8 SBE : 1;
325  uint8 DBE : 1;
326  uint8 : 5;
327  uint8 ExecFail : 1;
328  } bit;
330 
331 /*******************************************************************************
332 ** Function USER_ERASE_SECTOR_VERIFY: return value decoding **
333 *******************************************************************************/
337 typedef union
338 {
339  uint8 reg;
340  struct
341  {
342  uint8 GlobFail : 1;
343  uint8 VerifyFail : 1;
344  uint8 : 4;
345  uint8 MapRAMFail : 1;
346  uint8 ExecFail : 1;
347  } bit;
349 
350 /*******************************************************************************
351 ** Function USER_ERASEPG_VERIFY: return value decoding **
352 *******************************************************************************/
356 typedef union
357 {
358  uint8 reg;
359  struct
360  {
361  uint8 GlobFail : 1;
362  uint8 VerifyFail : 1;
363  uint8 : 4;
364  uint8 MapRAMFail : 1;
365  uint8 ExecFail : 1;
366  } bit;
368 
369 /*******************************************************************************
370 ** Function USER_VERIFY_PAGE: return value decoding **
371 *******************************************************************************/
375 typedef union
376 {
377  uint8 reg;
378  struct
379  {
380  uint8 GlobFail : 1;
381  uint8 VerifyEraseFail: 1;
382  uint8 VerifyProgFail : 1;
383  uint8 : 4;
384  uint8 ExecFail : 1;
385  } bit;
387 
388 /********************************************************************************
389 ** Global Function Definitions **
390 ********************************************************************************/
391 
392 /* In case of unit testing, these functions are stubbed.
393  * Unit test is performed with Tessy; tessy doesn't interpret the function definitions
394  * which include the pointers to bootROM as functions,
395  * so the function definitions are added here for unit testing only */
396 #ifdef UNIT_TESTING_LV2
397  extern bool USER_CFLASH_WR_PROT_EN (uint16 cflash_pw);
398  extern bool USER_CFLASH_WR_PROT_DIS (uint16 cflash_pw);
399  extern bool USER_CFLASH_RD_PROT_EN (uint16 cflash_pw);
400  extern bool USER_CFLASH_RD_PROT_DIS (uint16 cflash_pw);
401  extern bool USER_DFLASH_WR_PROT_EN (uint16 dflash_pw);
402  extern bool USER_DFLASH_WR_PROT_DIS (uint16 dflash_pw);
403  extern bool USER_DFLASH_RD_PROT_EN (uint16 dflash_pw);
404  extern bool USER_DFLASH_RD_PROT_DIS (uint16 dflash_pw);
405  extern uint8 USER_OPENAB (const uint32 NVMPAGEAddr);
406  extern uint8 USER_PROG (const uint8 PROG_FLAG);
407  extern uint8 USER_ERASEPG (const uint32 *NVMPageAddr, const uint8 XRAM_RTNE_BRNCHNG);
408  extern bool USER_ABORTPROG (void);
409  extern bool USER_NVMRDY (void);
410  extern uint8 USER_READ_CAL (const uint8 NumOfBytes, const uint8 CSAddr, const uint16 RAMAddr);
411  extern bool USER_NVM_CONFIG (const uint8 *NVMSize, const uint8 *MapRAMSize);
412  extern uint8 USER_NVM_ECC2ADDR (const uint16 *ecc2addr);
413  extern uint8 USER_MAPRAM_INIT (void);
414  extern bool USER_READ_100TP (const uint8 OTP_Page_Sel, const uint8 DataOffset, const uint32 *HundredTPData);
415  extern uint8 USER_100TP_PROG (const uint8 OTP_Page_Sel);
416  extern uint8 USER_ERASE_SECTOR (const uint32 NVMSectorAddr);
417  extern uint8 USER_RAM_MBIST_START (const uint16 RAM_MBIST_Stop_Addr, const uint16 RAM_MBIST_Start_addr);
418  extern uint8 USER_NVM_ECC_CHECK (void);
419  extern uint8 USER_ECC_CHECK (const uint32 *ecc2addr);
420 #else
421 
451  extern bool (*const USER_CFLASH_WR_PROT_EN) (uint16 cflash_pw);
481  extern bool (*const USER_CFLASH_WR_PROT_DIS) (uint16 cflash_pw);
511  extern bool (*const USER_CFLASH_RD_PROT_EN) (uint16 cflash_pw);
541  extern bool (*const USER_CFLASH_RD_PROT_DIS) (uint16 cflash_pw);
570  extern bool (*const USER_DFLASH_WR_PROT_EN) (uint16 dflash_pw);
599  extern bool (*const USER_DFLASH_WR_PROT_DIS) (uint16 dflash_pw);
628  extern bool (*const USER_DFLASH_RD_PROT_EN) (uint16 dflash_pw);
657  extern bool (*const USER_DFLASH_RD_PROT_DIS) (uint16 dflash_pw);
691  extern uint8 (*const USER_OPENAB) (const uint32 NVMPAGEAddr);
692 
755  extern uint8 (*const USER_PROG) (const uint8 PROG_FLAG);
784  extern uint8 (*const USER_ERASEPG) (const uint32 *NVMPageAddr, const uint8 XRAM_RTNE_BRNCHNG);
822  extern bool (*const USER_ABORTPROG) (void);
846  extern bool (*const USER_NVMRDY) (void);
847 
876  extern uint8 (*const USER_READ_CAL) (const uint8 NumOfBytes, const uint8 CSAddr, const uint16 RAMAddr);
877 
906  extern bool (*const USER_NVM_CONFIG) (const uint8 *NVMSize, const uint8 *MapRAMSize);
907 
938  extern uint8 (*const USER_NVM_ECC2ADDR) (const uint16 *ecc2addr);
939 
994  extern uint8 (*const USER_MAPRAM_INIT) (void);
1024  extern bool (*const USER_READ_100TP) (const uint8 OTP_Page_Sel, const uint8 DataOffset, const uint32 *HundredTPData);
1025 
1078  extern uint8 (*const USER_100TP_PROG) (const uint8 OTP_Page_Sel);
1113  extern uint8 (*const USER_ERASE_SECTOR) (const uint32 NVMSectorAddr);
1114 
1157  extern uint8 (*const USER_RAM_MBIST_START) (const uint16 RAM_MBIST_Stop_Addr, const uint16 RAM_MBIST_Start_addr);
1158 
1226  extern uint8 (*const USER_NVM_ECC_CHECK) (void);
1285  extern uint8 (*const USER_ECC_CHECK) (const uint32 *ecc2addr);
1286 
1287  /* BF-Step BootROM API extension */
1288  #ifdef RTE_DEVICE_BF_STEP
1289 
1337  extern uint8 (*const USER_ERASE_SECTOR_VERIFY) (const uint32 sector_addr);
1338 
1388  extern uint8 (*const USER_ERASEPG_VERIFY) (const uint32 page_addr);
1438  extern uint8 (*const USER_VERIFY_PAGE) (const uint32 page_addr);
1439  #endif /* RTE_DEVICE_BF_STEP */
1440 
1483  uint8 ProgramPage(uint32 addr, const uint8 *buf, uint8 Branch, uint8 Correct, uint8 FailPageErase);
1503  bool GetCustomerID(const TCustomerID *CustID);
1504 
1505 #endif
1506 #endif
TProgFlag
This struct defines the option flag for the USER_PROG function.
Definition: bootrom.h:220
types.h
General type declarations.
USER_ABORTPROG
bool(*const USER_ABORTPROG)(void)
Closes the Assembly Buffer.
USER_CFLASH_RD_PROT_DIS
bool(*const USER_CFLASH_RD_PROT_DIS)(uint16 cflash_pw)
Removes the temporary code flash read protection. The password is compared against the.
USER_DFLASH_WR_PROT_DIS
bool(*const USER_DFLASH_WR_PROT_DIS)(uint16 dflash_pw)
Removes the temporary data flash write protection. The password is compared against the.
USER_NVMRDY
bool(*const USER_NVMRDY)(void)
Returns the status of the NVM module.
TUser_Prog
This union defines the return value of USER_PROG.
Definition: bootrom.h:235
USER_ECC_CHECK
uint8(*const USER_ECC_CHECK)(const uint32 *ecc2addr)
This function returns the address of the last ECC fail.
USER_MAPRAM_INIT
uint8(*const USER_MAPRAM_INIT)(void)
This function performs a MapRAM reinitialization.
TCustomerID
This union defines the return parameter of GetCustomerID.
Definition: bootrom.h:166
uint16
unsigned short uint16
16 bit unsigned value
Definition: types.h:140
USER_VERIFY_PAGE
uint8(*const USER_VERIFY_PAGE)(const uint32 page_addr)
This function performs a verify on a programmed page.
USER_CFLASH_RD_PROT_EN
bool(*const USER_CFLASH_RD_PROT_EN)(uint16 cflash_pw)
Sets the temporary code flash read protection. The password is compared against the.
USER_DFLASH_RD_PROT_DIS
bool(*const USER_DFLASH_RD_PROT_DIS)(uint16 dflash_pw)
Removes the temporary data flash read protection. The password is compared against the.
TUser_ERASEPG_VERIFY
BF-Step only: This union defines the return value of USER_ERASEPG_VERIFY.
Definition: bootrom.h:340
T100TP_Data
These structs define the input data structure for USER_100TP_PROG.
Definition: bootrom.h:191
TUser_NVM_ECC_Check
This union defines the return value of USER_NVM_ECC_CHECK.
Definition: bootrom.h:288
uint8
unsigned char uint8
8 bit unsigned value
Definition: types.h:139
USER_RAM_MBIST_START
uint8(*const USER_RAM_MBIST_START)(const uint16 RAM_MBIST_Stop_Addr, const uint16 RAM_MBIST_Start_addr)
This function performs a MBIST on the RAM for a given address range.
USER_NVM_ECC_CHECK
uint8(*const USER_NVM_ECC_CHECK)(void)
This function performs a ECC check on the entire NVM by reading the same.
ProgramPage
uint8 ProgramPage(uint32 addr, const uint8 *buf, uint8 Branch, uint8 Correct, uint8 FailPageErase)
Programms a page to NVM.
GetCustomerID
bool GetCustomerID(const TCustomerID *CustID)
Reads the Customer ID out of the 100TP NVM.
USER_ERASEPG
uint8(*const USER_ERASEPG)(const uint32 *NVMPageAddr, const uint8 XRAM_RTNE_BRNCHNG)
Erases a flash page, for code flash as well as data flash.
USER_ERASE_SECTOR_VERIFY
uint8(*const USER_ERASE_SECTOR_VERIFY)(const uint32 sector_addr)
This function performs a verify on an erased sector.
USER_DFLASH_RD_PROT_EN
bool(*const USER_DFLASH_RD_PROT_EN)(uint16 dflash_pw)
Sets the temporary data flash read protection. The password is compared against the.
uint32
unsigned int uint32
32 bit unsigned value
Definition: types.h:141
USER_ERASEPG_VERIFY
uint8(*const USER_ERASEPG_VERIFY)(const uint32 page_addr)
This function performs a verify on an erased page.
USER_CFLASH_WR_PROT_DIS
bool(*const USER_CFLASH_WR_PROT_DIS)(uint16 cflash_pw)
Removes the temporary code flash write protection. The password is compared against the.
USER_NVM_CONFIG
bool(*const USER_NVM_CONFIG)(const uint8 *NVMSize, const uint8 *MapRAMSize)
Reads the total size of code flash and total size of data flash for this device.
USER_NVM_ECC2ADDR
uint8(*const USER_NVM_ECC2ADDR)(const uint16 *ecc2addr)
This function returns the last NVM address causing a double bit ECC failure.
USER_CFLASH_WR_PROT_EN
bool(*const USER_CFLASH_WR_PROT_EN)(uint16 cflash_pw)
Sets the temporary code flash write protection. The password is compared against the.
USER_PROG
uint8(*const USER_PROG)(const uint8 PROG_FLAG)
Writes the assembly buffer content to the flash page addressed by USER_OPENAB.
USER_OPENAB
uint8(*const USER_OPENAB)(const uint32 NVMPAGEAddr)
Opens the assembly buffer for writing to a flash page, for code flash as well as data flash.
TUser_100TP_Prog
This union defines the return value of USER_100TP_PROG.
Definition: bootrom.h:202
bool
enum _bool bool
TUser_OpenAB
This union defines the return value of USER_OPENAB.
Definition: bootrom.h:254
TUser_MAPRAM_Init
This union defines the return value of USER_MAPRAM_INIT.
Definition: bootrom.h:270
TUser_VERIFY_PAGE
BF-Step only: This union defines the return value of USER_VERIFY_PAGE.
Definition: bootrom.h:358
USER_DFLASH_WR_PROT_EN
bool(*const USER_DFLASH_WR_PROT_EN)(uint16 dflash_pw)
Sets the temporary data flash write protection. The password is compared against the.
TData
Definition: bootrom.h:185
TUser_ECC_Check
This union defines the return value of USER_ECC_CHECK.
Definition: bootrom.h:305
USER_100TP_PROG
uint8(*const USER_100TP_PROG)(const uint8 OTP_Page_Sel)
This function writes data to a selected 100TP page.
USER_ERASE_SECTOR
uint8(*const USER_ERASE_SECTOR)(const uint32 NVMSectorAddr)
This function performs a sector erase.
TUser_ERASE_SECTOR_VERIFY
BF-Step only: This union defines the return value of USER_ERASE_SECTOR_VERIFY.
Definition: bootrom.h:322
USER_READ_CAL
uint8(*const USER_READ_CAL)(const uint8 NumOfBytes, const uint8 CSAddr, const uint16 RAMAddr)
Reads the NVM calibration data.
USER_READ_100TP
bool(*const USER_READ_100TP)(const uint8 OTP_Page_Sel, const uint8 DataOffset, const uint32 *HundredTPData)
This function reads four bytes from a selected 100TP page.