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: Fri, 31 Oct 2025 17:40:47 +0800	[thread overview]
Message-ID: <bbde8b7b-fa1c-4526-845c-849ea1510c2d@gmail.com> (raw)
In-Reply-To: <dcbc1f40-f418-459f-9696-b39d22d63180@kwiboo.se>

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 ;)
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-10-31  9:41 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 [this message]
2025-11-06  9:22       ` Tianling Shen

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=bbde8b7b-fa1c-4526-845c-849ea1510c2d@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