mirror of
https://github.com/micropython/micropython.git
synced 2025-12-16 09:50:15 +01:00
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>
This commit is contained in:
committed by
Damien George
parent
92f056d58f
commit
ff6ed730c5
@@ -38,7 +38,7 @@ static void mp_machine_idle(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static mp_obj_t mp_machine_unique_id(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);
|
se_services_get_unique_id(id);
|
||||||
return mp_obj_new_bytes(id, sizeof(id));
|
return mp_obj_new_bytes(id, sizeof(id));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,12 +139,9 @@ void se_services_dump_device_data(void) {
|
|||||||
printf("\n");
|
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;
|
uint32_t error_code;
|
||||||
SERVICES_version_data_t data;
|
SERVICES_system_get_eui_extension(se_services_handle, false, id, &error_code);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__attribute__((noreturn)) void se_services_reset_soc(void) {
|
__attribute__((noreturn)) void se_services_reset_soc(void) {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
void se_services_init(void);
|
void se_services_init(void);
|
||||||
void se_services_dump_device_data(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);
|
__attribute__((noreturn)) void se_services_reset_soc(void);
|
||||||
uint64_t se_services_rand64(void);
|
uint64_t se_services_rand64(void);
|
||||||
uint32_t se_services_enable_clock(clock_enable_t clock, bool enable);
|
uint32_t se_services_enable_clock(clock_enable_t clock, bool enable);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
#include "se_services.h"
|
#include "se_services.h"
|
||||||
|
|
||||||
void mp_usbd_port_get_serial_number(char *serial_buf) {
|
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);
|
se_services_get_unique_id(id);
|
||||||
MP_STATIC_ASSERT(sizeof(id) * 2 <= MICROPY_HW_USB_DESC_STR_MAX);
|
MP_STATIC_ASSERT(sizeof(id) * 2 <= MICROPY_HW_USB_DESC_STR_MAX);
|
||||||
mp_usbd_hex_str(serial_buf, id, sizeof(id));
|
mp_usbd_hex_str(serial_buf, id, sizeof(id));
|
||||||
|
|||||||
Reference in New Issue
Block a user