On Wed, Apr 18, 2018 at 06:55:35PM +0200, Alexander Bluhm wrote: > On Thu, Apr 19, 2018 at 12:10:04AM +1000, Jonathan Gray wrote: > > That's with the big radeon update diff as well? > > That was current. Boots fine. > > With ~jsg/radeon.diff.2 it still crashes. I have checked, it is > the diff with > > if (rdev->rio_mem_size > 0) > bus_space_unmap(rdev->iot, rdev->rio_mem, rdev->rio_mem_size); > > initializing kernel modesetting (RV100 0x1002:0x515E 0x1002:0x515E). > radeon_cp: Failed to load firmware "radeon/R100_cp.bin" > error: [drm:pid0:r100_cp_init] *ERROR* Failed to load firmware! > drm:pid0:r100_startup *ERROR* failed initializing CP (-2). > drm:pid0:r100_init *ERROR* Disabling GPU acceleration > uvm_fault(0xd0cae21c, 0xd11e2000, 0, 1) -> e > kernel: page fault trap, code=0 > Stopped at pmap_page_remove_pae+0x18: cmpl $0,0x48(%edi) > ddb{0}> trace > pmap_page_remove_pae(d11e2768) at pmap_page_remove_pae+0x18 > ttm_tt_destroy(d5765a00) at ttm_tt_destroy+0x61 > ttm_bo_cleanup_refs_or_queue(d572eb28) at ttm_bo_cleanup_refs_or_queue+0x2b3 > ttm_bo_unref(d0f63ed8) at ttm_bo_unref+0x69 > radeon_bo_unref(d572eb28) at radeon_bo_unref+0x27 > radeon_wb_fini(d572d000) at radeon_wb_fini+0x49 > r100_init(d572d000) at r100_init+0x409 > radeon_device_init(d572d000,d5701400,d570143c,840001) at > radeon_device_init+0x7 > 97 > radeondrm_attachhook(d572d000) at radeondrm_attachhook+0x2b > config_process_deferred_mountroot() at config_process_deferred_mountroot+0x2c > main(0) at main+0x7bf
After spending some time trying to track this down I have come up with the diff below and included it in ~jsg/radeon.diff.4 can you confirm that it works for you as well? diff --git sys/dev/pci/drm/ttm/ttm_bo_util.c sys/dev/pci/drm/ttm/ttm_bo_util.c index 3b26d865be2..da6c459bd39 100644 --- sys/dev/pci/drm/ttm/ttm_bo_util.c +++ sys/dev/pci/drm/ttm/ttm_bo_util.c @@ -644,7 +644,7 @@ void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map) vunmap(map->virtual, bo->mem.bus.size); break; case ttm_bo_map_kmap: - kunmap(map->page); + kunmap(map->virtual); break; case ttm_bo_map_premapped: break;