From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhong Hongbo Date: Tue, 04 Sep 2012 22:03:07 +0800 Subject: [U-Boot] [v3] arm: Fixed the offset for the no relocation. In-Reply-To: <201209030214.32639.marek.vasut@gmail.com> References: <1346568592-6832-1-git-send-email-bocui107@gmail.com> <201209030214.32639.marek.vasut@gmail.com> Message-ID: <50460A1B.9040102@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03/09/12 08:14, Marek Vasut wrote: > Dear Zhong Hongbo, > >> From: Zhong Hongbo >> >> When the u-boot address of destination equal to __start, >> no relocation. relocation offset(r9) = 0. > > Good, now what kind of issue does this patch fix? Hi Marek When you adopt CONFIG_SPL_BUILD framework, no CONFIG_NAND_SPL, if the addr of destination is equal to _start, we should skip u-boot relocation. In the last, u-boot will count the dest addr, see the below: adr r1, _start add lr, r0, r1 add lr, lr, r9 Here, lr = lr + r9, r9 is the offset of u-boot, So when it do not neet to reolocat, we need to set the zero value for r9 register. /* setup parameters for board_init_r */ mov r0, r5 /* gd_t */ mov r1, r6 /* dest_addr */ /* jump to it ... */ mov pc, lr Thanks, hongbo > >> Signed-off-by: Zhong Hongbo >> --- >> Change for V3: >> - Drop the change of arm720t, It has already merge the change. >> Change for V2: >> - Clean a line for arm1176. > > [...] > > Best regards, > Marek Vasut >