MSPM0C1105_C1106 Driver Library  2.05.00.05
dl_factoryregion.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, 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 /*!****************************************************************************
33  * @file dl_factoryregion.h
34  * @brief Factory Region Driver Library
35  * @defgroup FACTORYREGION Factory Region (FACTORYREGION)
36  *
37  * @anchor ti_dl_dl_factoryregion_Overview
38  * # Overview
39  *
40  * <hr>
41  ******************************************************************************
42  */
46 #ifndef ti_dl_dl_factoryregion__include
47 #define ti_dl_dl_factoryregion__include
48 
49 #include <stdbool.h>
50 #include <stdint.h>
51 
52 #include <ti/devices/msp/msp.h>
53 #include <ti/driverlib/dl_common.h>
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
60 #ifdef __MSPM0GX51X_TRIM_CACHE__
61 
70 #define DL_FACTORYREGION_TRIM_FLAG_IS_SET (0xCAFECAFE)
71 
73 typedef struct {
75  uint32_t TRACEID;
77  uint32_t DEVICEID;
79  uint32_t USERID;
81  uint32_t BSLPIN_UART;
83  uint32_t BSLPIN_I2C;
85  uint32_t BSLPIN_INVOKE;
87  uint32_t SRAMFLASH;
89  uint32_t PLLSTARTUP0_4_8MHZ;
91  uint32_t PLLSTARTUP1_4_8MHZ;
93  uint32_t PLLSTARTUP0_8_16MHZ;
95  uint32_t PLLSTARTUP1_8_16MHZ;
97  uint32_t PLLSTARTUP0_16_32MHZ;
99  uint32_t PLLSTARTUP1_16_32MHZ;
101  uint32_t PLLSTARTUP0_32_48MHZ;
103  uint32_t PLLSTARTUP1_32_48MHZ;
105  uint32_t TEMP_SENSE0;
107  uint32_t DATA_SET;
108 } DL_FACTORYREGION_TrimValues;
109 
113 extern DL_FACTORYREGION_TrimValues *FACTORYVALUE;
114 
124 __STATIC_INLINE bool DL_FactoryRegion_isTrimTableInSram(void)
125 {
126  return (FACTORYVALUE->DATA_SET == DL_FACTORYREGION_TRIM_FLAG_IS_SET);
127 }
128 #endif
129 
135 __STATIC_INLINE uint16_t DL_FactoryRegion_getMAINFlashSize(void)
136 {
137  /* Save CPUSS state and then disable the cache before TRIM access */
138  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
141 
142 #ifdef __MSPM0GX51X_TRIM_CACHE__
143  uint16_t flashSize;
144  if (DL_FactoryRegion_isTrimTableInSram()) {
145  flashSize = FACTORYVALUE->SRAMFLASH &
146  FACTORYREGION_SRAMFLASH_MAINFLASH_SZ_MASK;
147  } else {
148  flashSize = FACTORYREGION->SRAMFLASH &
149  FACTORYREGION_SRAMFLASH_MAINFLASH_SZ_MASK;
150  }
151 #else
152  uint16_t flashSize =
153  FACTORYREGION->SRAMFLASH & FACTORYREGION_SRAMFLASH_MAINFLASH_SZ_MASK;
154 #endif
155  /* Restore CPUSS state */
156  CPUSS->CTL = ctlTemp;
157 
158  return flashSize;
159 }
160 
166 __STATIC_INLINE uint16_t DL_FactoryRegion_getSRAMFlashSize(void)
167 {
168  /* Save CPUSS state and then disable the cache before TRIM access */
169  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
172 
173 #ifdef __MSPM0GX51X_TRIM_CACHE__
174  uint16_t flashSize;
175  if (DL_FactoryRegion_isTrimTableInSram()) {
176  flashSize =
177  (FACTORYVALUE->SRAMFLASH & FACTORYREGION_SRAMFLASH_SRAM_SZ_MASK) >>
178  FACTORYREGION_SRAMFLASH_SRAM_SZ_OFS;
179  } else {
180  flashSize = (FACTORYREGION->SRAMFLASH &
181  FACTORYREGION_SRAMFLASH_SRAM_SZ_MASK) >>
182  FACTORYREGION_SRAMFLASH_SRAM_SZ_OFS;
183  }
184 #else
185  uint16_t flashSize =
186  (FACTORYREGION->SRAMFLASH & FACTORYREGION_SRAMFLASH_SRAM_SZ_MASK) >>
187  FACTORYREGION_SRAMFLASH_SRAM_SZ_OFS;
188 #endif
189  /* Restore CPUSS state */
190  CPUSS->CTL = ctlTemp;
191 
192  return flashSize;
193 }
194 
200 __STATIC_INLINE uint8_t DL_FactoryRegion_getDATAFlashSize(void)
201 {
202  /* Save CPUSS state and then disable the cache before TRIM access */
203  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
206 
207 #ifdef __MSPM0GX51X_TRIM_CACHE__
208  uint16_t flashSize;
209  if (DL_FactoryRegion_isTrimTableInSram()) {
210  flashSize = (FACTORYVALUE->SRAMFLASH &
211  FACTORYREGION_SRAMFLASH_DATAFLASH_SZ_MASK) >>
212  FACTORYREGION_SRAMFLASH_DATAFLASH_SZ_OFS;
213  } else {
214  flashSize = (FACTORYREGION->SRAMFLASH &
215  FACTORYREGION_SRAMFLASH_DATAFLASH_SZ_MASK) >>
216  FACTORYREGION_SRAMFLASH_DATAFLASH_SZ_OFS;
217  }
218 #else
219  uint16_t flashSize = (FACTORYREGION->SRAMFLASH &
220  FACTORYREGION_SRAMFLASH_DATAFLASH_SZ_MASK) >>
221  FACTORYREGION_SRAMFLASH_DATAFLASH_SZ_OFS;
222 #endif
223 
224  /* Restore CPUSS state */
225  CPUSS->CTL = ctlTemp;
226 
227  return flashSize;
228 }
229 
235 __STATIC_INLINE uint8_t DL_FactoryRegion_getNumBanks(void)
236 {
237  /* Save CPUSS state and then disable the cache before TRIM access */
238  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
241 
242 #ifdef __MSPM0GX51X_TRIM_CACHE__
243  uint8_t numBanks;
244  if (DL_FactoryRegion_isTrimTableInSram()) {
245  numBanks = ((FACTORYVALUE->SRAMFLASH &
246  FACTORYREGION_SRAMFLASH_MAINNUMBANKS_MASK) >>
247  FACTORYREGION_SRAMFLASH_MAINNUMBANKS_OFS) +
248  (uint8_t) 1;
249  } else {
250  numBanks = ((FACTORYREGION->SRAMFLASH &
251  FACTORYREGION_SRAMFLASH_MAINNUMBANKS_MASK) >>
252  FACTORYREGION_SRAMFLASH_MAINNUMBANKS_OFS) +
253  (uint8_t) 1;
254  }
255 #else
256  uint8_t numBanks = ((FACTORYREGION->SRAMFLASH &
257  FACTORYREGION_SRAMFLASH_MAINNUMBANKS_MASK) >>
258  FACTORYREGION_SRAMFLASH_MAINNUMBANKS_OFS) +
259  (uint8_t) 1;
260 #endif
261 
262  /* Restore CPUSS state */
263  CPUSS->CTL = ctlTemp;
264 
265  return numBanks;
266 }
267 
273 __STATIC_INLINE uint32_t DL_FactoryRegion_getTraceID(void)
274 {
275  /* Save CPUSS state and then disable the cache before TRIM access */
276  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
279 
280 #ifdef __MSPM0GX51X_TRIM_CACHE__
281  uint32_t traceID;
282  if (DL_FactoryRegion_isTrimTableInSram()) {
283  traceID = FACTORYVALUE->TRACEID & FACTORYREGION_TRACEID_DATA_MASK;
284  } else {
285  traceID = FACTORYREGION->TRACEID & FACTORYREGION_TRACEID_DATA_MASK;
286  }
287 #else
288  uint32_t traceID =
289  FACTORYREGION->TRACEID & FACTORYREGION_TRACEID_DATA_MASK;
290 #endif
291 
292  /* Restore CPUSS state */
293  CPUSS->CTL = ctlTemp;
294 
295  return traceID;
296 }
297 
303 __STATIC_INLINE uint16_t DL_FactoryRegion_getManufacturerCode(void)
304 {
305  /* Save CPUSS state and then disable the cache before TRIM access */
306  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
309 
310 #ifdef __MSPM0GX51X_TRIM_CACHE__
311  uint16_t manufacturerCode;
312  if (DL_FactoryRegion_isTrimTableInSram()) {
313  manufacturerCode = (FACTORYVALUE->DEVICEID &
314  FACTORYREGION_DEVICEID_MANUFACTURER_MASK) >>
315  FACTORYREGION_DEVICEID_MANUFACTURER_OFS;
316  } else {
317  manufacturerCode = (FACTORYREGION->DEVICEID &
318  FACTORYREGION_DEVICEID_MANUFACTURER_MASK) >>
319  FACTORYREGION_DEVICEID_MANUFACTURER_OFS;
320  }
321 #else
322  uint16_t manufacturerCode =
323  (FACTORYREGION->DEVICEID & FACTORYREGION_DEVICEID_MANUFACTURER_MASK) >>
324  FACTORYREGION_DEVICEID_MANUFACTURER_OFS;
325 #endif
326 
327  /* Restore CPUSS state */
328  CPUSS->CTL = ctlTemp;
329 
330  return manufacturerCode;
331 }
332 
338 __STATIC_INLINE uint16_t DL_FactoryRegion_getPartNumber(void)
339 {
340  /* Save CPUSS state and then disable the cache before TRIM access */
341  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
344 
345 #ifdef __MSPM0GX51X_TRIM_CACHE__
346  uint16_t partNumber;
347  if (DL_FactoryRegion_isTrimTableInSram()) {
348  partNumber =
349  (FACTORYVALUE->DEVICEID & FACTORYREGION_DEVICEID_PARTNUM_MASK) >>
350  FACTORYREGION_DEVICEID_PARTNUM_OFS;
351  } else {
352  partNumber =
353  (FACTORYREGION->DEVICEID & FACTORYREGION_DEVICEID_PARTNUM_MASK) >>
354  FACTORYREGION_DEVICEID_PARTNUM_OFS;
355  }
356 #else
357  uint16_t partNumber =
358  (FACTORYREGION->DEVICEID & FACTORYREGION_DEVICEID_PARTNUM_MASK) >>
359  FACTORYREGION_DEVICEID_PARTNUM_OFS;
360 #endif
361 
362  /* Restore CPUSS state */
363  CPUSS->CTL = ctlTemp;
364 
365  return partNumber;
366 }
367 
373 __STATIC_INLINE uint8_t DL_FactoryRegion_getVersion(void)
374 {
375  /* Save CPUSS state and then disable the cache before TRIM access */
376  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
379 
380 #ifdef __MSPM0GX51X_TRIM_CACHE__
381  uint8_t version;
382  if (DL_FactoryRegion_isTrimTableInSram()) {
383  version =
384  (FACTORYVALUE->DEVICEID & FACTORYREGION_DEVICEID_VERSION_MASK) >>
385  FACTORYREGION_DEVICEID_VERSION_OFS;
386  } else {
387  version =
388  (FACTORYREGION->DEVICEID & FACTORYREGION_DEVICEID_VERSION_MASK) >>
389  FACTORYREGION_DEVICEID_VERSION_OFS;
390  }
391 #else
392  uint8_t version =
393  (FACTORYREGION->DEVICEID & FACTORYREGION_DEVICEID_VERSION_MASK) >>
394  FACTORYREGION_DEVICEID_VERSION_OFS;
395 #endif
396 
397  /* Restore CPUSS state */
398  CPUSS->CTL = ctlTemp;
399 
400  return version;
401 }
402 
408 __STATIC_INLINE uint16_t DL_FactoryRegion_getUserIDPart(void)
409 {
410  /* Save CPUSS state and then disable the cache before TRIM access */
411  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
414 
415 #ifdef __MSPM0GX51X_TRIM_CACHE__
416  uint16_t userIDPart;
417  if (DL_FactoryRegion_isTrimTableInSram()) {
418  userIDPart = (FACTORYVALUE->USERID & FACTORYREGION_USERID_PART_MASK) >>
419  FACTORYREGION_USERID_PART_OFS;
420  } else {
421  userIDPart =
422  (FACTORYREGION->USERID & FACTORYREGION_USERID_PART_MASK) >>
423  FACTORYREGION_USERID_PART_OFS;
424  }
425 #else
426  uint16_t userIDPart =
427  (FACTORYREGION->USERID & FACTORYREGION_USERID_PART_MASK) >>
428  FACTORYREGION_USERID_PART_OFS;
429 #endif
430 
431  /* Restore CPUSS state */
432  CPUSS->CTL = ctlTemp;
433 
434  return userIDPart;
435 }
436 
442 __STATIC_INLINE uint8_t DL_FactoryRegion_getUserIDVariant(void)
443 {
444  /* Save CPUSS state and then disable the cache before TRIM access */
445  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
448 
449 #ifdef __MSPM0GX51X_TRIM_CACHE__
450  uint8_t userIDVariant;
451  if (DL_FactoryRegion_isTrimTableInSram()) {
452  userIDVariant =
453  (FACTORYVALUE->USERID & FACTORYREGION_USERID_VARIANT_MASK) >>
454  FACTORYREGION_USERID_VARIANT_OFS;
455  } else {
456  userIDVariant =
457  (FACTORYREGION->USERID & FACTORYREGION_USERID_VARIANT_MASK) >>
458  FACTORYREGION_USERID_VARIANT_OFS;
459  }
460 #else
461  uint8_t userIDVariant =
462  (FACTORYREGION->USERID & FACTORYREGION_USERID_VARIANT_MASK) >>
463  FACTORYREGION_USERID_VARIANT_OFS;
464 #endif
465 
466  /* Restore CPUSS state */
467  CPUSS->CTL = ctlTemp;
468 
469  return userIDVariant;
470 }
471 
482 __STATIC_INLINE uint8_t DL_FactoryRegion_getUserIDMinorRev(void)
483 {
484  /* Save CPUSS state and then disable the cache before TRIM access */
485  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
488 
489 #ifdef __MSPM0GX51X_TRIM_CACHE__
490  uint8_t minorRev;
491  if (DL_FactoryRegion_isTrimTableInSram()) {
492  minorRev =
493  (FACTORYVALUE->USERID & FACTORYREGION_USERID_MINORREV_MASK) >>
494  FACTORYREGION_USERID_MINORREV_OFS;
495  } else {
496  minorRev =
497  (FACTORYREGION->USERID & FACTORYREGION_USERID_MINORREV_MASK) >>
498  FACTORYREGION_USERID_MINORREV_OFS;
499  }
500 #else
501  uint8_t minorRev =
502  (FACTORYREGION->USERID & FACTORYREGION_USERID_MINORREV_MASK) >>
503  FACTORYREGION_USERID_MINORREV_OFS;
504 #endif
505 
506  /* Restore CPUSS state */
507  CPUSS->CTL = ctlTemp;
508 
509  return minorRev;
510 }
511 
521 __STATIC_INLINE uint8_t DL_FactoryRegion_getUserIDMajorRev(void)
522 {
523  /* Save CPUSS state and then disable the cache before TRIM access */
524  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
527 
528 #ifdef __MSPM0GX51X_TRIM_CACHE__
529  uint8_t majorRev;
530  if (DL_FactoryRegion_isTrimTableInSram()) {
531  majorRev =
532  (FACTORYVALUE->USERID & FACTORYREGION_USERID_MAJORREV_MASK) >>
533  FACTORYREGION_USERID_MAJORREV_OFS;
534  } else {
535  majorRev =
536  (FACTORYREGION->USERID & FACTORYREGION_USERID_MAJORREV_MASK) >>
537  FACTORYREGION_USERID_MAJORREV_OFS;
538  }
539 #else
540  uint8_t majorRev =
541  (FACTORYREGION->USERID & FACTORYREGION_USERID_MAJORREV_MASK) >>
542  FACTORYREGION_USERID_MAJORREV_OFS;
543 #endif
544 
545  /* Restore CPUSS state */
546  CPUSS->CTL = ctlTemp;
547 
548  return majorRev;
549 }
550 
556 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTRXDPad(void)
557 {
558  /* Save CPUSS state and then disable the cache before TRIM access */
559  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
562 
563 #ifdef __MSPM0GX51X_TRIM_CACHE__
564  uint8_t bslUARTRXDPad;
565  if (DL_FactoryRegion_isTrimTableInSram()) {
566  bslUARTRXDPad = (FACTORYVALUE->BSLPIN_UART &
567  FACTORYREGION_BSLPIN_UART_UART_RXD_PAD_MASK) >>
568  FACTORYREGION_BSLPIN_UART_UART_RXD_PAD_OFS;
569  } else {
570  bslUARTRXDPad = (FACTORYREGION->BSLPIN_UART &
571  FACTORYREGION_BSLPIN_UART_UART_RXD_PAD_MASK) >>
572  FACTORYREGION_BSLPIN_UART_UART_RXD_PAD_OFS;
573  }
574 #else
575  uint8_t bslUARTRXDPad = (FACTORYREGION->BSLPIN_UART &
576  FACTORYREGION_BSLPIN_UART_UART_RXD_PAD_MASK) >>
577  FACTORYREGION_BSLPIN_UART_UART_RXD_PAD_OFS;
578 #endif
579 
580  /* Restore CPUSS state */
581  CPUSS->CTL = ctlTemp;
582 
583  return bslUARTRXDPad;
584 }
585 
591 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTRXDFunction(void)
592 {
593  /* Save CPUSS state and then disable the cache before TRIM access */
594  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
597 
598 #ifdef __MSPM0GX51X_TRIM_CACHE__
599  uint8_t bslUARTRXDFunction;
600  if (DL_FactoryRegion_isTrimTableInSram()) {
601  bslUARTRXDFunction = (FACTORYVALUE->BSLPIN_UART &
602  FACTORYREGION_BSLPIN_UART_UART_RXD_PF_MASK) >>
603  FACTORYREGION_BSLPIN_UART_UART_RXD_PF_OFS;
604  } else {
605  bslUARTRXDFunction = (FACTORYREGION->BSLPIN_UART &
606  FACTORYREGION_BSLPIN_UART_UART_RXD_PF_MASK) >>
607  FACTORYREGION_BSLPIN_UART_UART_RXD_PF_OFS;
608  }
609 #else
610  uint8_t bslUARTRXDFunction =
611  (FACTORYREGION->BSLPIN_UART &
612  FACTORYREGION_BSLPIN_UART_UART_RXD_PF_MASK) >>
613  FACTORYREGION_BSLPIN_UART_UART_RXD_PF_OFS;
614 #endif
615 
616  /* Restore CPUSS state */
617  CPUSS->CTL = ctlTemp;
618 
619  return bslUARTRXDFunction;
620 }
621 
627 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTTXDPad(void)
628 {
629  /* Save CPUSS state and then disable the cache before TRIM access */
630  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
633 
634 #ifdef __MSPM0GX51X_TRIM_CACHE__
635  uint8_t bslUARTTXDPad;
636  if (DL_FactoryRegion_isTrimTableInSram()) {
637  bslUARTTXDPad = (FACTORYVALUE->BSLPIN_UART &
638  FACTORYREGION_BSLPIN_UART_UART_TXD_PAD_MASK) >>
639  FACTORYREGION_BSLPIN_UART_UART_TXD_PAD_OFS;
640  } else {
641  bslUARTTXDPad = (FACTORYREGION->BSLPIN_UART &
642  FACTORYREGION_BSLPIN_UART_UART_TXD_PAD_MASK) >>
643  FACTORYREGION_BSLPIN_UART_UART_TXD_PAD_OFS;
644  }
645 #else
646  uint8_t bslUARTTXDPad = (FACTORYREGION->BSLPIN_UART &
647  FACTORYREGION_BSLPIN_UART_UART_TXD_PAD_MASK) >>
648  FACTORYREGION_BSLPIN_UART_UART_TXD_PAD_OFS;
649 #endif
650  /* Restore CPUSS state */
651  CPUSS->CTL = ctlTemp;
652 
653  return bslUARTTXDPad;
654 }
655 
661 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTTXDFunction(void)
662 {
663  /* Save CPUSS state and then disable the cache before TRIM access */
664  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
667 
668 #ifdef __MSPM0GX51X_TRIM_CACHE__
669  uint8_t bslUARTTXDFunction;
670  if (DL_FactoryRegion_isTrimTableInSram()) {
671  bslUARTTXDFunction = (FACTORYVALUE->BSLPIN_UART &
672  FACTORYREGION_BSLPIN_UART_UART_TXD_PF_MASK) >>
673  FACTORYREGION_BSLPIN_UART_UART_TXD_PF_OFS;
674  } else {
675  bslUARTTXDFunction = (FACTORYREGION->BSLPIN_UART &
676  FACTORYREGION_BSLPIN_UART_UART_TXD_PF_MASK) >>
677  FACTORYREGION_BSLPIN_UART_UART_TXD_PF_OFS;
678  }
679 #else
680  uint8_t bslUARTTXDFunction =
681  (FACTORYREGION->BSLPIN_UART &
682  FACTORYREGION_BSLPIN_UART_UART_TXD_PF_MASK) >>
683  FACTORYREGION_BSLPIN_UART_UART_TXD_PF_OFS;
684 #endif
685 
686  /* Restore CPUSS state */
687  CPUSS->CTL = ctlTemp;
688 
689  return bslUARTTXDFunction;
690 }
691 
697 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSDAPad(void)
698 {
699  /* Save CPUSS state and then disable the cache before TRIM access */
700  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
703 
704 #ifdef __MSPM0GX51X_TRIM_CACHE__
705  uint8_t bslI2CSDAPad;
706  if (DL_FactoryRegion_isTrimTableInSram()) {
707  bslI2CSDAPad = (FACTORYVALUE->BSLPIN_I2C &
708  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PAD_MASK) >>
709  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PAD_OFS;
710  } else {
711  bslI2CSDAPad = (FACTORYREGION->BSLPIN_I2C &
712  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PAD_MASK) >>
713  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PAD_OFS;
714  }
715 #else
716  uint8_t bslI2CSDAPad = (FACTORYREGION->BSLPIN_I2C &
717  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PAD_MASK) >>
718  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PAD_OFS;
719 #endif
720 
721  /* Restore CPUSS state */
722  CPUSS->CTL = ctlTemp;
723 
724  return bslI2CSDAPad;
725 }
726 
732 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSDAFunction(void)
733 {
734  /* Save CPUSS state and then disable the cache before TRIM access */
735  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
738 
739 #ifdef __MSPM0GX51X_TRIM_CACHE__
740  uint8_t bslI2CSDAFunction;
741  if (DL_FactoryRegion_isTrimTableInSram()) {
742  bslI2CSDAFunction = (FACTORYVALUE->BSLPIN_I2C &
743  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PF_MASK) >>
744  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PF_OFS;
745  } else {
746  bslI2CSDAFunction = (FACTORYREGION->BSLPIN_I2C &
747  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PF_MASK) >>
748  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PF_OFS;
749  }
750 #else
751  uint8_t bslI2CSDAFunction =
752  (FACTORYREGION->BSLPIN_I2C &
753  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PF_MASK) >>
754  FACTORYREGION_BSLPIN_I2C_I2C_SDA_PF_OFS;
755 #endif
756 
757  /* Restore CPUSS state */
758  CPUSS->CTL = ctlTemp;
759 
760  return bslI2CSDAFunction;
761 }
762 
768 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSCLPad(void)
769 {
770  /* Save CPUSS state and then disable the cache before TRIM access */
771  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
774 
775 #ifdef __MSPM0GX51X_TRIM_CACHE__
776  uint8_t bslI2CSCLPad;
777  if (DL_FactoryRegion_isTrimTableInSram()) {
778  bslI2CSCLPad = (FACTORYVALUE->BSLPIN_I2C &
779  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PAD_MASK) >>
780  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PAD_OFS;
781  } else {
782  bslI2CSCLPad = (FACTORYREGION->BSLPIN_I2C &
783  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PAD_MASK) >>
784  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PAD_OFS;
785  }
786 #else
787  uint8_t bslI2CSCLPad = (FACTORYREGION->BSLPIN_I2C &
788  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PAD_MASK) >>
789  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PAD_OFS;
790 #endif
791 
792  /* Restore CPUSS state */
793  CPUSS->CTL = ctlTemp;
794 
795  return bslI2CSCLPad;
796 }
797 
803 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSCLFunction(void)
804 {
805  /* Save CPUSS state and then disable the cache before TRIM access */
806  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
809 
810 #ifdef __MSPM0GX51X_TRIM_CACHE__
811  uint8_t bslI2CSCLFunction;
812  if (DL_FactoryRegion_isTrimTableInSram()) {
813  bslI2CSCLFunction = (FACTORYVALUE->BSLPIN_I2C &
814  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PF_MASK) >>
815  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PF_OFS;
816  } else {
817  bslI2CSCLFunction = (FACTORYREGION->BSLPIN_I2C &
818  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PF_MASK) >>
819  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PF_OFS;
820  }
821 #else
822  uint8_t bslI2CSCLFunction =
823  (FACTORYREGION->BSLPIN_I2C &
824  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PF_MASK) >>
825  FACTORYREGION_BSLPIN_I2C_I2C_SCL_PF_OFS;
826 #endif
827 
828  /* Restore CPUSS state */
829  CPUSS->CTL = ctlTemp;
830 
831  return bslI2CSCLFunction;
832 }
833 
839 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinInvokeGPIOLevel(void)
840 {
841  /* Save CPUSS state and then disable the cache before TRIM access */
842  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
845 
846 #ifdef __MSPM0GX51X_TRIM_CACHE__
847  uint8_t bslInvokeGPIOLevel;
848  if (DL_FactoryRegion_isTrimTableInSram()) {
849  bslInvokeGPIOLevel =
850  (FACTORYVALUE->BSLPIN_INVOKE &
851  FACTORYREGION_BSLPIN_INVOKE_GPIO_LEVEL_MASK) >>
852  FACTORYREGION_BSLPIN_INVOKE_GPIO_LEVEL_OFS;
853  } else {
854  bslInvokeGPIOLevel =
855  (FACTORYREGION->BSLPIN_INVOKE &
856  FACTORYREGION_BSLPIN_INVOKE_GPIO_LEVEL_MASK) >>
857  FACTORYREGION_BSLPIN_INVOKE_GPIO_LEVEL_OFS;
858  }
859 #else
860  uint8_t bslInvokeGPIOLevel =
861  (FACTORYREGION->BSLPIN_INVOKE &
862  FACTORYREGION_BSLPIN_INVOKE_GPIO_LEVEL_MASK) >>
863  FACTORYREGION_BSLPIN_INVOKE_GPIO_LEVEL_OFS;
864 #endif
865 
866  /* Restore CPUSS state */
867  CPUSS->CTL = ctlTemp;
868 
869  return bslInvokeGPIOLevel;
870 }
871 
877 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinInvokeGPIOPin(void)
878 {
879  /* Save CPUSS state and then disable the cache before TRIM access */
880  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
883 
884 #ifdef __MSPM0GX51X_TRIM_CACHE__
885  uint8_t bslInvokeGPIOPin;
886  if (DL_FactoryRegion_isTrimTableInSram()) {
887  bslInvokeGPIOPin =
888  (FACTORYVALUE->BSLPIN_INVOKE &
889  FACTORYREGION_BSLPIN_INVOKE_GPIO_PIN_SEL_MASK) >>
890  FACTORYREGION_BSLPIN_INVOKE_GPIO_PIN_SEL_OFS;
891  } else {
892  bslInvokeGPIOPin =
893  (FACTORYREGION->BSLPIN_INVOKE &
894  FACTORYREGION_BSLPIN_INVOKE_GPIO_PIN_SEL_MASK) >>
895  FACTORYREGION_BSLPIN_INVOKE_GPIO_PIN_SEL_OFS;
896  }
897 #else
898  uint8_t bslInvokeGPIOPin =
899  (FACTORYREGION->BSLPIN_INVOKE &
900  FACTORYREGION_BSLPIN_INVOKE_GPIO_PIN_SEL_MASK) >>
901  FACTORYREGION_BSLPIN_INVOKE_GPIO_PIN_SEL_OFS;
902 #endif
903  /* Restore CPUSS state */
904  CPUSS->CTL = ctlTemp;
905 
906  return bslInvokeGPIOPin;
907 }
908 
914 __STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinInvokeGPIOModule(void)
915 {
916  /* Save CPUSS state and then disable the cache before TRIM access */
917  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
920 
921 #ifdef __MSPM0GX51X_TRIM_CACHE__
922  uint8_t bslInvokeGPIOModule;
923  if (DL_FactoryRegion_isTrimTableInSram()) {
924  bslInvokeGPIOModule =
925  (FACTORYVALUE->BSLPIN_INVOKE &
926  FACTORYREGION_BSLPIN_INVOKE_GPIO_REG_SEL_MASK) >>
927  FACTORYREGION_BSLPIN_INVOKE_GPIO_REG_SEL_OFS;
928  } else {
929  bslInvokeGPIOModule =
930  (FACTORYREGION->BSLPIN_INVOKE &
931  FACTORYREGION_BSLPIN_INVOKE_GPIO_REG_SEL_MASK) >>
932  FACTORYREGION_BSLPIN_INVOKE_GPIO_REG_SEL_OFS;
933  }
934 #else
935  uint8_t bslInvokeGPIOModule =
936  (FACTORYREGION->BSLPIN_INVOKE &
937  FACTORYREGION_BSLPIN_INVOKE_GPIO_REG_SEL_MASK) >>
938  FACTORYREGION_BSLPIN_INVOKE_GPIO_REG_SEL_OFS;
939 #endif
940 
941  /* Restore CPUSS state */
942  CPUSS->CTL = ctlTemp;
943 
944  return bslInvokeGPIOModule;
945 }
946 
953 {
954  /* Save CPUSS state and then disable the cache before TRIM access */
955  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
958 
959 #ifdef __MSPM0GX51X_TRIM_CACHE__
960  uint8_t bslInvokeGPIOModulePad;
961  if (DL_FactoryRegion_isTrimTableInSram()) {
962  bslInvokeGPIOModulePad =
963  (FACTORYVALUE->BSLPIN_INVOKE &
964  FACTORYREGION_BSLPIN_INVOKE_BSL_PAD_MASK) >>
965  FACTORYREGION_BSLPIN_INVOKE_BSL_PAD_OFS;
966  } else {
967  bslInvokeGPIOModulePad =
968  (FACTORYREGION->BSLPIN_INVOKE &
969  FACTORYREGION_BSLPIN_INVOKE_BSL_PAD_MASK) >>
970  FACTORYREGION_BSLPIN_INVOKE_BSL_PAD_OFS;
971  }
972 #else
973  uint8_t bslInvokeGPIOModulePad =
974  (FACTORYREGION->BSLPIN_INVOKE &
975  FACTORYREGION_BSLPIN_INVOKE_BSL_PAD_MASK) >>
976  FACTORYREGION_BSLPIN_INVOKE_BSL_PAD_OFS;
977 #endif
978 
979  /* Restore CPUSS state */
980  CPUSS->CTL = ctlTemp;
981 
982  return bslInvokeGPIOModulePad;
983 }
984 
994 __STATIC_INLINE uint32_t DL_FactoryRegion_getTemperatureVoltage(void)
995 {
996  /* Save CPUSS state and then disable the cache before TRIM access */
997  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
1000 
1001 #ifdef __MSPM0GX51X_TRIM_CACHE__
1002  uint32_t tempVoltage;
1003  if (DL_FactoryRegion_isTrimTableInSram()) {
1004  tempVoltage = (FACTORYVALUE->TEMP_SENSE0 &
1005  FACTORYREGION_TEMP_SENSE0_DATA_MASK) >>
1006  FACTORYREGION_TEMP_SENSE0_DATA_OFS;
1007  } else {
1008  tempVoltage = (FACTORYREGION->TEMP_SENSE0 &
1009  FACTORYREGION_TEMP_SENSE0_DATA_MASK) >>
1010  FACTORYREGION_TEMP_SENSE0_DATA_OFS;
1011  }
1012 #else
1013  uint32_t tempVoltage =
1014  (FACTORYREGION->TEMP_SENSE0 & FACTORYREGION_TEMP_SENSE0_DATA_MASK) >>
1015  FACTORYREGION_TEMP_SENSE0_DATA_OFS;
1016 #endif
1017 
1018  /* Restore CPUSS state */
1019  CPUSS->CTL = ctlTemp;
1020 
1021  return tempVoltage;
1022 }
1023 
1031 __STATIC_INLINE uint32_t DL_FactoryRegion_getBOOTCRCData(void)
1032 {
1033  /* Save CPUSS state and then disable the cache before TRIM access */
1034  uint32_t ctlTemp = DL_CORE_getInstructionConfig();
1037 
1038  uint32_t BOOTCRCData =
1039  (FACTORYREGION->BOOTCRC & FACTORYREGION_BOOTCRC_DATA_MASK) >>
1040  FACTORYREGION_BOOTCRC_DATA_OFS;
1041 
1042  /* Restore CPUSS state */
1043  CPUSS->CTL = ctlTemp;
1044 
1045  return BOOTCRCData;
1046 }
1047 
1048 #ifdef __MSPM0GX51X_TRIM_CACHE__
1049 
1057 void DL_FactoryRegion_initTrimTable(void);
1058 #endif
1059 
1060 #ifdef __MSPM0C110X_ADC_ERR_06__
1061 
1069 __STATIC_INLINE float DL_FactoryRegion_getADCOffset(void)
1070 {
1071  return ((float) (*(int16_t *) (0x41C40040)));
1072 }
1073 #endif
1074 
1075 #ifdef __cplusplus
1076 }
1077 #endif
1078 
1079 #endif /* ti_dl_dl_factoryregion__include */
1080 
__STATIC_INLINE uint8_t DL_FactoryRegion_getUserIDMajorRev(void)
Get the value that preserves compatibility with lesser majorrev values.
Definition: dl_factoryregion.h:521
__STATIC_INLINE uint8_t DL_FactoryRegion_getUserIDVariant(void)
Get the bit pattern identifying a variant of a part.
Definition: dl_factoryregion.h:442
#define DL_CORE_PREFETCH_ENABLED
Enables instruction prefetch to Flash.
Definition: dl_core.h:85
CPU Core Driver Library.
__STATIC_INLINE void DL_CORE_configInstruction(uint32_t icache, uint32_t prefetch, uint32_t litCache)
Configures instruction caching in flash accesses and instruction prefetch to flash.
Definition: dl_core.h:193
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTTXDFunction(void)
Get the UART TXD Pin function selection value used by BSL.
Definition: dl_factoryregion.h:661
__STATIC_INLINE uint16_t DL_FactoryRegion_getManufacturerCode(void)
Get JEDEC bank and company code.
Definition: dl_factoryregion.h:303
DriverLib Common APIs.
#define DL_CORE_LITERAL_CACHE_ENABLED
Enables caching and prefetching of literals. This is set only if the ICACHE or PREFETCH bits have bee...
Definition: dl_core.h:102
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinInvokeGPIOModulePad(void)
Get the BSL invocation pin number.
Definition: dl_factoryregion.h:952
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSDAPad(void)
Get the I2C SDA Pin used by BSL.
Definition: dl_factoryregion.h:697
__STATIC_INLINE uint8_t DL_FactoryRegion_getNumBanks(void)
Get the number of Flash banks on the device.
Definition: dl_factoryregion.h:235
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTRXDFunction(void)
Get the UART RXD Pin function selection value used by BSL.
Definition: dl_factoryregion.h:591
__STATIC_INLINE uint8_t DL_FactoryRegion_getUserIDMinorRev(void)
Get the value that preserves compatibility with lesser minorrev values.
Definition: dl_factoryregion.h:482
__STATIC_INLINE uint16_t DL_FactoryRegion_getMAINFlashSize(void)
Get the size of the MAIN Flash region.
Definition: dl_factoryregion.h:135
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSCLFunction(void)
Get the I2C SCL Pin function selection value used by BSL.
Definition: dl_factoryregion.h:803
__STATIC_INLINE uint16_t DL_FactoryRegion_getPartNumber(void)
Get the part number of the device.
Definition: dl_factoryregion.h:338
__STATIC_INLINE uint32_t DL_FactoryRegion_getBOOTCRCData(void)
Get the BOOTCRC value.
Definition: dl_factoryregion.h:1031
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinInvokeGPIOModule(void)
Get the GPIO module selection used by BSL pin invocation.
Definition: dl_factoryregion.h:914
#define DL_CORE_CACHE_DISABLED
Disables instruction caching on flash access.
Definition: dl_core.h:74
__STATIC_INLINE uint16_t DL_FactoryRegion_getUserIDPart(void)
Get the bit pattern identifying the part.
Definition: dl_factoryregion.h:408
__STATIC_INLINE uint8_t DL_FactoryRegion_getDATAFlashSize(void)
Get the size of the DATA Flash region.
Definition: dl_factoryregion.h:200
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSCLPad(void)
Get the I2C SCL Pin used by BSL.
Definition: dl_factoryregion.h:768
__STATIC_INLINE uint32_t DL_FactoryRegion_getTemperatureVoltage(void)
Get the ADC conversion results of temperature sensor output voltage.
Definition: dl_factoryregion.h:994
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinInvokeGPIOLevel(void)
Get the GPIO level used by BSL pin invocation.
Definition: dl_factoryregion.h:839
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinI2CSDAFunction(void)
Get the I2C SDA Pin function selection value used by BSL.
Definition: dl_factoryregion.h:732
__STATIC_INLINE uint32_t DL_FactoryRegion_getTraceID(void)
Get the trace ID of the device.
Definition: dl_factoryregion.h:273
__STATIC_INLINE uint16_t DL_FactoryRegion_getSRAMFlashSize(void)
Get the size of the SRAM region.
Definition: dl_factoryregion.h:166
__STATIC_INLINE uint8_t DL_FactoryRegion_getVersion(void)
Get the version of the device.
Definition: dl_factoryregion.h:373
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinInvokeGPIOPin(void)
Get the GPIO Pin selection value used by BSL pin invocation.
Definition: dl_factoryregion.h:877
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTRXDPad(void)
Get the UART RXD PIN used by BSL.
Definition: dl_factoryregion.h:556
__STATIC_INLINE uint8_t DL_FactoryRegion_getBSLPinUARTTXDPad(void)
Get the UART TXD PIN used by BSL.
Definition: dl_factoryregion.h:627
__STATIC_INLINE uint32_t DL_CORE_getInstructionConfig(void)
Returns instruction caching, prefetch, and literal cache configuration.
Definition: dl_core.h:204
© Copyright 1995-2025, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale