Thanks for your answers. I can see now that "mem" parameter is parsed in arch/arm/kernel/setup.c, as Nicolas underlined. However, in my case early_mem() is never called during the Linux boot. Does anybody have an idea why ? BR, Drasko On Mon, Feb 21, 2011 at 6:27 AM, hong zhang <henryzhang62@xxxxxxxxx> wrote: > Drasko, > > Command line can assign all physical memory or partial memory to kernel using one or few mem=. For example, if you have 1 GBytes memory with starting port at 0x80000000, and want to reserve 512M anywhere between 0x80000000 and 0xc0000000 saying at 0x90000000. Then command line should be > mem=256M@0x80000000 mem=256M@0xb0000000. At this format, kernel should not touch memory between 0x9000000 and 0xb0000000 and the memory can be used by other OS or firmware. > > This is my understanding. > > ---henry > > --- On Sat, 2/19/11, Marek Vasut <marek.vasut@xxxxxxxxx> wrote: > >> From: Marek Vasut <marek.vasut@xxxxxxxxx> >> Subject: Re: Question About Linux Memory Mapping >> To: linux-arm@xxxxxxxxxxxxxxxxxxx >> Cc: "Drasko DRASKOVIC" <drasko.draskovic@xxxxxxxxx>, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> Date: Saturday, February 19, 2011, 2:22 PM >> On Friday 18 February 2011 21:56:28 >> Drasko DRASKOVIC wrote: >> > Hi all, >> > in the article Booting ARM Linux : >> > http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html >> > I can see that mem map is passed via ATAG_MEM. >> However, in the same >> > article it is mentioned that this information can also >> be passed via >> > kernel command line paramters, >> mem=<size>[KM][,@<phys_offset>]. >> > >> > However, this does not seem to be true, as "mem" >> command line >> > parameter seems to be formated like this : mem= n[KMG] >> (i.e. no >> > offset), regarding to this reference : >> > http://oreilly.com/linux/excerpts/9780596100797/kernel-boot-command-line-pa >> > rameter-reference.html. Seems like memmap should be >> used instead. >> > >> > I tried passing the parameters like memmap= >> n[KMG]@start[KMG] but that >> > had no effect at all - still the same amount of System >> Ram was read >> > from ATAGS and presented in the system via >> /proc/iomem. >> > >> > What I needed it to reserve 1MB region for one FIFO at >> the end of RAM >> > (or somewhere else) >> > and protect it from the kernel. I tried passing >> memmap= >> > n[KMG]$start[KMG], but that did not worn neither. >> >> What are you exactly trying to achieve ? btw. if you really >> need to make a hole >> in RAM, you should reserve a bootmem node maybe? >> > >> > So my questions are following : >> > 1) Why commandlines are ignored and ATAGS are given >> priority ? >> > 2) What is the most elegant way to protect one region >> in RAM : >> > a) By giving less memory with ATAGS_MEM and thus >> making protected >> > region invisible to Linux, lying to it that RAM is >> smaller >> > b) By changing somehow linker script >> > c) By changing some configuration variables >> (which ?) >> > >> > Thanks for the answers and best regards, >> > Drasko >> > >> > _______________________________________________ >> > linux-arm mailing list >> > linux-arm@xxxxxxxxxxxxxxxxxxx >> > http://lists.infradead.org/mailman/listinfo/linux-arm >> >> _______________________________________________ >> linux-arm mailing list >> linux-arm@xxxxxxxxxxxxxxxxxxx >> http://lists.infradead.org/mailman/listinfo/linux-arm >> > > > > _______________________________________________ linux-arm mailing list linux-arm@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-arm
- Follow-Ups:
- Re: Question About Linux Memory Mapping
- From: Russell King - ARM Linux
- Re: Question About Linux Memory Mapping
- References:
- Re: Question About Linux Memory Mapping
- From: Marek Vasut
- Re: Question About Linux Memory Mapping
- From: hong zhang
- Re: Question About Linux Memory Mapping
- Prev by Date: Re: Question About Linux Memory Mapping
- Next by Date: Re: Question About Linux Memory Mapping
- Previous by thread: Re: Question About Linux Memory Mapping
- Next by thread: Re: Question About Linux Memory Mapping
- Index(es):