1f9bac91bSBenno Rice /*- 2f9bac91bSBenno Rice * Copyright (C) 1995, 1996 Wolfgang Solfrank. 3f9bac91bSBenno Rice * Copyright (C) 1995, 1996 TooLs GmbH. 4f9bac91bSBenno Rice * All rights reserved. 5f9bac91bSBenno Rice * 6f9bac91bSBenno Rice * Redistribution and use in source and binary forms, with or without 7f9bac91bSBenno Rice * modification, are permitted provided that the following conditions 8f9bac91bSBenno Rice * are met: 9f9bac91bSBenno Rice * 1. Redistributions of source code must retain the above copyright 10f9bac91bSBenno Rice * notice, this list of conditions and the following disclaimer. 11f9bac91bSBenno Rice * 2. Redistributions in binary form must reproduce the above copyright 12f9bac91bSBenno Rice * notice, this list of conditions and the following disclaimer in the 13f9bac91bSBenno Rice * documentation and/or other materials provided with the distribution. 14f9bac91bSBenno Rice * 3. All advertising materials mentioning features or use of this software 15f9bac91bSBenno Rice * must display the following acknowledgement: 16f9bac91bSBenno Rice * This product includes software developed by TooLs GmbH. 17f9bac91bSBenno Rice * 4. The name of TooLs GmbH may not be used to endorse or promote products 18f9bac91bSBenno Rice * derived from this software without specific prior written permission. 19f9bac91bSBenno Rice * 20f9bac91bSBenno Rice * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR 21f9bac91bSBenno Rice * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 22f9bac91bSBenno Rice * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 23f9bac91bSBenno Rice * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24f9bac91bSBenno Rice * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 25f9bac91bSBenno Rice * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 26f9bac91bSBenno Rice * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 27f9bac91bSBenno Rice * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 28f9bac91bSBenno Rice * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 29f9bac91bSBenno Rice * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30f9bac91bSBenno Rice * 31f9bac91bSBenno Rice * $NetBSD: pte.h,v 1.2 1998/08/31 14:43:40 tsubai Exp $ 32f9bac91bSBenno Rice * $FreeBSD$ 33f9bac91bSBenno Rice */ 34f9bac91bSBenno Rice 35f9bac91bSBenno Rice #ifndef _MACHINE_PTE_H_ 36f9bac91bSBenno Rice #define _MACHINE_PTE_H_ 37f9bac91bSBenno Rice 38f9bac91bSBenno Rice /* 39f9bac91bSBenno Rice * Page Table Entries 40f9bac91bSBenno Rice */ 41f9bac91bSBenno Rice #ifndef LOCORE 42f9bac91bSBenno Rice #include <sys/queue.h> 43f9bac91bSBenno Rice 44f9bac91bSBenno Rice struct pte { 45f9bac91bSBenno Rice u_int pte_hi; 46f9bac91bSBenno Rice u_int pte_lo; 47f9bac91bSBenno Rice }; 48f9bac91bSBenno Rice #endif /* LOCORE */ 49f9bac91bSBenno Rice /* High word: */ 50f9bac91bSBenno Rice #define PTE_VALID 0x80000000 51f9bac91bSBenno Rice #define PTE_VSID_SHFT 7 52f9bac91bSBenno Rice #define PTE_HID 0x00000040 53f9bac91bSBenno Rice #define PTE_API 0x0000003f 54f9bac91bSBenno Rice /* Low word: */ 55f9bac91bSBenno Rice #define PTE_RPGN 0xfffff000 56f9bac91bSBenno Rice #define PTE_REF 0x00000100 57f9bac91bSBenno Rice #define PTE_CHG 0x00000080 58f9bac91bSBenno Rice #define PTE_WIMG 0x00000078 59f9bac91bSBenno Rice #define PTE_W 0x00000040 60f9bac91bSBenno Rice #define PTE_I 0x00000020 61f9bac91bSBenno Rice #define PTE_M 0x00000010 62f9bac91bSBenno Rice #define PTE_G 0x00000008 63f9bac91bSBenno Rice #define PTE_PP 0x00000003 64f9bac91bSBenno Rice #define PTE_RO 0x00000003 65f9bac91bSBenno Rice #define PTE_RW 0x00000002 66f9bac91bSBenno Rice 67f9bac91bSBenno Rice #ifndef LOCORE 68f9bac91bSBenno Rice typedef struct pte pte_t; 69f9bac91bSBenno Rice #endif /* LOCORE */ 70f9bac91bSBenno Rice 71f9bac91bSBenno Rice /* 72f9bac91bSBenno Rice * Extract bits from address 73f9bac91bSBenno Rice */ 74f9bac91bSBenno Rice #define ADDR_SR_SHFT 28 75f9bac91bSBenno Rice #define ADDR_PIDX 0x0ffff000 76f9bac91bSBenno Rice #define ADDR_PIDX_SHFT 12 77f9bac91bSBenno Rice #define ADDR_API_SHFT 22 78f9bac91bSBenno Rice #define ADDR_POFF 0x00000fff 79f9bac91bSBenno Rice 80f9bac91bSBenno Rice #ifndef LOCORE 81f9bac91bSBenno Rice #ifdef _KERNEL 82f9bac91bSBenno Rice extern pte_t *ptable; 83f9bac91bSBenno Rice extern int ptab_cnt; 84f9bac91bSBenno Rice #endif /* _KERNEL */ 85f9bac91bSBenno Rice #endif /* LOCORE */ 86f9bac91bSBenno Rice 87f9bac91bSBenno Rice /* 88f9bac91bSBenno Rice * Bits in DSISR: 89f9bac91bSBenno Rice */ 90f9bac91bSBenno Rice #define DSISR_DIRECT 0x80000000 91f9bac91bSBenno Rice #define DSISR_NOTFOUND 0x40000000 92f9bac91bSBenno Rice #define DSISR_PROTECT 0x08000000 93f9bac91bSBenno Rice #define DSISR_INVRX 0x04000000 94f9bac91bSBenno Rice #define DSISR_STORE 0x02000000 95f9bac91bSBenno Rice #define DSISR_DABR 0x00400000 96f9bac91bSBenno Rice #define DSISR_SEGMENT 0x00200000 97f9bac91bSBenno Rice #define DSISR_EAR 0x00100000 98f9bac91bSBenno Rice 99f9bac91bSBenno Rice /* 100f9bac91bSBenno Rice * Bits in SRR1 on ISI: 101f9bac91bSBenno Rice */ 102f9bac91bSBenno Rice #define ISSRR1_NOTFOUND 0x40000000 103f9bac91bSBenno Rice #define ISSRR1_DIRECT 0x10000000 104f9bac91bSBenno Rice #define ISSRR1_PROTECT 0x08000000 105f9bac91bSBenno Rice #define ISSRR1_SEGMENT 0x00200000 106f9bac91bSBenno Rice 107f9bac91bSBenno Rice #ifdef _KERNEL 108f9bac91bSBenno Rice #ifndef LOCORE 109f9bac91bSBenno Rice extern u_int dsisr __P((void)); 110f9bac91bSBenno Rice #endif /* _KERNEL */ 111f9bac91bSBenno Rice #endif /* LOCORE */ 112f9bac91bSBenno Rice #endif /* _MACHINE_PTE_H_ */ 113