-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Why does RP1_PLL_SYS_SEC need to be critical? #6479
Comments
Having an assigned clock rate and having a consumer are not the same thing - who is the consumer? |
RP1_CLK_ETH is the consumer. |
Likely culprit:
|
Yes P33M has pointed to that in #6459 (comment), however those bits are also set via
So if something sets the rate (which I sort of expected an assigned rate to do), then they should have been set. |
That assumes that the set_rate happens after the divider has been turned off. |
Wouldn't it make sense to make rp1_pll_divider_off less destructive before looking for other explanations? |
I'm happy to go with that change. P33M had described it as noddy and making assumptions. I don't know the clock frameworks well enough to comment. |
Unprepare is the opposite of prepare. Prepare doesn't set the clock rate, therefore unprepare shouldn't unset it. |
Ack. Will update the PR. Thanks for the answers. |
Describe the bug
From #6459, RP1_PLL_SYS_SEC has to be defined as critical to avoid it being disabled and losing the post-divider setup in (ctrl reg bits 12:8).
Setting a clock rate should reset those anyway, and we have an assigned-clock-rate in DT for that clock, so why does it not get set?
Steps to reproduce the behaviour
See #6459. Remove CLK_IS_CRITICAL from RP1_PLL_SYS_SEC. Notice that ethernet doesn't negotiate a DHCP address.
/sys/kernel/debug/clk/pll_sys_sec/regdump reports 0x80000000, not 0x80000800.
Device (s)
Raspberry Pi 5
System
Pi5 using 6.6.62
Logs
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: