xref: /rk3399_ARM-atf/plat/st/common/include/stm32mp_fconf_getter.h (revision 222eb8c7f912d13a3aaab1f39e68537af0015262)
1d5a84eeaSYann Gautier /*
2d5a84eeaSYann Gautier  * Copyright (c) 2021, STMicroelectronics - All Rights Reserved
3d5a84eeaSYann Gautier  *
4d5a84eeaSYann Gautier  * SPDX-License-Identifier: BSD-3-Clause
5d5a84eeaSYann Gautier  */
6d5a84eeaSYann Gautier 
7d5a84eeaSYann Gautier #ifndef STM32MP_FCONF_GETTER
8d5a84eeaSYann Gautier #define STM32MP_FCONF_GETTER
9d5a84eeaSYann Gautier 
10d5a84eeaSYann Gautier #include <assert.h>
11d5a84eeaSYann Gautier 
12d5a84eeaSYann Gautier #include <lib/fconf/fconf.h>
13*41bd8b9eSSughosh Ganu #include <tools_share/uuid.h>
14d5a84eeaSYann Gautier 
15d5a84eeaSYann Gautier /* IO policies */
16d5a84eeaSYann Gautier #define stm32mp__io_policies_getter(id) __extension__ ({	\
17d5a84eeaSYann Gautier 	assert((id) < MAX_NUMBER_IDS);				\
18d5a84eeaSYann Gautier 	&policies[id];						\
19d5a84eeaSYann Gautier })
20d5a84eeaSYann Gautier 
21d5a84eeaSYann Gautier struct plat_io_policy {
22d5a84eeaSYann Gautier 	uintptr_t *dev_handle;
23d5a84eeaSYann Gautier 	uintptr_t image_spec;
24*41bd8b9eSSughosh Ganu 	struct efi_guid img_type_guid;
25d5a84eeaSYann Gautier 	int (*check)(const uintptr_t spec);
26d5a84eeaSYann Gautier };
27d5a84eeaSYann Gautier 
28d5a84eeaSYann Gautier extern struct plat_io_policy policies[];
29d5a84eeaSYann Gautier int fconf_populate_stm32mp_io_policies(uintptr_t config);
30d5a84eeaSYann Gautier 
31d5a84eeaSYann Gautier #endif /* STM32MP_FCONF_GETTER */
32