
-----Original Message----- From: Scott Wood [mailto:oss@buserror.net] Sent: Thursday, January 14, 2016 8:21 AM To: Qianyu Gong qianyu.gong@nxp.com; u-boot@lists.denx.de Cc: B07421@freescale.com; B48286@freescale.com; Wenbin.Song@freescale.com; Mingkai Hu mingkai.hu@nxp.com Subject: Re: [U-Boot] [Patch V3 3/3] armv8/ls1043aqds: add QSPI boot support
On Tue, 2016-01-12 at 03:14 +0000, Qianyu Gong wrote:
-----Original Message----- From: Scott Wood [mailto:oss@buserror.net] Sent: Tuesday, January 12, 2016 1:47 AM To: Qianyu Gong qianyu.gong@nxp.com; u-boot@lists.denx.de Cc: B07421@freescale.com; B48286@freescale.com; Wenbin.Song@freescale.com; Mingkai Hu mingkai.hu@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
Yes. Only with QSPI it needs I2C to access QIXIS. But if defining CONFIG_DISPLAY_BOARDINFO_LATE, the print layout will look really uncomfortable.. So we just comment out the FPGA prints for QSPI boot.
Regards, Qianyu