* Adds RISC-V compilation option to the IDE and Platform.IO. * Build RP2350-RISCV libpico, libbearssl * Fix RP2350 BearSSL library (was copied from RP2040, now built for M33) * New GCC 14.2 toolchain is required (12.4 RISC-V support is borked) * Newlib locking fixed prototypes * Manually force all runtime init code into RP2350 binaries * Add RISC-V to CI * Remove RP2350 BOOT2.S files, binaries (not used) * Clean up minor GCC 14.x warnings * Add RP2350-RISCV OTA build, link * Add RISC-V FreeRTOS files (configuration still not running, but builds) * Add basic documentation
63 lines
2.1 KiB
Bash
Executable File
63 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e # Exit on error
|
|
set -x
|
|
|
|
export PICO_SDK_PATH="$(cd ../../pico-sdk/; pwd)"
|
|
export PATH="$(cd ../../system/arm-none-eabi/bin; pwd):$PATH"
|
|
export PATH="$(cd ../../system/riscv32-unknown-elf/bin; pwd):$PATH"
|
|
|
|
rm -rf build-rp2040
|
|
mkdir build-rp2040
|
|
cd build-rp2040
|
|
CPU=rp2040 cmake ..
|
|
make -j
|
|
|
|
rm -rf boot
|
|
mkdir boot
|
|
cd boot
|
|
mkdir -p pico
|
|
touch pico/config.h
|
|
for type in boot2_generic_03h boot2_is25lp080 boot2_w25q080 boot2_w25x10cl; do
|
|
for div in 2 4; do
|
|
arm-none-eabi-gcc -march=armv6-m -mcpu=cortex-m0plus -mthumb -O3 \
|
|
-DNDEBUG -DPICO_FLASH_SPI_CLKDIV=$div \
|
|
-c "$PICO_SDK_PATH/src/rp2040/boot_stage2/$type.S" \
|
|
-I "$PICO_SDK_PATH/src/boards/include/boards/" \
|
|
-I "$PICO_SDK_PATH/src/rp2040/hardware_regs/include/" \
|
|
-I "$PICO_SDK_PATH/src/rp2_common/pico_platform/include/" \
|
|
-I "$PICO_SDK_PATH/src/rp2_common/boot_stage2/asminclude/" \
|
|
-I "$PICO_SDK_PATH/src/rp2040/pico_platform/include/" \
|
|
-I "$PICO_SDK_PATH/src/rp2040/boot_stage2/asminclude/" \
|
|
-I .
|
|
|
|
arm-none-eabi-gcc -march=armv6-m -mcpu=cortex-m0plus -mthumb -O3 \
|
|
-DNDEBUG -Wl,--build-id=none --specs=nosys.specs -nostartfiles \
|
|
-Wl,--script="$PICO_SDK_PATH/src/rp2040/boot_stage2/boot_stage2.ld" \
|
|
-Wl,-Map=$type.$div.elf.map $type.o -o $type.$div.elf
|
|
|
|
arm-none-eabi-objdump -h $type.$div.elf > $type.$div.dis
|
|
arm-none-eabi-objdump -d $type.$div.elf >> $type.$div.dis
|
|
|
|
arm-none-eabi-objcopy -Obinary $type.$div.elf $type.$div.bin
|
|
|
|
python3 "$PICO_SDK_PATH/src/rp2040/boot_stage2/pad_checksum" \
|
|
-s 0xffffffff $type.$div.bin ${type}_${div}_padded_checksum.S
|
|
done
|
|
done
|
|
mv *.S ../../../../boot2/rp2040/.
|
|
|
|
cd ../..
|
|
rm -rf build-rp2350
|
|
mkdir build-rp2350
|
|
cd build-rp2350
|
|
CPU=rp2350 cmake ..
|
|
make -j
|
|
|
|
cd ..
|
|
rm -rf build-rp2350-riscv
|
|
mkdir build-rp2350-riscv
|
|
cd build-rp2350-riscv
|
|
CPU=rp2350-riscv cmake ..
|
|
make -j
|