File tree 5 files changed +39
-4
lines changed
5 files changed +39
-4
lines changed Original file line number Diff line number Diff line change 24
24
* This file is part of the TinyUSB stack.
25
25
*/
26
26
27
- #ifndef _BOARD_API_H_
28
- #define _BOARD_API_H_
27
+ #ifndef BOARD_API_H_
28
+ #define BOARD_API_H_
29
29
30
30
#ifdef __cplusplus
31
31
extern "C" {
Original file line number Diff line number Diff line change 40
40
#include "fsl_iomuxc.h"
41
41
#include "fsl_clock.h"
42
42
#include "fsl_lpuart.h"
43
+ #include "fsl_ocotp.h"
43
44
44
45
#ifdef __GNUC__
45
46
#pragma GCC diagnostic pop
@@ -186,6 +187,29 @@ uint32_t board_button_read(void) {
186
187
return BUTTON_STATE_ACTIVE == GPIO_PinRead (BUTTON_PORT , BUTTON_PIN );
187
188
}
188
189
190
+ size_t board_get_unique_id (uint8_t id [], size_t max_len ) {
191
+ (void ) max_len ;
192
+
193
+ #if FSL_FEATURE_OCOTP_HAS_TIMING_CTRL
194
+ OCOTP_Init (OCOTP , CLOCK_GetFreq (kCLOCK_IpgClk ));
195
+ #else
196
+ OCOTP_Init (OCOTP , 0u );
197
+ #endif
198
+
199
+ // Reads shadow registers 0x01 - 0x04 (Configuration and Manufacturing Info)
200
+ // into 8 bit wide destination, avoiding punning.
201
+ for (int i = 0 ; i < 4 ; ++ i ) {
202
+ uint32_t wr = OCOTP_ReadFuseShadowRegister (OCOTP , i + 1 );
203
+ for (int j = 0 ; j < 4 ; j ++ ) {
204
+ id [i * 4 + j ] = wr & 0xff ;
205
+ wr >>= 8 ;
206
+ }
207
+ }
208
+ OCOTP_Deinit (OCOTP );
209
+
210
+ return 16 ;
211
+ }
212
+
189
213
int board_uart_read (uint8_t * buf , int len ) {
190
214
int count = 0 ;
191
215
Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ function(add_board_target BOARD_TARGET)
44
44
${SDK_DIR} /drivers/igpio/fsl_gpio.c
45
45
${SDK_DIR} /drivers/lpspi/fsl_lpspi.c
46
46
${SDK_DIR} /drivers/lpuart/fsl_lpuart.c
47
+ ${SDK_DIR} /drivers/ocotp/fsl_ocotp.c
47
48
${SDK_DIR} /devices/${MCU_VARIANT} /system_${MCU_VARIANT_WITH_CORE} .c
48
49
${SDK_DIR} /devices/${MCU_VARIANT} /xip/fsl_flexspi_nor_boot.c
49
50
${SDK_DIR} /devices/${MCU_VARIANT} /drivers/fsl_clock.c
@@ -75,6 +76,7 @@ function(add_board_target BOARD_TARGET)
75
76
${SDK_DIR} /drivers/igpio
76
77
${SDK_DIR} /drivers/lpspi
77
78
${SDK_DIR} /drivers/lpuart
79
+ ${SDK_DIR} /drivers/ocotp
78
80
)
79
81
80
82
update_board(${BOARD_TARGET} )
Original file line number Diff line number Diff line change @@ -50,7 +50,8 @@ SRC_C += \
50
50
$(SDK_DIR ) /drivers/common/fsl_common.c \
51
51
$(SDK_DIR ) /drivers/common/fsl_common_arm.c \
52
52
$(SDK_DIR ) /drivers/igpio/fsl_gpio.c \
53
- $(SDK_DIR ) /drivers/lpuart/fsl_lpuart.c
53
+ $(SDK_DIR ) /drivers/lpuart/fsl_lpuart.c \
54
+ $(SDK_DIR ) /drivers/ocotp/fsl_ocotp.c \
54
55
55
56
# Optional drivers: only available for some mcus: rt1160, rt1170
56
57
ifneq (,$(wildcard ${TOP}/${MCU_DIR}/drivers/fsl_dcdc.c) )
@@ -68,7 +69,8 @@ INC += \
68
69
$(TOP ) /$(MCU_DIR ) /drivers \
69
70
$(TOP ) /$(SDK_DIR ) /drivers/common \
70
71
$(TOP ) /$(SDK_DIR ) /drivers/igpio \
71
- $(TOP ) /$(SDK_DIR ) /drivers/lpuart
72
+ $(TOP ) /$(SDK_DIR ) /drivers/lpuart \
73
+ $(TOP ) /$(SDK_DIR ) /drivers/ocotp \
72
74
73
75
SRC_S += $(MCU_DIR ) /gcc/startup_$(MCU_VARIANT_WITH_CORE ) .S
74
76
Original file line number Diff line number Diff line change 30
30
"flasher" : " esptool" ,
31
31
"flasher_sn" : " 3ea619acd1cdeb11a0a0b806e93fd3f1" ,
32
32
"flasher_args" : " -b 1500000"
33
+ },
34
+ {
35
+ "name" : " metro_m7_1011" ,
36
+ "uid" : " 9CE8715DD71137363E00005002004200" ,
37
+ "flasher" : " jlink" ,
38
+ "flasher_sn" : " 000611000000" ,
39
+ "flasher_args" : " -device MIMXRT1011xxx5A"
33
40
}
34
41
]
35
42
}
You can’t perform that action at this time.
0 commit comments