Re: Memory Started not at 0x00000000

From: Roman Zippel (zippel@fh-brandenburg.de)
Date: Wed Feb 09 2000 - 07:18:18 EST


Hi,

> >
> > void __init free_area_init(unsigned int *zones_size)
> > {
> > - free_area_init_core(0, NODE_DATA(0), &mem_map, zones_size, 0);
> > + free_area_init_core(0, NODE_DATA(0), &mem_map, zones_size, PAGE_OFFSET);
> > }
> >
> > static int __init setup_mem_frac(char *str)
>
> Well, it seems that you are using mm tricks mapping physical memory
> start address to virtual address PAGE_OFFSET. It can't be applicable
> to SuperH architecture (or MIPS, I believe). For SuperH, the kernel
> space mapping are done with *no* TLB lookup, but just mask the
> address. I don't know if it is usual or not for the MIPS architecture
> where memory starts not at 0x00000000, but for SuperH, main memory start
> not at 0x00000000. For example, my evaluation board of SH-3 it starts
> at 0x0c000000, and evaluation board of SH-4 it start at 0x08000000.

On m68k the memory can be on a different location for every machine, so we
only have the virtual mapping. But I don't really understand why the patch
shouldn't work on other machine, what is at PAGE_OFFSET on SuperH or MIPS?
I always assumed that would be the address of page_address(mem_map[0])?

bye, Roman

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Feb 15 2000 - 21:00:14 EST