Re: [uClinux-dev] bootmem - which way ?

From: David McCullough (davidm@snapgear.com)
Date: Tue Jul 23 2002 - 08:16:27 EDT


Jivin Ilan Pollak lays it down ...
...
> >Which ARM target are you building for.  That will help with which settings
> >are causing it to fail.
>
> I'm building for AT91 which is an ARM7TDMI, on an EB40LS board

Ok

> >>#if 1
> >>    bootmem_init(&meminfo);
> >>#else
> >>    bootmap_size= init_bootmem_node(
> >>              NODE_DATA(0),
> >>              memory_start >> PAGE_SHIFT,
> >>              PAGE_OFFSET >> PAGE_SHIFT,
> >>              END_MEM >> PAGE_SHIFT);
> >> 
> >>    free_bootmem(memory_start, END_MEM - memory_start);
> >>    reserve_bootmem(memory_start, bootmap_size);
> >>#endif
> >>
> >>if I change to #if 0 - the lower part work, and everything is cool ! 
> >>(until my former email...)
> >>the problem is , that the distribution (20020701), comes with the #if 1 
> >>checked, then i get Kernel Bug in bootmem.c::reserve_bootmem_core, the 
> >>starting index is bigger the ending one.
> >>and the next line is a BUG also.
> >>Can someone please tell me what's the difference ?
> >>thanks,
> >>
> >
> >I think the key here will be the value of PHYS_OFFSET.  I suspect it will
> >need to be page aligned at least.
> >
> >Obviously some of the platforms are working and some aren't.  Look at
> >DRAM_BASE and DRAM_SIZE (MEM_END) and also at PHYS_OFFSET to see the
> >differences.
> >
> checked those too, they seem fine to me:
> DRAM_BASE = 0x02000000;
> DRAM_SIZE = 0x00200000;
> PHYS_OFFSET (== PAGE_OFFSET) = 0x02000000
> 
> but then again, something must go wrong there ...
> What's the price of choosing the other path (the '#if 0' way) ?

Nothing I know of,  if it works go for it.

Interestingly this code runs in the GDB/ARMulator without any BUG's.
It is basically an Atmel AT91 with memory at:

	DRAM_BASE = 0x01000000
	DRAM_SIZE = 0x00400000

Can't see any obvious reasons why one would work and the other fail though.

> >I believe there was something posted to the list on thsi topic quite a
> >while back which resulted in the patch from "if 0" to "if 1".  You might
> >be able to find a few more details tehre,
>
> sorry, couldn't find it, any link?

http://www.uclinux.org/pub/uClinux/archive/5566.html

is related to what I was after but the details are sketchy.

Cheers,
Davidm

-- 
David McCullough:    Ph: +61 7 3435 2815  http://www.SnapGear.com
davidm@snapgear.com  Fx: +61 7 3891 3630  825 Stanley St., W'gabba QLD 4102, Oz
This message resent by the uclinux-dev@uclinux.org list server http://www.uClinux.org/


This archive was generated by hypermail 2.1.4 : Thu Sep 19 2002 - 13:21:35 EDT