From mboxrd@z Thu Jan 1 00:00:00 1970 From: Magnus Lilja Date: Mon, 07 Feb 2011 20:48:58 +0100 Subject: [U-Boot] [RFC] ARM: mx31pdk: Use the new relocation scheme In-Reply-To: <4D4FFE09.2090709@denx.de> References: <1294836544-24512-1-git-send-email-fabio.estevam@freescale.com> <4D2F004B.9090204@denx.de> <4D309716.4000905@freescale.com> <4D4E8E11.2010906@gmail.com> <4D4FD850.3050800@freescale.com> <4D4FFE09.2090709@denx.de> Message-ID: <4D504CAA.7000302@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 Hi On 2011-02-07 15:13, Stefano Babic wrote: >>> I have no idea if this breaks other boards but at least it's start >>> for further work. I tried it on the imx31 litekit (which boots from >>> NOR) but that board doesn't seem to boot even before applying >>> Fabios patch, I'll see if I can figure out why that board is broken >>> now. Don't know when though. >> >> I will let others comment about the changes you did in >> arch/arm/cpu/arm1136/start.S Will also try it later today. > > Anyway, arch/arm/cpu/arm1136/start.S cannot be compiled without the > changes suggested by Magnus due to the following lines: > > _nand_boot_ofs > : .word nand_boot - _start > > ":" seems to me wrong in any case and should be fixed. Is this syntax > accepted by newer compiler releases ? > > IMHO board_init_f must be called absolutely before nand_boot. I have > tested the changes suggested by Magnus on a i.MX35 and the board boots > from NAND. However, I do not see the problems with the console, and I > can think they are not related to this issue. > I agree on that last statement, the console thing must be something else. Here's a somewhat cleaner version of my patch. Hope the mail looks ok, I'm having internet connectivity issues this evening so I'm using a different installation of Thunderbird than usual. Regards, Magnus diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S index 12545c2..bab2868 100644 --- a/arch/arm/cpu/arm1136/start.S +++ b/arch/arm/cpu/arm1136/start.S @@ -163,15 +163,7 @@ call_board_init_f: bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ ldr r0,=0x00000000 -#ifdef CONFIG_NAND_SPL - bl nand_boot -#else -#ifdef CONFIG_ONENAND_IPL - bl start_oneboot -#else bl board_init_f -#endif /* CONFIG_ONENAND_IPL */ -#endif /* CONFIG_NAND_SPL */ /*------------------------------------------------------------------------------*/ @@ -267,10 +259,10 @@ clbss_l:str r2, [r0] /* clear loop... */ */ #ifdef CONFIG_NAND_SPL ldr r0, _nand_boot_ofs - adr r1, _start - add pc, r0, r1 -_nand_boot_ofs: - .word nand_boot - _start + mov pc, r0 + +_nand_boot_ofs: + .word nand_boot #else jump_2_ram: ldr r0, _board_init_r_ofs