From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Wed, 11 Jun 2014 09:47:20 +0200 Subject: [U-Boot] enbw_cmc, da850evm_direct_nor, and calimain vectors table misaligned In-Reply-To: References: <20140609163656.95BE.AA925319@jp.panasonic.com> <20140609182926.95C2.AA925319@jp.panasonic.com> Message-ID: <53980988.7000108@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 Hello Albert, Am 11.06.2014 09:14, schrieb Albert ARIBAUD: > Hi Masahiro, > > (to: the board maintainers for enbw_cmc, da850evm_direct_nor, and > calimain) > > On Mon, 09 Jun 2014 18:29:26 +0900, Masahiro Yamada > wrote: > >> Hi Albert, > >> You changed the behaviour of three boards, >> "enbw_cmc", "da850evm_direct_nor", "calimain"! >> Probably they are broken. >> >> These boards expects "0x00000011" (=CONFIG_SYS_DV_NOR_BOOT_CFG) >> at the beginning of the image. >> But since commit 41623c91, that is missing. >> >> If you still don't understand, you should checkout 41623c91^ and >> 41623c91 and compare u-boot.dis. > > Your description of the effects of my change is correct. However, this > raises another question which I would like to see discussed before > doing anything about these boards. > > Taking the last commit where the prefix word was actually emitted (that > is, 41623c91^, which is actually 60a4f39f, "arm: remove unused _end_vect > and _vectors_end symbols"), and reading arch/arm/cpu/arm926ejs/start.S, > I see that the start of the image looks like this: > > offset Content > +0x0000 prefix word CONFIG_SYS_DV_NOR_BOOT_CFG > +0x0004 reset vector > +0x0008 undefined instruction vector > +0x000c software interrupt vector > +0x0010 prefetch abort vector > +0x0014 data abort vector > +0x0018 unused > +0x001c irq vector > +0x0020 fiq vector > +0x0024 (end of vectors table) > > And that is /wrong/: the vectors table is misaligned by 4 bytes. > > Obviously, the boards have been working fine for a long time, because > no exception vector was used apparently (or because when exceptions did > happen, the error was debugged without the need to analyze the > exception). > > I suspect we could just remove the '.word CONFIG_SYS_DV_NOR_BOOT_CFG' > line from the vectors.S file and prepend the word to the image /after/ > linking. > > This, of course, requires confirmation from maintainers. > > Manfred, Christian, Sudhakar, Heiko: can any one of you let us know the > reason for this signature word exactly, and how exactly it is used by > the board? Ideally, can you also: See "AM18xx Bootloader Application Report": http://www.ti.com/lit/pdf/spraba5 Section "3.1 NOR Boot" on page 3ff This word is used to setup some settings ... > - test a current build (which does not have the signature word) and > confirm it fails to load); > > - test the same build with the 4-byte signature manually prepended > (this may possibly require padding the image); I try to find some time for it ... bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany