xref: /optee_os/core/include/drivers/zynqmp_huk.h (revision dfeed9241800a4263bc76ee3a2fb8edae2c1498a)
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