Hi All
CPU:IMX7D
linux:4.1.15
spi flash:winbond w25q128
When I was developing the QSPI I had one problem each.I added w25q128 through DTS.
&epdc {
status = "disabled";
};
&iomuxc {
qspi1 {
pinctrl_qspi1_1: qspi1grp_1 {
fsl,pins = <
MX7D_PAD_EPDC_DATA00__QSPI_A_DATA0 0x51
MX7D_PAD_EPDC_DATA01__QSPI_A_DATA1 0x51
MX7D_PAD_EPDC_DATA02__QSPI_A_DATA2 0x51
MX7D_PAD_EPDC_DATA03__QSPI_A_DATA3 0x51
MX7D_PAD_EPDC_DATA05__QSPI_A_SCLK 0x51
MX7D_PAD_EPDC_DATA06__QSPI_A_SS0_B 0x51
>;
};
};
};
&qspi1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_qspi1_1>;
status = "okay";
ddrsmp=<0>;
flash0: w25q128@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "w25q128";
spi-max-frequency = <29000000>;
reg = <0>;
};
};
The result of the run is that the QSPI can read the JEDEC ID, but there is a problem:
[ 25.470038] Unhandled fault: external abort on non-linefetch (0x1008) at 0xc1000000
[ 25.477697] pgd = a8654000
[ 25.480408] [c1000000] *pgd=a891e811, *pte=60000653, *ppte=60000453
[ 25.486724] Internal error: : 1008 [#1] PREEMPT SMP ARM
[ 25.491953] Modules linked in:
[ 25.495028] CPU: 0 PID: 747 Comm: hexdump Not tainted 4.1.15+ #25
[ 25.501124] Hardware name: Freescale i.MX7 Dual (Device Tree)
[ 25.506874] task: a84ab440 ti: a885a000 task.ti: a885a000
[ 25.512285] PC is at memcpy+0x48/0x330
[ 25.516043] LR is at fsl_qspi_read+0x120/0x13c
[ 25.520493] pc : [<801e5cc8>] lr : [<80303bb4>] psr: 20060013
[ 25.520493] sp : a885bdc4 ip : 00000000 fp : a885be04
[ 25.531974] r10: a80e0010 r9 : 00000000 r8 : 00000000
[ 25.537202] r7 : 00000000 r6 : 00000000 r5 : 00001000 r4 : a80e0010
[ 25.543733] r3 : 00000000 r2 : 00000f80 r1 : c1000000 r0 : a8403000
[ 25.550266] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 25.557405] Control: 10c53c7d Table: a865406a DAC: 00000015
[ 25.563154] Process hexdump (pid: 747, stack limit = 0xa885a210)
[ 25.569164] Stack: (0xa885bdc4 to 0xa885c000)
I tracked the code to make sure the problem was the memcpy parameter in the fsl_qspi_read function q->ahb_addr.I don't know how to solve.
Please help me.Thank you!
Hi 根伟 吴
one can look at qspi guidelines given on
Cannot boot u-boot from QSPI on IMX7S
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------