S25HS512 not functional with u-boot 2021.10.rc3

Harkirat Virk harkiratsvirk at gmail.com
Tue Sep 14 20:50:33 CEST 2021


I have a custom board using imx6ul and Spansion S25HS512T Flash. On the current version of u-boot (2021.10.rc3) and I am guessing even previous ones the Spansion flash is not functioning

=> sf probe                
drivers/core/uclass.c:325-uclass_find_device_by_seq() 0
drivers/core/uclass.c:333-uclass_find_device_by_seq()    - 0 'spi at 21e0000'
drivers/core/uclass.c:336-uclass_find_device_by_seq()    - found
drivers/spi/spi-uclass.c:282-spi_find_chip_select() fsl_qspi spi at 21e0000: spi_find_chip_select: plat=9ef2bf60, cs=0
drivers/core/uclass.c:325-uclass_find_device_by_seq() 0
drivers/core/uclass.c:333-uclass_find_device_by_seq()    - 0 'spi at 21e0000'
drivers/core/uclass.c:336-uclass_find_device_by_seq()    - found
drivers/spi/spi-uclass.c:282-spi_find_chip_select() fsl_qspi spi at 21e0000: spi_find_chip_select: plat=9ef2bf60, cs=0
drivers/core/uclass.c:325-uclass_find_device_by_seq() 0
drivers/core/uclass.c:333-uclass_find_device_by_seq()    - 0 'iomuxc at 20e0000'
drivers/core/uclass.c:336-uclass_find_device_by_seq()    - found
drivers/pinctrl/pinctrl-uclass.c:300-pinctrl_select_state_simple() jedec_spi_nor s25hs512t at 0: set_state_simple op missing
drivers/spi/fsl_qspi.c:464-fsl_qspi_prepare_lut() fsl_qspi spi at 21e0000: CMD[9f] lutval[0:1c00049f        1:0     2:0     3:0]
drivers/spi/spi-uclass.c:438-  spi_get_bus_and_cs() spi_get_bus_and_cs: Error path, created=0, device 's25hs512t at 0'
Failed to initialize SPI flash at 0:0 (error -524)

Result is the same with different modes and frequencies, bus and CS are correct

My DTSI is 

&qspi {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_qspi>;
        status = "okay";

        flash0: s25hs512t at 0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "spansion,s25hs512t", "jedec,spi-nor";
                spi-max-frequency = <40000000>;
                spi-rx-bus-width = <4>;
                spi-tx-bus-width = <4>;
                reg = <0>;
                spi-mode = <0>;
                m25p,fast-read;
                status = "okay";
                /* some partition information*/
        };
};

Defconfig has

CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_QSPI=y
CONFIG_MTD=y
CONFIG_DM_MTD=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SF_DEFAULT_MODE=0
CONFIG_SF_DEFAULT_SPEED=40000000
CONFIG_SPI_FLASH_SPANSION=y

 DM Tree

=> dm tree
 Class     Index  Probed  Driver                Name
-----------------------------------------------------------
 root          0  [ + ]   root_driver           root_driver
 thermal       0  [   ]   imx_thermal           |-- imx_thermal
 simple_bus    0  [ + ]   simple_bus            |-- soc
 simple_bus    1  [ + ]   simple_bus            |   |-- aips-bus at 2000000
 simple_bus    2  [ + ]   simple_bus            |   |   |-- spba-bus at 2000000
 serial        0  [ + ]   serial_mxc            |   |   |   `-- serial at 2020000
 gpio          0  [   ]   gpio_mxc              |   |   |-- gpio at 209c000
 gpio          1  [   ]   gpio_mxc              |   |   |-- gpio at 20a0000
 gpio          2  [   ]   gpio_mxc              |   |   |-- gpio at 20a4000
 gpio          3  [   ]   gpio_mxc              |   |   |-- gpio at 20a8000
 gpio          4  [   ]   gpio_mxc              |   |   |-- gpio at 20ac000
 simple_bus    3  [   ]   simple_bus            |   |   |-- anatop at 20c8000
 simple_bus    4  [   ]   simple_bus            |   |   |-- snvs at 20cc000
 pinctrl       0  [ + ]   fsl_imx6q_iomuxc      |   |   `-- iomuxc at 20e0000
 pinconfig     0  [   ]   pinconfig             |   |       |-- i2c1grp
 pinconfig     1  [   ]   pinconfig             |   |       |-- i2c2grp
 pinconfig     2  [ + ]   pinconfig             |   |       |-- qspigrp
 pinconfig     3  [   ]   pinconfig             |   |       |-- ledsgrp
 pinconfig     4  [ + ]   pinconfig             |   |       |-- uart1grp
 pinconfig     5  [ + ]   pinconfig             |   |       |-- usdhc2grp
 pinconfig     6  [   ]   pinconfig             |   |       `-- wdoggrp
 simple_bus    5  [ + ]   simple_bus            |   `-- aips-bus at 2100000
 usb           0  [   ]   ehci_mx6              |       |-- usb at 2184000
 mmc           0  [ + ]   fsl_esdhc             |       |-- usdhc at 2194000
 blk           0  [   ]   mmc_blk               |       |   `-- usdhc at 2194000.blk
 i2c           0  [   ]   i2c_mxc               |       |-- i2c at 21a0000
 i2c           1  [   ]   i2c_mxc               |       |-- i2c at 21a4000
 spi           0  [ + ]   fsl_qspi              |       `-- spi at 21e0000
 spi_flash     0  [   ]   jedec_spi_nor         |           `-- s25hs512t at 0
 regulator     0  [   ]   regulator_fixed       |-- regulator-sd2-vmmc
 led           0  [   ]   gpio_led              `-- leds
 led           1  [   ]   gpio_led                  |-- green
 led           2  [   ]   gpio_led                  |-- red
 led           3  [   ]   gpio_led                  `— amber

I am unable to identify source of error returning -524 or why SPI Flash initialisation fails




More information about the U-Boot mailing list