diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 43f51ef..bdc3b3a 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -18,3 +18,8 @@ jobs: with: name: firmware-RPi-Pico-W path: software/lib/micropython/ports/rp2/build-TONBERRY_RPI_PICO_W/firmware.uf2 + - name: Upload firmware w/ filesystem + uses: actions/upload-artifact@v3 + with: + name: firmware-RPi-Pico-W-with-fs + path: software/lib/micropython/ports/rp2/build-TONBERRY_RPI_PICO_W/firmware-filesystem.uf2 diff --git a/.gitmodules b/.gitmodules index 9254853..ddd1dfe 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "software/lib/microdot"] path = software/lib/microdot url = ../microdot.git +[submodule "software/tools/mklittlefs"] + path = software/tools/mklittlefs + url = https://github.com/earlephilhower/mklittlefs.git diff --git a/software/build.sh b/software/build.sh index a0476a7..30b1429 100755 --- a/software/build.sh +++ b/software/build.sh @@ -11,4 +11,25 @@ set -eu USER_C_MODULES="$TOPDIR"/src/micropython.cmake -j "$(nproc)" ) -echo "Output in lib/micropython/ports/rp2/build-TONBERRY_RPI_PICO_W/firmware.uf2" +( cd tools/mklittlefs + make -j "$(nproc)" +) + +PICOTOOL=picotool +if ! command -v $PICOTOOL >/dev/null 2>&1; then + echo "system picotool not found, checking SDK build dir" + PICOTOOL=lib/micropython/ports/rp2/build-TONBERRY_RPI_PICO_W/_deps/picotool-build/picotool + if ! command -v $PICOTOOL >/dev/null 2>&1; then + echo "No picotool found, exiting" + exit 1 + fi +fi +BUILDDIR=lib/micropython/ports/rp2/build-TONBERRY_RPI_PICO_W/ +tools/mklittlefs/mklittlefs -p 256 -s 868352 -c src/ $BUILDDIR/filesystem.bin +truncate -s 2M $BUILDDIR/firmware-filesystem.bin +dd if=$BUILDDIR/firmware.bin of=$BUILDDIR/firmware-filesystem.bin bs=1k +dd if=$BUILDDIR/filesystem.bin of=$BUILDDIR/firmware-filesystem.bin bs=1k seek=1200 +$PICOTOOL uf2 convert $BUILDDIR/firmware-filesystem.bin $BUILDDIR/firmware-filesystem.uf2 + +echo "Output in $BUILDDIR/firmware.uf2" +echo "Image with filesystem in $BUILDDIR/firmware-filesystem.uf2" diff --git a/software/tools/mklittlefs b/software/tools/mklittlefs new file mode 160000 index 0000000..db0513a --- /dev/null +++ b/software/tools/mklittlefs @@ -0,0 +1 @@ +Subproject commit db0513ade5d4ffb757b0529ce277d0be93e4e46a diff --git a/software/update-submodules.sh b/software/update-submodules.sh index e494519..a528ef8 100755 --- a/software/update-submodules.sh +++ b/software/update-submodules.sh @@ -5,3 +5,4 @@ set -eu git submodule update --init lib git -C lib/micropython submodule update --init lib/pico-sdk lib/mbedtls lib/micropython-lib lib/tinyusb lib/btstack lib/cyw43-driver lib/lwip git -C lib/micropython/lib/pico-sdk submodule update --init lib +git submodule update --init --recursive tools/mklittlefs