My custom board features a nRF52840 interfaced to a MT25QU512 nor flash memory via QSPI. Now I'm trying to create an USB MSD device starting from the zephyr example (which uses a MX25R64 nor flash memory) in nRF Connect for VS Code. The DT part that describes the memory is
&qspi { status = "okay"; pinctrl-0 = <&qspi_default>; pinctrl-1 = <&qspi_sleep>; pinctrl-names = "default", "sleep"; mt25qu512: mt25qu512@0 { compatible = "nordic,qspi-nor"; reg = <0>; writeoc = "pp4io"; readoc = "read4io"; sck-frequency = <8000000>; jedec-id = [20 bb 20]; sfdp-bfp = [ e5 20 fb ff ff ff ff 1f 29 eb 27 6b 27 3b 27 bb ff ff ff ff ff ff 27 bb ff ff 29 eb 0c 20 10 d8 0f 52 00 00 24 4a 99 00 8b 8e 03 e1 ac 01 27 38 7a 75 7a 75 fb bd d5 5c 4a 0f 82 ff 81 bd 3d 36 ]; size = <512000000>; has-dpd; t-enter-dpd = <10000>; t-exit-dpd = <35000>; }; };
When I flash my device the QSPI signals (clk, cs, ...) seem to be there after check with oscilloscope, but the MSD device doesn't start and in the terminal I get the error
*** Booting Zephyr OS build v3.2.99-ncs2 *** [00:00:00.000,152] <err> usb_msc: Storage init ERROR !!!! - Aborting USB init Area 5 at 0xfa000 on flash-controller@4001e000 for 24576 bytes [00:00:00.000,244] <err> fs: fs mount error (-5) [00:00:00.000,274] <err> main: Failed to mount filesystem [00:00:00.000,335] <inf> main: The device is put in USB mass storage mode.
The error (-5) is EIO, which is I/O error. Now I dont understant if the error stems from a signals issue or from a configuration issue in the DT. Can someone give me a suggestion to go on?