This uses pmap_qenter always unlike amd64. While this may be less
optimized, it is simpler.
Sponsored by: Netflix
Differential D54307
arm64: Support non-DMAP addresses for pmap_map_io_transient Authored by jhb on Fri, Dec 19, 3:20 PM.
Details
Diff Detail
Event TimelineComment Actions This is more of a RFC than a commit candidate. When I tried to use /dev/mem to access a register I got a "system error abort" panic (but mapping the same memory region with new-bus as a struct resource worked fine). The use case for me was using dd if=/dev/mem iseek=<register physical address/4> bs=4 count=1 | hd is how I got the SERR# panic. I'm not sure if the difference is that I should be using a different memattr perhaps? On amd64, this code uses pmap_kenter for the !can_fault case to avoid TLB shutdowns. I'm not sure that is as important for arm64 since shutdowns are presumably a bit cheaper which is why I did the lazy thing. Comment Actions See also the discussion in D47678 from when I implemented what looks like the same patch |