From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rogan Dawes Date: Wed, 20 Apr 2011 09:46:53 +0200 Subject: [U-Boot] How does u-boot know where to put its start code? In-Reply-To: <4DAE722F.3090804@aribaud.net> References: <4DADFAF3.8090301@dawes.za.net> <4DAE722F.3090804@aribaud.net> Message-ID: <4DAE8F6D.8040807@dawes.za.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 2011/04/20 7:42 AM, Albert ARIBAUD wrote: > Le 20/04/2011 04:23, Hebbar, Gururaja a ?crit : >> Hi, >> >> On Wed, Apr 20, 2011 at 02:43:23, Rogan Dawes wrote: >>> Hi folks, >>> >>> I'm trying to understand a bit more about how u-boot creates the >>> image, such that the CPU reset vector is pointing to the right piece >>> of code when it is reset. >>> >>> i.e. my DNS323 (Orion5x) has a reset vector of 0xffff0000. But for >>> the life of me, I can't find anywhere that actually references that >>> value to place the start code at that point. >>> >> >> Placing the final boot image is left to user who flashes/burns it >> board. But it should be same as _TEXT_BASE (this is being removed now. >> Orion5x is arm based). Also look >> at\arch\arm\cpu\arm926ejs\start.S& >> \arch\arm\cpu\arm926ejs\u-boot.lds for more info on how >> linker is instructed to place the starting code at predefined address. >> >>> I'm basically trying to make sure that my CONFIG_SYS_TEXT_BASE is >>> correct (the address in the flash to which I write the whole >>> u-boot.bin file, right?. >>> >> This is passed to linker as the entry point. > > There is another point re: orion5x based boards: often, their designers > preferred generating a linear image for U-Boot, but the fact that the > vector address is at FFFF0000 makes it impossible to directly the image > there because it is always greater than 64K. So the designers put some > "pseudo-rom boot code" at FFFF0000 that will finally jump to an address > lower in FLASH; for ED Mini V2 it is FFF90000, and that's where the > U-Boot image is supposed to be flashed. So, is that the address that you would use for CONFIG_SYS_TEXT_BASE ? > Rogan, I bet in the DNS323 case, the same applies modulo your Flash > size. Try tracing through the FFFF0000 code, it should not last more > than a few tens of instructions before it jumps to some absolute address. Do you think it would be possible to figure it out from the original vendor u-boot? Thanks Rogan