From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Tue, 8 Apr 2008 15:25:36 +0200 Subject: [U-Boot-Users] [PATCH] Make MPC83xx one step closer to full relocation. In-Reply-To: <1207660051.5826.47.camel@gentoo-jocke.transmode.se> References: <20080408115806.6358424842@gemini.denx.de> <1207660051.5826.47.camel@gentoo-jocke.transmode.se> Message-ID: <200804081525.36771.sr@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 On Tuesday 08 April 2008, Joakim Tjernlund wrote: > > > I first did a new symbol for this but changed it to use _start as I > > > didn't want to introduce yet another symbol. I would hope it is > > > possible to rework 4xx to move the _start symbol to were it belongs? > > > Not having the _start symbol where it should be could bite you some > > > other day too. > > > > I think you got this wrong. _start *is* where it should be, where the > > execution of the code begins. Where you set the breakpoint in gdb. > > Ah, right. I *assumed* that _start was always the first symbol in the > text segment too. On 4xx it isn't for some reason, but it should be > possible to move it first. > > Sidnote: Does execution really begin at _start for 4xx? I still looks > like it begin at _start_440 and eventually end up at _start On 4xx execution always starts at 0xfffffffc (last lword in 32bit address space). This location holds a jump to _start for 405 PPC's and to _start_440 for 440 PPC's. 440 PPC's need some extended initialization (TLB setup etc) and later jump to the 4xx common _start. > > The "new symbol" you mention corresponds to CFG_MONITOR_BASE, but note > > that it has no fixed address as it depends where you place your image > > in flash. > > Yes, but the address is not important here, it is the difference > _end - _start. I guess we could define a linker symbol too > that calculates _end - _start for us and then just do > len = _uboot_reloc_size + EXC_OFF_SYS_RESET; > > or define a new symbol that is initialised to CFG_MONITOR_BASE or let > the linker place it at the beginning of .text, hopefully there is > already a name reserved for the symbol although I don't know of such a > name. I either case I think one needs to add that symbol to the GOT list > in start.S I'm an linker script dyslexic. So no idea if we can handle this solely in the linker script or if we need a new common symbol in the PPC start.S's. Best regards, Stefan ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================