summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-09alif/mpmetalport: Only notify after metal subsystem is init'd.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif: Link with libnosys.iabdalkader
This allows the correct start up functions to be called by the stdlib. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/mpmetalport: Use MHU to notify remote cores.iabdalkader
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-09alif/se_services: Add a secondary MHU channel.iabdalkader
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-09alif/ospi_flash: Use mp_hal_pin_config to configure OSPI pins.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/machine_rtc: Add basic machine.RTC support.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/machine_spi: Add machine.SPI peripheral support.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com> Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/machine_i2c: Add machine.I2C peripheral support.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif: Add support for pin alternate function selection.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/modmachine: Implement proper low-power modes.iabdalkader
Lightsleep current is around 23mA. Deepsleep current is sub 50uA. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/se_services: Use EUI extension for unique id.iabdalkader
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-09alif/ospi_flash: Add 16-bit words swap flash setting.iabdalkader
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-09alif/ospi_flash: Use OSPI in XIP mode only.iabdalkader
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-09alif/ospi_ext: Optimize XIP speed.iabdalkader
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-09alif/ospi_flash: Enable pull-up IO2/WP.iabdalkader
Leaving this pin low in combination with the default EM settings enables flash protection for the EM flash. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/ospi_flash: Add negative clock pin.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/ospi_flash: Configure dummy cycles.iabdalkader
The default dummy cycles may not match the actual flash frequency supported by a certain board. For example, the MX chip uses 20 dummy cycles by default which supports up to 200MHz DDR, but the maximum frequency supported by the AE3 board is 50MHz DDR. So the dummy cycles for this board can be as low as 6. It's important to set the correct dummy cycles, as it results in doubling the XIP read speed, in the case of the AE3 board. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/ospi_flash: Support flash device auto-detection in runtime.iabdalkader
This commit enables detecting the flash device in runtime, and uses the settings of the detected device instead of board-defined flash settings. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/ospi_flash: Fix XIP for 8-bit instructions (ISSI).iabdalkader
Disable XIP instruction DDR for 8-bit instructions. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/mpmetalport: Add Open-AMP MPU region.iabdalkader
Define an MPU region for Open-AMP and remove hard-coded attribute. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/mpu: Define constants for MPU regions.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/ospi_flash: Enter XIP mode when flash is idle.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/ospi_flash: Generalise flash driver to support MX chips.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/mpu: Add custom MPU_Load_Regions function.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/mpconfigport: Select SysTick on HE core.Damien George
UTIMER is used by the HP. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/system_tick: Implement optional ARM SysTick support for systick.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/system_tick: Implement optional LPTIMER support for systick.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/irq: Define more IRQ priorities.iabdalkader
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif: Implement Open-AMP port backend.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif: Support running the port on the HE core.iabdalkader
The same MicroPython firmware is built for the HE but with slightly different options, for example no USB. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif: Support building the port for HE or HP or both cores.iabdalkader
With this new Makefile you can build the following: make BOARD=MY_BOARD MCU_CORE=M55_HP # build HP firmware/ToC. make BOARD=MY_BOARD MCU_CORE=M55_HE # build HE firmware/ToC. make BOARD=MY_BOARD MCU_CORE=M55_DUAL # build HE+HP firmware + ToC. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/mcu: Add ToC config for dual images.iabdalkader
Note that 128K at the beginning of MRAM is reserved for future bootloaders. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/machine_adc: Add basic ADC support.Damien George
ADC12 information has been added to pin struct. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/usbd: Implement proper USB serial number.Damien George
Using SE services to get the SoC unique id. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/modmachine: Implement machine.unique_id(), fix machine.reset().Damien George
They both use SE services. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/modalif: Add alif.info() function.Damien George
Calls the SE services to print information about the SoC. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/mpconfigport: Enable MICROPY_PY_RANDOM_SEED_INIT_FUNC.Damien George
Uses the SE services to provide a random seed. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/mpconfigport: Enable os.urandom().Damien George
Uses the SE services to provide random numbers. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/se_services: Add SE services interface.Damien George
Includes services to get random numbers, reset SoC, get unique-id, dump SoC info, and CPU control services. Signed-off-by: Damien George <damien@micropython.org> Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-09alif/modmachine: Enable machine.Timer.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/system_tick: Integrate soft timer.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/mphalport: Enable efficient events and implement quiet timing.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif/system_tick: Use a UTIMER for system ticks and timing.Damien George
Includes an implementation of `system_tick_wfe_with_timeout_us()`. Signed-off-by: Damien George <damien@micropython.org>
2025-04-09alif: Add initial port to Alif Ensemble MCUs.Damien George
This commit adds the beginning of a new alif port with support for Alif Ensemble MCUs. See https://alifsemi.com/ Supported features of this port added by this commit: - UART REPL. - TinyUSB support, for REPL and MSC. - Octal SPI flash support, for filesystem. - machine.Pin support. General notes about the port: - It uses make, similar to other bare-metal ports here. - The toolchain is the standard arm-none-eabi- toolchain. - Flashing a board can be done using either the built-in serial bootloader, or JLink (both supported here). - There are two required submodules (one for drivers/SDK, one for security tools), both of which are open source and on GitHub. - No special hardware or software is needed for development, just a board connected over USB. OpenMV have generously sponsored the development of this port. Signed-off-by: Damien George <damien@micropython.org> Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-08alif/tinyusb_port: Implement SOF event.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-08alif/tinyusb_port: Disable USB IRQ on deinit.iabdalkader
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-08alif/tinyusb_port: Add Alif TinyUSB DCD driver.Damien George
From https://github.com/alifsemi/alif_vscode-tinyusb.git, commit c79f39361d334ee44f44fed30c56e70dbb368649 Signed-off-by: Damien George <damien.p.george@gmail.com> Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-08lib/alif-security-toolkit: Add new submodule for Alif Security Toolkit.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-08lib/alif_ensemble-cmsis-dfp: Add new submodule for Alif SDK v1.3.2.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-04-08top: Add "ser" to codespell exclusion list.Damien George
This word appears in the upcoming alif port. Signed-off-by: Damien George <damien@micropython.org>