Microchip M2S010 MKR Kit
Overview
The Microchip M2S010-MKR-KIT board is a SmartFusion2 FPGA development kit based
on the Microchip M2S010 device with an integrated ARM Cortex-M3 subsystem.
The Zephyr board target for this port is m2s010_mkr_kit/m2s010.
Reference material for the kit is available in the Microchip M2S010-MKR-KIT Quick Start Guide.
Programming and debugging
The m2s010_mkr_kit board supports the runners and associated west commands listed below.
| flash | debug | rtt | attach | debugserver | |
|---|---|---|---|---|---|
| openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
Building
Applications for the m2s010_mkr_kit/m2s010 board target can be built as
usual:
west build -b m2s010_mkr_kit/m2s010
Clock Configuration
The current SmartFusion2 port does not program the MSS clock tree from Zephyr. The actual CPU and peripheral clocks must already be configured in the SmartFusion2 hardware design, for example in the MSS/Libero configuration used to build the board image.
In Zephyr, the software-visible CPU frequency is taken from the devicetree CPU node:
&cpu0 { clock-frequency = <...>; }
That value is then used to derive:
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SECthe
SystemCoreClockvariable used by the SmartFusion2 SoC port
The SmartFusion2-specific clock-controller node is currently used for UART clocking, while the remaining peripherals still use their local devicetree frequency properties. If the hardware clock configuration changes, update the devicetree to match the real board configuration. For example, an application overlay can override the CPU and peripheral clock description values:
&cpu0 {
clock-frequency = <80000000>;
};
&clkc {
clock-frequencies = <80000000 40000000>;
};
The devicetree values must describe the real hardware clocks. Changing them in Zephyr alone does not reprogram the SmartFusion2 clock hardware.
Flashing
The board uses the OpenOCD runner configuration from board.cmake and
support/openocd.cfg. Once the CMSIS-DAP/OpenOCD setup for the kit is
available in the host environment, the usual commands are:
west flash --runner openocd
west debug --runner openocd
Helpful Documentation
The following Microchip documents are useful when extending or upstreaming the board support.
Board Documentation
SoC Documentation
The quick start guide is useful for board bring-up, connector overview and kit contents. The device datasheet is the better top-level reference for package options, memory sizes, hard IP inventory and electrical capabilities. The programming guide is the better reference for flash programming, device configuration flows, boot/programming modes and debug-related setup.
Hardware
The current board support package models the following verified platform blocks:
ARM Cortex-M3 CPU
NVIC interrupt controller
256 KB embedded non-volatile memory used for code storage
64 KB SRAM
MSS UART0 as Zephyr console
MSS GPIO with one user LED on GPIO0 pin 0
The devicetree also enumerates additional SmartFusion2 peripheral blocks so they can be enabled incrementally as Zephyr drivers are upstreamed:
SPI0 and SPI1
I2C0 and I2C1
PDMA
timers and watchdog
CAN and RTC
Interface |
Controller |
Driver/Component |
|---|---|---|
NVIC |
on-chip |
nested vector interrupt controller |
SYSTICK |
on-chip |
systick |
UART |
MSS UART0 |
ns16550 |
GPIO |
MSS GPIO |
gpio |
FLASH |
eNVM |
soc-nv-flash |
Other on-chip peripherals are described in devicetree but remain disabled until matching Zephyr drivers are available and validated on the board.
Pin and Interface Mapping
The table below summarizes the exact board-level wiring recovered from the
DIGIKEY MAKER KIT REVA1_0_20170606.pdf schematic bundled with the kit.
Signal names use the schematic net names and SmartFusion2 package ball names.
Debug, Clock and Console Routing
Function |
SmartFusion2 signal |
External device |
|---|---|---|
Main oscillator |
|
32.768 kHz crystal |
Auxiliary osc. |
|
DNI on the schematic |
JTAG select |
|
Header/jumper network |
JTAG TDO |
|
FT4232H JTAG bridge |
JTAG TCK |
|
FT4232H JTAG bridge |
JTAG TRST |
|
FT4232H JTAG bridge |
JTAG TMS / SWDIO |
|
FT4232H JTAG bridge |
JTAG TDI |
|
FT4232H JTAG bridge |
MSS UART TX |
|
FT4232H USB UART |
MSS UART RX |
|
FT4232H USB UART |
USB UART TX net |
|
Routed to FT4232H |
USB UART RX net |
|
Routed to FT4232H |
On-board SPI Flash and Light Sensor
Peripheral signal |
SmartFusion2 signal |
Connected device |
|---|---|---|
|
|
AT25SF161 CS |
|
|
AT25SF161 SI |
|
|
AT25SF161 SO |
|
|
AT25SF161 SCK |
|
|
AT25SF161 WP# |
|
|
AT25SF161 HOLD# |
|
|
LTR-329ALS SDA |
|
|
LTR-329ALS SCL |
Optional ESP8266 Footprint
The schematic contains an optional ESP8266 module footprint marked as not populated. Its routing is still useful when extending the board support:
ESP8266 signal |
SmartFusion2 signal |
Notes |
|---|---|---|
|
|
ESP8266 TXO |
|
|
ESP8266 RXI |
|
|
ESP8266 CHPD |
|
|
ESP8266 reset |
|
|
ESP8266 GPIO2 |
|
|
ESP8266 GPIO0 |
spare routing |
|
Marked |
spare routing |
|
Marked |
Optional ESP-WROOM-32 Header
Page 6 of the schematic also exposes an unpopulated ESP-WROOM-32 / WiFi-BT-BLE header path on bank 7:
Header/net |
SmartFusion2 signal |
Notes |
|---|---|---|
|
|
Module UART |
|
|
Module UART |
|
|
Module serial |
|
|
Module serial |
|
|
Boot strap |
|
|
GPIO |
|
|
GPIO |
|
|
GPIO |
|
|
GPIO |
|
|
GPIO |
|
|
Enable |
|
|
GPIO |
J12 pin 1 |
|
SPI chip select |
J12 pin 2 |
|
SPI clock |
J12 pin 3 |
|
SPI MISO |
J12 pin 4 |
|
SPI MOSI |
Ethernet PHY Wiring
The VSC8541 PHY is wired directly to SmartFusion2 fabric banks 4 and 6. The schematic pages clearly recover the following signal assignments:
PHY/GMII signal |
SmartFusion2 signal |
Bank |
|---|---|---|
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 6 |
|
|
bank 4 |
|
|
bank 4 |
|
|
bank 4 |
|
|
bank 4 |
|
|
bank 4 |
|
|
bank 4 |
|
|
bank 4 |
|
|
bank 4 |
The remaining VSC8541 receive and status nets are present on the same schematic page, but only the assignments listed above were recoverable with high confidence from machine text extraction. Before upstream submission of Ethernet support, validate the full GMII matrix once against the original schematic PDF.