Issue with mmc_power_on() and reference counter of regulator
Kenta Sato
tosainu.maple at gmail.com
Sun Sep 3 00:21:31 CEST 2023
Hi,
Thank you for the quick response.
On Sat, Sep 2, 2023 at 10:45 PM Jonas Karlman <jonas at kwiboo.se> wrote:
>
> Hi,
>
> On 2023-09-02 13:35, Kenta Sato wrote:
> > Hi,
> >
> > I am using the FriendlyElec NanoPi R4S board.
> > When I updated U-Boot to a recent version (0fe0395922), it failed to
> > boot from MMC. Here is the log:
> >
> > ================================
> > U-Boot TPL 2023.10-rc3 (Sep 02 2023 - 08:21:08)
> > lpddr4_set_rate: change freq to 400MHz 0, 1
> > Channel 0: LPDDR4, 400MHz
> > BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
> > Channel 1: LPDDR4, 400MHz
> > BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
> > 256B stride
> > lpddr4_set_rate: change freq to 800MHz 1, 0
> > Trying to boot from BOOTROM
> > Returning to boot ROM...
> >
> > U-Boot SPL 2023.10-rc3 (Sep 02 2023 - 08:21:08 +0000)
> > Trying to boot from MMC1
> > spl_load_fit_image: Skip load 'atf-5': image size is 0!
> > NOTICE: BL31: v2.9(release):
> > NOTICE: BL31: Built : 08:19:59, Sep 2 2023
> >
> >
> > U-Boot 2023.10-rc3 (Sep 02 2023 - 08:21:08 +0000)
> >
> > SoC: Rockchip rk3399
> > Reset cause: POR
> > Model: FriendlyElec NanoPi R4S
> > DRAM: 4 GiB (effective 3.9 GiB)
> > PMIC: RK808
> > Core: 264 devices, 23 uclasses, devicetree: separate
> > MMC: mmc at fe320000: 1
> > Loading Environment from nowhere... OK
> > In: serial,usbkbd
> > Out: serial,vidconsole
> > Err: serial,vidconsole
> > Model: FriendlyElec NanoPi R4S
> > Net:
> > Error: ethernet at fe300000 address not set.
> > No ethernet found.
> >
> > Hit any key to stop autoboot: 0
> > Error enabling VMMC supply : -114
> > Error enabling VMMC supply : -114
> > Error enabling VMMC supply : -114
> > Error enabling VMMC supply : -114
> > Error enabling VMMC supply : -114
> > Error enabling VMMC supply : -114
> > ================================
> >
> > Does anyone know how to fix the issue?
> >
> > I looked into commit logs and the mailing list so far, and I found the
> > below commit that adds the reference counter to the regulator. I could
> > remove the above error by reverting this change. Of course, it should
> > not be the proper way.
> > Maybe we could replace regulator_set_enable() in mmc_power_on() by
> > regulator_set_enable_if_allowed(). However, I have no confidence about
> > it as I'm not familiar with the U-Boot source code.
>
> I sent patches to fix such situation back in July, see [1]. Those
> patches was merged into next, but should probably have gone into master.
>
> Please try next, and/or apply patches at [1] and report back result.
>
> [1] https://patchwork.ozlabs.org/project/uboot/list/?series=364753&state=*
I tried the next branch. The issue seems to be solved.
================================
U-Boot TPL 2023.10-rc3 (Sep 02 2023 - 22:00:13)
lpddr4_set_rate: change freq to 400MHz 0, 1
Channel 0: LPDDR4, 400MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR4, 400MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
lpddr4_set_rate: change freq to 800MHz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...
U-Boot SPL 2023.10-rc3 (Sep 02 2023 - 22:00:13 +0000)
Trying to boot from MMC1
spl_load_fit_image: Skip load 'atf-5': image size is 0!
NOTICE: BL31: v2.9(release):
NOTICE: BL31: Built : 22:00:05, Sep 2 2023
U-Boot 2023.10-rc3 (Sep 02 2023 - 22:00:13 +0000)
SoC: Rockchip rk3399
Reset cause: POR
Model: FriendlyElec NanoPi R4S
DRAM: 4 GiB (effective 3.9 GiB)
PMIC: RK808
Core: 264 devices, 23 uclasses, devicetree: separate
MMC: mmc at fe320000: 1
Loading Environment from nowhere... OK
In: serial,usbkbd
Out: serial,vidconsole
Err: serial,vidconsole
Model: FriendlyElec NanoPi R4S
Net:
Error: ethernet at fe300000 address not set.
No ethernet found.
Hit any key to stop autoboot: 0
** Booting bootflow 'mmc at fe320000.bootdev.part_1' with extlinux
1: Arch Linux
Retrieving file: /vmlinuz-linux-nanopi-r4s
Retrieving file: /initramfs-linux-nanopi-r4s.img
(...)
================================
I hope those patches will be in the master and the next release soon.
Thank you!
Kenta
>
> Regards,
> Jonas
>
> >
> > ================================
> > commit 4fcba5d556b4224ad65a249801e4c9594d1054e8
> > Author: Eugen Hristev <eugen.hristev at collabora.com>
> > Date: Wed Apr 19 16:45:24 2023 +0300
> >
> > regulator: implement basic reference counter
> >
> > Some devices share a regulator supply, when the first one will request
> > regulator disable, the second device will have it's supply cut off before
> > graciously shutting down. Hence there will be timeouts and other failed
> > operations.
> > Implement a reference counter mechanism similar with what is done in
> > Linux, to keep track of enable and disable requests, and only disable the
> > regulator when the last of the consumers has requested shutdown.
> >
> > Signed-off-by: Eugen Hristev <eugen.hristev at collabora.com>
> > Reviewed-by: Simon Glass <sjg at chromium.org>
> > Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
> > ================================
> >
> > Any help would be greatly appreciated.
> > Thank you!
> >
> > Kenta Sato
>
More information about the U-Boot
mailing list