1 #ifndef NRF91_ERRATAS_H
2 #define NRF91_ERRATAS_H
3 
4 /*
5 
6 Copyright (c) 2010 - 2020, Nordic Semiconductor ASA All rights reserved.
7 
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions are met:
10 
11 1. Redistributions of source code must retain the above copyright notice, this
12    list of conditions and the following disclaimer.
13 
14 2. Redistributions in binary form must reproduce the above copyright
15    notice, this list of conditions and the following disclaimer in the
16    documentation and/or other materials provided with the distribution.
17 
18 3. Neither the name of Nordic Semiconductor ASA nor the names of its
19    contributors may be used to endorse or promote products derived from this
20    software without specific prior written permission.
21 
22 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE
25 ARE DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
26 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 POSSIBILITY OF SUCH DAMAGE.
33 
34 */
35 
36 #include <stdint.h>
37 #include <stdbool.h>
38 #include "compiler_abstraction.h"
39 
40 static bool nrf91_errata_1(void) __UNUSED;
41 static bool nrf91_errata_2(void) __UNUSED;
42 static bool nrf91_errata_4(void) __UNUSED;
43 static bool nrf91_errata_6(void) __UNUSED;
44 static bool nrf91_errata_7(void) __UNUSED;
45 static bool nrf91_errata_8(void) __UNUSED;
46 static bool nrf91_errata_9(void) __UNUSED;
47 static bool nrf91_errata_10(void) __UNUSED;
48 static bool nrf91_errata_12(void) __UNUSED;
49 static bool nrf91_errata_14(void) __UNUSED;
50 static bool nrf91_errata_15(void) __UNUSED;
51 static bool nrf91_errata_16(void) __UNUSED;
52 static bool nrf91_errata_17(void) __UNUSED;
53 static bool nrf91_errata_20(void) __UNUSED;
54 static bool nrf91_errata_21(void) __UNUSED;
55 static bool nrf91_errata_23(void) __UNUSED;
56 static bool nrf91_errata_24(void) __UNUSED;
57 static bool nrf91_errata_26(void) __UNUSED;
58 static bool nrf91_errata_27(void) __UNUSED;
59 static bool nrf91_errata_28(void) __UNUSED;
60 static bool nrf91_errata_29(void) __UNUSED;
61 static bool nrf91_errata_30(void) __UNUSED;
62 static bool nrf91_errata_31(void) __UNUSED;
63 static bool nrf91_errata_32(void) __UNUSED;
64 static bool nrf91_errata_33(void) __UNUSED;
65 
nrf91_errata_1(void)66 static bool nrf91_errata_1(void)
67 {
68     #ifndef NRF91_SERIES
69         return false;
70     #else
71         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
72             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
73             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
74         #endif
75         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
76             if (var1 == 0x09)
77             {
78                 switch(var2)
79                 {
80                     case 0x01ul:
81                         return true;
82                     case 0x02ul:
83                         return true;
84                     default:
85                         return true;
86                 }
87             }
88         #endif
89         return false;
90     #endif
91 }
92 
nrf91_errata_2(void)93 static bool nrf91_errata_2(void)
94 {
95     #ifndef NRF91_SERIES
96         return false;
97     #else
98         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
99             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
100             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
101         #endif
102         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
103             if (var1 == 0x09)
104             {
105                 switch(var2)
106                 {
107                     case 0x01ul:
108                         return true;
109                     case 0x02ul:
110                         return true;
111                     default:
112                         return true;
113                 }
114             }
115         #endif
116         return false;
117     #endif
118 }
119 
nrf91_errata_4(void)120 static bool nrf91_errata_4(void)
121 {
122     #ifndef NRF91_SERIES
123         return false;
124     #else
125         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
126             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
127             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
128         #endif
129         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
130             if (var1 == 0x09)
131             {
132                 switch(var2)
133                 {
134                     case 0x01ul:
135                         return true;
136                     case 0x02ul:
137                         return true;
138                     default:
139                         return true;
140                 }
141             }
142         #endif
143         return false;
144     #endif
145 }
146 
nrf91_errata_6(void)147 static bool nrf91_errata_6(void)
148 {
149     #ifndef NRF91_SERIES
150         return false;
151     #else
152         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
153             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
154             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
155         #endif
156         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
157             if (var1 == 0x09)
158             {
159                 switch(var2)
160                 {
161                     case 0x01ul:
162                         return true;
163                     case 0x02ul:
164                         return true;
165                     default:
166                         return true;
167                 }
168             }
169         #endif
170         return false;
171     #endif
172 }
173 
nrf91_errata_7(void)174 static bool nrf91_errata_7(void)
175 {
176     #ifndef NRF91_SERIES
177         return false;
178     #else
179         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
180             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
181             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
182         #endif
183         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
184             if (var1 == 0x09)
185             {
186                 switch(var2)
187                 {
188                     case 0x01ul:
189                         return true;
190                     case 0x02ul:
191                         return true;
192                     default:
193                         return true;
194                 }
195             }
196         #endif
197         return false;
198     #endif
199 }
200 
nrf91_errata_8(void)201 static bool nrf91_errata_8(void)
202 {
203     #ifndef NRF91_SERIES
204         return false;
205     #else
206         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
207             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
208             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
209         #endif
210         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
211             if (var1 == 0x09)
212             {
213                 switch(var2)
214                 {
215                     case 0x01ul:
216                         return true;
217                     case 0x02ul:
218                         return false;
219                     default:
220                         return false;
221                 }
222             }
223         #endif
224         return false;
225     #endif
226 }
227 
nrf91_errata_9(void)228 static bool nrf91_errata_9(void)
229 {
230     #ifndef NRF91_SERIES
231         return false;
232     #else
233         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
234             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
235             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
236         #endif
237         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
238             if (var1 == 0x09)
239             {
240                 switch(var2)
241                 {
242                     case 0x01ul:
243                         return false;
244                     case 0x02ul:
245                         return true;
246                     default:
247                         return true;
248                 }
249             }
250         #endif
251         return false;
252     #endif
253 }
254 
nrf91_errata_10(void)255 static bool nrf91_errata_10(void)
256 {
257     #ifndef NRF91_SERIES
258         return false;
259     #else
260         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
261             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
262             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
263         #endif
264         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
265             if (var1 == 0x09)
266             {
267                 switch(var2)
268                 {
269                     case 0x01ul:
270                         return true;
271                     case 0x02ul:
272                         return false;
273                     default:
274                         return false;
275                 }
276             }
277         #endif
278         return false;
279     #endif
280 }
281 
nrf91_errata_12(void)282 static bool nrf91_errata_12(void)
283 {
284     #ifndef NRF91_SERIES
285         return false;
286     #else
287         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
288             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
289             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
290         #endif
291         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
292             if (var1 == 0x09)
293             {
294                 switch(var2)
295                 {
296                     case 0x01ul:
297                         return true;
298                     case 0x02ul:
299                         return false;
300                     default:
301                         return false;
302                 }
303             }
304         #endif
305         return false;
306     #endif
307 }
308 
nrf91_errata_14(void)309 static bool nrf91_errata_14(void)
310 {
311     #ifndef NRF91_SERIES
312         return false;
313     #else
314         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
315             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
316             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
317         #endif
318         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
319             if (var1 == 0x09)
320             {
321                 switch(var2)
322                 {
323                     case 0x01ul:
324                         return true;
325                     case 0x02ul:
326                         return false;
327                     default:
328                         return false;
329                 }
330             }
331         #endif
332         return false;
333     #endif
334 }
335 
nrf91_errata_15(void)336 static bool nrf91_errata_15(void)
337 {
338     #ifndef NRF91_SERIES
339         return false;
340     #else
341         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
342             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
343             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
344         #endif
345         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
346             if (var1 == 0x09)
347             {
348                 switch(var2)
349                 {
350                     case 0x01ul:
351                         return false;
352                     case 0x02ul:
353                         return true;
354                     default:
355                         return true;
356                 }
357             }
358         #endif
359         return false;
360     #endif
361 }
362 
nrf91_errata_16(void)363 static bool nrf91_errata_16(void)
364 {
365     #ifndef NRF91_SERIES
366         return false;
367     #else
368         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
369             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
370             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
371         #endif
372         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
373             if (var1 == 0x09)
374             {
375                 switch(var2)
376                 {
377                     case 0x01ul:
378                         return true;
379                     case 0x02ul:
380                         return false;
381                     default:
382                         return false;
383                 }
384             }
385         #endif
386         return false;
387     #endif
388 }
389 
nrf91_errata_17(void)390 static bool nrf91_errata_17(void)
391 {
392     #ifndef NRF91_SERIES
393         return false;
394     #else
395         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
396             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
397             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
398         #endif
399         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
400             if (var1 == 0x09)
401             {
402                 switch(var2)
403                 {
404                     case 0x01ul:
405                         return true;
406                     case 0x02ul:
407                         return false;
408                     default:
409                         return false;
410                 }
411             }
412         #endif
413         return false;
414     #endif
415 }
416 
nrf91_errata_20(void)417 static bool nrf91_errata_20(void)
418 {
419     #ifndef NRF91_SERIES
420         return false;
421     #else
422         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
423             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
424             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
425         #endif
426         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
427             if (var1 == 0x09)
428             {
429                 switch(var2)
430                 {
431                     case 0x01ul:
432                         return true;
433                     case 0x02ul:
434                         return false;
435                     default:
436                         return false;
437                 }
438             }
439         #endif
440         return false;
441     #endif
442 }
443 
nrf91_errata_21(void)444 static bool nrf91_errata_21(void)
445 {
446     #ifndef NRF91_SERIES
447         return false;
448     #else
449         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
450             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
451             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
452         #endif
453         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
454             if (var1 == 0x09)
455             {
456                 switch(var2)
457                 {
458                     case 0x01ul:
459                         return true;
460                     case 0x02ul:
461                         return true;
462                     default:
463                         return true;
464                 }
465             }
466         #endif
467         return false;
468     #endif
469 }
470 
nrf91_errata_23(void)471 static bool nrf91_errata_23(void)
472 {
473     #ifndef NRF91_SERIES
474         return false;
475     #else
476         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
477             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
478             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
479         #endif
480         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
481             if (var1 == 0x09)
482             {
483                 switch(var2)
484                 {
485                     case 0x01ul:
486                         return true;
487                     case 0x02ul:
488                         return true;
489                     default:
490                         return true;
491                 }
492             }
493         #endif
494         return false;
495     #endif
496 }
497 
nrf91_errata_24(void)498 static bool nrf91_errata_24(void)
499 {
500     #ifndef NRF91_SERIES
501         return false;
502     #else
503         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
504             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
505             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
506         #endif
507         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
508             if (var1 == 0x09)
509             {
510                 switch(var2)
511                 {
512                     case 0x01ul:
513                         return true;
514                     case 0x02ul:
515                         return true;
516                     default:
517                         return true;
518                 }
519             }
520         #endif
521         return false;
522     #endif
523 }
524 
nrf91_errata_26(void)525 static bool nrf91_errata_26(void)
526 {
527     #ifndef NRF91_SERIES
528         return false;
529     #else
530         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
531             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
532             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
533         #endif
534         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
535             if (var1 == 0x09)
536             {
537                 switch(var2)
538                 {
539                     case 0x01ul:
540                         return true;
541                     case 0x02ul:
542                         return true;
543                     default:
544                         return true;
545                 }
546             }
547         #endif
548         return false;
549     #endif
550 }
551 
nrf91_errata_27(void)552 static bool nrf91_errata_27(void)
553 {
554     #ifndef NRF91_SERIES
555         return false;
556     #else
557         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
558             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
559             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
560         #endif
561         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
562             if (var1 == 0x09)
563             {
564                 switch(var2)
565                 {
566                     case 0x01ul:
567                         return false;
568                     case 0x02ul:
569                         return true;
570                     default:
571                         return true;
572                 }
573             }
574         #endif
575         return false;
576     #endif
577 }
578 
nrf91_errata_28(void)579 static bool nrf91_errata_28(void)
580 {
581     #ifndef NRF91_SERIES
582         return false;
583     #else
584         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
585             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
586             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
587         #endif
588         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
589             if (var1 == 0x09)
590             {
591                 switch(var2)
592                 {
593                     case 0x01ul:
594                         return true;
595                     case 0x02ul:
596                         return true;
597                     default:
598                         return true;
599                 }
600             }
601         #endif
602         return false;
603     #endif
604 }
605 
nrf91_errata_29(void)606 static bool nrf91_errata_29(void)
607 {
608     #ifndef NRF91_SERIES
609         return false;
610     #else
611         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
612             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
613             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
614         #endif
615         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
616             if (var1 == 0x09)
617             {
618                 switch(var2)
619                 {
620                     case 0x01ul:
621                         return true;
622                     case 0x02ul:
623                         return true;
624                     default:
625                         return true;
626                 }
627             }
628         #endif
629         return false;
630     #endif
631 }
632 
nrf91_errata_30(void)633 static bool nrf91_errata_30(void)
634 {
635     #ifndef NRF91_SERIES
636         return false;
637     #else
638         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
639             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
640             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
641         #endif
642         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
643             if (var1 == 0x09)
644             {
645                 switch(var2)
646                 {
647                     case 0x01ul:
648                         return true;
649                     case 0x02ul:
650                         return true;
651                     default:
652                         return true;
653                 }
654             }
655         #endif
656         return false;
657     #endif
658 }
659 
nrf91_errata_31(void)660 static bool nrf91_errata_31(void)
661 {
662     #ifndef NRF91_SERIES
663         return false;
664     #else
665         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
666             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
667             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
668         #endif
669         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
670             if (var1 == 0x09)
671             {
672                 switch(var2)
673                 {
674                     case 0x01ul:
675                         return true;
676                     case 0x02ul:
677                         return true;
678                     default:
679                         return true;
680                 }
681             }
682         #endif
683         return false;
684     #endif
685 }
686 
nrf91_errata_32(void)687 static bool nrf91_errata_32(void)
688 {
689     #ifndef NRF91_SERIES
690         return false;
691     #else
692         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
693             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
694             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
695         #endif
696         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
697             if (var1 == 0x09)
698             {
699                 switch(var2)
700                 {
701                     case 0x01ul:
702                         return true;
703                     case 0x02ul:
704                         return true;
705                     default:
706                         return true;
707                 }
708             }
709         #endif
710         return false;
711     #endif
712 }
713 
nrf91_errata_33(void)714 static bool nrf91_errata_33(void)
715 {
716     #ifndef NRF91_SERIES
717         return false;
718     #else
719         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
720             uint32_t var1 = *(uint32_t *)0x00FF0130ul;
721             uint32_t var2 = *(uint32_t *)0x00FF0134ul;
722         #endif
723         #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
724             if (var1 == 0x09)
725             {
726                 switch(var2)
727                 {
728                     case 0x01ul:
729                         return true;
730                     case 0x02ul:
731                         return true;
732                     default:
733                         return true;
734                 }
735             }
736         #endif
737         return false;
738     #endif
739 }
740 
741 #endif /* NRF91_ERRATAS_H */
742