From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wolfgang Denk Date: Thu, 11 Jul 2013 22:57:55 +0200 Subject: [U-Boot] [PATCH] image: Don't relocate ramdisk to highmem In-Reply-To: <20130711190849.GA17212@dhcp-172-17-186-34.nvidia.com> References: <1373500071-6476-1-git-send-email-thierry.reding@gmail.com> <20130711094619.E6D2B383003@gemini.denx.de> <20130711123928.GA13531@bill-the-cat> <20130711150014.GA2198@dhcp-172-17-186-34.nvidia.com> <20130711182117.92DC0383003@gemini.denx.de> <20130711190849.GA17212@dhcp-172-17-186-34.nvidia.com> Message-ID: <20130711205755.124EF383003@gemini.denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Thierry Reding, In message <20130711190849.GA17212@dhcp-172-17-186-34.nvidia.com> you wrote: > > > This depends a lot on a number of things. For example, you should be > > able to use a ramdisk in NOR flash directly, i. e. without loading it > > to RAM first - especially if it;s a comprtessed ramdis image, and the > > Kernel will copy/uncompress it anyway. Depending on your memory map > > the address range of the NOR flash may be way outside (and above) that > > of the system RAM. Are you sure your changes will not break any such > > usage? > > As far as I can tell, the only place where initrd_high is used is to > allocate an area from RAM that's used to relocate the ramdisk to. In > case where the ramdisk is directly in NOR and isn't supposed to be > copied anyway, this code should never be run. Agreed. I'm not sure this is what's happening currently, though. > So maybe one other alternative would be to check whether the current > location of the ramdisk is within the low memory area and only relocate > otherwise. Does that match your expectation? Appears to make sense, indeed. But I have to admit that I'm not deep enough into the details of this code at the moment to make a qualified statement. > > ...because default behaviour was do do nothing. Now you do something, > > so this should be documented. > > The default behaviour was to not restrict loading to high memory at all, > which is what the comment said: > > /* not set, no restrictions to load high */ > initrd_high = ~0; > > The patch that I posted changes the above to this: > > /* make sure to put ramdisk in low memory */ > initrd_high = getenv_bootm_low() + getenv_bootm_mapsize(); > > Doesn't that accurately describe the change? I think this shouldbe added to the function header (too). Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de 'What shall we do?' said Twoflower. 'Panic?' said Rincewind hope- fully. He always held that panic was the best means of survival; back in the olden days, his theory went, people faced with hungry sabre- toothed tigers could be divided very simply in those who panicked and those who stood there saying 'What a magnificent brute!' or 'Here, pussy.' - Terry Pratchett, _The Light Fantastic_