Jivin Markus Franke lays it down ... > Hi David, > > Zitat von David McCullough <[EMAIL PROTECTED]>: > >Jivin Markus Franke lays it down ... > >Yes, despite the code you mention below, the mem_map will get > >allocated at the start of memory, the only was around this would be > >to look at discontiguous memory regions, or to see if you can delay > >calling free_bootmem(0x0, 0x00FFFFFF) until after the mem_map is > >allocated. > > My bootmap doesn't start at the beginning of memory!!! I allocate the > bootmap similar to other architectures by calling: > > init_bootmem_node( NODE_DATA(0), > memory_start >> PAGE_SHIFT, > PAGE_OFFSET >> PAGE_SHIFT > memory_end >> PAGE_SHIFT); > > memory_start equals to the first possible address in RAM right after > the linux image. (somewhere around 0x01100000) The remaining two > parameters specify the address range of my SDRAM (0 - 0x4000000) > After this I make a call to: > > free_bootmem(memory_start, memory_end - memory_start); > reserve_bootmem(memory_start, bootmap_size); > > This should ensure that the memory area behind my linux image gets > freed up for memory allocations but the tiny piece of the bootmem_map > get's reserved again. Till here everything works fine. > The next step is: > > free_bootmem(0x0, 0x00FFFFFF); > > which simply makes linux hanging. However when I call > > free_bootmem(0x1, 0x00FFFFFF - 0x1); > > everything works fine. Linux is booting and all DMA allocations work > perfectly. Where is the problem? Is the first argument not allowed to > equal to 0???
Thats a possibility, check the code, a lot of arches reserve page 0 for trapping illegal access amoungst other things, Cheers Davidm -- David McCullough, [EMAIL PROTECTED], Ph:+61 734352815 Secure Computing - SnapGear http://www.uCdot.org http://www.cyberguard.com _______________________________________________ uClinux-dev mailing list [email protected] http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by [email protected] To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
