--- zzzz-none-000/linux-2.6.13.1/arch/arm/mm/init.c 2005-09-10 02:42:58.000000000 +0000 +++ ohio-7170-487/linux-2.6.13.1/arch/arm/mm/init.c 2006-12-20 12:37:57.000000000 +0000 @@ -109,6 +109,9 @@ start_pfn = O_PFN_UP(__pa(&_end)); bootmap_pfn = 0; + printk("[find_bootmap_pfn] PAGE_SHIFT 0x%x PAGE_SIZE 0x%lx\n", PAGE_SHIFT,PAGE_SIZE); + printk("[find_bootmap_pfn] bootmap_pages %d start_pfn 0x%x\n", bootmap_pages, start_pfn); + for (bank = 0; bank < mi->nr_banks; bank ++) { unsigned int start, end; @@ -119,6 +122,8 @@ end = (mi->bank[bank].size + mi->bank[bank].start) >> PAGE_SHIFT; + printk(" start 0x%x end 0x%x\n", start, end); + if (end < start_pfn) continue; @@ -157,6 +162,8 @@ np[i].end = 0; np[i].bootmap_pages = 0; } + + printk("[find_memend_and_nodes] MAX_NUMNODES %d mi->nr_banks %d\n", MAX_NUMNODES, mi->nr_banks); for (i = 0; i < mi->nr_banks; i++) { unsigned long start, end; @@ -205,8 +212,7 @@ if (np[i].end == 0) continue; - np[i].bootmap_pages = bootmem_bootmap_pages(np[i].end - - np[i].start); + np[i].bootmap_pages = bootmem_bootmap_pages(np[i].end - np[i].start); bootmem_pages += np[i].bootmap_pages; } @@ -223,6 +229,8 @@ max_low_pfn = memend_pfn - O_PFN_DOWN(PHYS_OFFSET); max_pfn = memend_pfn - O_PFN_DOWN(PHYS_OFFSET); + printk("[find_memend_and_nodes] high_memory 0x%p max_low_pfn %lx max_pfn %lx\n", high_memory, max_low_pfn, max_pfn); + return bootmem_pages; } @@ -352,6 +360,10 @@ bootmap_pfn = find_bootmap_pfn(0, mi, bootmap_pages); initrd_node = check_initrd(mi); + /*--- printk("[bootmem_init] bootmap_pages %d\n", bootmap_pages); ---*/ + /*--- printk("[bootmem_init] bootmap_pfn %d\n", bootmap_pfn); ---*/ + /*--- printk("[bootmem_init] initrd_node %d\n", initrd_node); ---*/ + map_pg = bootmap_pfn; /* @@ -388,6 +400,7 @@ /* * Initialise the bootmem allocator. */ + printk("[bootmem_init] init_bootmem_node map_pg 0x%x np->start 0x%x np->end 0x%x\n", map_pg, np->start, np->end); init_bootmem_node(NODE_DATA(node), map_pg, np->start, np->end); free_bootmem_node_bank(node, mi); map_pg += np->bootmap_pages; @@ -421,7 +434,9 @@ { void *zero_page; int node; + /*--- int i; ---*/ + /*--- printk("[paging_init] mi 0x%p mdesc 0x%p\n", mi, mdesc); ---*/ bootmem_init(mi); memcpy(&meminfo, mi, sizeof(meminfo)); @@ -433,7 +448,14 @@ /* * initialise the page tables. - */ + */ + + /*--- for (i=0;imap_io) mdesc->map_io(); @@ -491,10 +513,17 @@ * Adjust the sizes according to any special * requirements for this machine type. */ + /*--- printk("[paging_init] node 0x%x, zone_size 0x%p, zhole_size 0x%p\n", node, zone_size, zhole_size); ---*/ + /*--- for (i = 0; i < MAX_NR_ZONES; i++) { ---*/ + /*--- printk("zone_size[%u] = 0x%x; zhole_size[%u] = 0x%x\n", i, zone_size[i], i, zhole_size[i]); ---*/ + /*--- } ---*/ arch_adjust_zones(node, zone_size, zhole_size); + /*--- for (i = 0; i < MAX_NR_ZONES; i++) { ---*/ + /*--- printk("zone_size[%u] = 0x%x; zhole_size[%u] = 0x%x\n", i, zone_size[i], i, zhole_size[i]); ---*/ + /*--- } ---*/ - free_area_init_node(node, pgdat, zone_size, - bdata->node_boot_start >> PAGE_SHIFT, zhole_size); + /*--- printk("[paging_init] node 0x%x, zone_size 0x%p, bdata->node_boot_start 0x%lx\n", node, zone_size, bdata->node_boot_start ); ---*/ + free_area_init_node(node, pgdat, zone_size, bdata->node_boot_start >> PAGE_SHIFT, zhole_size); } /* @@ -504,6 +533,7 @@ memzero(zero_page, PAGE_SIZE); empty_zero_page = virt_to_page(zero_page); flush_dcache_page(empty_zero_page); + } static inline void free_area(unsigned long addr, unsigned long end, char *s)