[PATCH 0/2] odroid: fix boot issues on u2, xu4 and siblings

Hi,
Patch 1 fixes issue reported in [1], which happens on odroid-u2 and probably other devices in that family. Re-adding this quirk was discussed already by Jaehoon and Andy in the patch that (re-)introduced this issue [2], but I do not think a patch was sent for it.
Patch 2 fixes issue reported in [3], which happens on odroid-{u2,xu4} and other devices in that family. An alternative fix was sent previously by Joost [4], but has not been picked up yet.
Tested on odroid-u2 and odroid-xu4 on top of master branch, I am able to boot from sdcard on both without issues.
[1] https://lists.denx.de/pipermail/u-boot/2023-January/504116.html [2] https://lists.denx.de/pipermail/u-boot/2021-March/445243.html [3] https://lists.denx.de/pipermail/u-boot/2023-January/504115.html [4] https://lists.denx.de/pipermail/u-boot/2023-January/505551.html
Henrik Grimler (2): Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B" samsung: common: only load CROS_EC if enabled in config
board/samsung/common/board.c | 27 ++++++++++++++------------- drivers/mmc/s5p_sdhci.c | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-)

This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout for status update! mmc fail to send stop cmd <...>
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se --- drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host *host) host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_VOLTAGE | - SDHCI_QUIRK_32BIT_DMA_ADDR | + SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR | SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8; host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;

Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout for status update! mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without SDHCI_QUIKR_BROKEN_RIB.
Best Regards, Jaehoon Chung
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se
drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host *host) host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_VOLTAGE |
SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8; host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR |
-- 2.30.2

Hi Jaehoon,
On Fri, 2023-02-10 at 09:00 +0900, Jaehoon Chung wrote:
Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout for status update! mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without SDHCI_QUIKR_BROKEN_RIB.
Thanks for looking into it! It could be that issue happens only on odroid-u2 devices, since both me and Joost have that model.
Best Regards, Jaehoon Chung
Best regards, Henrik Grimler

Hi Jaehoon,
On Fri, Feb 10, 2023 at 09:00:33AM +0900, Jaehoon Chung wrote:
Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout for status update! mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without SDHCI_QUIKR_BROKEN_RIB.
Just wondering if you have had an opportunity to test this on any of your devices? You can find v2 here, though this patch had no changes: https://lists.denx.de/pipermail/u-boot/2023-February/508928.html
Best Regards, Jaehoon Chung
Best regards, Henrik Grimler
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se
drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host *host) host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_VOLTAGE |
SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8; host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR |
-- 2.30.2

Hi Henrik,
-----Original Message----- From: Henrik Grimler henrik@grimler.se Sent: Saturday, March 11, 2023 7:32 PM To: Jaehoon Chung jh80.chung@samsung.com Cc: joost@diskos.nl; peng.fan@nxp.com; andy.wu@sony.com; sjg@chromium.org; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Subject: Re: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
Hi Jaehoon,
On Fri, Feb 10, 2023 at 09:00:33AM +0900, Jaehoon Chung wrote:
Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout for status update! mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without SDHCI_QUIKR_BROKEN_RIB.
Just wondering if you have had an opportunity to test this on any of your devices? You can find v2 here, though this patch had no changes: https://protect2.fireeye.com/v1/url?k=f02940b0-91a25586-f028cbff-74fe485fffe... 524f6754708289dd&q=1&e=39932d75-a824-41c5-a3b2- d9b467bd34a8&u=https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2023-February%2F508928.html
I have found what you faced.
U-Boot 2023.04-rc3-00265-gbcf343146ff3-dirty (Mar 13 2023 - 14:35:43 +0900)
CPU: Exynos4412 @ 1 GHz Model: Odroid based on Exynos4412 Type: u3 DRAM: 2 GiB Core: 101 devices, 12 uclasses, devicetree: separate LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling LDO21@TFLASH_2.8V: set 2800000 uV; enabling MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0 Loading Environment from MMC... sdhci_send_command: Timeout for status update! mmc fail to send stop cmd sdhci_send_command: Timeout for status update! mmc fail to send stop cmd ** fs_devread read error - block sdhci_send_command: Timeout for status update! mmc fail to send stop cmd *** Warning - !read failed, using default environment
I'm checking yours on my u3 board. I will reply today. Sorry for too late.
Best Regards, Jaehoon Chung
Best Regards, Jaehoon Chung
Best regards, Henrik Grimler
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se
drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host *host) host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_VOLTAGE |
SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8; host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR |
-- 2.30.2

Hi,
On 3/11/23 19:31, Henrik Grimler wrote:
Hi Jaehoon,
On Fri, Feb 10, 2023 at 09:00:33AM +0900, Jaehoon Chung wrote:
Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout for status update! mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without SDHCI_QUIKR_BROKEN_RIB.
Just wondering if you have had an opportunity to test this on any of your devices? You can find v2 here, though this patch had no changes: https://lists.denx.de/pipermail/u-boot/2023-February/508928.html
In my opinion,
commit 4a3ea75de4c5b3053eac326bf1c753ed65df8cb9 Author: Yuezhang.Mo@sony.com Yuezhang.Mo@sony.com Date: Wed Mar 17 06:44:37 2021 +0000
Revert "mmc: sdhci: set to INT_DATA_END when there are data"
This reverts commit 17ea3c862865c0d704646f67dbf8412f9ff54f59.
Revert the above commit.
To Andy,
Was there any problem without above commit?
Best Regards, Jaehoon Chung
Best Regards, Jaehoon Chung
Best regards, Henrik Grimler
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se
drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host *host) host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_VOLTAGE |
SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8; host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR |
-- 2.30.2

Hi Jaehoon
commit 4a3ea75de4c5b3053eac326bf1c753ed65df8cb9 Author: Yuezhang.Mo@sony.com Yuezhang.Mo@sony.com Date: Wed Mar 17 06:44:37 2021 +0000
Revert "mmc: sdhci: set to INT_DATA_END when there are data" This reverts commit 17ea3c862865c0d704646f67dbf8412f9ff54f59.
Revert the above commit.
To Andy,
Was there any problem without above commit?
Without above revert commit, we found "sdhci_transfer_data: Transfer data timeout" on db410c board with v2018.01.
Best Regards Andy Wu
-----Original Message----- From: Jaehoon Chung jh80.chung@gmail.com Sent: Monday, March 13, 2023 9:03 PM To: Henrik Grimler henrik@grimler.se; Jaehoon Chung jh80.chung@samsung.com Cc: joost@diskos.nl; peng.fan@nxp.com; Wu, Andy Andy.Wu@sony.com; sjg@chromium.org; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Subject: Re: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
Hi,
On 3/11/23 19:31, Henrik Grimler wrote:
Hi Jaehoon,
On Fri, Feb 10, 2023 at 09:00:33AM +0900, Jaehoon Chung wrote:
Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the
SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout
for status update!
mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without
SDHCI_QUIKR_BROKEN_RIB.
Just wondering if you have had an opportunity to test this on any of your devices? You can find v2 here, though this patch had no changes: INVALID URI REMOVED
3-February/508928.html__;!!JmoZiZGBv3RvKRSx!5wpP-x5Y69S7MynP1sOmQI HaVG
N9_ZLl5dxDDenNWPHdwFnNPdAEvBrUt69tSpQ9o0Nv-LQ9Gie_aGgP$
In my opinion,
commit 4a3ea75de4c5b3053eac326bf1c753ed65df8cb9 Author: Yuezhang.Mo@sony.com Yuezhang.Mo@sony.com Date: Wed Mar 17 06:44:37 2021 +0000
Revert "mmc: sdhci: set to INT_DATA_END when there are data" This reverts commit 17ea3c862865c0d704646f67dbf8412f9ff54f59.
Revert the above commit.
To Andy,
Was there any problem without above commit?
Best Regards, Jaehoon Chung
Best Regards, Jaehoon Chung
Best regards, Henrik Grimler
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se
drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host
*host)
host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT |
SDHCI_QUIRK_BROKEN_VOLTAGE |
SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR
|
SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8;
host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 |
MMC_VDD_165_195;
-- 2.30.2

Hi Andy,
On 3/15/23 14:26, Andy.Wu@sony.com wrote:
Hi Jaehoon
commit 4a3ea75de4c5b3053eac326bf1c753ed65df8cb9 Author: Yuezhang.Mo@sony.com Yuezhang.Mo@sony.com Date: Wed Mar 17 06:44:37 2021 +0000
Revert "mmc: sdhci: set to INT_DATA_END when there are data" This reverts commit 17ea3c862865c0d704646f67dbf8412f9ff54f59.
Revert the above commit.
To Andy,
Was there any problem without above commit?
Without above revert commit, we found "sdhci_transfer_data: Transfer data timeout" on db410c board with v2018.01.
Thanks for sharing it. I had been trying to find db410c board. I found its board, so I will try to check with/without its patch.
After checked, I will reply again ASAP.
Best Regards, Jaehoon Chung
Best Regards Andy Wu
-----Original Message----- From: Jaehoon Chung jh80.chung@gmail.com Sent: Monday, March 13, 2023 9:03 PM To: Henrik Grimler henrik@grimler.se; Jaehoon Chung jh80.chung@samsung.com Cc: joost@diskos.nl; peng.fan@nxp.com; Wu, Andy Andy.Wu@sony.com; sjg@chromium.org; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Subject: Re: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
Hi,
On 3/11/23 19:31, Henrik Grimler wrote:
Hi Jaehoon,
On Fri, Feb 10, 2023 at 09:00:33AM +0900, Jaehoon Chung wrote:
Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the
SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout
for status update!
mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without
SDHCI_QUIKR_BROKEN_RIB.
Just wondering if you have had an opportunity to test this on any of your devices? You can find v2 here, though this patch had no changes: INVALID URI REMOVED
3-February/508928.html__;!!JmoZiZGBv3RvKRSx!5wpP-x5Y69S7MynP1sOmQI HaVG
N9_ZLl5dxDDenNWPHdwFnNPdAEvBrUt69tSpQ9o0Nv-LQ9Gie_aGgP$
In my opinion,
commit 4a3ea75de4c5b3053eac326bf1c753ed65df8cb9 Author: Yuezhang.Mo@sony.com Yuezhang.Mo@sony.com Date: Wed Mar 17 06:44:37 2021 +0000
Revert "mmc: sdhci: set to INT_DATA_END when there are data" This reverts commit 17ea3c862865c0d704646f67dbf8412f9ff54f59.
Revert the above commit.
To Andy,
Was there any problem without above commit?
Best Regards, Jaehoon Chung
Best Regards, Jaehoon Chung
Best regards, Henrik Grimler
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se
drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host
*host)
host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT |
SDHCI_QUIRK_BROKEN_VOLTAGE |
SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR
|
SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8;
host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 |
MMC_VDD_165_195;
-- 2.30.2

Hi Jaehoon,
On Thu, Mar 23, 2023 at 02:18:39PM +0900, Jaehoon Chung wrote:
Hi Andy,
On 3/15/23 14:26, Andy.Wu@sony.com wrote:
Hi Jaehoon
commit 4a3ea75de4c5b3053eac326bf1c753ed65df8cb9 Author: Yuezhang.Mo@sony.com Yuezhang.Mo@sony.com Date: Wed Mar 17 06:44:37 2021 +0000
Revert "mmc: sdhci: set to INT_DATA_END when there are data" This reverts commit 17ea3c862865c0d704646f67dbf8412f9ff54f59.
Revert the above commit.
To Andy,
Was there any problem without above commit?
Without above revert commit, we found "sdhci_transfer_data: Transfer data timeout" on db410c board with v2018.01.
Thanks for sharing it. I had been trying to find db410c board. I found its board, so I will try to check with/without its patch.
After checked, I will reply again ASAP.
Did you find an opportunity to experiment with the db410c board?
Do you think it could be possible to get this in, and revert it again in the future if a better solution is found?
Best regards, Henrik Grimler
Best Regards, Jaehoon Chung
Best Regards Andy Wu
-----Original Message----- From: Jaehoon Chung jh80.chung@gmail.com Sent: Monday, March 13, 2023 9:03 PM To: Henrik Grimler henrik@grimler.se; Jaehoon Chung jh80.chung@samsung.com Cc: joost@diskos.nl; peng.fan@nxp.com; Wu, Andy Andy.Wu@sony.com; sjg@chromium.org; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Subject: Re: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B"
Hi,
On 3/11/23 19:31, Henrik Grimler wrote:
Hi Jaehoon,
On Fri, Feb 10, 2023 at 09:00:33AM +0900, Jaehoon Chung wrote:
Hi,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Henrik Grimler Sent: Thursday, February 9, 2023 4:04 AM To: joost@diskos.nl; jh80.chung@gmail.com; andy.wu@sony.com; sjg@chromium.org; m.szyprowski@samsung.com; u-boot@lists.denx.de; ~postmarketos/upstreaming@lists.sr.ht Cc: Henrik Grimler henrik@grimler.se Subject: [PATCH 1/2] Revert "mmc: s5p_sdhci: unset the
SDHCI_QUIRK_BROKEN_R1B"
This reverts commit a034ec06ff1d558bbe11d5ee05edbb4de3ee2215.
Commit 4a3ea75de4c5 ("Revert "mmc: sdhci: set to INT_DATA_END when there are data"") reverted the alternative fix that was added for Exynos 4 devices, causing an error when trying to boot from an sdcard:
<...> Loading Environment from MMC... sdhci_send_command: Timeout
for status update!
mmc fail to send stop cmd <...>
Thanks for sharing issue.
I will check this on Exynos Board. Frankly, I hope not to re-add QUIRK. Because it was verified that it was working fine without
SDHCI_QUIKR_BROKEN_RIB.
Just wondering if you have had an opportunity to test this on any of your devices? You can find v2 here, though this patch had no changes: INVALID URI REMOVED
3-February/508928.html__;!!JmoZiZGBv3RvKRSx!5wpP-x5Y69S7MynP1sOmQI HaVG
N9_ZLl5dxDDenNWPHdwFnNPdAEvBrUt69tSpQ9o0Nv-LQ9Gie_aGgP$
In my opinion,
commit 4a3ea75de4c5b3053eac326bf1c753ed65df8cb9 Author: Yuezhang.Mo@sony.com Yuezhang.Mo@sony.com Date: Wed Mar 17 06:44:37 2021 +0000
Revert "mmc: sdhci: set to INT_DATA_END when there are data" This reverts commit 17ea3c862865c0d704646f67dbf8412f9ff54f59.
Revert the above commit.
To Andy,
Was there any problem without above commit?
Best Regards, Jaehoon Chung
Best Regards, Jaehoon Chung
Best regards, Henrik Grimler
Re-add the quirk to allow booting from sdcards again.
Signed-off-by: Henrik Grimler henrik@grimler.se
drivers/mmc/s5p_sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index dee84263c3fd..3b74feae68c7 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -90,7 +90,7 @@ static int s5p_sdhci_core_init(struct sdhci_host
*host)
host->name = S5P_NAME;
host->quirks = SDHCI_QUIRK_NO_HISPD_BIT |
SDHCI_QUIRK_BROKEN_VOLTAGE |
SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_BROKEN_R1B | SDHCI_QUIRK_32BIT_DMA_ADDR
|
SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_USE_WIDE8;
host->max_clk = 52000000; host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 |
MMC_VDD_165_195;
-- 2.30.2

Otherwise non-ChromeOS samsung devices, like the odroid boards, are stuck in a bootloop if CONFIG_CROS_EC is not enabled:
<...> MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment
cros-ec communications failure -96
Please reset with Power+Refresh
Cannot init cros-ec device resetting ...
Issue started after commit e44d7e73fe0d ("dm: core: Switch uclass_*_device_err to use uclass_*_device_check").
Signed-off-by: Henrik Grimler henrik@grimler.se --- board/samsung/common/board.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index 16ce5cb89253..78161b807bac 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -217,26 +217,27 @@ int checkboard(void) #ifdef CONFIG_BOARD_LATE_INIT int board_late_init(void) { - struct udevice *dev; - int ret; int mmcbootdev = get_boot_mmc_dev(); char mmcbootdev_str[16];
- ret = uclass_first_device_err(UCLASS_CROS_EC, &dev); - if (ret && ret != -ENODEV) { - /* Force console on */ - gd->flags &= ~GD_FLG_SILENT; - - printf("cros-ec communications failure %d\n", ret); - puts("\nPlease reset with Power+Refresh\n\n"); - panic("Cannot init cros-ec device"); - return -1; - } - printf("Boot device: MMC(%u)\n", mmcbootdev); sprintf(mmcbootdev_str, "%u", mmcbootdev); env_set("mmcbootdev", mmcbootdev_str);
+ if (IS_ENABLED(CONFIG_CROS_EC)) { + struct udevice *dev; + int ret = uclass_first_device_err(UCLASS_CROS_EC, &dev); + if (ret && ret != -ENODEV) { + /* Force console on */ + gd->flags &= ~GD_FLG_SILENT; + + printf("cros-ec communications failure %d\n", ret); + puts("\nPlease reset with Power+Refresh\n\n"); + panic("Cannot init cros-ec device"); + return -1; + } + } + return 0; } #endif

On Wed, 8 Feb 2023 at 12:04, Henrik Grimler henrik@grimler.se wrote:
Otherwise non-ChromeOS samsung devices, like the odroid boards, are stuck in a bootloop if CONFIG_CROS_EC is not enabled:
<...> MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment cros-ec communications failure -96 Please reset with Power+Refresh Cannot init cros-ec device resetting ...
Issue started after commit e44d7e73fe0d ("dm: core: Switch uclass_*_device_err to use uclass_*_device_check").
Signed-off-by: Henrik Grimler henrik@grimler.se
board/samsung/common/board.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index 16ce5cb89253..78161b807bac 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -217,26 +217,27 @@ int checkboard(void) #ifdef CONFIG_BOARD_LATE_INIT int board_late_init(void) {
struct udevice *dev;
int ret; int mmcbootdev = get_boot_mmc_dev(); char mmcbootdev_str[16];
ret = uclass_first_device_err(UCLASS_CROS_EC, &dev);
if (ret && ret != -ENODEV) {
/* Force console on */
gd->flags &= ~GD_FLG_SILENT;
printf("cros-ec communications failure %d\n", ret);
puts("\nPlease reset with Power+Refresh\n\n");
panic("Cannot init cros-ec device");
return -1;
}
printf("Boot device: MMC(%u)\n", mmcbootdev); sprintf(mmcbootdev_str, "%u", mmcbootdev); env_set("mmcbootdev", mmcbootdev_str);
if (IS_ENABLED(CONFIG_CROS_EC)) {
struct udevice *dev;
int ret = uclass_first_device_err(UCLASS_CROS_EC, &dev);
if (ret && ret != -ENODEV) {
/* Force console on */
gd->flags &= ~GD_FLG_SILENT;
printf("cros-ec communications failure %d\n", ret);
puts("\nPlease reset with Power+Refresh\n\n");
panic("Cannot init cros-ec device");
return -1;
}
}
return 0;
}
#endif
2.30.2
Reviewed-by: Simon Glass sjg@chromium.org
Another option would be to change the check for -ENODEV to also check for -EEPFNOSUPPORT (missing uclass).

Hi Simon,
On Wed, 2023-02-08 at 18:08 -0700, Simon Glass wrote:
On Wed, 8 Feb 2023 at 12:04, Henrik Grimler henrik@grimler.se wrote:
Otherwise non-ChromeOS samsung devices, like the odroid boards, are stuck in a bootloop if CONFIG_CROS_EC is not enabled:
<...> MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment
cros-ec communications failure -96
Please reset with Power+Refresh
Cannot init cros-ec device resetting ...
Issue started after commit e44d7e73fe0d ("dm: core: Switch uclass_*_device_err to use uclass_*_device_check").
Signed-off-by: Henrik Grimler henrik@grimler.se
board/samsung/common/board.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index 16ce5cb89253..78161b807bac 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -217,26 +217,27 @@ int checkboard(void) #ifdef CONFIG_BOARD_LATE_INIT int board_late_init(void) { - struct udevice *dev; - int ret; int mmcbootdev = get_boot_mmc_dev(); char mmcbootdev_str[16];
- ret = uclass_first_device_err(UCLASS_CROS_EC, &dev); - if (ret && ret != -ENODEV) { - /* Force console on */ - gd->flags &= ~GD_FLG_SILENT;
- printf("cros-ec communications failure %d\n", ret); - puts("\nPlease reset with Power+Refresh\n\n"); - panic("Cannot init cros-ec device"); - return -1; - }
printf("Boot device: MMC(%u)\n", mmcbootdev); sprintf(mmcbootdev_str, "%u", mmcbootdev); env_set("mmcbootdev", mmcbootdev_str);
+ if (IS_ENABLED(CONFIG_CROS_EC)) { + struct udevice *dev; + int ret = uclass_first_device_err(UCLASS_CROS_EC, &dev); + if (ret && ret != -ENODEV) { + /* Force console on */ + gd->flags &= ~GD_FLG_SILENT;
+ printf("cros-ec communications failure %d\n", ret); + puts("\nPlease reset with Power+Refresh\n\n"); + panic("Cannot init cros-ec device"); + return -1; + } + }
return 0; } #endif -- 2.30.2
Reviewed-by: Simon Glass sjg@chromium.org
Another option would be to change the check for -ENODEV to also check for -EEPFNOSUPPORT (missing uclass).
Thanks for reviewing! Checking for that return code works as well, and would require a smaller patch, I will send a v2 and use that suggestion instead.
Best regards, Henrik Grimler

I missed CC:ing MMC maintainer Peng Fan (CC:ed here), apologies for this.
Best regards, Henrik Grimler
On Wed, Feb 08, 2023 at 08:04:19PM +0100, Henrik Grimler wrote:
Hi,
Patch 1 fixes issue reported in [1], which happens on odroid-u2 and probably other devices in that family. Re-adding this quirk was discussed already by Jaehoon and Andy in the patch that (re-)introduced this issue [2], but I do not think a patch was sent for it.
Patch 2 fixes issue reported in [3], which happens on odroid-{u2,xu4} and other devices in that family. An alternative fix was sent previously by Joost [4], but has not been picked up yet.
Tested on odroid-u2 and odroid-xu4 on top of master branch, I am able to boot from sdcard on both without issues.
[1] https://lists.denx.de/pipermail/u-boot/2023-January/504116.html [2] https://lists.denx.de/pipermail/u-boot/2021-March/445243.html [3] https://lists.denx.de/pipermail/u-boot/2023-January/504115.html [4] https://lists.denx.de/pipermail/u-boot/2023-January/505551.html
Henrik Grimler (2): Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B" samsung: common: only load CROS_EC if enabled in config
board/samsung/common/board.c | 27 ++++++++++++++------------- drivers/mmc/s5p_sdhci.c | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-)
-- 2.30.2

On Wed, Feb 8, 2023 at 20:04, Henrik Grimler henrik@grimler.se wrote:
Hi,
Hi Henrik,
Thanks for picking this up.
Patch 1 fixes issue reported in [1], which happens on odroid-u2 and probably other devices in that family. Re-adding this quirk was discussed already by Jaehoon and Andy in the patch that (re-)introduced this issue [2], but I do not think a patch was sent for it.
Patch 2 fixes issue reported in [3], which happens on odroid-{u2,xu4} and other devices in that family. An alternative fix was sent previously by Joost [4], but has not been picked up yet.
Patch 2 is anyhow a better fix than [4].
Tested on odroid-u2 and odroid-xu4 on top of master branch, I am able to boot from sdcard on both without issues.
I can confirm that the patches work for me as well - not a surprise as we have the same board.
Best, Joost
[1] https://lists.denx.de/pipermail/u-boot/2023-January/504116.html [2] https://lists.denx.de/pipermail/u-boot/2021-March/445243.html [3] https://lists.denx.de/pipermail/u-boot/2023-January/504115.html [4] https://lists.denx.de/pipermail/u-boot/2023-January/505551.html
Henrik Grimler (2): Revert "mmc: s5p_sdhci: unset the SDHCI_QUIRK_BROKEN_R1B" samsung: common: only load CROS_EC if enabled in config
board/samsung/common/board.c | 27 ++++++++++++++------------- drivers/mmc/s5p_sdhci.c | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-)
-- 2.30.2
participants (6)
-
Andy.Wu@sony.com
-
Henrik Grimler
-
Jaehoon Chung
-
Jaehoon Chung
-
Joost van Zwieten
-
Simon Glass