1 /* 2 * Copyright (c) 2023-2026, Advanced Micro Devices, Inc. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 #ifndef PLAT_FDT_H 8 #define PLAT_FDT_H 9 10 void prepare_dtb(void); 11 uintptr_t plat_retrieve_dt_addr(void); 12 int32_t is_valid_dtb(void *fdt); 13 14 #if defined(XILINX_OF_BOARD_DTB_ADDR) 15 int32_t add_mmap_dynamic_region(unsigned long long base_pa, uintptr_t base_va, 16 size_t size, unsigned int attr); 17 int32_t remove_mmap_dynamic_region(uintptr_t base_va, size_t size); 18 #else 19 static inline int32_t add_mmap_dynamic_region(unsigned long long base_pa, 20 uintptr_t base_va, 21 size_t size, unsigned int attr) 22 { 23 return 0; 24 } 25 26 static inline int32_t remove_mmap_dynamic_region(uintptr_t base_va, size_t size) 27 { 28 return 0; 29 } 30 #endif 31 32 #define MAX_RESERVE_ADDR_INDICES 32 33 struct reserve_mem_range { 34 uintptr_t base; 35 size_t size; 36 }; 37 38 #if (TRANSFER_LIST == 1) 39 uint32_t retrieve_reserved_entries(void); 40 struct reserve_mem_range *get_reserved_entries_fdt(uint32_t *reserve_nodes); 41 #else 42 static inline uint32_t retrieve_reserved_entries(void) 43 { 44 return 0; 45 } 46 47 static inline struct reserve_mem_range *get_reserved_entries_fdt(uint32_t *reserve_nodes) 48 { 49 if (reserve_nodes) { 50 *reserve_nodes = 0; 51 } 52 53 return NULL; 54 } 55 #endif 56 57 #endif /* PLAT_FDT_H */ 58