Changeset 10b890b in mainline for kernel/arch/sparc64/src/mm/tlb.c
- Timestamp:
- 2006-07-13T22:11:26Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c6e314a
- Parents:
- a5f76758
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/mm/tlb.c
ra5f76758 r10b890b 27 27 */ 28 28 29 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ … … 58 58 }; 59 59 60 /** Initialize ITLB and DTLB.61 *62 * The goal of this function is to disable MMU63 * so that both TLBs can be purged and new64 * kernel 4M locked entry can be installed.65 * After TLB is initialized, MMU is enabled66 * again.67 *68 * Switching MMU off imposes the requirement for69 * the kernel to run in identity mapped environment.70 */71 60 void tlb_arch_init(void) 72 61 { 73 tlb_tag_access_reg_t tag;74 tlb_data_t data;75 frame_address_t fr;76 page_address_t pg;77 78 fr.address = config.base;79 pg.address = config.base;80 81 immu_disable();82 dmmu_disable();83 84 /*85 * Demap everything, especially OpenFirmware.86 */87 itlb_demap(TLB_DEMAP_CONTEXT, TLB_DEMAP_NUCLEUS, 0);88 dtlb_demap(TLB_DEMAP_CONTEXT, TLB_DEMAP_NUCLEUS, 0);89 90 /*91 * We do identity mapping of 4M-page at 4M.92 */93 tag.value = ASID_KERNEL;94 tag.vpn = pg.vpn;95 96 itlb_tag_access_write(tag.value);97 dtlb_tag_access_write(tag.value);98 99 data.value = 0;100 data.v = true;101 data.size = PAGESIZE_4M;102 data.pfn = fr.pfn;103 data.l = true;104 data.cp = 1;105 data.cv = 1;106 data.p = true;107 data.w = true;108 data.g = true;109 110 itlb_data_in_write(data.value);111 dtlb_data_in_write(data.value);112 113 /*114 * Register window traps can occur before MMU is enabled again.115 * This ensures that any such traps will be handled from116 * kernel identity mapped trap handler.117 */118 trap_switch_trap_table();119 120 tlb_invalidate_all();121 122 dmmu_enable();123 immu_enable();124 62 } 125 63 … … 280 218 } 281 219 282 /** @} 283 */ 284 220 /** @} 221 */
Note:
See TracChangeset
for help on using the changeset viewer.