There are several places in the direct assignment code where it fails because e.g. a size of 2KiB gets rounded down to 0: in_range returns false: https://github.com/TUD-OS/NUL/blob/master/vancouver/model/directmem.cc#L35 https://github.com/TUD-OS/NUL/blob/master/vancouver/model/pcidirect.cc#L330 mapping is of size 0: https://github.com/TUD-OS/NUL/blob/master/vancouver/model/pcidirect.cc#L333