PythonExtra/ports/mimxrt
Damien George 8874a09119 extmod/mbedtls: Enable elliptic curve DH and DSA cryptography.
This is necessary to access sites that only support these protocols.

The rp2 port already has ECDH enabled, so this just adds ECDSA there.  The
other ports now gain both ECDH and ECDSA.  The code size increase is:

- rp2 (PICO_W): +2916 bytes flash, +24 bytes BSS
- stm32 (PYBD_SF6): +20480 bytes flash, +32 bytes data, +48 bytes BSS
- mimxrt (TEENSY41): +20708 bytes flash, +32 bytes data, +48 bytes BSS
- unix (standard x86-64): +39344 executable, +1744 bytes data, +96 BSS

This is obviously a large increase in code size.  But there doesn't seem to
be any other option because without elliptic curve cryptography devices are
partially cut off from the internet.  For use cases that require small
firmware size, they'll need to build custom firmware with a custom mbedtls
config.

Signed-off-by: Damien George <damien@micropython.org>
2022-10-22 19:08:21 +11:00
..
boards mimxrt: Format the firmware image to match the new teensy loader. 2022-09-13 18:35:48 +10:00
hal mimxrt: Format the firmware image to match the new teensy loader. 2022-09-13 18:35:48 +10:00
lwip_inc mimxrt: Re-Enable eth checksum creation by HW. 2021-12-14 08:07:52 +01:00
mbedtls extmod/mbedtls: Enable elliptic curve DH and DSA cryptography. 2022-10-22 19:08:21 +11:00
modules mimxrt/modules: Append /flash/lib to the default sys.path. 2022-04-11 12:25:15 +10:00
Makefile mimxrt/Makefile: Split up SRC_C variables. 2022-10-12 00:08:49 +11:00
README.md mimxrt: Extend the help() message and README.md. 2021-10-25 23:52:08 +11:00
board_init.c mimxrt/Makefile: Modify handling of SDRAM option. 2022-06-24 17:58:27 +10:00
dma_manager.c mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
dma_manager.h mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
eth.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
eth.h mimxrt: Add a driver for the DP83848 PHY device. 2021-12-14 08:07:52 +01:00
fatfs_port.c mimxrt/sdcard: Implement SDCard driver. 2021-09-07 20:45:33 +02:00
led.c mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
led.h mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
machine_adc.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_bitstream.c mimxrt: Fix cycle counter for time.ticks_cpu() and machine.bitstream(). 2021-10-25 15:50:44 +11:00
machine_i2c.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_i2s.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_led.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_pin.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_pwm.c all: Use mp_obj_malloc everywhere it's applicable. 2022-05-03 22:28:14 +10:00
machine_rtc.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_sdcard.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_spi.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_timer.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_uart.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
machine_wdt.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
main.c mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
mimxrt_flash.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
mimxrt_sdram.c mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02:00
modmachine.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
modmachine.h mimxrt/machine_rtc: Start RTC at boot and set datetime if not set. 2022-04-11 12:25:23 +10:00
modmimxrt.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
modmimxrt.h mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
moduos.c py/objstr: Split mp_obj_str_from_vstr into bytes/str versions. 2022-08-26 16:43:55 +10:00
modutime.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
mpconfigport.h all: Remove MICROPY_PY_IO_FILEIO config option. 2022-08-18 11:54:17 +10:00
mphalport.c mimxrt/mphalport: Fix strict aliasing error with unique id. 2022-06-02 12:50:14 +10:00
mphalport.h mimxrt: Refactor the reading of the machine id. 2021-12-14 08:07:52 +01:00
mpnetworkport.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
network_lan.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
pendsv.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
pendsv.h mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
pin.c mimxrt/machine_pin: Change pin drive constants to DRIVE_x naming. 2022-03-08 22:30:33 +11:00
pin.h mimxrt/machine_pin: Change pin drive constants to DRIVE_x naming. 2022-03-08 22:30:33 +11:00
qstrdefsport.h mimxrt: Add new, minimal port to NXP i.MX RT series CPUs. 2020-03-11 15:34:13 +11:00
sdcard.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
sdcard.h mimxrt/sdcard: Implement SDCard driver. 2021-09-07 20:45:33 +02:00
systick.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
systick.h mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
ticks.c mimxrt: Enable ticks_cpu at boot time for NDEBUG builds only. 2021-12-14 08:07:52 +01:00
ticks.h mimxrt: Improve ticks and sleep functions using GPT. 2021-05-18 22:36:32 +10:00
tusb_config.h ports: Update to build with new tinyusb. 2021-02-12 12:50:36 +11:00
tusb_port.c mimxrt: Add USB ID elements. 2022-01-27 17:05:34 +11:00

README.md

Port of MicroPython to NXP iMX RT 10xx

Currently supports Teensy 4.0, Teensy 4.1, and the MIMXRT1010_EVK, MIMXRT1020_EVK, MIMXRT1050_EVK, MIMXRT1060_EVK and MIMXRT1064_EVK boards.

Features:

  • REPL over USB VCP
  • machine.ADC
  • machine.I2C
  • machine.LED
  • machine.Pin
  • machine.PWM
  • machine.RTC
  • machine.SDCard
  • machine.SPI
  • machine.Signal
  • machine.SoftI2C
  • machine.SoftSPI
  • machine.Timer
  • machine.UART
  • LFS2 file system at the internal Flash
  • SDCard support (not on MIMXRT1010_EVK)
  • Ethernet (not on Teensy 4.0 and MIMXRT1010_EVK)

Known issues:

TODO:

  • More peripherals (Counter, I2S, CAN, etc)
  • More Python options