How to map LARGE devices to memory?

Hi!

I’m trying to built TrueFFS driver for AMD MirrorBit NOR.
Platform - ARM9 (AT91RM9200).
To obtain access to connected flash I use

memsegPtr[i] = mmap_device_memory(
NULL,
size,
PROT_READ | PROT_WRITE | PROT_NOCACHE,
0,
startAddr );

where startAddr=0x10000000.
If size is 16MB (or more) function return ENOMEM error.
If size ~14MB or less function says OK.
Why? What can be wrong here?

Thanx, Artyom

P.S. OS - QNX Neutrino 6.2.1 Patch B