[PATCH 2/2] imx: power-domain: Enable refcounting on imx8mp
Frieder Schrempf
frieder.schrempf at kontron.de
Tue Jul 22 10:32:55 CEST 2025
Am 22.07.25 um 09:26 schrieb Frieder Schrempf:
> Am 21.07.25 um 18:01 schrieb Frieder Schrempf:
>> Hi Miquel,
>>
>> Am 25.04.25 um 08:49 schrieb Miquel Raynal:
>>> Prevent enabling/disabling multiple times the same power domain to avoid
>>> breakages due to the same power domains being referenced several times
>>> by different device nodes.
>>>
>>> Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
>>
>> I've stumbled upon some issue that seems to be related to this patch. I
>> saw you already had to bother with other breakages of existing
>> boards/platforms in the previous implementation. Unfortunately it looks
>> like this still causes some kind of regression in my case.
>>
>> I'm working with an i.MX8MM board (kontron-sl-mx8mm_defconfig) and I see
>> a crash as soon as I do "usb start" and then "usb stop" (log for the
>> latter see below).
>>
>> As soon as I revert this patch everything starts to work fine again. Do
>> you have any suggestions? The power-domains involved here are pgc_otg1
>> and pgc_hsiomix defined in imx8mm.dtsi.
>>
>> Thanks
>> Frieder
>>
>>
>> => usb stop
>> stopping USB..
>> Sending event 6/(unknown) to spy 'efi_disk del'
>> Sending event 6/(unknown) to spy 'efi_disk del'
>> Looking for power-domain at 0
>> Looking for power-domain at 0
>> - checking gpc at 303a0000
>> - checking power-domain at 0
>> - result for power-domain at 0: power-domain at 0 (ret=0)
>> - result for power-domain at 0: power-domain at 0 (ret=0)
>> "Synchronous Abort" handler, esr 0x96000005, far 0x4ebacdc50
>> elr: 0000000040249c94 lr : 0000000040249c6c (reloc)
>> elr: 00000000fff4ec94 lr : 00000000fff4ec6c
>> x0 : 0000000000000001 x1 : 00000000fbf22750
>> x2 : 00000003efbab500 x3 : 00000000fffcdfb0
>> x4 : 0000000000000020 x5 : 0000000000000020
>> x6 : 00000000fbeea10f x7 : 00000000fbeea3d7
>> x8 : 00000000fffffffe x9 : 00000000fbeea1ec
>> x10: 00000000fbeea280 x11: 00000000ffffffd8
>> x12: 00000000fbeeb1b0 x13: 00000000fbeeb1b0
>> x14: 0000000000000002 x15: 0000000000000000
>> x16: 00000000fff4edc4 x17: 0000000000000000
>> x18: 00000000fbef4db0 x19: 00000004ebacdc50
>> x20: 00000000fbeeace8 x21: 00000000fbf21ad0
>> x22: 0000000000000000 x23: 0000000000000001
>> x24: 0000000000000000 x25: 00000000fbf28f10
>> x26: 0000000000000000 x27: 00000000fbf2ad40
>> x28: 00000000fbf2ada0 x29: 00000000fbeeac70
>>
>> Code: f9400693 d37ef662 ab130833 54000140 (b8626820)
>> Resetting CPU ...
>>
>>
>
> FWIW, here is another log with only the debug output from
> power-domain-uclass.c:
>
> => usb start
> starting USB...
> power_domain_get_by_index(dev=00000000fbefacd0,
> power_domain=00000000fbeead28)
> power_domain_get_by_index(dev=00000000fbef7450,
> power_domain=00000000fbef74f0)
> power_domain_get_by_index: dev_read_phandle_with_args failed: -2
> power_domain_get_by_index(dev=00000000fbef7560,
> power_domain=00000000fbef7600)
> power_domain_get_by_index: dev_read_phandle_with_args failed: -2
> Enable power domain power-domain at 0.0: 0 -> 1 (todo)
> power_domain_get_by_index(dev=00000000fbef58b0,
> power_domain=00000000fbeeabf8)
> power_domain_get_by_index(dev=00000000fbef7780,
> power_domain=00000000fbef7820)
> power_domain_get_by_index: dev_read_phandle_with_args failed: -2
> Enable power domain power-domain at 2.0: 0 -> 1 (todo)
> power_domain_get_by_index(dev=00000000fbf239d0,
> power_domain=00000000fbeea288)
> Enable power domain power-domain at 0.0: 1 -> 2 (EALREADY)
> Bus usb at 32e40000: 1 USB Device(s) found
> => <INTERRUPT>
> => usb stop
> stopping USB..
> power_domain_get_by_index(dev=00000000fbf239d0,
> power_domain=00000000fbeeac88)
> "Synchronous Abort" handler, esr 0x96000005, far 0x4ebaceb90
This should do the trick:
https://patchwork.ozlabs.org/project/uboot/patch/20250722083119.64084-1-frieder@fris.de/
More information about the U-Boot
mailing list