From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Wed, 21 Sep 2011 13:44:03 +0200 Subject: [U-Boot] [RFC PATCH] arm: provide a CONFIG flag for disabling relocation In-Reply-To: <20110921104557.ED13D1208F1E@gemini.denx.de> References: <20110920180959.8008F1208F1E@gemini.denx.de> <4E78E5DE.60300@aribaud.net> <20110921104557.ED13D1208F1E@gemini.denx.de> Message-ID: <4E79CE03.7080909@aribaud.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Le 21/09/2011 12:45, Wolfgang Denk a ?crit : > Dear "GROYER, Anthony", > > In message you wrote: >> >> What is the difference between _start and _TEXT_BASE ? I do not see any >> differences and the former relocation offset calculation was using _TEXT_BASE. > > The former is the entry point address, while the latter is the start > of the text segment. These may be the same (and on many ARM systems > they are), but they have actually no direct relation to each other > (and some ARM systems do use an entry point that is not the same as > the start of the code). This would be boards - where U-Boot boots from Flash without a SPL, - which boot at FFFF0000, - and which don't have a tiny piece of code at FFFF0000 which jumps to a fixed location at which _start resides. Thus, typically boards with a very small FLASH that forces the maintainer to fill the last 64 KB with _start and some code, then put the rest of U-Boot below FFFF0000. But my edminiv2, with only 512 KB flash, already provides enough space that such a complicated linker mapping is unneeded -- FFFF0000 just has a permanent jump instruction to FFF90000, and U-Boot is linked linearly, with _start at FFF9000. I wonder which ARM boards we have that still require a complex mapping with _start in the middle of the code. Amicalement, -- Albert.