1
0
Fork 0

Expose API for hardware unique ID (#16869)

This commit is contained in:
Joel Challis 2022-04-18 11:51:40 +01:00 committed by GitHub
parent 7aa9a353ac
commit b8245a5507
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 93 additions and 0 deletions

View file

@ -0,0 +1,9 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include "hardware_id.h"
hardware_id_t get_hardware_id(void) {
hardware_id_t id = {0};
return id;
}

View file

@ -0,0 +1,13 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include <avr/boot.h>
#include "hardware_id.h"
hardware_id_t get_hardware_id(void) {
hardware_id_t id = {0};
for (uint8_t i = 0; i < 10; i += 1) {
((uint8_t*)&id)[i] = boot_signature_byte_get(i + 0x0E);
}
return id;
}

View file

@ -0,0 +1,15 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include <ch.h>
#include "hardware_id.h"
hardware_id_t get_hardware_id(void) {
hardware_id_t id = {0};
#ifdef UID_BASE
id.data[0] = (uint32_t)(*((uint32_t *)UID_BASE));
id.data[1] = (uint32_t)(*((uint32_t *)(UID_BASE + 4)));
id.data[1] = (uint32_t)(*((uint32_t *)(UID_BASE + 8)));
#endif
return id;
}

View file

@ -2,6 +2,7 @@ PLATFORM_COMMON_DIR = $(PLATFORM_PATH)/$(PLATFORM_KEY)
TMK_COMMON_SRC += \
$(PLATFORM_PATH)/suspend.c \
$(PLATFORM_COMMON_DIR)/hardware_id.c \
$(PLATFORM_COMMON_DIR)/platform.c \
$(PLATFORM_COMMON_DIR)/suspend.c \
$(PLATFORM_COMMON_DIR)/timer.c \

18
platforms/hardware_id.h Normal file
View file

@ -0,0 +1,18 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <stdint.h>
/** \brief Storage for a hardware ID
*
* Ensure this is sized to cover all hardware scenarios
*/
typedef struct hardware_id_t {
uint32_t data[4];
} hardware_id_t;
/** \brief Query the devices "unique" ID
*/
hardware_id_t get_hardware_id(void);

View file

@ -0,0 +1,9 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include "hardware_id.h"
hardware_id_t get_hardware_id(void) {
hardware_id_t id = {0};
return id;
}