[PATCH v6 05/12] power-domain: Add refcounting

Francesco Dolcini francesco at dolcini.it
Tue Apr 15 08:51:15 CEST 2025


Hello Tom, Neha

On Tue, Apr 15, 2025 at 10:50:42AM +0530, Neha Malcom Francis wrote:
> 
> 
> On 15/04/25 02:30, Francesco Dolcini wrote:
> > On Mon, Apr 14, 2025 at 02:06:35PM -0600, Tom Rini wrote:
> >> On Mon, Apr 14, 2025 at 01:07:27PM -0500, Nishanth Menon wrote:
> >>> On 23:06-20250414, Francis, Neha wrote:
> >>>> On 4/3/2025 1:09 PM, Miquel Raynal wrote:
> >>>>> It is very surprising that such an uclass, specifically designed to
> >>>>> handle resources that may be shared by different devices, is not keeping
> >>>>> the count of the number of times a power domain has been
> >>>>> enabled/disabled to avoid shutting it down unexpectedly or disabling it
> >>>>> several times.
> >>>>>
> >>>>> Doing this causes troubles on eg. i.MX8MP because disabling power
> >>>>> domains can be done in recursive loops were the same power domain
> >>>>> disabled up to 4 times in a row. PGCs seem to have tight FSM internal
> >>>>> timings to respect and it is easy to produce a race condition that puts
> >>>>> the power domains in an unstable state, leading to ADB400 errors and
> >>>>> later crashes in Linux.
> >>>>>
> >>>>> CI tests using power domains are slightly updated to make sure the count
> >>>>> of on/off calls is even and the results match what we *now* expect.
> >>>>>
> >>>>> As we do not want to break existing users while stile getting
> >>>>> interesting error codes, the implementation is split between:
> >>>>> - a low-level helper reporting error codes if the requested transition
> >>>>>   could not be operated,
> >>>>> - a higher-level helper ignoring the "non error" codes, like EALREADY and
> >>>>>   EBUSY.
> >>>>>
> >>>>> Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
> >>>>> ---
> >>>>
> >>>> This commit looks to be breaking K3 platforms boot, please see "Latest Boot
> >>>> Summary" [0]. Reverting the commit fixes boot.
> >>>>
> >>>> [0] https://lcpd.itg.ti.com/upstream/k3-boot-build/main/build-trends.html
> 
> My bad on the internal link.
> 
> >>>
> >>> Uggh. This link is a TI internal link. Nutshell, it is broken
> >>> between:
> >>> v2025.04-921-gcb7555e93075 : https://source.denx.de/u-boot/u-boot.git
> >>> and
> >>> v2025.04-1041-g407d68638fe3 : https://source.denx.de/u-boot/u-boot.git
> >>>
> >>> Neha bisected it down to 197376fbf300e92afa0a1583815d9c9eb52d613a commit
> >>> which is this patch.
> >>
> >> And assuming it's the same failure I got reported this morning by one of
> >> my coworkers, we just get:
> >> U-Boot SPL 2025.04-01050-ga40fc5afaec0 (Apr 14 2025 - 07:31:32 +0000)
> >> SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
> 
> This is not the failure I am seeing, we hang before console comes up so
> no prints. Looks like the different failure signature is due to TIFS
> (SYSFW) firmware being different (v9.2.7 vs. 11.0.4)

To me it was failing freezing just after this

U-Boot SPL 2025.04-01076-g739ad58dbee8 (Apr 14 2025 - 17:23:46 +0200)
SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)')

and, with commit 197376fbf300 ("power-domain: Add refcounting") reverted
the issue is fixed and I get to the U-Boot command line.

Francesco



More information about the U-Boot mailing list