1 /* 2 * Copyright (c) 2023 Texas Instruments Incorporated 3 * Copyright (c) 2023 L Lakshmanan 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8 #ifndef ZEPHYR_INCLUDE_RAT_H_ 9 #define ZEPHYR_INCLUDE_RAT_H_ 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #include <stdint.h> 16 17 /** 18 * @brief Enum's to represent different possible region size for the address translate module 19 */ 20 enum address_trans_region_size { 21 address_trans_region_size_1 = 0x0, 22 address_trans_region_size_2, 23 address_trans_region_size_4, 24 address_trans_region_size_8, 25 address_trans_region_size_16, 26 address_trans_region_size_32, 27 address_trans_region_size_64, 28 address_trans_region_size_128, 29 address_trans_region_size_256, 30 address_trans_region_size_512, 31 address_trans_region_size_1K, 32 address_trans_region_size_2K, 33 address_trans_region_size_4K, 34 address_trans_region_size_8K, 35 address_trans_region_size_16K, 36 address_trans_region_size_32K, 37 address_trans_region_size_64K, 38 address_trans_region_size_128K, 39 address_trans_region_size_256K, 40 address_trans_region_size_512K, 41 address_trans_region_size_1M, 42 address_trans_region_size_2M, 43 address_trans_region_size_4M, 44 address_trans_region_size_8M, 45 address_trans_region_size_16M, 46 address_trans_region_size_32M, 47 address_trans_region_size_64M, 48 address_trans_region_size_128M, 49 address_trans_region_size_256M, 50 address_trans_region_size_512M, 51 address_trans_region_size_1G, 52 address_trans_region_size_2G, 53 address_trans_region_size_4G 54 }; 55 56 /** 57 * @brief Region config structure 58 */ 59 struct address_trans_region_config { 60 uint64_t system_addr; 61 uint32_t local_addr; 62 uint32_t size; 63 }; 64 65 void sys_mm_drv_ti_rat_init(struct address_trans_region_config *region_config, 66 uint64_t rat_base_addr, uint8_t translate_regions); 67 68 #ifdef __cplusplus 69 } 70 #endif 71 72 #endif /* ZEPHYR_INCLUDE_RAT_H_ */ 73