public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tianling Shen <cnsztl@gmail.com>
To: Jonas Karlman <jonas@kwiboo.se>
Cc: Kever Yang <kever.yang@rock-chips.com>,
	Simon Glass <sjg@chromium.org>,
	Philipp Tomsich <philipp.tomsich@vrull.eu>,
	Tom Rini <trini@konsulko.com>,
	u-boot@lists.denx.de
Subject: Re: [PATCH] arm: dts: rockchip: Fix eMMC write on RK3528
Date: Thu, 6 Nov 2025 17:22:07 +0800	[thread overview]
Message-ID: <7619d309-070e-4bbb-bffa-0f4cf225f74c@gmail.com> (raw)
In-Reply-To: <bbde8b7b-fa1c-4526-845c-849ea1510c2d@gmail.com>

On 2025/10/31 17:40, Tianling Shen wrote:
> On 2025/10/31 3:41, Jonas Karlman wrote:
>> Hi Tianling,
>>
>> On 10/30/2025 7:12 PM, Tianling Shen wrote:
>>> Hi Jonas,
>>>
>>> On 2025/6/14 6:43, Jonas Karlman wrote:
>>>> Writing to eMMC on RK3528 is affected with the same or a similar issue
>>>> as on RK3588, where eMMC must init to HS200 at least once to fully 
>>>> work.
>>>>
>>>> Trying to write u-boot-rockchip.bin to eMMC fails with:
>>>>
>>>>     => mmc write $fileaddr 40 5000
>>>>     MMC write: dev # 0, block # 64, count 20480 ... mmc write failed
>>>>     0 blocks written: ERROR
>>>>
>>>> For U-Boot to enable HS200 mode the mmc-hs200-1_8v prop must be defined
>>>> in the device tree. Linux does not seem to be affected and is able to
>>>> detect and use HS200 without this prop.
>>>>
>>>> Enable use of HS200 and fix eMMC write on RK3528 by adding the missing
>>>> mmc-hs200-1_8v prop for affected boards:
>>>>
>>>>     => mmc write $fileaddr 40 5000
>>>>     MMC write: dev # 0, block # 64, count 20480 ... 20480 blocks 
>>>> written: OK
>>>>
>>>
>>> Sorry for the noise.
>>>
>>> I recently got an E20C board, and I ran into a very stange issue, the
>>> U-Boot throw errors with any mmc r/w operation, like `boot` or `mmc 
>>> erase`:
>>>
> 
> <snip>
> 
>>>
>>> I tried to use the generic-rk3528 configuration, and it seems to work.
>>> After making some tests (about 50 times reboot/reset), I found the eMMC
>>> works fine if `CONFIG_REGULATOR_PWM=y` is disabled.
>>> This is a bit weird. Maybe disabling this option just hides the real 
>>> issue?
>>
>> Interesting information and thanks for testing!
>>
>> Without REGULATOR_PWM=y the cpu and logic regulators will keep their 
>> reset
>> init values instead of U-Boot trying to configure these pwm regulators.
>>
>> The generic-rk3528 target does not include information about any of these
>> regulators so they would keep using the reset init values.
>>
>> There could be two issues related to this, first both the pwm regulator
>> and rk pwm driver are not fully aligned with Linux and round values a
>> little bit different. I have some local work-in-progress patches that I
>> should complete and send out to fix this discrepancy.
>>
>> The second issue could be that the logic regulator should be configured
>> with a higher regulator-init-microvolt value so that U-Boot do not
>> re-configure the regulator with a lower voltage than it has after reset.
>>
>> Did your testing also include the "mmc: rockchip_sdhci: Set xx_TAP_VALUE
>> for RK3528" [1] patch?
> 
> Thank you for the quick reply!
> 
> I tested this patch and it works like a charm (30 times soft reboot + 10 
> times cold boot).
> 
>>
>>>
>>> Here's the build information:
>>> U-Boot commit: 4cad9faf8d28 ("MAINTAINERS: update my email address")
>>> rkbin commit: 74213af1e952 ("rv1126b: bl31: update version to v1.07")
>>> Build command:
>>> make CROSS_COMPILE=aarch64-linux-musl-
>>> BL31=../rkbin/bin/rk35/rk3528_bl31_v1.20.elf
>>> ROCKCHIP_TPL=../rkbin/bin/rk35/rk3528_ddr_1056MHz_v1.11.bin
>>
>> I will make some runtime test on my E20C using these as a base and see
>> if I can replicate a similar issue.
>>
>> I have also pushed my local pwm-regulator/rk-pwm relates patches to [2],
>> they need some re-work before being ready to be sent out.
> 
> I have tested this patchset, and the eMMC works as well even without the 
> rockchip_sdhci patch/commit applied.
> 
> I will make more tests these days and report then ;)

After 300 times soft reboot/reset, 70 times cold boot and 30 times mmc 
write + erase operations, the eMMC works very stable with the 
pwm-regulator/rk-pwm patches (with commit e34dd9146b29 "mmc: 
rockchip_sdhci: Set xx_TAP_VALUE for RK3528" reverted).

For the pwm series:
Tested-by: Tianling Shen <cnsztl@gmail.com>

Thanks,
Tianling.

> Many thanks again!
> 
> Thanks,
> Tianling.
> 
>>
>> [1] https://lore.kernel.org/u-boot/20250714203410.1782783-1- 
>> jonas@kwiboo.se/
>> [2] https://source.denx.de/u-boot/contributors/kwiboo/u-boot/-/ 
>> commits/rk3528
>>
>> Regards,
>> Jonas
>>
>>>
>>> Any help will be greatly appreciated!
>>>
>>> Thanks,
>>> Tianling.
>>>
>>>> Fixes: b112a44531cb ("board: rockchip: Add minimal generic RK3528 
>>>> board")
>>>> Fixes: ccbddf645310 ("board: rockchip: Add Radxa E20C")
>>>> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
>>>> ---
>>>> Kever, Tom: Please consider this for the v2025.07 release as support 
>>>> for
>>>> RK3528 was added in v2025.07-rc1.
>>>> ---
>>>>    arch/arm/dts/rk3528-generic.dts            | 1 +
>>>>    arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi | 4 ++++
>>>>    2 files changed, 5 insertions(+)
>>>>
>>>> diff --git a/arch/arm/dts/rk3528-generic.dts b/arch/arm/dts/rk3528- 
>>>> generic.dts
>>>> index 792d3e04a4cb..3f6f0bed108d 100644
>>>> --- a/arch/arm/dts/rk3528-generic.dts
>>>> +++ b/arch/arm/dts/rk3528-generic.dts
>>>> @@ -18,6 +18,7 @@
>>>>    &sdhci {
>>>>        bus-width = <8>;
>>>>        cap-mmc-highspeed;
>>>> +    mmc-hs200-1_8v;
>>>>        no-sd;
>>>>        no-sdio;
>>>>        non-removable;
>>>> diff --git a/arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi b/arch/arm/ 
>>>> dts/rk3528-radxa-e20c-u-boot.dtsi
>>>> index 9c2f03a786cf..1372d8f1e38a 100644
>>>> --- a/arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi
>>>> +++ b/arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi
>>>> @@ -2,6 +2,10 @@
>>>>    #include "rk3528-u-boot.dtsi"
>>>> +&sdhci {
>>>> +    mmc-hs200-1_8v;
>>>> +};
>>>> +
>>>>    &sdmmc {
>>>>        bus-width = <4>;
>>>>        cap-mmc-highspeed;
>>>
>>
> 


      reply	other threads:[~2025-11-06  9:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-13 22:43 [PATCH] arm: dts: rockchip: Fix eMMC write on RK3528 Jonas Karlman
2025-06-15 18:02 ` Tom Rini
2025-10-30 18:12 ` Tianling Shen
2025-10-30 19:41   ` Jonas Karlman
2025-10-31  9:40     ` Tianling Shen
2025-11-06  9:22       ` Tianling Shen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7619d309-070e-4bbb-bffa-0f4cf225f74c@gmail.com \
    --to=cnsztl@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=kever.yang@rock-chips.com \
    --cc=philipp.tomsich@vrull.eu \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox