Commit Graph

16946 Commits

Author SHA1 Message Date
7facf4286c rp2: Increase micropython stack allocation
We were running out of stack for micropython, and the core1 code doesn't
need 4k. So shift the allocation so that micropython has 6k and core1
has 2k. Adjust the linker script since it didn't support splitting
SCRATCH_X between the two stacks.

Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2025-08-20 19:56:13 +02:00
ccdecf255d rp2: Allow using btree module with rp2 port
Integrate btree extmod in rp2 CMakeLists so it can be enabeled with
MICROPY_PY_BTREE=On.

Default values for DEFPSIZE and MINCACHE copied from esp8266 board.

Note: To be able to use the btree module, you must set the
MICROPY_C_HEAP_SIZE CMake option to at least 8192.
2025-08-19 19:57:04 +02:00
Angus Gratton
a792c8f3bf lib/littlefs: Fix string initializer in lfs1.c.
Avoids the new Wunterminated-string-literal when compiled with gcc 15.1.

It would be preferable to just disable this warning, but Clang
-Wunknown-warning-option kicks in even when disabling warnings so this
becomes fiddly to apply.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-05-20 20:04:43 +02:00
Angus Gratton
f4ff9dac89 py/emitinlinethumb: Refactor string literal as array initializer.
Avoids the new Wunterminated-string-literal when compiled with gcc 15.1.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-05-20 20:04:31 +02:00
Angus Gratton
fb05f048e9 extmod/moductypes: Refactor string literal as array initializer.
Avoids the new Wunterminated-string-literal when compiled with gcc 15.1.

Also split out the duplicate string to a top-level array (probably the
duplicate string literal was interned, so unlikely to have any impact.)

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-05-20 20:04:17 +02:00
Angus Gratton
f6a4651af9 rp2: Add temporary workaround for GCC 15.1 build failure.
This is a workaround for this upstream issue:
https://github.com/raspberrypi/pico-sdk/issues/2448

Can be removed after the next pico-sdk update.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-05-20 20:03:58 +02:00
33dc78967d rp2: Fix stacks for multicore operation
Unfortunately, no way to override this from board config.
2025-05-20 19:57:07 +02:00
074dd7ac06 rp2: Modify linker script to run MP3 decoder from RAM 2025-05-20 19:56:50 +02:00
Damien George
f498a16c7d all: Bump version to 1.25.0.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-16 00:28:30 +10:00
Damien George
9f30627996 lib/micropython-lib: Update submodule to latest.
This brings in:
- requests: do not leak header modifications when calling request
- mip: allow relative URLs in package.json
- mip: make mip.install() skip /rom*/lib directories
- umqtt.simple: restore legacy ssl/ssl_params arguments
- nrf24l01: increase startup delay
- nrf24l01: properly handle timeout
- nrf24l01: optimize status reading
- lora-sx126x: fix invert_iq_rx / invert_iq_tx behaviour
- unix-ffi/json: accept both str and bytes as arg for json.loads()
- unix-ffi/machine: use libc if librt is not present
- requests: use the host in the redirect url, not the one in headers
- aiohttp: fix header case sensitivity
- aiohttp: allow headers to be passed to a WebSocketClient
- usb-device-cdc: optimise writing small data so it doesn't require alloc
- inspect: fix isgenerator logic
- inspect: implement iscoroutinefunction and iscoroutine

Signed-off-by: Damien George <damien@micropython.org>
2025-04-14 14:32:41 +10:00
Damien George
9ee2ef5108 py/emitinlinerv32: Move include of asmrv32.h to within feature guard.
Otherwise, when compiling on 16-bit systems (where `mp_uint_t` is 16 bits
wide) the compiler warns about "left shift count >= width of type", from
the static inline functions that have RV32_ENCODE_TYPE_xxx macros which
do a lot of bit shifting.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-14 11:13:19 +10:00
Damien George
0b3ad98ea9 mimxrt/Makefile: Fix dependencies for generation of flexram_config.s.
Prior to this fix the following would fail:

    $ make build-TEENSY40/flexram_config.s

because it didn't create the build directory before generating the file.

Also, make `hal/resethandler_MIMXRT10xx.S` have an explicit dependency on
`flexram_config.s` rather than the latter just being forced to be built
before everything else.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-10 13:56:51 +10:00
Damien George
db85427071 stm32/boards/PYBD_SF6: Support boards with larger SPI flash.
There are some newer PYBD_SF6 being produced which have a larger flash,
namely two of 8MiB (instead of the older ones with two of 2MiB).

This commit adds support for these boards.  The idea is to have the same
PYBD_SF6 firmware run on both old and new boards.  That means autodetecting
the flash at start-up and configuring all the relevant SPI/QSPI parameters,
including for ROMFS and mboot.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:55 +10:00
Damien George
ed4833d495 stm32/modmachine: Add SPI flash size to machine.info dump.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:55 +10:00
Damien George
de08190cb7 stm32/mboot: Allow USB strings to be dynamic.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:55 +10:00
Damien George
aa0945698b stm32/qspi: Allow SPI flash size to be decided at runtime.
Allows `MICROPY_HW_QSPIFLASH_SIZE_BITS_LOG2` and
`MICROPY_HW_QSPI_MPU_REGION_SIZE` to be arbitrary expressions, eg function
calls.

The `storage.h` header needs to be included in case access to `spi_bdev_t`
is needed by the macros.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:55 +10:00
Damien George
1d83c81756 stm32/vfs_rom_ioctl: Allow ROMFS configuration to be dynamic.
Options for a board to configure ROMFS are:

- Leave ROMFS disabled, do nothing.

- Enable by defining `MICROPY_HW_ROMFS_ENABLE_PARTx` to 1 and then in the
  linker script define `_micropy_hw_romfs_partX_start` and
  `_micropy_hw_romfs_partX_size`.

- Enable by defining `MICROPY_HW_ROMFS_ENABLE_PARTx` to 1 and also define
  `MICROPY_HW_ROMFS_PARTx_START` and `MICROPY_HW_ROMFS_PARTx_SIZE` which
  can be arbitrary expressions (not necessarily static)

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:55 +10:00
Damien George
2c0240e068 drivers/bus/qspi: Make num_dummy configurable for quad reads.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:55 +10:00
Damien George
b078569cff drivers/memory/spiflash: Allow a board/port to detect SPI flash.
This commit allows the user of this driver to intercept the SPI flash
initialisation routine and possibly take some action based on the JEDEC id,
for example change the `mp_spiflash_t::chip_params` element.

To do this, enable `MICROPY_HW_SPIFLASH_DETECT_DEVICE` and define a
function called `mp_spiflash_detect()`.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:55 +10:00
Damien George
e7edf0783e drivers/memory/spiflash: Allow a board/port to configure chip params.
This commit allows the user of this driver to dynamically configure the SPI
flash chip parameters.  For this, enable `MICROPY_HW_SPIFLASH_CHIP_PARAMS`
and then set the `mp_spiflash_t::chip_params` element to point to a valid
`mp_spiflash_chip_params_t` struct.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 22:36:52 +10:00
Jos Verlinde
ef8282c717 docs/reference/mpremote: Update docs for mpremote rm -r.
Signed-off-by: Jos Verlinde <Jos_Verlinde@hotmail.com>
2025-04-09 10:51:48 +10:00
Jos Verlinde
72d4c40941 tools/mpremote/tests: Add tests for mpremote rm -r.
Signed-off-by: Jos Verlinde <Jos_Verlinde@hotmail.com>
2025-04-09 10:51:45 +10:00
Jos Verlinde
1aa9b3d94b tools/mpremote: Add recursive remove functionality to filesystem cmds.
mpremote now supports `mpremote rm -r`.

Addresses #9802 and #16845.

Signed-off-by: Jos Verlinde <Jos_Verlinde@hotmail.com>
2025-04-09 10:44:45 +10:00
Damien George
037f2dad72 tests: Update UART and SPI tests to work on Alif boards.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
Damien George
2ad5925302 tests/ports/alif_hardware: Add flash testing script.
This test is not intended to be run automatically and does not have a
corresponding .exp file.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
iabdalkader
547207ddc8 github/workflows: Add Alif port to CI.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09 00:22:33 +10:00
Damien George
704d2f2d57 alif/boards/OPENMV_AE3: Add OpenMV AE3 board definition.
Supports Murata 1YN for WiFi and BLE.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
iabdalkader
7c216d17b6 alif/boards/ALIF_ENSEMBLE: Add Alif Ensemble board config.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
Damien George
b79b64a726 alif/mpu: Add MPU region for OSPI1 XIP memory range.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
Damien George
c395f5ebb0 alif/ospi_flash: Restore XIP settings after erase and write.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
Damien George
df5e4ced76 alif/ospi_flash_settings: Use 8-bit DFS for XIP.
To match the instruction length, so the DFS is restored to the XIP value
after an erase or write (due to the final wait WIP).

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
Damien George
3564ce5bd8 alif/ospi_flash: Don't invalidate cache after erasing/writing.
It's not needed, the MPU configures the XIP as non-cacheable.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
Damien George
737acef5cb alif: Support more fine-grained pin alternate function selection.
Now raises an exception if the pin doesn't support the alternate function
unit number and line type, eg UART0_TX (previously it only checked the
peripheral).

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:33 +10:00
Damien George
29a873ec07 alif/machine_uart: Add machine.UART peripheral support.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
293e8db9d7 alif/mpuart: Enhance UART to support bits/parity/stop and more IRQs.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
iabdalkader
19a4689c6b alif/mcu: Pre-process Alif ToC config file.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09 00:22:32 +10:00
iabdalkader
da46b4d708 alif/mcu: Remove json config files.
They will be generated as part of the build.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09 00:22:32 +10:00
Damien George
30dfbe5dc0 alif: Integrate cyw43 Bluetooth with NimBLE.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
d6e33423da alif: Integrate cyw43 WLAN driver.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
526c7eabce alif: Integrate lwIP and mbedTLS.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
411146b0ed alif/mpuart: Generalise UART driver to suppot all UART instances.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
4f2a8bd99f alif/mphalport: Add mp_hal_pin_config_irq_falling helper.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
d1b12cb676 alif/modules: Make HE core set /rom as current dir.
This allows HE to execute code from the ROMFS in MRAM.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
8297c95c22 alif/vfs_rom_ioctl: Add vfs_rom_ioctl with support for OSPI and MRAM.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
f83f6e7eed alif/mpu: Add function to set read-only bit on MRAM MPU region.
To allow writing to MRAM region.

Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
d895a62b07 alif/alif_flash: Make flash respond to the buffer protocol.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
af574a86c2 alif/alif_flash: Distinguish between total flash size and FS size.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
ca3d50a096 alif/mpuart: Use mp_hal_pin_config for TX/RX configuration.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
Damien George
7e32c23218 alif/mpmetalport: Only notify after metal subsystem is init'd.
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09 00:22:32 +10:00
iabdalkader
68b1dae011 alif: Link with libnosys.
This allows the correct start up functions to be called by the stdlib.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09 00:22:32 +10:00