Open kv2019i opened 2 years ago
is there any plan to move code in sof/src/platform/ to zephyr? I want development drivers and platforms to be out of tree
is there any plan to move code in sof/src/platform/ to zephyr? I want development drivers and platforms to be out of tree
Yes - we are just working out the stages for this. Topic at TSC tomorrow.
is there any plan to move code in sof/src/platform/ to zephyr? I want development drivers and platforms to be out of tree
Yes - we are just working out the stages for this. Topic at TSC tomorrow.
Is there something news to share after TSC?
@lenghonglin apologies, I and some other TSC member were travelling last week.
Please see minutes here. https://github.com/orgs/thesofproject/teams/steering-committee/discussions/31
@kv2019i we should add the DAI/DMA integration here too ?
Marked multiple items as done. Added one new item for platform code init.
@abonislawski @mwasko @dbaluta any items you can add/update here ?
A lot of work has been done to cleanup the XTOS/Zephyr split in SOF codebase for 2.5, and to continue the move to native calls in SOF application code. Some work is left though, so moving this meta item for v2.6 milestone. A few subitems are still queued for v2.5 and they will be included if they get merged to main before the cutoff.
@abonislawski @lyakh @juimonen anything else still todo ? cache API ?
@abonislawski @lyakh @juimonen anything else still todo ? cache API ?
@lgirdwood yes, moving over to the Zephyr native z_xtensa_cache_*()
API is one of the remaining items. irq_local_*able()
is another XTOS API that's still widely used in SOF.
Updated description of the transition tools and guarrails to include the new "{xtos/zephyr}/include/rtos" mechanism to abstract OS services.
Also added @lyakh the cache and local ireq control as tasks. Please do add items directly here as well. This will serve both as a tasklist, and will provide example how to do the transitions.
@dbaluta any Zephyr related interfaces pending for NXP ?
@dbaluta any Zephyr related interfaces pending for NXP ?
For NXP we have on roadmap to port to Zephyr:
We are now using the ones from SOF.
@juimonen @dbaluta are we on track for v2.6 ? Can we close ?
@lgirdwood let's dis-engage this meta-item from the milestones and track the subitems with milestones instead. FYI for @dbaluta . This can be then used for other vendors as well to help with the Zephyr migration.
@kv2019i do you suggest on creating separate Issues for NXP for example, to track the switch to native interfaces?
Since Zephyr has a DAI interface, for us porting NXP DAIs should be low hanging fruits and doable for v2.6
We need to look into the DMA and also the IRQ controller as this could be trickier.
Cc: @iuliana-prodan
@dbaluta I think we can keep NXP issues here as well. We can assign subitems (like the DAI port) to milestones and track them at that level.
@kv2019i @lgirdwood is the Zephyr native drivers for DAI, DMA, irq related with IPC4? Meaning, can we move to zephyr native drivers for DAI, DMA and still using IPC3? Or should we move to IPC4 also?
@iuliana-prodan the DAI/DMA interfaces are IPC agnostic, so no hard requirement to move to IPC4 to use native drivers. The main changes are in dai-zephyr.c/dai-legacy.c and host-zephyr.c/host-legacy.c. There are a few IPC specific bits, but those are related to IPC functionality like bind/unbind (only in IPC4), so the main code is completely shared. Of course with Intel targets moved to IPC4, testing coverage is better with IPC4 now (would be nice to have some IPC3 devices in upstream SOF CI so we'd catch issues sooner).
Cc: @LaurentiuM1234 who is working on this.
Small update on NXP's side:
@marcinszkudlinski @mwasko @abonislawski @softwarecki @kv2019i @lyakh any other nativization work that should be added to the main feature list as we are nearing completion of initial tasks.
From NXP's side: imx8
, imx93
, and imx8ulp
have all been ported to native Zephyr. All of these platforms have been switched to timer domain, which, so far, has been working well. For the switch, we've added drivers in Zephyr for the following IPs previously kept in SOF tree:
@dbaluta @LaurentiuM1234 @iuliana-prodan - Great work everybody :)
I guess this now means you can remove NXP xtos code in main and do similar code clean ups like @kv2019i is doing atm for Intel to simplify your code base.
Added a separate section for tasks related to "thinning out" the sof/src/platform layer for Zephyr builds. In short the the intention is to continue pruning this interface and move everything that is hardware specific, to Zephyr. This will reduce the work that needs to be done to add a new hardware target to SOF.
This is a meta issue to track work to move SOF code to use Zephyr native interfaces. The task is two-fold:
Change in brief: SOF application code will transition to Zephyr application interfaces. Change is done incrementally so that build with the "in-tree XTOS" continuous to work.
Guard rails:
Transition tools:
Ongoing work for generic code (affects all SOF configurations):
Ongoing work for SOF platform layer (affects all SOF configurations):
Ongoing work for specific platforms (Intel cAVS, NXP IMX)
From @dbaluta - For NXP we have on roadmap to port to Zephyr: