Bus space handles need to be the VA of the requested resource, not the

rounded page VA. Correct so the DBGU device can be mapped for FDT
console since it isn't on a page boundary.
This commit is contained in:
Warner Losh 2014-01-25 21:52:19 +00:00
parent 30b94db8c0
commit a500a7ce91

View File

@ -65,11 +65,13 @@ at91_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flags,
pa = trunc_page(bpa);
if (pa >= AT91_PA_BASE + 0xff00000) {
*bshp = pa - AT91_PA_BASE + AT91_BASE;
*bshp = bpa - AT91_PA_BASE + AT91_BASE;
return (0);
}
if (pa >= AT91_BASE + 0xff00000)
if (pa >= AT91_BASE + 0xff00000) {
*bshp = bpa;
return (0);
}
endpa = round_page(bpa + size);
*bshp = (vm_offset_t)pmap_mapdev(pa, endpa - pa);