Changeset ed166f7 in mainline for kernel/arch/sparc64/src/mm
- Timestamp:
- 2006-08-31T18:53:14Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6767c1d
- Parents:
- e0b241f
- Location:
- kernel/arch/sparc64/src/mm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/mm/as.c
re0b241f red166f7 27 27 */ 28 28 29 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ … … 34 34 35 35 #include <arch/mm/as.h> 36 #include <arch/mm/tlb.h> 36 37 #include <genarch/mm/as_ht.h> 37 38 #include <genarch/mm/asid_fifo.h> … … 44 45 } 45 46 46 /** @} 47 void as_install_arch(as_t *as) 48 { 49 tlb_context_reg_t ctx; 50 51 /* 52 * Write ASID to secondary context register. 53 * The primary context register has to be set 54 * from TL>0 so it will be filled from the 55 * secondary context register from the TL=1 56 * code just before switch to userspace. 57 */ 58 ctx.v = 0; 59 ctx.context = as->asid; 60 mmu_secondary_context_write(ctx.v); 61 } 62 63 /** @} 47 64 */ 48 65 -
kernel/arch/sparc64/src/mm/tlb.c
re0b241f red166f7 375 375 void tlb_invalidate_asid(asid_t asid) 376 376 { 377 /* TODO: write asid to some Context register and encode the register in second parameter below. */ 378 itlb_demap(TLB_DEMAP_CONTEXT, TLB_DEMAP_NUCLEUS, 0); 379 dtlb_demap(TLB_DEMAP_CONTEXT, TLB_DEMAP_NUCLEUS, 0); 377 tlb_context_reg_t sc_save, ctx; 378 379 ctx.v = sc_save.v = mmu_secondary_context_read(); 380 ctx.context = asid; 381 mmu_secondary_context_write(ctx.v); 382 383 itlb_demap(TLB_DEMAP_CONTEXT, TLB_DEMAP_SECONDARY, 0); 384 dtlb_demap(TLB_DEMAP_CONTEXT, TLB_DEMAP_SECONDARY, 0); 385 386 mmu_secondary_context_write(sc_save.v); 380 387 } 381 388 … … 389 396 { 390 397 int i; 398 tlb_context_reg_t sc_save, ctx; 399 400 ctx.v = sc_save.v = mmu_secondary_context_read(); 401 ctx.context = asid; 402 mmu_secondary_context_write(ctx.v); 391 403 392 404 for (i = 0; i < cnt; i++) { 393 /* TODO: write asid to some Context register and encode the register in second parameter below. */ 394 itlb_demap(TLB_DEMAP_PAGE, TLB_DEMAP_NUCLEUS, page + i * PAGE_SIZE); 395 dtlb_demap(TLB_DEMAP_PAGE, TLB_DEMAP_NUCLEUS, page + i * PAGE_SIZE); 396 } 405 itlb_demap(TLB_DEMAP_PAGE, TLB_DEMAP_SECONDARY, page + i * PAGE_SIZE); 406 dtlb_demap(TLB_DEMAP_PAGE, TLB_DEMAP_SECONDARY, page + i * PAGE_SIZE); 407 } 408 409 mmu_secondary_context_write(sc_save.v); 397 410 } 398 411
Note:
See TracChangeset
for help on using the changeset viewer.