If you want the OS to totally ignore it, you need to make a memory hole using "
memmap." See this reference. For example, if you want 512M at the 2GB barrier, you can put "
memmap=512M$2G" on your kernel command line.
You will need to check your
dmesg to find a contiguous hole to steal so you don't stomp on any devices; that is specific to your motherboard+cards.
This is not the recommended way to do things - see Warren Young's answer for how to properly do it (kernel drivers + DMA). I'm answering the exact question you asked. If you plan on making this for end users, they will hate you if you do this to them... trust me, that's the only reason I knew this answer.
Edit: If you are using grub2 w/ grubby (e.g. CentOS 7), you need to make sure to escape the $. There should be a single
$ sudo -v
$ sudo grubby --update-kernel=ALL --args=memmap='128M\\$0x57EF0000'
$ sudo grubby --info $(sudo grubby --default-kernel) | grep memmap
args="ro crashkernel=auto ... memmap=128M\$0x57EF0000"