Changeset c1982e45 in mainline for arch/sparc64/src/mm/page.c


Ignore:
Timestamp:
2006-05-20T21:11:08Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
125e944
Parents:
1068f6a
Message:

make hardware memory mapping more generic

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/sparc64/src/mm/page.c

    r1068f6a rc1982e45  
    2828
    2929#include <arch/mm/page.h>
     30#include <arch/mm/tlb.h>
    3031#include <genarch/mm/page_ht.h>
     32#include <mm/frame.h>
     33#include <bitops.h>
    3134
    3235void page_arch_init(void)
     
    3437        page_mapping_operations = &ht_mapping_operations;
    3538}
     39
     40__address hw_map(__address physaddr, size_t size)
     41{
     42        unsigned int order;
     43       
     44        if (size <= FRAME_SIZE)
     45                order = 0;
     46        else
     47                order = (fnzb32(size - 1) + 1) - FRAME_WIDTH;
     48       
     49        __address virtaddr = PA2KA(PFN2ADDR(frame_alloc(order, FRAME_KA)));
     50       
     51        dtlb_insert_mapping(virtaddr, physaddr, PAGESIZE_512K, true, false);
     52        dtlb_insert_mapping(virtaddr + 512 * 1024, physaddr + 512 * 1024, PAGESIZE_512K, true, false);
     53       
     54        return virtaddr;
     55}
Note: See TracChangeset for help on using the changeset viewer.