SDRAM location - With PPC does it have to be below 256MB?

With the hardware I am using, flash is from 0-0x3ffffff, and
SDRAM is from 0x10000000-0x17ffffff. The processor is
a PowerPC 5200 in big-endian mode.

When trying to get the IPL and startup to work, I received the
message “could not allocate 0x1000 for cpupage”. My first
assumption was that I did not set up a section of memory
for dynamic memory allocation.

This morning, I found the source code for the function it calls in
C:\QNXsdk\target\qnx6\usr\src\bsp-6.2.1\libs\src\hardware\startup\lib\ppc\cp
u_syspage_memory.c.

It contains the following line after allocating memory to the variable
cpupage_paddr:

if((cpupage_paddr == ~0L) || (cpupage_paddr > MEG(256))) {

Clearly, rejecting any memory allocations (of physical memory, we’re
still booting) above 256MB is a problem when your RAM starts at
256MB.

I looked, and this seems to be a new addition to 6.2.1B - 6.2.0
does not seem to have this. And it only seems to be for PowerPC
big-endian.

Obviously, I can fix this and rebuilt the library. That gets me past the
error message. I’m just concerned that QNX has some limitation on
where SDRAM can be and I’ll have more problems.

Ironically, the module that code was in says:
“This code is hardware independant and should not have to be changed by end
users.”

Any ideas? Is there a limitation on the location of SDRAM?