Pip
Architecture-dependent parts of Pip: MAL, IAL and boot
Data Structures | Macros | Typedefs | Enumerations | Functions
armv7/boot/include/mmu.h File Reference
#include "types.h"

Go to the source code of this file.

Data Structures

union  mmu_sd_pt_s
 
union  mmu_sd_sec_s
 
union  mmu_sd_ssec_s
 
union  mmu_sd_sp_s
 

Macros

#define MMU_TTBR0_ENT_COUNT   0x400
 
#define MMU_TTBR1_ENT_COUNT   0x1000
 
#define MMU_L1_ENT_COUNT   0x400
 
#define MMU_L2_ENT_COUNT   0x100
 
#define mmu_map_section(tt, pa, va, user, ro, xn, device, global)   mmu_map_anysection(tt, pa, va, user, ro, xn, device, global, 0)
 
#define mmu_map_supersection(tt, pa, va, user, ro, xn, device, global)   mmu_map_anysection(tt, pa, va, user, ro, xn, device, global, 1)
 

Typedefs

typedef enum mmu_rgn_e mmu_rgn_t
 
typedef union mmu_sd_pt_s mmu_sd_pt_t
 
typedef union mmu_sd_sec_s mmu_sd_sec_t
 
typedef union mmu_sd_ssec_s mmu_sd_ssec_t
 
typedef union mmu_sd_sp_s mmu_sd_sp_t
 

Enumerations

enum  mmu_rgn_e { RGN_NOCACHE = 0, RGN_CACHE_WBACK_WALLOC = 1, RGN_CACHE_WTHROUGH = 2, RGN_CACHE_WBACK_NOALLOC = 3 }
 

Functions

mmu_sd_pt_t mmu_make_page_table (void *ptbaddr)
 
mmu_sd_sp_t mmu_make_small_page (void *spbaddr, bool_t user, bool_t ro, bool_t xn, bool_t device, bool_t global)
 
unsigned mmu_make_ttbr (void *base, mmu_rgn_t irgn, mmu_rgn_t rgn, bool_t shareable, bool_t not_outer_shareable)
 
void mmu_map_small_page (unsigned int *tt, void *pa, void *va, bool_t user, bool_t ro, bool_t xn, bool_t device, bool_t global)
 
void mmu_map_anysection (unsigned int *tt, void *pa, void *va, bool_t user, bool_t ro, bool_t xn, bool_t device, bool_t global, int super)
 
void mmu_init (void)
 
void mmu_debug (unsigned *tt)
 
mmu_sd_sp_t mmu_virt_to_sp (unsigned pd, unsigned va)
 
unsigned mmu_virt_to_phys (unsigned pd, unsigned va)
 
void cache_and_mmu_disable ()
 
void cache_and_mmu_enable ()
 

Macro Definition Documentation

◆ MMU_L1_ENT_COUNT

#define MMU_L1_ENT_COUNT   0x400

◆ MMU_L2_ENT_COUNT

#define MMU_L2_ENT_COUNT   0x100

◆ mmu_map_section

#define mmu_map_section (   tt,
  pa,
  va,
  user,
  ro,
  xn,
  device,
  global 
)    mmu_map_anysection(tt, pa, va, user, ro, xn, device, global, 0)

◆ mmu_map_supersection

#define mmu_map_supersection (   tt,
  pa,
  va,
  user,
  ro,
  xn,
  device,
  global 
)    mmu_map_anysection(tt, pa, va, user, ro, xn, device, global, 1)

◆ MMU_TTBR0_ENT_COUNT

#define MMU_TTBR0_ENT_COUNT   0x400

◆ MMU_TTBR1_ENT_COUNT

#define MMU_TTBR1_ENT_COUNT   0x1000

Typedef Documentation

◆ mmu_rgn_t

typedef enum mmu_rgn_e mmu_rgn_t

◆ mmu_sd_pt_t

typedef union mmu_sd_pt_s mmu_sd_pt_t

◆ mmu_sd_sec_t

typedef union mmu_sd_sec_s mmu_sd_sec_t

◆ mmu_sd_sp_t

typedef union mmu_sd_sp_s mmu_sd_sp_t

◆ mmu_sd_ssec_t

Enumeration Type Documentation

◆ mmu_rgn_e

enum mmu_rgn_e
Enumerator
RGN_NOCACHE 
RGN_CACHE_WBACK_WALLOC 
RGN_CACHE_WTHROUGH 
RGN_CACHE_WBACK_NOALLOC 

Function Documentation

◆ cache_and_mmu_disable()

void cache_and_mmu_disable ( )

◆ cache_and_mmu_enable()

void cache_and_mmu_enable ( )

◆ mmu_debug()

void mmu_debug ( unsigned *  tt)

◆ mmu_init()

void mmu_init ( void  )

◆ mmu_make_page_table()

mmu_sd_pt_t mmu_make_page_table ( void *  ptbaddr)

◆ mmu_make_small_page()

mmu_sd_sp_t mmu_make_small_page ( void *  spbaddr,
bool_t  user,
bool_t  ro,
bool_t  xn,
bool_t  device,
bool_t  global 
)

◆ mmu_make_ttbr()

unsigned mmu_make_ttbr ( void *  base,
mmu_rgn_t  irgn,
mmu_rgn_t  rgn,
bool_t  shareable,
bool_t  not_outer_shareable 
)

◆ mmu_map_anysection()

void mmu_map_anysection ( unsigned int *  tt,
void *  pa,
void *  va,
bool_t  user,
bool_t  ro,
bool_t  xn,
bool_t  device,
bool_t  global,
int  super 
)

◆ mmu_map_small_page()

void mmu_map_small_page ( unsigned int *  tt,
void *  pa,
void *  va,
bool_t  user,
bool_t  ro,
bool_t  xn,
bool_t  device,
bool_t  global 
)

◆ mmu_virt_to_phys()

unsigned mmu_virt_to_phys ( unsigned  pd,
unsigned  va 
)

◆ mmu_virt_to_sp()

mmu_sd_sp_t mmu_virt_to_sp ( unsigned  pd,
unsigned  va 
)