fb19c9b2f8a06c3a874dfb98bad72901ae70ca44
[cortex-from-scratch] / sysinfo.c
1 #include <stdbool.h>
2 #include <stddef.h>
3 #include <stdint.h>
4 #include <stm32.h>
5 #include <mmap.h>
6
7
8 void sysinfo() {
9
10         uint32_t tmp = *MCU_ID;
11
12         uart_puts("CHECKING SYS INFO\n");
13         uart_puts("# DEVICE ID: ");
14
15         if (tmp & 0x414) {
16                 uart_puts("HIGH DENSITY\n");
17         }
18         else {
19                 uart_puts("UNKNOWN\n");
20         }
21
22         tmp = (tmp >> 16);
23         uart_puts("# REVISION: ");
24         switch  (tmp) {
25                 case 0x1000:
26                       uart_puts("REVISION A\n");
27                       break;
28                 case 0x1001:
29                       uart_puts("REVISION Z\n");
30                       break;
31                 case 0x1003:
32                       uart_puts("REVISION 1/2/3/X/Y\n");
33                       break;
34                 default:
35                       uart_puts("UNKNOWN\n");
36         }
37
38 }
39