-
Notifications
You must be signed in to change notification settings - Fork 321
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
[FEATURE][Zephyr] implement clk.h with native Zephyr interface and drop platform clk.h #9541
Comments
Ok this is somewhat more complex as src/lib/cpu-clk-manager.c has non-trivial use of clk.h and this is used on many native Zephyr SOF platforms. |
Ok, pls do create a new generic application header for cpu-clk manager and we can transition to that and remove the old headers. |
Further observations of current design:
Ripping out the cpu-clk-manager usage to its own interface might still be the best course of action, but above is stll useful to input even if we go down on this path. |
We need to rip out the SOF side code that deals with clock IP and clock change notifications, i.e. any RTOS service/API should be used and the SOF code should be a client that asks for clock changes. Agree, I dont think we have any notifier usage for clock change so can be dropped. |
Dynamic CPU clock control is not enabled in all ACE builds. Make the kcps_*() calls conditional in the platform initialization code. The default clock frequency at boot should be set by platform code in Zephyr for each platform. Link: thesofproject#9541 Signed-off-by: Kai Vehmanen <[email protected]>
Some study into implementing clock management on top of Zephyr:
Next step would be to clean up the Intel ACE platform code in SOF to use more Zephyr definitions. |
Dynamic CPU clock control is not enabled in all ACE builds. Make the kcps_*() calls conditional in the platform initialization code. The default clock frequency at boot should be set by platform code in Zephyr for each platform. Link: thesofproject#9541 Signed-off-by: Kai Vehmanen <[email protected]>
Dynamic CPU clock control is not enabled in all ACE builds. Make the kcps_*() calls conditional in the platform initialization code. The default clock frequency at boot should be set by platform code in Zephyr for each platform. Link: thesofproject#9541 Signed-off-by: Kai Vehmanen <[email protected]>
Dynamic CPU clock control is not enabled in all ACE builds. Make the kcps_*() calls conditional in the platform initialization code. The default clock frequency at boot should be set by platform code in Zephyr for each platform. Link: #9541 Signed-off-by: Kai Vehmanen <[email protected]>
Feature cutoff for v2.12. The remaining work has complex dependencies to Zephyr, so I won't move this to 2.13 directly. Needs to be separately planned, when SOF can intercept the clock framework. |
Is your feature request related to a problem? Please describe.
Implement the SOF clk.h interface without depending on SOF platform interface and rather implement the functions using direct calls to Zephyr. This allows to move the platform specifics to Zephyr side and reduce the work needed to be done on SOF side to add new platforms.
Part of #5794
Additional context
Primary use in code base is for clock_get_freq() (e.g. in basefw.c). Most of the other uses are in XTOS drivers, which can be ignored for Zephyr builds. All in all, it's a good question whether clk.h interface is needed at all for application use and whether the clk.h could be just dropped (and only used for XTOS driver and platform code).
IOW, is there any need to query the CPU frequency from application code? After all, clock gating and scaling can be used and any logic dependent on exact frequency, is potentially sensitive to platform differences.
The text was updated successfully, but these errors were encountered: