summaryrefslogtreecommitdiffstats
path: root/include/lib/fconf/fconf_dyn_cfg_getter.h
blob: 43f298eb946a386de51b0c1d09af6c4f5a425fbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
 * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef FCONF_DYN_CFG_GETTER_H
#define FCONF_DYN_CFG_GETTER_H

#include <lib/fconf/fconf.h>

#define FCONF_INVALID_IDX	0xFFFFFFFFU

/* Dynamic configuration related getter */
#define dyn_cfg__dtb_getter(id)	dyn_cfg_dtb_info_getter(id)

struct dyn_cfg_dtb_info_t {
	uintptr_t config_addr;
	uint32_t config_max_size;
	unsigned int config_id;
	/*
	 * Load address in non-secure memory. Only needed by those
	 * configuration files which require being loaded in secure
	 * memory (at config_addr) as well as in non-secure memory
	 * - e.g. HW_CONFIG
	 */
	uintptr_t ns_config_addr;
};

unsigned int dyn_cfg_dtb_info_get_index(unsigned int config_id);
struct dyn_cfg_dtb_info_t *dyn_cfg_dtb_info_getter(unsigned int config_id);
int fconf_populate_dtb_registry(uintptr_t config);

/* Set config information in global DTB array */
void set_config_info(uintptr_t config_addr, uintptr_t ns_config_addr,
		     uint32_t config_max_size,
		     unsigned int config_id);

#endif /* FCONF_DYN_CFG_GETTER_H */