From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sughosh Ganu Date: Tue, 2 Nov 2010 14:51:57 +0530 Subject: [U-Boot] [RFC] arm926ejs: fix jump to RAM nand_boot In-Reply-To: <4CCFD212.9050607@denx.de> References: <4CCDD02D.2050304@free.fr> <1288560046-6458-1-git-send-email-albert.aribaud@free.fr> <4CCDED8D.0@ahsoftware.de> <4CCDF5FC.4060704@free.fr> <20101101091515.C8BDD1522C0@gemini.denx.de> <4CCEF2E4.5080003@free.fr> <20101101192318.06C231522C0@gemini.denx.de> <4CCFAFE4.3000600@denx.de> <20101102083318.CE0C44C7@gemini.denx.de> <4CCFD212.9050607@denx.de> Message-ID: <20101102092157.GA7960@Hardy> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de hi Heiko, On Tue Nov 02, 2010 at 09:55:46AM +0100, Heiko Schocher wrote: > Hello Wolfgang, > > Wolfgang Denk wrote: > > Dear Heiko Schocher, > > > > In message <4CCFAFE4.3000600@denx.de> you wrote: > >> - preloader copies first page of nand (nand_spl code) to > >> 0xbb000000 (some cpu internal mem) and jumps to this address > >> - nand_spl does lowlevelinit, relocate itself to TEXT_BASE (nand_spl code) > > > > Why is this relocation needed? I understand that this 0xbb000000 > > Thats the question to solve ... don;t know, why nand_spl code > on arm (and other architectures?) do this ... I try to have a look > to find out, if we can run the nand_spl code complete from > this address, and immedietaly copy u-boot from nand to ram ... I am not sure about all the ARM boards using nand_spl, but atleast on the hawkboard for which i have submitted patches, i have removed the call to relocate_code in nand_spl in V5. This is not needed at least on this board, as the nand_spl gets copied directly to the RAM. > >> But as codesize changes (and with it relocation address) this > >> is not a perfect solution. > > > > Indeed. CONFIG_SYS_NAND_U_BOOT_SIZE should be dropped, and the avtual > > value should be derived from the actual U-Boot image building > > process. > > Yep. But i have a doubt here. In case of hawkboard, the very reason we have a nand_spl booting stage is because the initial bootloader(RBL from TI) does not use the ECC layout as used by the davinci nand driver in u-boot. We flash the nand_spl separately by booting over UART[1]. In case, we compute the u-boot size dynamically, it would be needed to flash the nand_spl each time we build u-boot. Can we make a change such that we define an upper limit for the u-boot size, and the build produces a warning/error in case the u-boot size goes above this limit. We can avoid flashing the nand_spl each time using this method. [1] - Please check doc/README.hawkboard http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/88139 -sughosh