1*dfeed924SVesa Jääskeläinen /* SPDX-License-Identifier: BSD-2-Clause */ 2*dfeed924SVesa Jääskeläinen /* 3*dfeed924SVesa Jääskeläinen * Copyright (C) 2022, Vaisala Oyj 4*dfeed924SVesa Jääskeläinen */ 5*dfeed924SVesa Jääskeläinen 6*dfeed924SVesa Jääskeläinen #ifndef __DRIVERS_ZYNQMP_HUK_H__ 7*dfeed924SVesa Jääskeläinen #define __DRIVERS_ZYNQMP_HUK_H__ 8*dfeed924SVesa Jääskeläinen 9*dfeed924SVesa Jääskeläinen /* 10*dfeed924SVesa Jääskeläinen * Query Device DNA from the device 11*dfeed924SVesa Jääskeläinen * 12*dfeed924SVesa Jääskeläinen * Note: configured as weak so that it can be replaced with implementation to 13*dfeed924SVesa Jääskeläinen * get read only PL Device DNA from FPGA array. This would need custom IP core 14*dfeed924SVesa Jääskeläinen * for access. 15*dfeed924SVesa Jääskeläinen * 16*dfeed924SVesa Jääskeläinen * Both PS and PL Device DNA's have 96 bits. 17*dfeed924SVesa Jääskeläinen * 18*dfeed924SVesa Jääskeläinen * Xilinx recommends to use PL Device DNA for device identification. 19*dfeed924SVesa Jääskeläinen * 20*dfeed924SVesa Jääskeläinen * ref: 21*dfeed924SVesa Jääskeläinen * 22*dfeed924SVesa Jääskeläinen * 71342 - Zynq UltraScale+ Device - PS DNA is not write protected and is a 23*dfeed924SVesa Jääskeläinen * different value than the PL DNA 24*dfeed924SVesa Jääskeläinen * 25*dfeed924SVesa Jääskeläinen * https://support.xilinx.com/s/article/71342 26*dfeed924SVesa Jääskeläinen * 27*dfeed924SVesa Jääskeläinen * @device_dna: Memory buffer to receive value of Device DNA 28*dfeed924SVesa Jääskeläinen * @size: length of device_dna buffer (requires buffer of 12 bytes) 29*dfeed924SVesa Jääskeläinen * Return a TEE_Result compliant status 30*dfeed924SVesa Jääskeläinen */ 31*dfeed924SVesa Jääskeläinen TEE_Result tee_zynqmp_get_device_dna(uint8_t *device_dna, size_t size); 32*dfeed924SVesa Jääskeläinen 33*dfeed924SVesa Jääskeläinen #endif /* __DRIVERS_ZYNQMP_HUK_H__ */ 34