u-boot-brain/drivers
Fabio Estevam 29c2edb42b mmc: fsl_esdhc: Avoid infinite loop in esdhc_send_cmd_common()
The following hang is observed on a Hummingboard 2 MicroSOM
i2eX iMX6D - rev 1.3 with no eMMC populated on board:

U-Boot SPL 2018.11+gf6206f8587 (Nov 16 2018 - 00:56:34 +0000)
Trying to boot from MMC1

U-Boot 2018.11+gf6206f8587 (Nov 16 2018 - 00:56:34 +0000)

CPU:   Freescale i.MX6D rev1.5 996 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 33C
Reset cause: POR
Board: MX6 HummingBoard2
DRAM:  1 GiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

No panel detected: default to HDMI
Display: HDMI (1024x768)
In:    serial
Out:   serial
Err:   serial
---> hangs

which is caused by the following infinite loop inside esdhc_send_cmd_common()

	while (!(esdhc_read32(&regs->irqstat) & flags))
		;

Instead of looping forever, provide an exit path so that a timeout
error can be propagated in the case irqstat does not report
any interrupts, which may happen when no eMMC is populated on
board.

Reported-by: Ricardo Salveti <rsalveti@rsalveti.net>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Tested-by: Ricardo Salveti <rsalveti@rsalveti.net>
2019-01-14 11:26:12 -05:00
..
adc dm: adc: add uclass's mask and conversion helpers 2018-11-20 12:35:25 -05:00
ata scsi: ceva: add ls2080a soc support 2018-12-06 14:38:03 -08:00
axi drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
bios_emulator bios_emulator: remove assignment without effect 2018-07-23 14:33:21 -04:00
block blk: Rework guard around part_init call 2018-12-12 12:14:22 -05:00
board drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
bootcount bootcount: add a DM RTC backing store for bootcount 2018-12-10 10:04:45 +01:00
clk clk: imx8: fix build warning 2019-01-09 17:03:29 +01:00
core syscon: update syscon_node_to_regmap to use the DM functions 2018-12-15 11:49:56 -05:00
cpu cpu: Add a RISC-V CPU driver 2018-12-18 09:56:26 +08:00
crypto SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ddr drivers: ddr: introduce DDR driver for i.MX8M 2019-01-01 14:12:18 +01:00
demo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu dfu: nand: Add missing dependency on CMD_MTDPARTS 2018-11-13 18:53:10 +05:30
dma dma: add bcm6348-iudma support 2018-12-19 15:23:00 +01:00
fastboot drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
firmware firmware: psci: introduce SPL_ARM_PSCI_FW 2018-12-12 12:14:25 -05:00
fpga arm: socfpga: stratix10: Add Stratix10 FPGA into FPGA device table 2018-12-20 17:12:25 +01:00
gpio gpio: stm32f7: Fix SPL code size 2019-01-09 07:13:33 -05:00
hwspinlock hwspinlock: add stm32 hardware spinlock support 2018-12-06 23:26:33 -05:00
i2c i2c: tegra: Fix regression by implementing a dummy probe_chip() callback 2018-12-12 06:06:14 +01:00
input input: i8042: Use remove() instead of exported functions 2018-12-05 06:01:35 -07:00
led dm: led: move default state support in led uclass 2018-08-10 10:27:32 -04:00
mailbox drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
memory SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
misc misc: imx8: scu: use platdata instead of priv data 2019-01-09 17:04:03 +01:00
mmc mmc: fsl_esdhc: Avoid infinite loop in esdhc_send_cmd_common() 2019-01-14 11:26:12 -05:00
mtd Merge branch 'master' of git://git.denx.de/u-boot-spi 2019-01-02 14:20:29 -05:00
net imx for 2019.01 2019-01-01 10:01:00 -05:00
nvme blk: Call part_init() in the post_probe() method 2018-11-14 09:16:27 -08:00
pch SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pci video: Allow driver to specify the line length 2018-12-03 19:09:44 +01:00
pcmcia SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
phy phy: omap_usb2: Add support for am437x 2018-12-14 17:59:09 +01:00
pinctrl Revert "dm: pinctrl: Prevent (re-)configuring pins when already done before relocation" 2019-01-11 10:03:42 -05:00
power power: regulator: Allow PWM regulator to be omitted from SPL. 2019-01-02 22:38:09 +01:00
pwm pwm: sunxi: choose best prescaler to improve PWM resolution 2018-10-24 21:57:16 +05:30
qe drivers: qe: add TFABOOT support 2018-12-06 14:37:51 -08:00
ram rockchip: ram: update license for sdram driver 2019-01-02 22:37:10 +01:00
remoteproc spl: Allow remoteproc drivers to be used within SPL 2018-09-11 08:32:55 -04:00
reset drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
rtc rtc: m41t62: Convert the RTC driver to support the driver model (DM) 2018-12-03 10:44:10 -05:00
scsi blk: Call part_init() in the post_probe() method 2018-11-14 09:16:27 -08:00
serial drivers: serial: Add SiFive UART driver 2018-12-18 09:56:54 +08:00
smem drivers: smem: sandbox 2018-07-19 16:31:38 -04:00
soc SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sound dm: sound: Use the correct number of channels for sound 2018-12-13 16:37:10 -07:00
spi spi: sun4i: Add rx_buf NULL pointer check 2019-01-02 00:54:05 +05:30
spmi SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sysreset sandbox: sysreset: Update to support power-on reset 2018-12-05 06:01:34 -07:00
tee tee: change return code for REE FS supplicant cmd 2018-12-15 11:49:19 -05:00
thermal SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
timer timer: Add generic driver for RISC-V privileged architecture defined timer 2018-12-18 09:56:26 +08:00
tpm tpm: Export the open/close functions 2018-11-29 09:30:06 -07:00
usb dm: usb: gadget: Fix boot breakage on sunxi platforms 2019-01-10 18:53:03 +01:00
video video: Add a default TrueType font 2018-12-28 12:27:53 +01:00
virtio virtio: Add a Sandbox transport driver 2018-11-14 09:16:28 -08:00
w1 w1: Add driver for i.MX bus master controller 2019-01-01 14:12:18 +01:00
w1-eeprom w1-eeprom: Add support for Maxim DS2502 add only memory 2018-11-16 16:51:55 -05:00
watchdog watchdog: imx: add config to disable wdog reset 2019-01-01 14:12:18 +01:00
Kconfig dm: Add Hardware Spinlock class 2018-12-06 23:26:32 -05:00
Makefile Kconfig: rename CONFIG_SPL_USB_GADGET_SUPPORT as CONFIG_SPL_USB_GADGET 2019-01-10 18:52:55 +01:00