diff options
Diffstat (limited to 'include/asm-ppc/mmu.h')
| -rw-r--r-- | include/asm-ppc/mmu.h | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/include/asm-ppc/mmu.h b/include/asm-ppc/mmu.h index ce04e624d..fa92b90c3 100644 --- a/include/asm-ppc/mmu.h +++ b/include/asm-ppc/mmu.h @@ -138,6 +138,10 @@ typedef struct _MMU_context {  extern void _tlbie(unsigned long va);	/* invalidate a TLB entry */  extern void _tlbia(void);		/* invalidate all TLB entries */ +#ifdef CONFIG_ADDR_MAP +extern void init_addr_map(void); +#endif +  typedef enum {  	IBAT0 = 0, IBAT1, IBAT2, IBAT3,  	DBAT0, DBAT1, DBAT2, DBAT3, @@ -203,6 +207,14 @@ extern void print_bats(void);  #define BPP_RX	0x01		/* Read only */  #define BPP_RW	0x02		/* Read/write */ +/* Macros to get values from BATs, once data is in the BAT register format */ +#define BATU_VALID(x) (x & 0x3) +#define BATU_VADDR(x) (x & 0xfffe0000) +#define BATL_PADDR(x) ((phys_addr_t)((x & 0xfffe0000)		\ +				     | ((x & 0x0e00ULL) << 24)	\ +				     | ((x & 0x04ULL) << 30))) +#define BATU_SIZE(x) (1UL << (fls((x & BATU_BL_MAX) >> 2) + 17)) +  /* Used to set up SDR1 register */  #define HASH_TABLE_SIZE_64K	0x00010000  #define HASH_TABLE_SIZE_128K	0x00020000 @@ -462,9 +474,7 @@ extern void set_tlb(u8 tlb, u32 epn, u64 rpn,  extern void disable_tlb(u8 esel);  extern void invalidate_tlb(u8 tlb);  extern void init_tlbs(void); -#ifdef CONFIG_ADDR_MAP -extern void init_addr_map(void); -#endif +  extern unsigned int setup_ddr_tlbs(unsigned int memsize_in_meg);  #define SET_TLB_ENTRY(_tlb, _epn, _rpn, _perms, _wimge, _ts, _esel, _sz, _iprot) \ |