Skip to content

Commit ff6ed73

Browse files
iabdalkaderdpgeorge
authored andcommitted
alif/se_services: Use EUI extension for unique id.
The right service call to get UID is SERVICES_system_get_eui_extension which returns an 8 bytes UID. Signed-off-by: iabdalkader <[email protected]>
1 parent 92f056d commit ff6ed73

File tree

4 files changed

+5
-8
lines changed

4 files changed

+5
-8
lines changed

ports/alif/modmachine.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static void mp_machine_idle(void) {
3838
}
3939

4040
static mp_obj_t mp_machine_unique_id(void) {
41-
uint8_t id[5];
41+
uint8_t id[8] = {0};
4242
se_services_get_unique_id(id);
4343
return mp_obj_new_bytes(id, sizeof(id));
4444
}

ports/alif/se_services.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,9 @@ void se_services_dump_device_data(void) {
139139
printf("\n");
140140
}
141141

142-
void se_services_get_unique_id(uint8_t id[5]) {
142+
void se_services_get_unique_id(uint8_t id[8]) {
143143
uint32_t error_code;
144-
SERVICES_version_data_t data;
145-
SERVICES_system_get_device_data(se_services_handle, &data, &error_code);
146-
// The MfgData has 5 bytes of valid data, at least on REV_B2.
147-
memcpy(id, data.MfgData, 5);
144+
SERVICES_system_get_eui_extension(se_services_handle, false, id, &error_code);
148145
}
149146

150147
__attribute__((noreturn)) void se_services_reset_soc(void) {

ports/alif/se_services.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
void se_services_init(void);
3232
void se_services_dump_device_data(void);
33-
void se_services_get_unique_id(uint8_t id[5]);
33+
void se_services_get_unique_id(uint8_t id[8]);
3434
__attribute__((noreturn)) void se_services_reset_soc(void);
3535
uint64_t se_services_rand64(void);
3636
uint32_t se_services_enable_clock(clock_enable_t clock, bool enable);

ports/alif/usbd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
#include "se_services.h"
3434

3535
void mp_usbd_port_get_serial_number(char *serial_buf) {
36-
uint8_t id[5];
36+
uint8_t id[8] = {0};
3737
se_services_get_unique_id(id);
3838
MP_STATIC_ASSERT(sizeof(id) * 2 <= MICROPY_HW_USB_DESC_STR_MAX);
3939
mp_usbd_hex_str(serial_buf, id, sizeof(id));

0 commit comments

Comments
 (0)