text: /*
   * Copyright (c) 2018 Alexander Wachter
   *
   * SPDX-License-Identifier: Apache-2.0
   */
  
  #include <soc.h>
  #include <hwinfo.h>
  #include <string.h>
  
  struct stm32_uid {
  	u32_t id[3];
  };
  
  ssize_t _impl_hwinfo_get_device_id(u8_t *buffer, size_t length)
  {
  	struct stm32_uid dev_id;
  
  	dev_id.id[0] = LL_GetUID_Word0();
  	dev_id.id[1] = LL_GetUID_Word1();
  	dev_id.id[2] = LL_GetUID_Word2();
  
  	if (length > sizeof(dev_id.id)) {
  		length = sizeof(dev_id.id);
  	}
  
  	memcpy(buffer, dev_id.id, length);
  
  	return length;
  }
  