freebsd-skq/sys/riscv
br 7b9e9617a5 o Implement shared pagetables and switch from 4 to 3 levels page
memory system.

RISC-V ISA has only single page table base register for both kernel
and user addresses translation. Before this commit we were using an
extra (4th) level of pagetables for switching between kernel and user
pagetables, but then realized FPGA hardware has 3-level page system
hardcoded. It is also become clear that the bitfile synthesized for
4-level system is untested/broken, so we can't use extra level for
switching.

We are now share level 1 of pagetables between kernel and user VA.
This requires to keep track of all the user pmaps created and once we
adding L1 page to kernel pmap we have to add it to all the user pmaps.

o Change the VM layout as we must have topmost bit to be 1 in the
  selected page system for kernel addresses and 0 for user addresses.
o Implement pmap_kenter_device().
o Create the l3 tables for the early devmap.

Sponsored by:	DARPA, AFRL
Sponsored by:	HEIF5
2016-04-25 14:47:51 +00:00
..
conf Add support for ddb(4). 2016-03-10 15:51:43 +00:00
htif Add memory barriers (fence instructions) so the data wrotten by hardware 2016-04-22 15:12:05 +00:00
include o Implement shared pagetables and switch from 4 to 3 levels page 2016-04-25 14:47:51 +00:00
riscv o Implement shared pagetables and switch from 4 to 3 levels page 2016-04-25 14:47:51 +00:00