Messages in this thread |  | | | Date | Wed, 9 Feb 2000 13:18:18 +0100 (MET) | | From | Roman Zippel <> | | Subject | Re: Memory Started not at 0x00000000 |
| |
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/
|  |