Thank you very much for your help.
I
tried with it, but I have still some problems.
It
seems to work well, ... but it falls into some unstable state.
It recognized 512M correctly.
And it always run perfectly before multiuser mode using nfs.
But when entering into multiuser mode with "exit"
command under # prompt,
it stops a ceratin point, it's
not fixed point.
Once it stopped after "Checking for
core dump...", and once after
"savecore: no core dump
(no dumpdev)" and
once it stopped at displaying
"Copyright ...".
I modified
sandpoint/include/vmparam.h as
"#define
VM_MAX_KERNEL_ADDRESS (VM_MIN_KERNEL_ADDRESS + 2 * SEGMENT_LENGTH
- 1)"
and add upper 256M BAT mapping in
sandpoint/machdep.c just as below
/* map the upper
256M area */
battable[3].batl =
BATL(0x10000000, BAT_M, BAT_PP_RW);
battable[3].batu =
BATU(0x10000000, BAT_BL_256M, BAT_Vs);
asm
volatile ("mtibatl 3,%0; mtibatu 3,%1"
:: "r"(battable[3].batl), "r"(battable[3].batu));
asm volatile ("mtdbatl 3,%0; mtdbatu 3,%1"
:: "r"(battable[3].batl), "r"(battable[3].batu));
Under all these changes, 256M works perfect as
before.