micropython/ports/mimxrt
robert-hh 1866ed7e2e mimxrt/eth: Add LAN support and integrate the network module.
This commit implements 10/100 Mbit Ethernet support in the mimxrt port.

The following boards are configured without ETH network:
- MIMXRT1010_EVK
- Teensy 4.0

The following boards are configured with ETH network:
- MIMXRT1020_EVK
- MIMXRT1050_EVK
- MIMXRT1060_EVK
- MIMXRT1064_EVK
- Teensy 4.1

Ethernet support tested with TEENSY 4.1, MIMRTX1020_EVK and MIMXRT1050_EVK.
Build tested with Teensy 4.0 and MIMXRT1010_EVK to be still working.
Compiles and builds properly for MIMXRT1060_EVK and MIMXRT1064_EVK, but not
tested lacking suitable boards.

Tested functions are:
- ping works bothway
- simple UDP transfer works bothway
- ntptime works
- the ftp server works
- secure socker works
- telnet and webrepl works

The MAC address is 0x02 plus 5 bytes from the manifacturing info field,
which can be considered as unique per device.

Some boards do not wire the RESET and INT pin of the PHY transceiver.  For
operation, these are not required.  If they are defined, they will be used.
2021-10-25 15:14:26 +11:00
..
boards mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
hal mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
lwip_inc mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
mbedtls mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
modules mimxrt/sdcard: Implement SDCard driver. 2021-09-07 20:45:33 +02:00
Makefile mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
README.md mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
board_init.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
dma_channel.c mimxrt/machine_spi: Add the SPI class to the machine module. 2021-06-26 22:14:47 +10:00
dma_channel.h mimxrt/machine_spi: Add the SPI class to the machine module. 2021-06-26 22:14:47 +10:00
eth.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
eth.h mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11: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 mimxrt/machine_adc: Add the ADC class to the machine module. 2021-06-04 00:51:58 +10:00
machine_bitstream.c mimxrt/machine_bitstream: Add bitstream function to machine module. 2021-09-10 13:32:53 +10:00
machine_i2c.c mimxrt/machine_i2c: Add hardware-based machine.I2C to machine module. 2021-07-15 00:36:31 +10:00
machine_led.c mimxrt/machine_led: Use mp_raise_msg_varg helper. 2021-07-15 00:12:41 +10:00
machine_pin.c mimxrt/machine_pin: Implement ioctl for Pin. 2021-08-16 15:03:50 +10:00
machine_rtc.c all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
machine_sdcard.c mimxrt/sdcard: Implement SDCard driver. 2021-09-07 20:45:33 +02:00
machine_spi.c mimxrt/machine_spi: Add the SPI class to the machine module. 2021-06-26 22:14:47 +10:00
machine_timer.c mimxrt/machine_timer: Leave the Timer clock source at IPG clock. 2021-06-03 13:03:02 +10:00
machine_uart.c mimxrt/machine_uart: Add the UART class to the machine module. 2021-06-16 01:21:15 +10:00
main.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
mimxrt_flash.c mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02:00
mimxrt_sdram.c mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02:00
modmachine.c mimxrt/machine_bitstream: Add bitstream function to machine module. 2021-09-10 13:32:53 +10:00
modmachine.h mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02:00
modmimxrt.c mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
modmimxrt.h mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
moduos.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
modutime.c all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
mpconfigport.h mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
mphalport.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
mphalport.h mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
mpnetworkport.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
network_lan.c mimxrt/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11: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/eth: Add LAN support and integrate the network module. 2021-10-25 15:14:26 +11:00
pin.h mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02: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/sdcard: Implement SDCard driver. 2021-09-07 20:45:33 +02: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: Improve ticks and sleep functions using GPT. 2021-05-18 22:36:32 +10: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 ports: Rename USBD_VID/PID config macros to MICROPY_HW_USB_VID/PID. 2021-08-07 23:13:55 +10:00

README.md

Port of MicroPython to NXP iMX RT 10xx

Currently supports Teensy 4.0 and the i.MX RT1010 EVK board.

Features:

  • REPL over USB VCP
  • machine.Pin

Known issues:

  • pyboard.py doesn't work with files larger than 64 bytes
  • machine.Pin class currently does not support GPIOMUX option of i.MX RT101x variants

TODO:

  • Enable TCM
  • Peripherals (LED, Timers, etc)