summaryrefslogtreecommitdiff
path: root/sys/src/9/zynq/mmu.c
AgeCommit message (Collapse)Author
2015-06-18zynq: use KADDR() for kmap() if we can avoiding the mappingcinap_lenrek
2015-06-15kernel: add pagechaindone() to wakeup processes waiting for memorycinap_lenrek
we keep the details about palloc in page.c, providing pagechaindone() for mmu code to be called after a series of pagechainhead() calls.
2015-06-15zynq: remove unused PTE typedefcinap_lenrek
all the mmu code uses ulong, so get rid of the typeded.
2015-02-14zynq: do fixed mapping for ocm memory on boot and make kaddr() and paddr() ↵cinap_lenrek
work with it map the whole ocm memory on boot so we can translate physical to virtual addresses and back for uncached memory using KADDR() and PADDR(). replace ualloc() with ucalloc() returning virtual address. physical address can be acquired with PADDR() now. as ocm is now always mapped, use KADDR() instead of tmpmap() for mp bootstrap.
2015-02-07kernel: reduce Page structure size by changing Page.cachectl[]cinap_lenrek
there are no kernels currently that do page coloring, so the only use of cachectl[] is flushing the icache (on arm and ppc). on pc64, cachectl consumes 32 bytes in each page resulting in over 200 megabytes of overhead for 32gb of ram with 4K pages. this change removes cachectl[] and adds txtflush ulong that is set to ~0 by pio() to instruct putmmu() to flush the icache.
2014-12-29zymq: lilu dallas, multicorecinap_lenrek
implement multiprocessor support.
2014-12-25zynq: only tmpmap() while splhi(), remove unneeded coherence() after ↵cinap_lenrek
tmpunmap(), splhi() in l2free() we have to call tmpmap() with interrupts disabled as the map is a per cpu and a interrupt can preempt us while we where commited to use a entry but *before* we wrote it! tmpunmap() already calls coherence() before flushpg() so it is not needed after tmpunmap(). splhi() in l2free() isnt needed as l2free() is always called with interrupts disabled from mmuswitch() and mmurelease().
2014-12-24added zynq kernelaiju