xref: /rk3399_ARM-atf/include/lib/fconf/fconf_dyn_cfg_getter.h (revision ed4bf52c33b6860d58a2ffc946bd293ec76bbdaa)
125ac8794SLouis Mayencourt /*
2*ed4bf52cSManish V Badarkhe  * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
325ac8794SLouis Mayencourt  *
425ac8794SLouis Mayencourt  * SPDX-License-Identifier: BSD-3-Clause
525ac8794SLouis Mayencourt  */
625ac8794SLouis Mayencourt 
725ac8794SLouis Mayencourt #ifndef FCONF_DYN_CFG_GETTER_H
825ac8794SLouis Mayencourt #define FCONF_DYN_CFG_GETTER_H
925ac8794SLouis Mayencourt 
1025ac8794SLouis Mayencourt #include <lib/fconf/fconf.h>
1125ac8794SLouis Mayencourt 
129e3f4093SYann Gautier #define FCONF_INVALID_IDX	0xFFFFFFFFU
139e3f4093SYann Gautier 
1425ac8794SLouis Mayencourt /* Dynamic configuration related getter */
1525ac8794SLouis Mayencourt #define dyn_cfg__dtb_getter(id)	dyn_cfg_dtb_info_getter(id)
1625ac8794SLouis Mayencourt 
1725ac8794SLouis Mayencourt struct dyn_cfg_dtb_info_t {
1825ac8794SLouis Mayencourt 	uintptr_t config_addr;
19a4ff9d7eSManish V Badarkhe 	uint32_t config_max_size;
2025ac8794SLouis Mayencourt 	unsigned int config_id;
21*ed4bf52cSManish V Badarkhe 	/*
22*ed4bf52cSManish V Badarkhe 	 * Load address in non-secure memory. Only needed by those
23*ed4bf52cSManish V Badarkhe 	 * configuration files which require being loaded in secure
24*ed4bf52cSManish V Badarkhe 	 * memory (at config_addr) as well as in non-secure memory
25*ed4bf52cSManish V Badarkhe 	 * - e.g. HW_CONFIG
26*ed4bf52cSManish V Badarkhe 	 */
27*ed4bf52cSManish V Badarkhe 	uintptr_t ns_config_addr;
2825ac8794SLouis Mayencourt };
2925ac8794SLouis Mayencourt 
309e3f4093SYann Gautier unsigned int dyn_cfg_dtb_info_get_index(unsigned int config_id);
3125ac8794SLouis Mayencourt struct dyn_cfg_dtb_info_t *dyn_cfg_dtb_info_getter(unsigned int config_id);
3225ac8794SLouis Mayencourt int fconf_populate_dtb_registry(uintptr_t config);
3325ac8794SLouis Mayencourt 
34f4417189SManish V Badarkhe /* Set config information in global DTB array */
35*ed4bf52cSManish V Badarkhe void set_config_info(uintptr_t config_addr, uintptr_t ns_config_addr,
36*ed4bf52cSManish V Badarkhe 		     uint32_t config_max_size,
37f4417189SManish V Badarkhe 		     unsigned int config_id);
3882869675SManish V Badarkhe 
3925ac8794SLouis Mayencourt #endif /* FCONF_DYN_CFG_GETTER_H */
40