On 26/04/13 23:21, Artyom Tarasenko wrote:
In that case can you just try removing this part of the address reservation code from SVN trunk like this:
--- a/openbios-devel/arch/sparc32/openbios.c +++ b/openbios-devel/arch/sparc32/openbios.c @@ -820,9 +820,6 @@ static void init_memory(void)
/* Generate the mapping (and lock translation into the TLBs) */ ofmem_map(phys, virt, MEMORY_SIZE,
ofmem_arch_default_translation_mode(phys));
- /* Mark everything up until OFMEM_VIRT_TOP as in use */
- ofmem_claim_virt(OFMEM_VIRT_TOP, OF_CODE_START - MEMORY_SIZE -
OFMEM_VIRT_TOP, 0);
/* we push start and end of memory to the stack * so that it can be used by the forth word QUIT * to initialize the memory allocator
Now the only remaining memory reserved in that region is at the very top end, and is just the 128K Forth dictionary which from your tests before should work.
Yes, I figured that too. Did some testing yesterday night, and it looked ok. As for the exact value of OFMEM_VIRT_TOP, I'm not sure any more that 0xff000000 is better than the current value. I think SunOS might behave differently just because of conflicting with OpenBIOS memory mappings.
Great! I've just committed a patch to remove these lines to SVN trunk.
ATB,
Mark.