Commit Graph

18658 Commits

Author SHA1 Message Date
Alessandro Gatti 8fa4e0075f unix/mpconfigport: Report the correct sys.platform name on FreeBSD.
This commit lets the "sys" module report the correct value of
"sys.platform" on FreeBSD systems.

The only two platforms known to the module were Darwin and Linux, with
the latter used as a fallback.  Now FreeBSD is also recognised as such,
with the appropriate string being set.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-06-11 23:41:08 +10:00
Alessandro Gatti b516d39024 unix/mpconfigport: Provide the correct system path on FreeBSD.
This commit fixes the default system libraries path on FreeBSD, as its
filesystem conventions differ from regular Linux (which seems to be the
default chosen here).

On FreeBSD "/usr/lib" is used exclusively by base system packages, and
anything else is supposed to either use "/usr/local/lib" or something
else under "/opt".  Now builds for FreeBSD will use a sensible default
system path, which should also easen the burden of whoever will update
the FreeBSD ports' version of MicroPython.

This in theory should work on other BSD systems as well but that
assumption was not tested.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-06-11 23:41:08 +10:00
Alessandro Gatti 538ac78ac7 tests/ports/unix/ffi: Fix tests on current FreeBSD version.
This commit makes two failing FFI tests pass on FreeBSD 15.0-RELEASE.

Those tests explicitly looked for the system's libc and libm libraries
by versioned file names, both of which do not have matches on current
FreeBSD installations.  The new versioned file names have been added to
make the tests pass.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-06-11 23:41:08 +10:00
Damien George 3b64a5d129 tests/test_utils.py: Use stdin/out for mpy-cross instead of tempfile.
This change pipes data into and out of mpy-cross using stdin/stdout,
instead of creating two temporary files.  That should be more efficient,
reducing load on the filesystem.

As part of this change, pass through the correct .py filename to mpy-cross'
"-s" argument, to make error messages a little easier to understand.

Signed-off-by: Damien George <damien@micropython.org>
2026-06-11 23:05:13 +10:00
Damien George 2b02e3ff57 tests/run-tests.py: Remove unneeded import.
Signed-off-by: Damien George <damien@micropython.org>
2026-06-11 23:05:13 +10:00
Damien George 3b2b3cf8c9 tests/run-perfbench.py: Add "prologue" argument and set injected code.
Otherwise running performance tests with `--via-mpy` does not work.

Signed-off-by: Damien George <damien@micropython.org>
2026-06-11 23:05:12 +10:00
Damien George 18c6c47be3 tests/run-perfbench.py: Skip large tests based on bm_params.
A large benchmark test cannot run on small targets if the target doesn't
have enough RAM to load the test, or to run it.  Prior to the change in
this commit, `run-perfbench.py` had an explicit list of tests which were
too large for small targets to load, and `bm_params` took care of deciding
if the target had enough RAM to run the test.

Having an explicit list for large test scripts is not very general.  This
commit improves the situation by using `bm_params` to also decide if the
target will be able to load the test.  It does this by using a regex to
search for `bm_params` and extracting the first pair of N/M values.  The M
is the minimum memory the target needs in order to run the test, and the
test will be skipped entirely (not even loaded) if the target has less than
that minimum.

This means that tests that are too big to load on the target will be
properly skipped, instead of attempting to download to the target and fail
with a `MemoryError`.

Note: it's not really possible to exec the test script on the host to
extract `bm_params` because some tests cannot run under CPython.

Signed-off-by: Damien George <damien@micropython.org>
2026-06-11 22:52:16 +10:00
Angus Gratton 7b068719ac tests/extmod_hardware/machine_sdcard_dma_align: Fix for native emitter.
Check code formatting / code-formatting (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.5.2) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
Raise without an argument isn't supported by native emitter.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-11 13:27:10 +10:00
Angus Gratton 307b224aee mimxrt: Workaround DCache invalidation problems with SDCard operations.
- Invalidate the DCache after reads complete, to avoid stale cache lines
  that were read during the operation (the driver already cleans the cache
  before the operation).

- Disable DMA if the read buffer isn't DCache aligned, to avoid corruption
  if the CPU writes to the same cache line as the buffer during the
  operation.

The sdcard_dma_align.py test added in the parent commit is fixed by this
commit.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-11 13:27:10 +10:00
Angus Gratton 5602c631c7 tests: Rewrite stm32 sdcard_dma_align test to work with machine.SDCard.
Now runs on mimxrt as well (less effective due to virtual timers only).
Can be easily extended to run on other ports.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-11 13:27:10 +10:00
Rick Sorensen 0d6363816e WIO_TERMINAL Pins.csv: Correct name for I2S_BCLK pin.
The I2S_BCLK pin was missed name "I2C_BCLK."

Signed-off-by: Rick Sorensen <rick.sorensen@gmail.com>
2026-06-11 10:59:06 +10:00
Angus Gratton 1c5e309d31 extmod/vfs: Skip littlefs detection if mp_vfs_blockdev_read_ext() fails.
Otherwise 'buf' is read uninitialised.

Extends vfs_blockdev_invalid test to include the mount auto-detection path.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-11 10:21:51 +10:00
Keenan Johnson aa25a4ec27 extmod/modtls_mbedtls: Add TLS-PSK support.
Add support for TLS-PSK (pre-shared key) cipher suites to the mbedtls
bindings, via new SSLContext attributes:

- psk_identity / psk_key: the identity and key a client presents.
- server_psk_keys: a mapping (e.g. dict) the server uses to look up the
  key for a client's identity; any object with a get() method works.

Identities are handled as bytes (an opaque octet string on the wire).
When PSK is configured the context is restricted to PSK cipher suites,
so a connection cannot silently fall back to a non-PSK suite.  PSK is
enabled for the bundled mbedtls config and for the esp32 port, and the
new attributes are documented in the ssl module reference.

Tests cover the PSK attributes and key-length validation; successful
handshakes via a dict, via a custom mapping object, and with a non-ASCII
identity; and adversarial cases: PSK vs non-PSK peers (both directions),
a wrong key, an unknown identity, and a misbehaving server_psk_keys.

Signed-off-by: Keenan Johnson <keenan.johnson@gmail.com>
2026-06-11 09:22:45 +10:00
Angus Gratton 7e55a73e5e esp32: Rename the sdkconfig.spiram_xxx config snippets.
Check code formatting / code-formatting (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.5.2) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
They now more correctly describe what they each do.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-10 15:00:36 +10:00
Angus Gratton df79f28494 esp32: Enable PSRAM support on ESP32_GENERIC_C5.
Similar to S2 & S3, it should be OK to detect at boot
if present or not.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-10 15:00:36 +10:00
Angus Gratton 84cb12f2f1 esp32: Don't enable the free_ram config for ESP32_GENERIC_C5.
This was added with C5 support in 30c74fc3b4, but probably
unnecessary for C5 which has closer total internal RAM to C3 and C6,
compared to C2 which is the chip this was added for.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-10 15:00:36 +10:00
Angus Gratton c6b40d5336 esp32: Remove ESP32-S2 & S3-specific default spiram config items.
These are already the ESP-IDF defaults.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-10 15:00:36 +10:00
Angus Gratton 2f6f9e3ccc esp32: Use ESP-IDF abstraction for CPU cycle count (fix ESP32-C5).
- ESP32-C3 & C6 use a RISCV vendor custom performance counter for cycle
counting.

- ESP32-C5 uses the standard RISCV mcycle register. Trying to read
  the (non-existent) vendor register causes a fault.

- ESP32-P4 is documented to also use the standard mcycle register and not
  support the custom register, but for some reason the tests don't fault
  or fail) on this CPU...

Rather than adding more inline assembly, this commit delegates to
ESP-IDF's abstraction layer which will inline the correct implementation
here.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-10 14:12:38 +10:00
Angus Gratton 1f50d052c5 mimxrt: Fix flash erase operations on Hyperflash boards.
Possibly also flash write (untested). Closes #19250

Regression introduced in b251aec0f, where the FLEXSPI_UpdateLUT() call
was removed from boards configured for Hyperflash.

This commit restores the old version, but doesn't add any of the additional
LUT improvements & clock changes subsequently added for the NOR flash
driver.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-10 10:29:13 +10:00
Angus Gratton 8dfb700b77 esp32: Refactor LILYGO_T3_S3 config to use common cmake file.
Somehow skipped this board in 9fe2c9d47.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-10 09:22:09 +10:00
Damien George af38ee165f samd/mphalport: Run events at least once in mp_hal_delay_ms.
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check code formatting / code-formatting (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.5.2) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
Per the docs for `time.sleep()` and `time.sleep_ms()`.  This gets the
`tests/micropython/schedule_sleep.py` test working when using the native
emitter.

The structure of `mp_hal_delay_ms()` matches the rp2 port.

Signed-off-by: Damien George <damien@micropython.org>
2026-06-04 23:06:40 +10:00
Damien George 4e32820e9a nrf/mphalport: Run events at least once in mp_hal_delay_ms.
Per the docs for `time.sleep()` and `time.sleep_ms()`.  This gets the
`tests/micropython/schedule_sleep.py` test working when using the native
emitter.

Signed-off-by: Damien George <damien@micropython.org>
2026-06-04 23:06:40 +10:00
Angus Gratton 75555f4826 mimxrt: Mark boards with no TinyUF2 bootloader support.
Check code formatting / code-formatting (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.5.2) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
This was noted in PR description & commit message for e574f68820, but these
boards' deploy.md files still said the bootloader was supported.

Add explicit makefile settings to disable support, with a comment
for the reason, and also add a deploy_mimxrt_nouf2.md file which
contains only the SWD flashing method and notes the lack of
UF2 bootloader support.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-04 17:46:06 +10:00
Angus Gratton 3160809989 esp32: Fix espnow crash if falsey value supplied as peer argument.
The _get_peer() result was often provided directly as an argument to
memcpy(), causing a crash on (for example) e.del_peer(b""). Changed to
raise a TypeError instead  (via mp_get_buffer_raise()).

Closes #19296

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-04 17:45:17 +10:00
Alessandro Gatti be9a8190b6 esp8266/network_wlan: Allow bytes() objects as MAC address.
Check code formatting / code-formatting (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.5.2) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
This commit fixes a crash occurring when setting the WLAN MAC address
using a bytes() object containing the new MAC address bytes.  This also
fixes cases where the address is put in ROM or is an unaligned slice of
a larger buffer.

The ESP8266's network stack seems to want the MAC address buffer being
in a particular memory area and with a specific alignment, which cannot
be always guaranteed.  Luckily stack-allocated buffers do have the
necessary requirements when it comes to location and alignment, so the
MAC address is first copied into such a buffer and then that's passed to
the network stack.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-06-03 22:53:49 +10:00
Vdragon 3a85a18979 zephyr/boards: Add M0Sense Board.
Add the Sipeed M0Sense board.

Signed-off-by: Vdragon <mail@massdriver.space>
2026-06-03 22:53:26 +10:00
Vdragon fcc8ad8a77 zephyr: Only enable PWM when PWM is enabled.
Gate MPY's PWM with Zephyr's PWM.

Signed-off-by: Vdragon <mail@massdriver.space>
2026-06-03 22:53:26 +10:00
Roman Zeyde 90ce8a1af3 py: Allow mpy-cross to exclude source lines.
This would allow building debug FW without source line data.

Signed-off-by: Roman Zeyde <me@romanzey.de>
2026-06-03 22:24:21 +10:00
Alessandro Gatti 0d8256a499 mpy-cross/main: Simplify integer architecture flag parsing.
This commit simplifies the way architecture flag bits are parsed when
they're in integer form.

The original code would perform a manual integer base detection and then
use MicroPython's own integer parser to perform the string to integer
conversion and use MicroPython's own NLR exception handling mechanism to
handle errors in conversion.

However this causes a build error on Loongarch64 and S390x (where the
NLR handling is performed using setjmp/longjmp), as for some of the
variables in question the compiler could not guarantee their values
would stay consistent in case of error recovery.

To work around that, MicroPython's code is used only for detecting the
argument base and then a C standard library function is used to perform
the string to integer conversion using the detected base.

This fixes #18564.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-06-03 22:19:01 +10:00
Alessandro Gatti 10d4018872 tools/mpy_ld.py: Ignore R_XTENSA_NDIFF32 relocations.
This commit introduces support for the negative counterpart of
`R_XTENSA_PDIFF32`, ignoring the relocation instead of aborting
processing.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-06-03 22:15:28 +10:00
Finn Glas 935881eb18 tools/verifygitlog.py: Fix --pretty filter to inspect each arg.
The list comprehension checked "--pretty" not in args (the entire
argument list) instead of "--pretty" not in arg (the current element),
so the filter could not actually strip a user-supplied --pretty
argument from the call to git log.

Signed-off-by: Finn Glas <finn@finnmglas.com>
2026-06-03 22:14:51 +10:00
Angus Gratton 3e5add395b tools: Formally recommend the micropython-uncrustify package.
Check code formatting / code-formatting (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.5.2) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
Has been the unofficial best option for a while, this
updates the docs and pre-commit/CI checks to match.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2026-06-03 15:52:47 +10:00
Damien George 44a569b637 rp2/CMakeLists.txt: Require boards to define PICO_FLASH_SIZE_BYTES.
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check code formatting / code-formatting (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4, v5.5.2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.3) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3, v5.5.2) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, dev, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v142, standard, 2019, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, v143, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
This was previously a convenience, to have a default flash size.  But that
leads to more problems than not, eg when the board doesn't use the
`pico_cmake_set_default = ...` definition correctly and the flash size is
not defined.  Then the filesystem gets the incorrect size.

So, just require this symbol to be defined at the cmake level.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George 94b9c363ee rp2/boards/WAVESHARE_RP2040_PLUS: Configure STORAGE_BYTES per variant.
Fixes the FLASH_16M variant to have 15MB of filesystem space.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George a0ae5c51f0 rp2/boards/PIMORONI_TINY2040: Configure FLASH_STORAGE_BYTES per variant.
Fixes the FLASH_8M variant to have 7MB of filesystem space.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George dc3fb1c9dd rp2/boards/PIMORONI_PICOLIPO: Configure FLASH_STORAGE_BYTES per variant.
Fixes the FLASH_16M variant to have 15MB of filesystem space.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George e9cc59205b rp2/boards/WAVESHARE_RP2350B_CORE: Set PICO_FLASH_SIZE_BYTES for cmake.
It needs to be defined at the cmake level for the linker scripts.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George 5ce24ca120 rp2/boards/SIL_RP2040_SHIM: Set PICO_FLASH_SIZE_BYTES at cmake level.
It needs to be defined at the cmake level for the linker scripts.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George 2696d563ef rp2/boards/WEACTSTUDIO: Use board headers from pico-sdk.
Fixes:
- Flash size is now correct for the given variant.
- Filesystem size is adjusted per variant to leave 1MB for application.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George e5a7c7bcde rp2/boards/WEACTSTUDIO_RP2350B_CORE: Use board header from pico-sdk.
Fixes:
- Flash size is 16MB instead of 4MB.
- Now supports RP2350 A2.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
Damien George ff6f2da86b rp2/boards/NULLBITS_BIT_C_PRO: Use board header from pico-sdk.
Fixes:
- Flash size is 4MB instead of 2MB.
- The default I2C instance is now instance 1 instead of 0.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 18:10:21 +10:00
robert-hh 1468ad604e mimxrt/machine_encoder: Fix the numeric values of UP and DOWN.
The values should be 0 for UP and 1 for DOWN to match the documentation.
Instead they were -2 and -3, causing a test with a count direction set
by a Pin to fail, when the symbols were used instead of numbers..

Tested with the machine_encoder.py and machine_counter.py script and
the extended machine_counter.py script from PR #19239.

Signed-off-by: robert-hh <robert@hammelrath.com>
2026-05-29 18:09:52 +10:00
Alessandro Gatti 3ba6eaa76c esp32/network_wlan: Add channel bandwidth configuration parameter.
This commit adds a configuration parameter to set and retrieve the
WiFi channel bandwidth.

The configuration only applies when the adapter is in single-band mode
(ie. either 2.4 GHz or 5 GHz, not both at the same time), which is not an
issue at the moment since there's no provision to put the adapter in
multi-band mode.

Rather than accepting the bandwidth as a raw MHz value, five new
constants are introduced, following the same nomenclature as the ESP-IDF
SDK.  This is required since there's one constant that indicates a
multi-antenna bandwidth setup and therefore not representable as a
single integer value.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-05-29 18:07:28 +10:00
Damien George 4cee4d6c78 nrf/boards: Increase stack to 6k for nRF51x22 boards with 32k RAM.
Increase the stack from 4k to 6k for PCA10028 and PCA10031 boards.

4k stack is not much and that causes some tests crash with a stack-overflow
exception (eg `extmod/vfs_userfs.py` when run with `--via-mpy`).  With the
increased stack size there are no longer any tests that fail due to stack
overflow on PCA10028.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 17:31:41 +10:00
Damien George 3bba83800d webassembly: Support buffer protocol in jsffi.to_js.
This adds support for explicit conversion from bytes/bytearray/memoryview
(and other objects with the buffer protocol) to JavaScript `Uint8Array`.
For example:

    import js, jsffi

    js.console.log(jsffi.to_js(b'1234'))

That now works and prints `Uint8Array[4] [ 49, 50, 51, 52]` in the JS
console. The array contains a copy of the data (ie not a reference).

This matches Pyodide behaviour, eg `pyodide.ffi.to_js(b'1234')` returns the
same `Uint8Array`.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 16:31:44 +10:00
Damien George 44780be7cd webassembly: Simplify proxy_c_to_js_get_type interface.
If the Python object is a known type (tuple, list, dict) then the caller
always wants to follow up with a call to get the associated data for that
object.  So simplify things to just a single call that gets both the type
and object data (if the type is known).

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 16:31:43 +10:00
Damien George b8d43d8dea webassembly: Fix GC tracing of object returned from top-level functions.
This commit makes sure that the GC explicitly traces the Python object
returned from all top-level functions.  Without this, it's possible that a
JsProxy that is created as the return object is freed on the Python side
(and hence the underlying JavaScript object entry set to `undefined`) just
prior to the top-level C function returning.  So when it does return and
control resumes on the JavaScript side, the JavaScript object corresponding
to the JsProxy is gone.

For example, the case covered by the test added here has the return value
(Python object) from `proxy_c_to_js_call()` reclaimed by the Python GC via
`proxy_js_free_obj()` before it can be accessed from the JavaScript side,
and so the JavaScript reference in `proxy_js_ref` is `undefined`,

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 16:25:01 +10:00
Damien George 78fc0b2c90 tools/autobuild: Update example usage of script.
Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 15:49:59 +10:00
Damien George 5885f6bf0c tools/autobuild: Print consistent msgs for start/pass/fail board build.
Consistent messages are now printed to stdout (along with the main output
of the build process) when the build starts, and when it succeeds or fails.

For example:

    bash: Autobuild started for RPI_PICO
    ...
    ...
    bash: Autobuild succeeded for RPI_PICO

Or in the case of a failure:

    bash: Autobuild started for RPI_PICO
    ...
    ...
    bash: Autobuild failed for RPI_PICO

That helps searching the output logs for the results of all builds.  And if
something failed, it's easy to locate the rest of the build logs for the
failure (they will be above the "Autobuild failed" message).

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 15:49:59 +10:00
Damien George 4d3e2c6401 tools/autobuild: Remove the use of the "id" entry in board.json.
This "id" entry was removed from all `board.json` files in commit
1a99f74063.  Replace its use with the default
value which is the board name.

Signed-off-by: Damien George <damien@micropython.org>
2026-05-29 15:49:59 +10:00