summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriabdalkader <i.abdalkader@gmail.com>2025-02-05 19:57:40 +0100
committerDamien George <damien@micropython.org>2025-04-09 00:22:32 +1000
commitff6ed730c534a809ea32648b0b30832b2993aaae (patch)
tree317277dffb19580497e15e7eeb5d78b333b10f00
parent92f056d58f74cfd3986aaef1eea08f4f948fe03a (diff)
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 <i.abdalkader@gmail.com>
-rw-r--r--ports/alif/modmachine.c2
-rw-r--r--ports/alif/se_services.c7
-rw-r--r--ports/alif/se_services.h2
-rw-r--r--ports/alif/usbd.c2
4 files changed, 5 insertions, 8 deletions
diff --git a/ports/alif/modmachine.c b/ports/alif/modmachine.c
index 29a70305d..b77a207fe 100644
--- a/ports/alif/modmachine.c
+++ b/ports/alif/modmachine.c
@@ -38,7 +38,7 @@ static void mp_machine_idle(void) {
}
static mp_obj_t mp_machine_unique_id(void) {
- uint8_t id[5];
+ uint8_t id[8] = {0};
se_services_get_unique_id(id);
return mp_obj_new_bytes(id, sizeof(id));
}
diff --git a/ports/alif/se_services.c b/ports/alif/se_services.c
index cbf66bfac..e79a5b97c 100644
--- a/ports/alif/se_services.c
+++ b/ports/alif/se_services.c
@@ -139,12 +139,9 @@ void se_services_dump_device_data(void) {
printf("\n");
}
-void se_services_get_unique_id(uint8_t id[5]) {
+void se_services_get_unique_id(uint8_t id[8]) {
uint32_t error_code;
- SERVICES_version_data_t data;
- SERVICES_system_get_device_data(se_services_handle, &data, &error_code);
- // The MfgData has 5 bytes of valid data, at least on REV_B2.
- memcpy(id, data.MfgData, 5);
+ SERVICES_system_get_eui_extension(se_services_handle, false, id, &error_code);
}
__attribute__((noreturn)) void se_services_reset_soc(void) {
diff --git a/ports/alif/se_services.h b/ports/alif/se_services.h
index b1079130c..87deb0559 100644
--- a/ports/alif/se_services.h
+++ b/ports/alif/se_services.h
@@ -30,7 +30,7 @@
void se_services_init(void);
void se_services_dump_device_data(void);
-void se_services_get_unique_id(uint8_t id[5]);
+void se_services_get_unique_id(uint8_t id[8]);
__attribute__((noreturn)) void se_services_reset_soc(void);
uint64_t se_services_rand64(void);
uint32_t se_services_enable_clock(clock_enable_t clock, bool enable);
diff --git a/ports/alif/usbd.c b/ports/alif/usbd.c
index da16905d4..8d841d188 100644
--- a/ports/alif/usbd.c
+++ b/ports/alif/usbd.c
@@ -33,7 +33,7 @@
#include "se_services.h"
void mp_usbd_port_get_serial_number(char *serial_buf) {
- uint8_t id[5];
+ uint8_t id[8] = {0};
se_services_get_unique_id(id);
MP_STATIC_ASSERT(sizeof(id) * 2 <= MICROPY_HW_USB_DESC_STR_MAX);
mp_usbd_hex_str(serial_buf, id, sizeof(id));