u-boot/drivers
Pratyush Yadav 0be8ab1f16 mtd: spi-nor-core: Perform a Soft Reset on boot
When the flash is handed to us in a stateful mode like 8D-8D-8D, it is

difficult to detect the mode the flash is in. One option is to read SFDP
in all modes and see which one gives the correct "SFDP" signature, but
not all flashes support SFDP in 8D-8D-8D mode.

Further, even if you detect the mode of the flash via SFDP, you still
have the problem of actually reading the ID. The Read ID command is not
standardized across flash vendors. Flashes can have different dummy
cycles needed for reading the ID. Some flashes even expect a 4-byte
dummy address with the Read ID command. All this information cannot be
obtained from the SFDP table.

So, perform a Software Reset sequence before reading the ID and
initializing the flash. A Soft Reset will bring back the flash in its
default protocol mode assuming no non-volatile configuration was set.
This will let us detect the flash even if ROM hands it to us in Octal
DTR mode.

To accommodate cases where there is more than one flash on a board, and
only one of them needs a soft reset, failure to reset is not made fatal,
and we still try to read ID if possible.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
2021-06-28 12:05:17 +05:30
..
adc adc: meson-saradc: add support for getting reference voltage value 2021-02-18 11:37:26 +01:00
ata ata: ahci: fix ahci_link_up() type mismatch for LTO 2021-05-24 14:21:30 -04:00
axi dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
bios_emulator treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
block Fix IDE commands issued, fix endian issues, fix non MMIO 2021-04-20 07:31:12 -04:00
bootcount common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button button: adc: fix treshold typo 2021-03-08 10:32:34 +01:00
cache common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
clk Merge tag 'u-boot-rockchip-20210618' of https://source.denx.de/u-boot/custodians/u-boot-rockchip into next 2021-06-19 08:20:12 -04:00
core dm: core: add ofnode_get_path() 2021-06-24 11:53:00 +05:30
cpu common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
crypto crypto: fsl: refactor for 32 bit version CAAM support on ARM64 2021-04-08 20:29:53 +02:00
ddr ppc: Remove Cyrus_P5020 and P5040 boards 2021-04-10 08:05:07 -04:00
demo common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
dfu dfu: add error callback 2021-06-18 10:09:41 +02:00
dma dma: ti: k3-udma: Add support for native configuration of chan/flow 2021-06-11 19:18:52 +05:30
fastboot fastboot: Fix possible buffer overrun 2021-04-12 17:44:55 -04:00
firmware firmware: ti_sci: Add support for Resoure Management at R5 SPL stage. 2021-06-11 19:18:52 +05:30
fpga arm: socfpga: Move Stratix10 and Agilex to use TARGET_SOCFPGA_SOC64 2021-03-08 10:59:10 +08:00
gpio gpio: renesas: Pass struct udevice to rcar_gpio_set_direction() 2021-05-21 15:00:17 +02:00
hwspinlock common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
i2c gpio: i2c-gpio: Drop use of dm_gpio_set_dir() 2021-04-12 17:45:40 -04:00
input common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
led dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
mailbox mailbox: k3-sec-proxy: Add DM to DMSC communication thread 2021-06-11 19:18:52 +05:30
memory memory: stm32-fmc2: migrate trace to dev and log macro 2021-01-13 09:52:58 +01:00
misc misc: make CONFIG_IRQ selectable for all platforms 2021-04-20 07:31:12 -04:00
mmc Merge tag 'ti-v2021.07-rc3' of https://source.denx.de/u-boot/custodians/u-boot-ti 2021-05-12 10:07:21 -04:00
mtd mtd: spi-nor-core: Perform a Soft Reset on boot 2021-06-28 12:05:17 +05:30
mux dm: Use access methods for dev/uclass private data 2021-01-05 12:24:40 -07:00
net clk: Allow force setting clock defaults before relocation 2021-06-17 09:40:57 +08:00
nvme nvme: Elaborate on cache maintenance operation in get/set_features 2021-03-19 10:36:55 -04:00
pch dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
pci pci: pcie_dw_rockchip: Replace msleep occurences by udelay 2021-06-18 14:36:54 +08:00
pci_endpoint common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
phy phy: marvell: utmi: update utmi config which fixes usb2.0 instability 2021-04-29 07:45:24 +02:00
pinctrl pinctrl: single: Fix probe failure getting register area size 2021-05-26 17:26:07 -04:00
power cmd: ti: pd: Add debug command for K3 power domains 2021-06-11 16:34:52 +05:30
pwm pwm: cros_ec: Rename "priv_auto_alloc_size" to "priv_auto" 2021-06-05 07:35:47 -06:00
qe ppc: Remove TARGET_T1040QDS references 2021-04-10 08:04:42 -04:00
ram rockchip: rk3568: Add sdram driver 2021-06-18 14:36:24 +08:00
remoteproc remoteproc: k3-r5: remove sysfw PM calls if not supported 2021-06-11 16:34:52 +05:30
reset board: sifive: add HiFive Unmatched board support 2021-05-31 16:35:55 +08:00
rng rng: iproc_rng200: Enable support for RPi4 armv7 2021-03-02 13:53:48 +01:00
rtc rtc: davinci: fix date loaded on reset 2021-06-09 22:23:45 +05:30
scsi scsi: Add ata_swap_buf_le16() to support big-endian platforms 2021-04-28 10:05:12 +02:00
serial treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
smem Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
soc soc: ti: k3-navss-ringacc: Add support for native configuration of rings 2021-06-11 19:18:52 +05:30
sound tegra: i2c: Drop LOG_DEBUG 2021-03-27 13:59:36 +13:00
spi mtd: spi-nor-core: Rework hwcaps selection 2021-06-28 11:59:35 +05:30
spmi common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sysinfo sysinfo: Add gpio-sysinfo driver 2021-05-04 07:57:18 -04:00
sysreset sysreset: provide type of reset in do_reset cmd 2021-04-20 07:31:12 -04:00
tee tee: optee: Change printing during optee_probe 2021-04-12 17:44:55 -04:00
thermal thermal: imx_tmu: enable monitoring and default alert/critical 2021-03-01 10:21:36 +01:00
timer riscv: Split SiFive CLINT support between SPL and U-Boot proper 2021-05-17 16:42:24 +08:00
tpm tpm: Correct warning on 32-bit build 2021-03-13 13:14:52 -05:00
ufs dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
usb usb: dwc3-generic: Disable host driver definition if gadget only 2021-05-16 19:01:45 +02:00
video video: sunxi: de2: switch to public uclass functions 2021-04-24 13:45:03 +02:00
virtio virtio: Fix VirtIO BLK driver dependency 2021-03-05 10:25:43 +05:30
w1 w1: replace dt detection by automatic detection 2021-05-13 13:09:09 -04:00
w1-eeprom w1: replace dt detection by automatic detection 2021-05-13 13:09:09 -04:00
watchdog watchdog: use time_after_eq() in watchdog_reset() 2021-04-28 10:05:13 +02:00
xen common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Kconfig board: Rename uclass to sysinfo 2020-11-06 10:18:20 +08:00
Makefile cpu: Rename SPL_CPU_SUPPORT to SPL_CPU 2021-03-27 15:04:31 +13:00