21 lines
		
	
	
		
			583 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			583 B
		
	
	
	
		
			C
		
	
	
	
	
	
// 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};
 | 
						|
#if defined(RP2040)
 | 
						|
    // Forward declare as including "hardware/flash.h" here causes more issues...
 | 
						|
    void flash_get_unique_id(uint8_t *);
 | 
						|
 | 
						|
    flash_get_unique_id((uint8_t *)&id);
 | 
						|
#elif defined(UID_BASE)
 | 
						|
    id.data[0] = (uint32_t)(*((uint32_t *)UID_BASE));
 | 
						|
    id.data[1] = (uint32_t)(*((uint32_t *)(UID_BASE + 4)));
 | 
						|
    id.data[2] = (uint32_t)(*((uint32_t *)(UID_BASE + 8)));
 | 
						|
#endif
 | 
						|
    return id;
 | 
						|
}
 |