iMX6SX QSPI not work

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX6SX QSPI not work

Jump to solution
1,231 Views
mileswang
Contributor II

Hello,

I start to implement vxWorks QSPI driver based on Freescale iMX6SX SABRE-SDB. But no response from flash chip.

Register setting about IOMUX:

1. IOMUXC_SW_MUX_CTL_PAD_NAND_WP_B (20E_017Ch) = 2, Select signal QSPI2A_DATA0

2. IOMUXC_SW_MUX_CTL_PAD_NAND_READY_B (20E_0174h) = 2, Select signal QSPI2A_DATA1

3. IOMUXC_SW_MUX_CTL_PAD_NAND_CE0_B (20E_0144h) = 2, Select signal QSPI2A_DATA2

4. IOMUXC_SW_MUX_CTL_PAD_NAND_CE1_B (20E_0148h) = 2, Select signal QSPI2A_DATA3

5. IOMUXC_SW_MUX_CTL_PAD_NAND_CLE (20E_014Ch) = 2, Select signal QSPI2A_SCLK

6. IOMUXC_SW_MUX_CTL_PAD_NAND_ALE (20E_0140h) = 2, Select signal QSPI2A_SS0_B

7. IOMUXC_SW_PAD_CTL_PAD_NAND_WP_B (20E_04C4h) = 0x70a1

8. IOMUXC_SW_PAD_CTL_PAD_NAND_READY_B (20E_04BCh) = 0x70a1

9. IOMUXC_SW_PAD_CTL_PAD_NAND_CE0_B (20E_048Ch)= 0x70a1

10. IOMUXC_SW_PAD_CTL_PAD_NAND_CE1_B (20E_0490h)= 0x70a1

11. IOMUXC_SW_PAD_CTL_PAD_NAND_CLE (20E_0494h)= 0x70a1

12. IOMUXC_SW_PAD_CTL_PAD_NAND_ALE (20E_0488h)= 0x70a1

Same settings for QSPI2B.

Register setting about QSPI clocks:

1. CCM_CS2CDR (20C_402Ch):

    qspi2_clk_sel = 3, derive clock from PLL2 PFD2. PLL2 PFD2 is 396MHz.

    qspi2_clk_pred = 1, divide by 2

    qspi2_clk_podf = 0, divide by 1.

So QSPI2_CLK_ROOT is 396/2 = 198 MHz.

2. CCM_CCGR4 (20C_4078h):

    CG5 = 3, qspi2 clock (qspi2_clk_enable)

Send "READ ID" (9Fh) command to flash chip, get all FFh data from flash. During reading, no clock signal is found on flash chip 'C' pin (measured on TP123 - QSPI2A_SCLK). After the command issue, QSPI interrupt generates, QSPI_FR = 8000001h.

What register save the value of QSPI_AMBA_BASE?

vxWorks QSPI driver works fine on Freescale vf610 tower board (TWR-VF65GS10). Porting it to iMX6sx, it can't work. Are there differences between their QSPI controllers? What is wrong?  Can you send me QSPI driver sample code?

Thanks,

Miles

Labels (1)
0 Kudos
Reply
1 Solution
1,001 Views
igorpadykov
NXP Employee
NXP Employee

Hi Miles

for qspi example one can check uboot_imx_v2015.04 ( ..mx6sxsabresd/mx6sxsabresd.c)

uboot-imx.git - Freescale i.MX u-boot Tree 

also please check attached Linux Guide from Documentation package

http://www.nxp.com/webapp/Download?colCode=L4.1.15_1.0.0_LINUX_DOCS&Parent_nodeId=133769948107170617... 

or FreeRTOS example , refer to attached User Guide Chapter 6 Hello World QSPI Demo

FreeRTOS_MX6SX_1.0.0_LINUX 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
Reply
1 Reply
1,002 Views
igorpadykov
NXP Employee
NXP Employee

Hi Miles

for qspi example one can check uboot_imx_v2015.04 ( ..mx6sxsabresd/mx6sxsabresd.c)

uboot-imx.git - Freescale i.MX u-boot Tree 

also please check attached Linux Guide from Documentation package

http://www.nxp.com/webapp/Download?colCode=L4.1.15_1.0.0_LINUX_DOCS&Parent_nodeId=133769948107170617... 

or FreeRTOS example , refer to attached User Guide Chapter 6 Hello World QSPI Demo

FreeRTOS_MX6SX_1.0.0_LINUX 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply