-
Notifications
You must be signed in to change notification settings - Fork 1.5k
arch/risc-v/rp23xx-riscv: Add rp23xx(rp2350) (Pico 2 board) RISC-V support #16424
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
base: master
Are you sure you want to change the base?
Conversation
Wow! |
@shtirlic amazing! Kudos!!! |
Hmm, @shtirlic Output of ./tools/configure.sh from NuttX:
Possibly something to do with the RISCV tool chain I have to install and configure? Any idea? |
Okay manually compiled the toolchain with the correct configuration, but as probably expected, this did not make the nuttx configuration work 🤔 |
It's just a warning(not sorted out yet) did you try to make it? Yeah toolchain from aur built with double float, that's why we have to build with soft ABI for Arch. |
@keever50 I updated the branch, check pls |
@shtirlic Nice, the warnings are gone! How do i make this using the custom built toolchain?
Not entirely sure how it's finding the toolchain, but i might have to change something to make it find the correct (custom) one. |
You should add it to the PATH env something like this
|
@shtirlic The problem I had was quite simple. Doing make distclean after changing toolchain path fixed the problem. |
@shtirlic
As you can see, default is 2k, which is exceeded after enabling some basic debugging or applications in kconfig. Causing crashes without notice. This chip has plenty of memory and I consider that few kB of extra memory usage to prevent headaches worth it. |
Update:
Remember always do: |
That's perfect thank you! |
bee91f0
to
9d164e5
Compare
Just want to say you are doing a great job. I am still looking forward to this. You will make an impact, at least for me. Making the Raspberry Pi Pico a NuttX option again, together with the nice risc-v arch. The USB integration absolutely does it (very flaky in rp2040) |
Hmm, still some unknown opcodes.. not a multiarch toolchain package / build, that do you think @lupyuen ? I will setup the lubuntu vm to try out the ci on local machine :-) |
Thank you, should be pretty usable in next weeks, with RISC-V version I am getting much longer non interrupted uptime (more than 1 day at current time) on the same apps/config as for ARM (around 2-3 hours), (constant i2c poll driver and LVGL shell) |
Pushed some changes to defconfig custom extensions flags that should for sure work with gcc14, not enabling all of the possible extensions. |
a74b3a7
to
870ca2a
Compare
@shtirlic did you see the Olimex rp2350pc: https://www.olimex.com/Products/RaspberryPi/PICO/RP2350pc/open-source-hardware Seems like an amazing board to run NuttX ;-) |
wow 25EUR only! :-) |
@acassis looks cool, also there is another interesting board https://www.waveshare.com/rp2350-pizero.htm rp2350 in pi zero format |
Yes, I saw that in Aliexpress, hehehe |
Updated to recent fixes from arm arch |
is this huge patch ready for merging? @shtirlic |
@xiaoxiang781216 I am planning to do some testing, docs and will make it ready for review this week. |
Update: Added docs, some fixes |
Updated docs, made available for review |
Chip name : rp23xx-rv Board name : raspberrypi-pico-2-rv Arch : risc-v Changes from ARM rp23xx impl - Linker script update - ASM head start - Update chip start - New Hazard3 registers - Remove rp23xx chip hw spinlocks/testset - New irq handling (external IRQ interrupt Hazard3) - New timerisr based on RISC-V std MTIME and alarm arch - No SMP yet - Tickless option - Double size for idle, irq and main stacks - Board reset via watchdog trigger Signed-off-by: Serg Podtynnyi <serg@podtynnyi.com>
Summary
Add support for RP2350 RISC-V cores, Add Pico 2 board.
Naming
Changes from ARM rp23xx impl
...
Todo
Toolchain
Use RISC-V gnu toolchain with soft float abi. Default riscv-collab uses double float abi
This is config for https://github.com/riscv-collab/riscv-gnu-toolchain
Config
Serial NSH
USB CDC/ACM Serial NSH
Testing
cpuinfo
getprime
ostest nsh output