https://github.com/mr-bossman/pi-pico2-linux
RISC-V linux on the raspberry pi pico 2
https://github.com/mr-bossman/pi-pico2-linux
bootloader buildroot linux linux-kernel pi-pico pi-pico2 pico2 psram rp2350
Last synced: 5 months ago
JSON representation
RISC-V linux on the raspberry pi pico 2
- Host: GitHub
- URL: https://github.com/mr-bossman/pi-pico2-linux
- Owner: Mr-Bossman
- Created: 2024-08-09T20:04:34.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-12T16:53:56.000Z (over 1 year ago)
- Last Synced: 2025-04-04T13:34:27.404Z (about 1 year ago)
- Topics: bootloader, buildroot, linux, linux-kernel, pi-pico, pi-pico2, pico2, psram, rp2350
- Language: C
- Homepage:
- Size: 399 KB
- Stars: 207
- Watchers: 15
- Forks: 20
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Raspberry Pi Pico 2 Buildroot
How to build:
```bash
git clone https://github.com/Mr-Bossman/pi-pico2-linux
cd pi-pico2-linux
git submodule update --init
# cd buildroot
# make BR2_EXTERNAL=$PWD/../ raspberrypi-pico2_defconfig
make -C buildroot BR2_EXTERNAL=$PWD/ raspberrypi-pico2_defconfig
make -C buildroot
picotool load -fu buildroot/output/images/flash-image.uf2
```
## Designed to work with [SparkFun Pro Micro - RP2350](https://www.sparkfun.com/products/24870)

#### NOTES on Atomics
On page 307 of the RP2350 Datasheet MCAUSE register CODE 7 says:
> Store/AMO access fault. A store/AMO failed a PMP check, or
encountered a downstream bus error. Also set if an AMO is attempted on a
region that does not support atomics (on RP2350, anything but SRAM).
Atomics will only work in SRAM, the kernel is located PSRAM, not SRAM.
The `lr` and `sr` atomic load and store will always return error in this region causing most code using them to behave incorrectly.
Most implementations assume `lr` and `sr` will eventually succeed.
### Use on other boards
This only works on the RP2350 RISC-V cores.
If you want to run this on other boards, please change the psram CS pin with the `RP2350_XIP_CSI_PIN` macro in `package/pico2-bootloader/bootloader/src/main.c`.
As of now the only psram chip tested is the `APS6404L` and any others may not work.