Hi, I'm running 2.4 on a swarm card with 2Gig of memory. I've got CONFIG_64BIT_PHYS_ADDR=y configured. I get the following memory map during boot: Determined physical RAM map: memory: 0fe82e00 @ 00000000 (usable) memory: 1ffffe00 @ 80000000 (usable) memory: 0ffffe00 @ c0000000 (usable) memory: 3ffffe00 @ 100000000 (usable) "cat"ing /proc/iomem would cause an oops. I traced this to setup.c::resource_init(), which was incorrectly truncating the start address of the 0x100000000 memory entry to fit in a 32 bit ulong. This would cause the request_resource call to fail, triggering a bug which would insert an invalid root node in the iomem map. Here's a patch that works for me: cvs diff: Diffing . Index: setup.c =================================================================== RCS file: /home/cvs/linux/arch/mips/kernel/setup.c,v retrieving revision 1.168 diff -u -r1.168 setup.c --- setup.c 8 Feb 2004 14:57:04 -0000 1.168 +++ setup.c 2 Jun 2004 12:24:37 -0000 @@ -382,7 +382,7 @@ */ for (i = 0; i < boot_mem_map.nr_map; i++) { struct resource *res; - unsigned long start, end; + phys_t start, end; start = boot_mem_map.map[i].addr; end = boot_mem_map.map[i].addr + boot_mem_map.map[i].size - 1; @@ -406,15 +406,16 @@ res->end = end; res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; - request_resource(&iomem_resource, res); + if (request_resource(&iomem_resource, res) == 0) { - /* - * We don't know which RAM region contains kernel data, - * so we try it repeatedly and let the resource manager - * test it. - */ - request_resource(res, &code_resource); - request_resource(res, &data_resource); + /* + * We don't know which RAM region contains kernel data, + * so we try it repeatedly and let the resource manager + * test it. + */ + request_resource(res, &code_resource); + request_resource(res, &data_resource); + } } } -K __________________________________ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/