Damien George
048ccccee0
rp2: Enable compressed error messages by default.
...
Reduces firmware size by about 3000 bytes.
Signed-off-by: Damien George <damien@micropython.org >
2025-04-22 11:57:39 +10:00
Damien George
bfe16ef09b
esp32: Enable compressed error messages by default.
...
Reduces firmware size by about 3300 bytes.
Signed-off-by: Damien George <damien@micropython.org >
2025-04-22 11:57:26 +10:00
Andrew Leech
d6c673f28f
stm32/main: Replace mp_stack_set calls with new mp_cstack_init_with_top.
...
Required in MICROPY_PREVIEW_VERSION_2.
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au >
2025-04-22 11:29:48 +10:00
Andrew Leech
9bde197004
rp2: Add exception text wrappers.
...
Required in MICROPY_PREVIEW_VERSION_2.
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au >
2025-04-22 11:29:36 +10:00
Alessandro Gatti
38a3873310
unix/mpthreadport: Work around lack of thread cancellation on Android.
...
This commit fixes thread-related compilation issues under Android using
Termux as its runtime environment.
On Android's libc (Bionic) thread cancellation is not implemented, but
the Unix port uses that mechanism to provide asynchronous thread
termination. In this commit there is a workaround for that, by adding a
new signal handler to each newly created thread, whose callback simply
exits the thread. Threads are then sent the new signal rather than
being explicitly cancelled, which in turn trigger the signal handler to
stop the thread execution at the next possible occasion.
This makes the cancellation behaviour differ slightly on Android, as
threads are probably going to linger a little bit more since the method
introduced in this commit is equivalent to setting
PTHREAD_CANCEL_DEFERRED as the thread cancellation type. On the other
hand there are no guarantees of immediate cancellation using
PTHREAD_CANCEL_ASYNCHRONOUS either.
This fixes the pthread-related issues reported in #16259 .
Signed-off-by: Alessandro Gatti <a.gatti@frob.it >
2025-04-22 10:19:20 +10:00
David Yang
6025b78d01
unix/main: Remove PATH_MAX from realpath.
...
POSIX.1-2008 ensures realpath() give a dynamically allocated buffer if
NULL is passed (which is also true for ports/windows/realpath.c),
avoiding an explicit call to malloc() and use of PATH_MAX, which may be
undefined on some systems.
Signed-off-by: David Yang <mmyangfl@gmail.com >
2025-04-22 00:20:47 +08:00
Yoctopuce dev
52ca826880
unix/variants: Enable os.uname() in coverage build for tests.
...
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_cmod_spiram_s2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3) (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 (push) Has been cancelled
qemu port / build_and_test_rv32 (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 / float (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace (push) Has been cancelled
unix port / settrace_stackless (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
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x64, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Debug, x86, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2019, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2019, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2022, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-latest, standard, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2019, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2019, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2022, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-latest, standard, 2017, [15, 16)) (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
In order to provide test coverage for the previous commit, `os.uname()`
support is added to the unix coverage build.
Signed-off-by: Yoctopuce dev <dev@yoctopuce.com >
2025-04-21 17:38:42 +10:00
Damien George
0b3ad98ea9
mimxrt/Makefile: Fix dependencies for generation of flexram_config.s.
...
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_cmod_spiram_s2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3) (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 (push) Has been cancelled
qemu port / build_and_test_rv32 (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 / float (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace (push) Has been cancelled
unix port / settrace_stackless (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
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x64, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Debug, x86, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2019, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2019, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2022, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-latest, standard, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2019, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2019, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2022, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-latest, standard, 2017, [15, 16)) (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
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.
...
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_cmod_spiram_s2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3) (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 (push) Has been cancelled
qemu port / build_and_test_rv32 (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 / float (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace (push) Has been cancelled
unix port / settrace_stackless (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
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, x64, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x64, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Debug, x86, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2019, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2019, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-2022, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x64, windows-latest, standard, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2019, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2019, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2022, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-2022, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-latest, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, x86, windows-latest, standard, 2017, [15, 16)) (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
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
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
iabdalkader
182b5f3a12
alif/mpmetalport: Use MHU to notify remote cores.
...
Unlike HWSEM, the MHU IRQ can wake up cores from low-power modes, making it
better suited for notifying remote cores. Note that no special function is
required to wake up a remote core—the act of sending a message alone will
notify it.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
b9e5f1ffba
alif/se_services: Add a secondary MHU channel.
...
This channel can be used to communicate (pass messages) between the M55
cores in the RTSS. Currently it's only used to notify the cores.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
facd0b7190
alif/ospi_flash: Use mp_hal_pin_config to configure OSPI pins.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
ec92bcfeff
alif/machine_rtc: Add basic machine.RTC support.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
280e6e2a40
alif/machine_spi: Add machine.SPI peripheral support.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
Signed-off-by: Damien George <damien@micropython.org >
2025-04-09 00:22:32 +10:00
iabdalkader
9073270c2e
alif/machine_i2c: Add machine.I2C peripheral support.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
82bae652eb
alif: Add support for pin alternate function selection.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
039df0c884
alif/modmachine: Implement proper low-power modes.
...
Lightsleep current is around 23mA. Deepsleep current is sub 50uA.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
ff6ed730c5
alif/se_services: Use EUI extension for unique id.
...
The right service call to get UID is SERVICES_system_get_eui_extension
which returns an 8 bytes UID.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
92f056d58f
alif/ospi_flash: Add 16-bit words swap flash setting.
...
The byte order (endianness) seems to be swapped when read in 8D-8D-8D in
XIP mode, for most flashes, with the exception of MX which seems to swap
half-words.
This commit adds a flash setting to allow parts to enable half-word swap
when data is written, to fix this issue. By default, only endianness is
fixed.
Tested with both MX and ISSI parts on AE3, flash test and simple file
write/read.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
602bc86b6d
alif/ospi_flash: Use OSPI in XIP mode only.
...
The OSPI controller supports concurrent direct/XIP accesses, there's no
need to disable XIP on direct access. In addition to improving the
performance, this change lays the groundwork for supporting access by
the HP and HE cores simultaneously.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00
iabdalkader
df06bf91a5
alif/ospi_ext: Optimize XIP speed.
...
This change increases XIP read speed to ~30Mbytes/s at 50MHz DDR:
- Enable continuous mode.
- Remove hard-coded settings.
- Set XIP continuous mode timeout.
The prefetch remains disabled. Although enabling the prefetch gives the
best performance for the CPU in XIP mode, it must be disabled when the NPU
accesses the OSPI flash.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com >
2025-04-09 00:22:32 +10:00