[meta-freescale] [u-boot-fslc] QSPI driver
Fabio Estevam
festevam at gmail.com
Wed Feb 17 11:15:45 PST 2016
On Wed, Feb 17, 2016 at 3:26 PM, Esponde, Joel
<Joel.Esponde at honeywell.com> wrote:
> Hi,
>
> Thanks Fabio for your reply!
> I am using the 2015.10 version because it's the last one tagged, I guess it is the latest stable release.
>
> BTW, in the QSPI driver of u-boot-imx there is this piece of code:
> /* Write data to the QUADSPI_TBDR buffer registers. */
> static void fsl_qspi_write_data(struct fsl_qspi *q, int len, u8* txbuf)
> {
> ...
>
> #if defined(CONFIG_MX7D) || defined(CONFIG_MX6UL)
> u32 t3;
> /* iMX7D and MX6UL TXFIFO must be at least 16 bytes*/
> t3 = t1 + ((t2 + 3) >> 2);
> for (; t3 < 4; t3++)
> writel(0, q->iobase + QUADSPI_TBDR);
> #endif
>
> }
> So it looks like the latest Freescale CPUs have a QSPI peripheral a bit different of the previous ones.
>
> The closest function in u-boot-fslc driver seems to be qspi_op_write:
> https://github.com/Freescale/u-boot-fslc/blob/2016.01%2Bfslc/drivers/spi/fsl_qspi.c#L565
> And I do not see any special code for MX6UL and MX7D in that function.
> The code of that function is very close if not equal between 2015.10 and 2016.01.
>
> If you think I still need to make a test to confirm that issue despite my explanations, I will try to do it.
Just tested with mainline U-boot with this change:
--- a/include/configs/mx6ul_14x14_evk.h
+++ b/include/configs/mx6ul_14x14_evk.h
@@ -195,6 +195,7 @@
#define CONFIG_CMD_CACHE
#endif
+#define CONFIG_FSL_QSPI
#ifdef CONFIG_FSL_QSPI
#define CONFIG_CMD_SF
#define CONFIG_SPI_FLASH
Then I can see the SPI being probed correctly:
U-Boot SPL 2016.03-rc1-00144-gd6bf29b-dirty (Feb 17 2016 - 17:11:44)
Trying to boot from MMC
U-Boot 2016.03-rc1-00144-gd6bf29b-dirty (Feb 17 2016 - 17:11:44 -0200)
CPU: Freescale i.MX6UL rev1.0 792 MHz (running at 396 MHz)
CPU: Commercial temperature grade (0C to 95C)Reset cause: POR
Board: MX6UL 14x14 EVK
I2C: ready
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Video: MXSFB: 'videomode' variable not set!
In: serial
Out: serial
Err: serial
Net: FEC1
Warning: FEC1 MAC addresses don't match:
Address in SROM is 00:04:9f:03:c3:d2
Address in environment is 00:04:9f:03:c3:d1
Hit any key to stop autoboot: 0
=> sf probe
SF: Detected N25Q256 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
More information about the meta-freescale
mailing list