[U-Boot] [Patch V3 3/3] armv8/ls1043aqds: add QSPI boot support

Scott Wood oss at buserror.net
Thu Jan 14 01:20:50 CET 2016


On Tue, 2016-01-12 at 03:14 +0000, Qianyu Gong wrote:
> > -----Original Message-----
> > From: Scott Wood [mailto:oss at buserror.net]
> > Sent: Tuesday, January 12, 2016 1:47 AM
> > To: Qianyu Gong <qianyu.gong at nxp.com>; u-boot at lists.denx.de
> > Cc: B07421 at freescale.com; B48286 at freescale.com;
> > Wenbin.Song at freescale.com; Mingkai Hu <mingkai.hu at nxp.com>
> > Subject: Re: [U-Boot] [Patch V3 3/3] armv8/ls1043aqds: add QSPI boot
> > support
> > 
> > On Mon, 2016-01-11 at 10:17 +0800, Gong Qianyu wrote:
> > > diff --git a/board/freescale/ls1043aqds/ls1043aqds.c
> > > b/board/freescale/ls1043aqds/ls1043aqds.c
> > > index d6696ca..770b79f 100644
> > > --- a/board/freescale/ls1043aqds/ls1043aqds.c
> > > +++ b/board/freescale/ls1043aqds/ls1043aqds.c
> > > @@ -43,15 +43,19 @@ enum {
> > > 
> > >  int checkboard(void)
> > >  {
> > > +#ifndef CONFIG_QSPI_BOOT
> > >  	char buf[64];
> > >  #ifndef CONFIG_SD_BOOT
> > >  	u8 sw;
> > >  #endif
> > > +#endif
> > > 
> > >  	puts("Board: LS1043AQDS, boot from ");
> > > 
> > >  #ifdef CONFIG_SD_BOOT
> > >  	puts("SD\n");
> > > +#elif defined(CONFIG_QSPI_BOOT)
> > > +	puts("QSPI\n");
> > >  #else
> > >  	sw = QIXIS_READ(brdcfg[0]);
> > >  	sw = (sw & QIXIS_LBMAP_MASK) >> QIXIS_LBMAP_SHIFT; @@ -68,12
> > +72,15
> > > @@ int checkboard(void)
> > >  		printf("invalid setting of SW%u\n",
> > > QIXIS_LBMAP_SWITCH);
> > #endif
> > > 
> > > +#ifndef CONFIG_QSPI_BOOT
> > > +	/* For QSPI boot, here I2C is not ready yet. */
> > >  	printf("Sys ID: 0x%02x, Sys Ver: 0x%02x\n",
> > >  	       QIXIS_READ(id), QIXIS_READ(arch));
> > > 
> > >  	printf("FPGA:  v%d (%s), build %d\n",
> > >  	       (int)QIXIS_READ(scver), qixis_read_tag(buf),
> > >  	       (int)qixis_read_minor());
> > > +#endif
> > 
> > Why isn't i2c ready?  How is DDR inited without it?
> > 
> > -Scott
> 
> Hi Scott,
> 
> The calling sequence in U-Boot is :
> checkboard() -> init_func_i2c() -> dram_init()
> 
> So I2C is not ready in checkboard() but is ready for DDR initialization.

Can you move the prints later in the boot sequence?

In any case, the relevant variable is whether qixis uses i2c, not whether
you're booting from qspi (even if they are correlated).

-Scott



More information about the U-Boot mailing list