Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
rat.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  address_trans_region_config
 Region config structure. More...
 
struct  address_trans_params
 Parameters for address_trans_init. More...
 

Macros

#define ADDR_TRANSLATE_MAX_REGIONS   (16u)
 
#define RAT_CTRL(base_addr, i)   (base_addr + 0x20 + 0x10 * (i))
 
#define RAT_BASE(base_addr, i)   (base_addr + 0x24 + 0x10 * (i))
 
#define RAT_TRANS_L(base_addr, i)   (base_addr + 0x28 + 0x10 * (i))
 
#define RAT_TRANS_H(base_addr, i)   (base_addr + 0x2C + 0x10 * (i))
 
#define RAT_CTRL_W(enable, size)   (((enable & 0x1) << 31u) | (size & 0x3F))
 

Enumerations

enum  address_trans_region_size {
  address_trans_region_size_1 = 0x0 , address_trans_region_size_2 , address_trans_region_size_4 , address_trans_region_size_8 ,
  address_trans_region_size_16 , address_trans_region_size_32 , address_trans_region_size_64 , address_trans_region_size_128 ,
  address_trans_region_size_256 , address_trans_region_size_512 , address_trans_region_size_1K , address_trans_region_size_2K ,
  address_trans_region_size_4K , address_trans_region_size_8K , address_trans_region_size_16K , address_trans_region_size_32K ,
  address_trans_region_size_64K , address_trans_region_size_128K , address_trans_region_size_256K , address_trans_region_size_512K ,
  address_trans_region_size_1M , address_trans_region_size_2M , address_trans_region_size_4M , address_trans_region_size_8M ,
  address_trans_region_size_16M , address_trans_region_size_32M , address_trans_region_size_64M , address_trans_region_size_128M ,
  address_trans_region_size_256M , address_trans_region_size_512M , address_trans_region_size_1G , address_trans_region_size_2G ,
  address_trans_region_size_4G
}
 Enum's to represent different possible region size for the address translate module. More...
 

Functions

void sys_mm_drv_ti_rat_init (void *region_config, uint64_t rat_base_addr, uint8_t translate_regions)
 

Macro Definition Documentation

◆ ADDR_TRANSLATE_MAX_REGIONS

#define ADDR_TRANSLATE_MAX_REGIONS   (16u)

◆ RAT_BASE

#define RAT_BASE (   base_addr,
 
)    (base_addr + 0x24 + 0x10 * (i))

◆ RAT_CTRL

#define RAT_CTRL (   base_addr,
 
)    (base_addr + 0x20 + 0x10 * (i))

◆ RAT_CTRL_W

#define RAT_CTRL_W (   enable,
  size 
)    (((enable & 0x1) << 31u) | (size & 0x3F))

◆ RAT_TRANS_H

#define RAT_TRANS_H (   base_addr,
 
)    (base_addr + 0x2C + 0x10 * (i))

◆ RAT_TRANS_L

#define RAT_TRANS_L (   base_addr,
 
)    (base_addr + 0x28 + 0x10 * (i))

Enumeration Type Documentation

◆ address_trans_region_size

Enum's to represent different possible region size for the address translate module.

Enumerator
address_trans_region_size_1 
address_trans_region_size_2 
address_trans_region_size_4 
address_trans_region_size_8 
address_trans_region_size_16 
address_trans_region_size_32 
address_trans_region_size_64 
address_trans_region_size_128 
address_trans_region_size_256 
address_trans_region_size_512 
address_trans_region_size_1K 
address_trans_region_size_2K 
address_trans_region_size_4K 
address_trans_region_size_8K 
address_trans_region_size_16K 
address_trans_region_size_32K 
address_trans_region_size_64K 
address_trans_region_size_128K 
address_trans_region_size_256K 
address_trans_region_size_512K 
address_trans_region_size_1M 
address_trans_region_size_2M 
address_trans_region_size_4M 
address_trans_region_size_8M 
address_trans_region_size_16M 
address_trans_region_size_32M 
address_trans_region_size_64M 
address_trans_region_size_128M 
address_trans_region_size_256M 
address_trans_region_size_512M 
address_trans_region_size_1G 
address_trans_region_size_2G 
address_trans_region_size_4G 

Function Documentation

◆ sys_mm_drv_ti_rat_init()

void sys_mm_drv_ti_rat_init ( void *  region_config,
uint64_t  rat_base_addr,
uint8_t  translate_regions 
)