reserve memory in low physical address - possible?

Jun Sun
2006-10-31T07:22:09Z

This question is specific to i386 architecture. While I am fairly
comfortable with Linux kernel, I am not familiar with i386 arch.

My objective is to reserve, or hide from kernel, some memory space in low
physical address range starting from 0. The memory amount is in the order
of 100MB to 200MB. The total memory is assumed to be around 512MB.

Is this possible?

I understand it is possible to reserve some memory at the end by
specifying "mem=xxxM" option in kernel command line. I looked into
"memmap=xxxM" option but it appears not helpful for what I want.

While searching on the web I also found things like DMA zone and loaders
etc that all seem to assume the existence low-addressed physical
memory. True?

I can certainly workaround the loader issue. I can also re-code the real-mode
part of kernel code to migrate to higher addresses. The DMA zone might be
a thorny one. Any clues? Are modern PCs still subject to
the 16MB DMA zone restriction?

Am I too far off from what I want to do?

Thanks.

Jun