This patchset relaxes this constraint. Basically you just need to
define in your platform code (include/asm-mips/mach-foo/spaces.h
probably) PHYS_OFFSET that corresponds to the start of your
physical memory and you're done.
The first patch is just a fix for HIGHMEM, I just found it while
writing this patchset. I haven't done any tests though, I have
no hardwares to play with.
The second and third patchs are the real meat. There are 2 points
that I'm not really sure:
- PHYS_OFFSET is defined in page.h, I'm not sure if it's
the right place though.
- ARCH_PFN_OFFSET is always defined whatever the memory
model. I don't think it will hurt since physical memory
always has a starting point in all cases.
arch/mips/kernel/setup.c | 30 ++++++++++++++++++++++--------
arch/mips/mm/init.c | 30 +++++++++++++-----------------
include/asm-mips/dma.h | 1 +
include/asm-mips/io.h | 4 ++--
include/asm-mips/page.h | 25 +++++++++++++++++++++----
5 files changed, 59 insertions(+), 31 deletions(-)