Module Name: src Committed By: matt Date: Fri Dec 23 18:50:36 UTC 2011
Modified Files: src/sys/arch/mips/include [matt-nb5-mips64]: mips3_pte.h Log Message: Base various #defines, etc. on PAGE_SHIFT instead of using separate ENABLE_MIPS_*_PAGE defines. To generate a diff of this commit: cvs rdiff -u -r1.23.38.7 -r1.23.38.8 src/sys/arch/mips/include/mips3_pte.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/mips/include/mips3_pte.h diff -u src/sys/arch/mips/include/mips3_pte.h:1.23.38.7 src/sys/arch/mips/include/mips3_pte.h:1.23.38.8 --- src/sys/arch/mips/include/mips3_pte.h:1.23.38.7 Fri Dec 2 00:01:37 2011 +++ src/sys/arch/mips/include/mips3_pte.h Fri Dec 23 18:50:35 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: mips3_pte.h,v 1.23.38.7 2011/12/02 00:01:37 matt Exp $ */ +/* $NetBSD: mips3_pte.h,v 1.23.38.8 2011/12/23 18:50:35 matt Exp $ */ /* * Copyright (c) 1992, 1993 @@ -78,6 +78,7 @@ #ifndef _MIPS_MIPS3_PTE_H_ #define _MIPS_MIPS3_PTE_H_ + /* * R4000 hardware page table entry */ @@ -106,20 +107,28 @@ unsigned int pg_g:1, /* HW: ignore as #define MIPS3_PG_WIRED 0x80000000 /* SW */ #define MIPS3_PG_RO 0x40000000 /* SW */ -#ifdef ENABLE_MIPS_16KB_PAGE -#define MIPS3_PG_SVPN 0xffffc000 /* Software page no mask */ -#define MIPS3_PG_HVPN 0xffff8000 /* Hardware page no mask */ -#define MIPS3_PG_ODDPG 0x00004000 /* Odd even pte entry */ -#elif defined(ENABLE_MIPS_8KB_PAGE) -#define MIPS3_PG_SVPN 0xffffe000 /* Software page no mask */ -#define MIPS3_PG_HVPN 0xffffe000 /* Hardware page no mask */ -#define MIPS3_PG_NEXT 0x00000040 /* next PFN */ -#elif defined(ENABLE_MIPS_4KB_PAGE) || 1 -#define MIPS3_PG_SVPN 0xfffff000 /* Software page no mask */ -#define MIPS3_PG_HVPN 0xffffe000 /* Hardware page no mask */ -#define MIPS3_PG_ODDPG 0x00001000 /* Odd even pte entry */ +#ifndef PAGE_SHIFT +#error PAGE_SHIFT is not defined +#endif +#define MIPS3_PG_SVPN (0xffffffff << PAGE_SHIFT) + /* Software page # mask */ +#if PAGE_SHIFT & 1 +#define MIPS3_PG_HVPN MIPS3_PG_SVPN /* Hardware page # mask */ +#if !defined(_LOCORE) +#define MIPS3_PG_NEXT (1U << (PAGE_SHIFT - MIPS3_PG_SHIFT - 1)) + /* next PFN */ +#elif defined(MIPS_4100) +#define MIPS3_PG_NEXT (1U << (PAGE_SHIFT - MIPS3_4100_PG_SHIFT - 1)) + /* next PFN */ +#else +#define MIPS3_PG_NEXT (1U << (PAGE_SHIFT - MIPS3_DEFAULT_PG_SHIFT - 1)) + /* next PFN */ +#endif +#else +#define MIPS3_PG_HVPN (MIPS3_PG_SVPN << 1) /* Hardware page # mask */ +#define MIPS3_PG_ODDPG (1U << PAGE_SHIFT) /* Odd even pte entry */ #endif -#define MIPS3_PG_ASID 0x000000ff /* Address space ID */ +#define MIPS3_PG_ASID 0x000003ff /* Address space ID */ #define MIPS3_PG_G 0x00000001 /* Global; ignore ASID if in lo0 & lo1 */ #define MIPS3_PG_V 0x00000002 /* Valid */ #define MIPS3_PG_NV 0x00000000 @@ -214,7 +223,7 @@ CTASSERT(MIPS3_PG_SIZE_TO_MASK(8192) == #define MIPS4100_PG_SIZE_MASK_TO_SIZE(pg_mask) \ ((((pg_mask) | 0x000007ff) + 1) / 2) -#define MIPS4100_PG_SIZE_TO_MASK(pg_size) \ +#define MIPS4100_PG_SIZE_TO_MASK(pg_size) \ ((((pg_size) * 2) - 1) & ~0x000007ff) #endif /* !_MIPS_MIPS3_PTE_H_ */