mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-22 02:37:15 +00:00
![]() Currently we create the DMAP by mapping the entire range between the smallest and largest physical memory addresses with L1 superpages. This is obviously overkill, and we may end up mapping all kinds of ranges that are not real memory. In the case of the HiFive Unmatched (obsolete hardware), there is an errata resulting in faults when a TLB mapping spans PMP (firmware) protection regions. So, when our DMAP mapping spans into the memory reserved by OpenSBI, we get a fatal fault. This highlights the need to be smarter here. Therefore, let's attempt to build the DMAP a little more correctly by walking the physmap array and mapping each range individually. It is not perfect in that we still only respect the range to a 2MB granularity, but this could be improved in the future. Reviewed by: markj MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45328 |
||
---|---|---|
.. | ||
allwinner | ||
conf | ||
include | ||
riscv | ||
sifive | ||
starfive |