[U-Boot] [PATCH v2 7/7] am335x_evm: Add support to boot from NOR.

Kipisz, Steven
2013-06-17T17:04:59Z

> -----Original Message-----
> From: Mark Jackson [mailto:mpfj-list at newflow.co.uk]
> Sent: Monday, June 17, 2013 11:10 AM
> To: Stefan Roese
> Cc: Rini, Tom; Kipisz, Steven; u-boot at lists.denx.de
> Subject: Re: [U-Boot] [PATCH v2 7/7] am335x_evm: Add support to boot
> from NOR.
>
> On 17/06/13 17:01, Stefan Roese wrote:
> > Hi Mark,
> >
> > On 17.06.2013 17:23, Mark Jackson wrote:
>
> <snip>
>
> >> One question ... the SPL code has:-
> >>
> >> ...
> >> gd = &gdata;
> >> ...
> >>
> >> But there seems to be no similar assignment when in NOR boot mode.
> >> I'm no expert in the internal workings of u-boot, so I thought I'd
> >> check, just in case !?!
> >
> > I just noticed you mentioning "gd" here and wanted to point you to a
> > patch that fixed a gd-related boot issue for me on OMAP3:
> >
> > [U-Boot] [PATCH 1/3] arm: spl: Fix SPL booting for OMAP3
> >
> > (sorry, I can't find a link to this patch right now and I'm in a
> > hurry)
> >
> > Not sure if this has something to do with your problem (I don't have
> > the time to dig into this mail thread today as I'm leaving right now).
>
> I'll look at that thanks.
>
> But I've taken a slightly different approach, and added the following to the
> start of s_init() ...
>
>
>
> void s_init(void)
> {
> unsigned short *p = (unsigned short*)0x08000000;
> while (1)
> {
> int i;
> for (i = 0; i < (1 * 1024); i++)
> {
> unsigned short d = p[i];
> d++;
> *p = d;
> }
> }
> ...
>
> AFAICT, that should just spin on reading/writing the NOR device, but I still get
> only an initial 350us burst on the CS0 line, and then nothing.
>
> So I can only assume that the boot code isn't getting as far as
> s_init() at all !!
>
> In start.S and low_levelinit.c, there are various uses of:-
>
> #ifdef CONFIG_SPL_BUILD
>
> Do any of these also need referencing with a CONFIG_NOR_BOOT ?
>
> Mark J.

Do you have a u-boot.lds in board/ti/am335x? That should put s_init() earlier in the boot. Also, include/configs/am335x_evm.h should have
/* Custom script for NOR */
#define CONFIG_SYS_LDSCRIPT "board/ti/am335x/u-boot.lds"

Before using JTAG, take a look in System.map where s_init is located. For a multiplex NOR it should be in the first 64K of address space.

Steve K.