-
Notifications
You must be signed in to change notification settings - Fork 6.9k
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
ARM: Move CMSIS out of main tree #23373
Comments
FYI @galak @stephanosio @MaureenHelm @carlescufi @erwango Is this something we should try to agree upon and do for v2.3 release? |
There was a "requirement" a while back that one should be able to build for qemu without any additional modules/repos. This is the reason we keep CMSIS in the tree. Perhaps @nashif can comment since I recall him being the one that first introduced this concept (which kind of makes sense to me as well). |
It is not documented, anywhere that we need to build QEMU without additional repositories (to the best of my knowledge, of course) Anyway, this does not even hold, today, at least for qemu_cortex_m0 (Nordic) and qemu_cortex_m3 (TI) that, I believe, require vendor HALs. |
Not for qemu_cortex_m3. The UART driver is in-tree. |
Ah, OK. Are you sure this Soc/Board does not need TI HALs at all? In any case the argument holds for the M0 Qemu |
Unless there is something wrong with my current understanding of how things work, HALs (including CMSIS) need not reside in the main repository. The first thing that CI does is to |
Yes, but the idea here was that downstream distros of zephyr that do not necessarily include those HALs can still run the qemu basic kernel tests. |
Almost sure.
Right, but this is new. |
Re: CMSIS
|
@carlescufi FYI there will be one more QEMU platform that will probably require external HAL (STM32) support; the Cortex-M4F: #23185. |
@stephanosio @ioannisg I have no objections to going forward with this. We should create a new repo for CMSIS that contains all the other applicable components as well (DSP in particular is of interest to many). I would however like to hear from @MaureenHelm, @galak and @nashif before we go ahead. |
@stephanosio note that for CMSIS-DSP we will need to settle this first: A discussion is ongoing at the board level regarding this. |
@carlescufi In #21600, I have already integrated CMSIS-DSP to the Zephyr build system (with full Kconfig support for customisation) in the source code form and linking binary blobs will not be necessary; I suppose #7516 won't be relevant in that case? In terms of licensing, all CMSIS components (including the CMSIS-DSP) are licensed Apache 2.0. p.s. of course, users will be able to simply disable the Kconfig option for this and use the binary blobs provided by the SoC vendor if they wish. |
I'd ask if we need the |
@stephanosio maybe I'm missing something, so CMSIS-DSP is offered both in source code and library form in the CMSIS repo? I thought it was only available as libraries. |
Agreed with @stephanosio. Once Cortex-M4 is supported in qemu, m3 is not required at all. |
Yep, the upstream CMSIS repository contains both the source code and pre-built libs for the CMSIS-DSP. The source code can be found here: |
We tried to remove it when we enabled mps2_an385 but there was some resistance due to some drivers and network tests depending on it if I remember correctly. IMO we should consolidate this and cleanup many of the qemu duplicates we have now, also for x86. |
if we are going to remove cmsis and put it in a module, we should also remove the altera hal at the same time and probably other items in ext and complete abolish "ext/" |
For ARMv7-M things are pretty clear; we don't need qemu_cortex_m3, we have mps2_an385 for a Cortex-M3 and we can make it run without MPU. We want to have Cortex-M4F - that's what #23185 will do. |
Any particular reason these things need to happen "at the same time"? CMSIS and altera-hal are totally unrelated. Agree with abolishing /ext if possible - just that I am more keen of doing things in steps |
We need to sync whatever the CMSIS HAL repo would be w/TFM's CMSIS usage as well. |
@stephanosio @ioannisg I will move forward with this. I think it should be done in steps:
|
Use an external CMSIS repo instead of keeping a copy in ext/hal. Closes zephyrproject-rtos#23373 Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Use an external CMSIS repo instead of keeping a copy in ext/hal. Closes #23373 Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Use an external CMSIS repo instead of keeping a copy in ext/hal. Closes zephyrproject-rtos#23373 Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Introduction
This is a proposal to move the CMSIS out of the main Zephyr repository.
Problem description
CMSIS is one of the two "hal" layers that are still part of the main Zephyr tree, residing inside the /ext folder.
Proposed change
We would like to remove the ARM CMSIS "hal" layer from the /ext directory of the Zephyr main tree and instead, place it in a "hal" repository in the Zephyrproject organization, which, ideally, will mirror the ARM CMSIS repository.
Detailed RFC
The repository content could be fetched using the west tool, as we do for all other HAL layers.
Dependencies
Not applicable.
Alternatives
Keep having the CMSIS as part of the main zephyr repository.
The text was updated successfully, but these errors were encountered: