Initial Zephyr RTOS support #172
Replies: 5 comments 8 replies
-
This is really awesome! Thank you so much for your great work! 👍 |
Beta Was this translation helpful? Give feedback.
-
Your port is upstream! 🚀 Right now I am trying to test the basic "hello world" example (https://docs.zephyrproject.org/latest/boards/riscv/neorv32/doc/index.html). Setting up the build system is quite easy and west is incredible complex but very handy. My first attempt to generate an executable failed, because the NEORV32 executable image generator was not in
However, after adding that everything compiled without problems (tested with the latest hardware version
🎉 Zephyr OS on the NEORV32! 🎉 😄 Just a small question regarding the ELF generated by the Zephyr build system: I tried to convert |
Beta Was this translation helpful? Give feedback.
-
Zephyr TRNG support PR: zephyrproject-rtos/zephyr#39527 |
Beta Was this translation helpful? Give feedback.
-
FYI, I've got a PR to update the Zephyr port to the 1.9.8 core revision and add in a few more drivers like XIRQ and the watchdog timer: zephyrproject-rtos/zephyr#71294 The recent neorv32 core changes in interrupt handling make it a lot easier to support interrupts in a general fashion across drivers - previously the way in which FIRQ interrupts needed to be cleared was fairly inconsistent. There's some discussion about whether it's necessary to maintain compatibility with previous neorv32 revisions. It seems difficult to do so given that the differences go beyond what would end up in the device tree files and extend to things like the bit assignments in SYSINFO registers etc. Part of the answer might depend on whether there are known "breaking" changes coming in core parts of the neorv32 core which might result in even more versions that need to be supported? |
Beta Was this translation helpful? Give feedback.
-
Hey @robhancocksed!
This looks really great! I have already received a few requests asking when there will be an updated version of the NEORV32 port. So, thank you very much for all your work!
Right, the FIRQ handling was quite... horrible... 😅 I'm really glad that we finally reworked that! The FIRQ handling is not only much more consistent among each other, but also in relation to the other standard RISC-V interrupts.
That's indeed a problem. In my humble opinion, only the latest/current version should be supported. Anything else would be far too much work in the end... 🙈
Furthermore, this project is under constant development. Breaking changes are not planned, but they happen from time to time, especially when we discover a severe bug. And isn't such a bug-fix ultimately a "breaking" change? 🤔 |
Beta Was this translation helpful? Give feedback.
-
I have submitted a PR for the Zephyr RTOS for adding initial support for running on the NEORV32 SoC: zephyrproject-rtos/zephyr#39162
Once the initial support has been merged, I will submit individual PRs for adding support for the other NEORV32 peripherals.
Beta Was this translation helpful? Give feedback.
All reactions