The basic rule is, VM object (FreeBSD's vm_object or NetBSD's uvm_object) owns manageable pages, whose descriptors (vm_page) are returned by getpages() method to fault handler.
If a device only owns device memory (!= manageable pages, thus no vm_page allocated), what to return to fault handler?
My understanding is, FreeBSD uses "fictitious" vm_page, only to tell fault handler the faulting page's physical address (maybe with some other properties). "Fictitious" way would work, but ugly IMO.