11
11
12
12
ssize_t z_impl_hwinfo_get_device_id (uint8_t * buffer , size_t length )
13
13
{
14
-
15
14
struct ambiq_hwinfo {
16
15
/* Ambiq Chip ID0 */
17
16
uint32_t chip_id_0 ;
@@ -27,7 +26,12 @@ ssize_t z_impl_hwinfo_get_device_id(uint8_t *buffer, size_t length)
27
26
/* Contains the HAL hardware information about the device. */
28
27
am_hal_mcuctrl_device_t mcu_ctrl_device ;
29
28
29
+ #if (CONFIG_SOC_SERIES_APOLLO5X )
30
+ am_hal_info1_read (AM_HAL_INFO_INFOSPACE_CURRENT_INFO1 , AM_REG_OTP_INFO1_TRIM_REV_O / 4 , 1 ,
31
+ & dev_hw_info .factory_trim_version );
32
+ #else
30
33
am_hal_mram_info_read (1 , AM_REG_INFO1_TRIM_REV_O / 4 , 1 , & dev_hw_info .factory_trim_version );
34
+ #endif
31
35
am_hal_mcuctrl_info_get (AM_HAL_MCUCTRL_INFO_DEVICEID , & mcu_ctrl_device );
32
36
33
37
dev_hw_info .chip_id_0 = mcu_ctrl_device .ui32ChipID0 ;
@@ -61,9 +65,15 @@ int z_impl_hwinfo_get_reset_cause(uint32_t *cause)
61
65
}
62
66
63
67
/* POWER CYCLE */
68
+ #if (CONFIG_SOC_SERIES_APOLLO5X )
69
+ if (reset_status & AM_HAL_RESET_STATUS_POA ) {
70
+ flags |= RESET_POR ;
71
+ }
72
+ #else
64
73
if (reset_status & AM_HAL_RESET_STATUS_POR ) {
65
74
flags |= RESET_POR ;
66
75
}
76
+ #endif
67
77
68
78
/* BROWNOUT DETECTOR */
69
79
if (reset_status & AM_HAL_RESET_STATUS_BOD ) {
@@ -110,6 +120,13 @@ int z_impl_hwinfo_get_reset_cause(uint32_t *cause)
110
120
flags |= RESET_HARDWARE ;
111
121
}
112
122
123
+ #if (CONFIG_SOC_SERIES_APOLLO5X )
124
+ /* AIRCR */
125
+ if (reset_status & AM_HAL_RESET_STATUS_AIRCR ) {
126
+ flags |= RESET_SOFTWARE ;
127
+ }
128
+ #endif
129
+
113
130
* cause = flags ;
114
131
return 0 ;
115
132
}
0 commit comments