tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [Milkymist port] virtual memory management
On Feb 18, 2014, at 3:54 AM, Yann Sionneau <yann.sionneau%gmail.com@localhost>
wrote:
> Le 10/02/14 23:00, Yann Sionneau a écrit :
>> Thanks for all your explanations, if everything I said here is correct
>> (which would mean I understood correctly your answer) then I think I'm ready
>> to implement all this :)
>
> Hi,
>
> I have made good progress on the NetBSD port, it is now booting up to
> enabling interrupts and cpu_initclocks() call, see the boot log [0].
>
> But then I am wondering how I can map the memory mapped registers of the
> timer0 of Milkymist SoC in order to use it as the main ticking clock.
>
> Basically, I need to map physical address 0xe000.1000 somewhere in kernel
> virtual memory.
>
> Is there somewhere a function like vaddr_t map_paddr(paddr_t, prot)?
>
> I could indeed walk the kernel page table and insert somewhere in a free PTE
> (a NULL one) a reference to the 0xe000.1000 physical address, but then how to
> be sure that the vm subsystem will not allocate this virtual address twice?
>
> Is there an "iomapping" mechanism?
>
> Thank you for your help :)
>
> [0] -- http://pastebin.com/MYitt9L4
see bus_space(9), specifically bus_space_map.
internally, it allocates some KVA via uvm and uses pmap_kenter_pa to
map the I/O address via the allocated KVA.
Home |
Main Index |
Thread Index |
Old Index