18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci * 38c2ecf20Sopenharmony_ci * include/asm-sh/cpu-sh4/mmu_context.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 1999 Niibe Yutaka 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci#ifndef __ASM_CPU_SH4_MMU_CONTEXT_H 88c2ecf20Sopenharmony_ci#define __ASM_CPU_SH4_MMU_CONTEXT_H 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#define MMU_PTEH 0xFF000000 /* Page table entry register HIGH */ 118c2ecf20Sopenharmony_ci#define MMU_PTEL 0xFF000004 /* Page table entry register LOW */ 128c2ecf20Sopenharmony_ci#define MMU_TTB 0xFF000008 /* Translation table base register */ 138c2ecf20Sopenharmony_ci#define MMU_TEA 0xFF00000C /* TLB Exception Address */ 148c2ecf20Sopenharmony_ci#define MMU_PTEA 0xFF000034 /* PTE assistance register */ 158c2ecf20Sopenharmony_ci#define MMU_PTEAEX 0xFF00007C /* PTE ASID extension register */ 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define MMUCR 0xFF000010 /* MMU Control Register */ 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#define MMU_TLB_ENTRY_SHIFT 8 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#define MMU_ITLB_ADDRESS_ARRAY 0xF2000000 228c2ecf20Sopenharmony_ci#define MMU_ITLB_ADDRESS_ARRAY2 0xF2800000 238c2ecf20Sopenharmony_ci#define MMU_ITLB_DATA_ARRAY 0xF3000000 248c2ecf20Sopenharmony_ci#define MMU_ITLB_DATA_ARRAY2 0xF3800000 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci#define MMU_UTLB_ADDRESS_ARRAY 0xF6000000 278c2ecf20Sopenharmony_ci#define MMU_UTLB_ADDRESS_ARRAY2 0xF6800000 288c2ecf20Sopenharmony_ci#define MMU_UTLB_DATA_ARRAY 0xF7000000 298c2ecf20Sopenharmony_ci#define MMU_UTLB_DATA_ARRAY2 0xF7800000 308c2ecf20Sopenharmony_ci#define MMU_PAGE_ASSOC_BIT 0x80 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#ifdef CONFIG_MMU 338c2ecf20Sopenharmony_ci#define MMUCR_AT (1 << 0) 348c2ecf20Sopenharmony_ci#else 358c2ecf20Sopenharmony_ci#define MMUCR_AT (0) 368c2ecf20Sopenharmony_ci#endif 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci#define MMUCR_TI (1 << 2) 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci#define MMUCR_URB 0x00FC0000 418c2ecf20Sopenharmony_ci#define MMUCR_URB_SHIFT 18 428c2ecf20Sopenharmony_ci#define MMUCR_URB_NENTRIES 64 438c2ecf20Sopenharmony_ci#define MMUCR_URC 0x0000FC00 448c2ecf20Sopenharmony_ci#define MMUCR_URC_SHIFT 10 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci#if defined(CONFIG_32BIT) && defined(CONFIG_CPU_SUBTYPE_ST40) 478c2ecf20Sopenharmony_ci#define MMUCR_SE (1 << 4) 488c2ecf20Sopenharmony_ci#else 498c2ecf20Sopenharmony_ci#define MMUCR_SE (0) 508c2ecf20Sopenharmony_ci#endif 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci#ifdef CONFIG_CPU_HAS_PTEAEX 538c2ecf20Sopenharmony_ci#define MMUCR_AEX (1 << 6) 548c2ecf20Sopenharmony_ci#else 558c2ecf20Sopenharmony_ci#define MMUCR_AEX (0) 568c2ecf20Sopenharmony_ci#endif 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci#ifdef CONFIG_X2TLB 598c2ecf20Sopenharmony_ci#define MMUCR_ME (1 << 7) 608c2ecf20Sopenharmony_ci#else 618c2ecf20Sopenharmony_ci#define MMUCR_ME (0) 628c2ecf20Sopenharmony_ci#endif 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci#ifdef CONFIG_SH_STORE_QUEUES 658c2ecf20Sopenharmony_ci#define MMUCR_SQMD (1 << 9) 668c2ecf20Sopenharmony_ci#else 678c2ecf20Sopenharmony_ci#define MMUCR_SQMD (0) 688c2ecf20Sopenharmony_ci#endif 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci#define MMU_NTLB_ENTRIES 64 718c2ecf20Sopenharmony_ci#define MMU_CONTROL_INIT (MMUCR_AT | MMUCR_TI | MMUCR_SQMD | \ 728c2ecf20Sopenharmony_ci MMUCR_ME | MMUCR_SE | MMUCR_AEX) 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci#define TRA 0xff000020 758c2ecf20Sopenharmony_ci#define EXPEVT 0xff000024 768c2ecf20Sopenharmony_ci#define INTEVT 0xff000028 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci#endif /* __ASM_CPU_SH4_MMU_CONTEXT_H */ 798c2ecf20Sopenharmony_ci 80