Remove the L1 and L2 xscale page defines and rename the generic macros to
the common name. While here move the macros to check these into pmap-v4.c as they're only used there. Sponsored by: DARPA, AFRL
This commit is contained in:
parent
fd02e19689
commit
28df9253f1
@ -194,6 +194,11 @@ extern struct pv_addr systempage;
|
||||
|
||||
extern int last_fault_code;
|
||||
|
||||
#define l1pte_section_p(pde) (((pde) & L1_TYPE_MASK) == L1_TYPE_S)
|
||||
#define l2pte_index(v) (((v) & L1_S_OFFSET) >> L2_S_SHIFT)
|
||||
#define l2pte_valid(pte) ((pte) != 0)
|
||||
#define l2pte_pa(pte) ((pte) & L2_S_FRAME)
|
||||
|
||||
/*
|
||||
* Internal function prototypes
|
||||
*/
|
||||
@ -444,13 +449,13 @@ pmap_pte_init_generic(void)
|
||||
{
|
||||
|
||||
pte_l1_s_cache_mode = L1_S_B|L1_S_C;
|
||||
pte_l1_s_cache_mask = L1_S_CACHE_MASK_generic;
|
||||
pte_l1_s_cache_mask = L1_S_CACHE_MASK;
|
||||
|
||||
pte_l2_l_cache_mode = L2_B|L2_C;
|
||||
pte_l2_l_cache_mask = L2_L_CACHE_MASK_generic;
|
||||
pte_l2_l_cache_mask = L2_L_CACHE_MASK;
|
||||
|
||||
pte_l2_s_cache_mode = L2_B|L2_C;
|
||||
pte_l2_s_cache_mask = L2_S_CACHE_MASK_generic;
|
||||
pte_l2_s_cache_mask = L2_S_CACHE_MASK;
|
||||
|
||||
/*
|
||||
* If we have a write-through cache, set B and C. If
|
||||
|
@ -249,59 +249,24 @@ extern int pmap_needs_pte_sync;
|
||||
|
||||
/*
|
||||
* These macros define the various bit masks in the PTE.
|
||||
*
|
||||
* We use these macros since we use different bits on different processor
|
||||
* models.
|
||||
*/
|
||||
|
||||
#define L1_S_CACHE_MASK_generic (L1_S_B|L1_S_C)
|
||||
#define L1_S_CACHE_MASK_xscale (L1_S_B|L1_S_C|L1_S_XSCALE_TEX(TEX_XSCALE_X)|\
|
||||
L1_S_XSCALE_TEX(TEX_XSCALE_T))
|
||||
|
||||
#define L2_L_CACHE_MASK_generic (L2_B|L2_C)
|
||||
#define L2_L_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_L_TEX(TEX_XSCALE_X) | \
|
||||
L2_XSCALE_L_TEX(TEX_XSCALE_T))
|
||||
|
||||
#define L2_S_PROT_U_generic (L2_AP(AP_U))
|
||||
#define L2_S_PROT_W_generic (L2_AP(AP_W))
|
||||
#define L2_S_PROT_MASK_generic (L2_S_PROT_U|L2_S_PROT_W)
|
||||
|
||||
#define L2_S_PROT_U_xscale (L2_AP0(AP_U))
|
||||
#define L2_S_PROT_W_xscale (L2_AP0(AP_W))
|
||||
#define L2_S_PROT_MASK_xscale (L2_S_PROT_U|L2_S_PROT_W)
|
||||
|
||||
#define L2_S_CACHE_MASK_generic (L2_B|L2_C)
|
||||
#define L2_S_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_T_TEX(TEX_XSCALE_X)| \
|
||||
L2_XSCALE_T_TEX(TEX_XSCALE_X))
|
||||
|
||||
#define L1_S_PROTO_generic (L1_TYPE_S | L1_S_IMP)
|
||||
#define L1_S_PROTO_xscale (L1_TYPE_S)
|
||||
|
||||
#define L1_C_PROTO_generic (L1_TYPE_C | L1_C_IMP2)
|
||||
#define L1_C_PROTO_xscale (L1_TYPE_C)
|
||||
|
||||
#define L1_S_CACHE_MASK (L1_S_B|L1_S_C)
|
||||
#define L2_L_CACHE_MASK (L2_B|L2_C)
|
||||
#define L2_S_PROT_U (L2_AP(AP_U))
|
||||
#define L2_S_PROT_W (L2_AP(AP_W))
|
||||
#define L2_S_PROT_MASK (L2_S_PROT_U|L2_S_PROT_W)
|
||||
#define L2_S_CACHE_MASK (L2_B|L2_C)
|
||||
#define L1_S_PROTO (L1_TYPE_S | L1_S_IMP)
|
||||
#define L1_C_PROTO (L1_TYPE_C | L1_C_IMP2)
|
||||
#define L2_L_PROTO (L2_TYPE_L)
|
||||
|
||||
#define L2_S_PROTO_generic (L2_TYPE_S)
|
||||
#define L2_S_PROTO_xscale (L2_TYPE_XSCALE_XS)
|
||||
#define L2_S_PROTO (L2_TYPE_S)
|
||||
|
||||
/*
|
||||
* User-visible names for the ones that vary with MMU class.
|
||||
*/
|
||||
#define L2_AP(x) (L2_AP0(x) | L2_AP1(x) | L2_AP2(x) | L2_AP3(x))
|
||||
|
||||
#define L2_S_PROT_U L2_S_PROT_U_generic
|
||||
#define L2_S_PROT_W L2_S_PROT_W_generic
|
||||
#define L2_S_PROT_MASK L2_S_PROT_MASK_generic
|
||||
|
||||
#define L1_S_CACHE_MASK L1_S_CACHE_MASK_generic
|
||||
#define L2_L_CACHE_MASK L2_L_CACHE_MASK_generic
|
||||
#define L2_S_CACHE_MASK L2_S_CACHE_MASK_generic
|
||||
|
||||
#define L1_S_PROTO L1_S_PROTO_generic
|
||||
#define L1_C_PROTO L1_C_PROTO_generic
|
||||
#define L2_S_PROTO L2_S_PROTO_generic
|
||||
|
||||
#if defined(CPU_XSCALE_81342)
|
||||
#define CPU_XSCALE_CORE3
|
||||
#define PMAP_NEEDS_PTE_SYNC 1
|
||||
@ -383,26 +348,6 @@ void pmap_pte_init_generic(void);
|
||||
|
||||
#define PTE_KERNEL 0
|
||||
#define PTE_USER 1
|
||||
#define l1pte_valid(pde) ((pde) != 0)
|
||||
#define l1pte_section_p(pde) (((pde) & L1_TYPE_MASK) == L1_TYPE_S)
|
||||
#define l1pte_page_p(pde) (((pde) & L1_TYPE_MASK) == L1_TYPE_C)
|
||||
#define l1pte_fpage_p(pde) (((pde) & L1_TYPE_MASK) == L1_TYPE_F)
|
||||
|
||||
#define l2pte_index(v) (((v) & L1_S_OFFSET) >> L2_S_SHIFT)
|
||||
#define l2pte_valid(pte) ((pte) != 0)
|
||||
#define l2pte_pa(pte) ((pte) & L2_S_FRAME)
|
||||
#define l2pte_minidata(pte) (((pte) & \
|
||||
(L2_B | L2_C | L2_XSCALE_T_TEX(TEX_XSCALE_X)))\
|
||||
== (L2_C | L2_XSCALE_T_TEX(TEX_XSCALE_X)))
|
||||
|
||||
/* L1 and L2 page table macros */
|
||||
#define pmap_pde_v(pde) l1pte_valid(*(pde))
|
||||
#define pmap_pde_section(pde) l1pte_section_p(*(pde))
|
||||
#define pmap_pde_page(pde) l1pte_page_p(*(pde))
|
||||
#define pmap_pde_fpage(pde) l1pte_fpage_p(*(pde))
|
||||
|
||||
#define pmap_pte_v(pte) l2pte_valid(*(pte))
|
||||
#define pmap_pte_pa(pte) l2pte_pa(*(pte))
|
||||
|
||||
/*
|
||||
* Flags that indicate attributes of pages or mappings of pages.
|
||||
|
Loading…
x
Reference in New Issue
Block a user