summaryrefslogtreecommitdiff
path: root/tools/autobuild
AgeCommit message (Collapse)Author
2025-06-26tools/autobuild: Build alif boards as part of auto-build.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-02-10mimxrt: Add support for a UF2 bootloader.robert-hh
Allowing to use e.g. the Adafruit bootloaders with MicroPython. The .uf2 file is created in addition to the .bin and .hex files allowing to use the latter ones without the bootloader for debugging and testing. Changes: - Set the location of the ISR Vector and .text segment to 0x6000C000 and 0x6000C400. - Reserve an area at the start of ITCM for a copy of the interrupt vector table and copy the table on reset to this place. - Extend `machine.bootloader()` by setting the magic number to enable the bootloader on reset. - Create a .uf2 file which skips the segments below 0x6000C000. The bootloader has to be installed as a preparation step using the board specific methods, but then the firmware's .uf2 file version can be installed using the bootloader. The bootloader can be invoked with: - double reset - calling machine.bootloader() - Using the touch1200 method Double reset is hard to achieve on MIMXRT boards, since there is no clean reset pin. Some MIMXRT boards provide it by switching the power. Some boards are excluded from the .uf2 build: - MIMXRT1050_EVK: The uf2 bootloader is built for the QSPI version of the board. MicroPython supports the Hyperflash version. - MIMXRT1176_EVK: No support for this board yet, but it should be possible. Signed-off-by: robert-hh <robert@hammelrath.com>
2025-01-17tools/autobuild,esp32: Template the generation of esp32 port deploy.md.Angus Gratton
Allows two source files (ports/esp32/boards/deploy.md and deploy_nativeusb.md for boards with only native USB) for all esp32 installation steps, with templated chip name and flash offset inserted via string formatting. The new files add more text to explain the esptool.py port auto-detection, remove the unnecessary -z feature (already enabled by default), and add a bit of troubleshooting and port detection info. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-15tools/autobuild: Don't allow a board to change its ID.Damien George
All board IDs are now the board directory name. Signed-off-by: Damien George <damien@micropython.org>
2024-08-20esp32/boards: Remove all IDF3 variants.Matt Trentini
IDF 3 builds are very old now (it seems like the last successful builds are from 2021), and the current IDF 5 is stable. So remove IDF 3 variants. Signed-off-by: Matt Trentini <matt.trentini@gmail.com>
2023-10-06all: Switch to new preview build versioning scheme.v1.22.0-previewJim Mussared
See https://github.com/micropython/micropython/issues/12127 for details. Previously at the point when a release is made, we update mpconfig.h and set a git tag. i.e. the version increments at the release. Now the version increments immediately after the release. The workflow is: 1. Final commit in the cycle updates mpconfig.h to set (X, Y, 0, 0) (i.e. clear the pre-release state). 2. This commit is tagged "vX.Y.0". 3. First commit for the new cycle updates mpconfig.h to set (X, Y+1, 0, 1) (i.e. increment the minor version, set the pre-release state). 4. This commit is tagged "vX.Y+1.0-preview". The idea is that a nightly build is actually a "preview" of the _next_ release. i.e. any documentation describing the current release may not actually match the nightly build. So we use "preview" as our semver pre-release identifier. Changes in this commit: - Add MICROPY_VERSION_PRERELEASE to mpconfig.h to allow indicating that this is not a release version. - Remove unused MICROPY_VERSION integer. - Append "-preview" to MICROPY_VERSION_STRING when the pre-release state is set. - Update py/makeversionhdr.py to no longer generate MICROPY_GIT_HASH. - Remove the one place MICROPY_GIT_HASH was used (it can use MICROPY_GIT_TAG instead). - Update py/makeversionhdr.py to also understand MICROPY_VERSION_PRERELEASE in mpconfig.h. - Update py/makeversionhdr.py to convert the git-describe output into semver-compatible "X.Y.Z-preview.N.gHASH". - Update autobuild.sh to generate filenames using the new scheme. - Update remove_old_firmware.py to match new scheme. - Update mpremote's pyproject.toml to handle the "-preview" suffix in the tag. setuptools_scm maps to this "rc0" to match PEP440. - Fix docs heading where it incorrectly said "vvX.Y.Z" for release docs. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-09-29tools/autobuild/build-downloads.py: Verify standard features.Jim Mussared
Defines the list of standard features and ensures that each board.json only uses those ones. This list can be extended, but needs to be a deliberate decision. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-09-18tools/autobuild: Include .bin firmware in renesas-ra build output.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2023-08-24cc3200/Makefile: Build firmware.zip.Jim Mussared
This allows the cc3200 port to be build with the standard autobuild script rather than the custom build-cc3200-latest.sh (which is now removed). This also fixes the path inside the zip file (by using the `-j` flag to zip). This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-23esp8266: Add board variant support.Jim Mussared
This merges the existing GENERIC, GENERIC_1M, and GENERIC_512k boards into variants of the new ESP8266_GENERIC board (renamed from GENERIC so as not to clash with other ports). Also moves the generation of the "OTA" variant (previously generated by autobuild/build-esp8266-latest.sh) into the variant. Following the convention established for the WEACTSTUDIO rp2 board, the names of the variants are FLASH_1M and FLASH_512K (but rename the .ld files to use MiB and kiB). Updates autobuild to build esp8266 firmware the same way as other ports. This requires renaming the output from firmware-combined.bin to just firmware.bin. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-23esp32: Use uppercase variant names.Jim Mussared
This is to support a future change to add the variant name to the build directory and therefore should be the same style as the board name. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-15tools/autobuild: Automatically build all variants for each board.Jim Mussared
Removes the special-case for stm32. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-07-27tools/autobuild: Add support for application .bin files for esp32.Damien George
On esp32, the build output consists of: - micropython.elf - micropython.map - micropython.bin -- application only - micropython.uf2 -- application only - firmware.bin -- bootloader, partition table and application Currently everything is available at the download page except micropython.bin. This commit adds that file but with the extension changed to .app-bin, to distinguish it from .bin (the full thing). Signed-off-by: Damien George <damien@micropython.org>
2023-06-23tools/autobuild: Update auto-build code to build esp32 port with IDF v5.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2022-12-19tools/autobuild: Create .uf2 file for seeed_xiao_nrf52.robert-hh
And for all other nrf boards that have or get a uf2 build tag.
2022-09-08tools/autobuild: Use distinct directory for building stm32 variants.Jim Mussared
Previous the build directory just used the board name, now make it use the variant name too. This shouldn't have any change because the existing directory should not exist (all builds run by these scripts remove their build directory after completion), but it makes debugging easier. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-08-30esp32/boards: Merge manifest_release modules into standard manifest.Damien George
Having two separate manifests is confusing. It's simpler to have the daily builds use the same configuration as the stable, release builds. Signed-off-by: Damien George <damien@micropython.org>
2022-08-26stm32: Move board variant config to mpconfigboard.mk.Jim Mussared
Rather than having the autobuild know about the particular variants, have the mpconfigboard.mk describe them and make autobuild discover them automatically. Adds a "query-variants" target to stm32/Makefile to allow the set of possible variants to be queried. Removes pybv3 from the autobuild as this isn't use by the downloads page. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-07-13tools/autobuild: Add nrf port to autobuild scripts.iabdalkader
2022-06-07all: Rename MICROPY_PY_WIZNET5K to MICROPY_PY_NETWORK_WIZNET5K.Damien George
To match MICROPY_PY_NETWORK_CYW43 and MICROPY_PY_NETWORK_NINAW10. Signed-off-by: Damien George <damien@micropython.org>
2022-05-06tools/autobuild: Update for ports/renesas-ra.Takeo Takahashi
* Add build_renesas_ra_boards call in autobuild.sh * Add build_renesas_ra_boards function to generate firmware.hex. Signed-off-by: Takeo Takahashi <takeo.takahashi.xv@renesas.com>
2022-02-02tools/autobuild: Provide .uf2 images for esp32 builds when available.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2021-12-30tools/autobuild: Build esp8266 OTA image with GENERIC_1M board.Damien George
Because the GENERIC board won't fit in the flash defined by esp8266_ota.ld. Signed-off-by: Damien George <damien@micropython.org>
2021-12-30esp8266: Allow building a board to any dest directory.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2021-12-10tools/autobuild: Automatically build all esp32 boards.Damien George
Any board with a board.json file will be built. ESP32-based boards will be built using the IDF at $IDF_PATH_V42, all other MCU variants (S2, S3, C3) will be built using the IDF at $IDF_PATH_V44. Signed-off-by: Damien George <damien@micropython.org>
2021-11-22tools/autobuild: Automatically build all stm32 boards.Damien George
Any board with a board.json file will be built. Additional variants for certain pyboards will also be built by the explicit build-stm32-extra.sh script. Both .dfu and .hex files will be made available. Also build boards in a sorted order, and don't stop building if a single board fails. Signed-off-by: Damien George <damien@micropython.org>
2021-11-05tools/autobuild: Automatically build all mimxrt, rp2 and samd boards.Damien George
Any board with a board.json file will be automatically built. Signed-off-by: Damien George <damien@micropython.org>
2021-10-27tools/autobuild: Add script to generate website board metadata.Jim Mussared
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2021-10-25tools/autobuild: Add the MIMXRT1010_EVK board to autobuild.robert-hh
Having a board now available for testing, this binary can be provided with good confidence.
2021-09-14mimxrt: Rework flash configuration.Philipp Ebensberger
- Moves definition of BOARD_FLASH_SIZE and other header files related to flash configuration into the Makefile. - Adds board specific clock_config.h. - Adds board.h, pin_mux.h, and peripherals.h as they are required by NXP MCU SDK in order to use our own clock_config.h. - Renames board specific FlexSPI configuration files. - Updates flash frequency of MIMXRT1020_EVK - Creates separated flash_config files for QSPI NOR and QSPI Hyper flash. - Unifies VFS start address to be @ 1M for 1010 and 1020 boards. - Unifies 1050EVK boards - Adds support to both NOR and HyperFlash on boards with both capabilities. - Adds automatic FlexRAM initialization to start-up code based on linker script and NXP HAL. - Applies code formatting to all files in mimxrt port. With this change the flash configuration is restructured and organized. This simplifies the configuration process and provides a better overview of each board's settings. With the integration of clock_config.h, board.h, pin_mux.h, and peripherals.h we gain better control of the settings and clock configurations. Furthermore the implementation of an explicit FlexRAM setup improves the system performance and allows for performance tuning. Signed-off-by: Philipp Ebensberger
2021-09-10tools/autobuild: Add auto build for GENERIC_C3_USB.Patrick Van Oosterwijck
2021-09-10esp32/boards: Add new FeatherS2-Neo board definition.Seon Rozenblum
2021-08-19tools/autobuild: Don't use "-B" for make, it's already a fresh build.Damien George
And using "-B" means mpy-cross is forcefully rebuilt, sometimes with invalid CFLAGS_EXTRA options which makes the auto-build fail. Signed-off-by: Damien George <damien@micropython.org>
2021-08-13tools/autobuild: Add auto build for Silicognition wESP32.Patrick Van Oosterwijck
2021-07-31tools/autobuild: Add the MIMXRT1050_EVKB board to the daily builds.robert-hh
2021-07-22tools/autobuild: Add FeatherS2 and TinyS2 to esp32 auto builds.Seon Rozenblum
2021-07-22tools/autobuild: Use separate IDF version to build newer esp32 SoCs.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2021-07-01tools/autobuild: Add mimxrt port to build scripts for nightly builds.robert-hh
The firmware for Teensy 4.0, Teensy 4.1 and MIMXRT1020_EVK are created. Users of other MIMXRT10xx_EVK boards should be able to build the firmware themselves, they might need specific DEBUG settings. The Makefile had to be changed in order to build the .bin file as well.
2021-06-23tools/autobuild: Add scripts to build release firmware.Damien George
Signed-off-by: Damien George <damien@micropython.org>