2022-04-18 16:51:40 +06:00
|
|
|
// 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};
|
2022-10-06 02:20:09 +06:00
|
|
|
#if defined(RP2040)
|
2022-10-06 05:36:48 +06:00
|
|
|
// Forward declare as including "hardware/flash.h" here causes more issues...
|
|
|
|
void flash_get_unique_id(uint8_t *);
|
|
|
|
|
2022-10-06 02:20:09 +06:00
|
|
|
flash_get_unique_id((uint8_t *)&id);
|
|
|
|
#elif defined(UID_BASE)
|
2022-04-18 16:51:40 +06:00
|
|
|
id.data[0] = (uint32_t)(*((uint32_t *)UID_BASE));
|
|
|
|
id.data[1] = (uint32_t)(*((uint32_t *)(UID_BASE + 4)));
|
2022-10-06 02:20:09 +06:00
|
|
|
id.data[2] = (uint32_t)(*((uint32_t *)(UID_BASE + 8)));
|
2022-04-18 16:51:40 +06:00
|
|
|
#endif
|
|
|
|
return id;
|
|
|
|
}
|