October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk7 min

FPGAventures: Linux on RISC-V With the Microchip PolarFire SoC Icicle Kit

Learn the correct Icicle Kit bring-up sequence, then build a custom Yocto Linux image and connect GPIO, SPI and FPGA accelerators to its RISC-V Linux system.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Microchip PolarFire SoC Icicle Kit runs Linux on four SiFive U54 RISC-V application cores while a separate E51 monitor core and the MPFS250T FPGA fabric handle control, real-time and hardware-accelerated work. The reliable path is to boot Microchip’s supplied image using the QuickStart wiring, then move to a Yocto-built image when you need different packages, device-tree settings or FPGA-connected peripherals.

What the Icicle Kit combines

The Icicle Kit is a development board built around the MPFS250T PolarFire SoC FPGA. Microchip describes the device this way: “Microchip’s PolarFire SoC devices combine a RISC-V 5x core Microprocessor Subsystem capable of running Linux and the PolarFire FPGA fabric in a single device.” Microchip’s embedded-software guide documents the Linux-capable processor subsystem and the FPGA side together.

As an Amazon Associate I earn from qualifying purchases.

Part of the device Role when running Linux
SiFive E51 monitor core Monitor and low-level management duties in the five-core subsystem.
Four SiFive U54 application cores Run the Linux kernel, services and user applications.
PolarFire FPGA fabric Implements custom digital logic, deterministic datapaths and accelerators alongside Linux.

The current kit documentation lists 254K logic elements. The board exposes Gigabit Ethernet, USB, an SD-card slot, PCIe, CAN and expansion connectors; the exact connector arrangement and bring-up procedure are in the PolarFire SoC Icicle Kit QuickStart Guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check the board revision before connecting power

Microchip documentation distinguishes the current MPFS-ICICLE-KIT from an earlier engineering-sample kit. Read the label on your hardware and use the matching revision of the Icicle Kit embedded-software documentation. Pin assignments, images and setup details should not be assumed interchangeable between revisions.

A Linux or WSL host is sufficient for the software portion of the workflow. For the initial boot, have the board’s supplied power hardware, an Ethernet cable and a micro-USB cable available. A microSD card is useful because the board has an SD-card slot, but the cited documentation does not establish one universally approved capacity or speed class.

First boot with the supplied Linux image

Use the official QuickStart sequence for the first power-on rather than starting with a custom build.

  1. Identify the board revision and place the supplied boot media in the board as directed by the QuickStart Guide.
  2. Connect the supplied 12 V power source.
  3. Connect Gigabit Ethernet if you want network access during or after boot.
  4. Connect the micro-USB UART interface to the host and open the resulting serial console with the terminal settings specified in the guide.
  5. Power the board and observe the boot messages. The supplied Linux image should reach a login prompt or shell through the UART console.

If the console remains silent, check the selected USB serial device, cable, board power and revision-specific instructions before changing the image. Do not infer a failed Linux boot solely from missing Ethernet activity; the UART console is the primary first-boot diagnostic path described by the guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Confirm the running system

After logging in, establish what actually booted before modifying anything:

  • uname -a reports the running kernel and architecture.
  • ip addr shows whether the Ethernet interface received a link or address.
  • lscpu identifies the visible RISC-V processors.
  • ls /dev/spidev* checks whether a userspace SPI device has been enabled in the image and device tree.

These checks separate a successful Linux boot from a peripheral configuration problem. A missing /dev/spidev* node, for example, does not mean the SPI controller is absent; it can indicate that the relevant device-tree node or userspace driver was not enabled.

Build a custom Linux image with Yocto

Custom images use Microchip’s linux4microchip Yocto manifest and the Icicle board configuration. The Microchip Developer Help GPIO example provides the supported pattern for setting up the build and changing board software: PolarFire SoC GPIO application.

1. Prepare the build host

Use a supported Linux distribution or WSL environment, install the host packages required by the Yocto release referenced by Microchip, and keep the build in a case-sensitive filesystem with enough free space. The exact package list and branch move with the manifest revision, so use the commands and branch named in the current Microchip instructions rather than copying an older tutorial.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Initialize the Microchip manifest

Initialize the linux4microchip Yocto manifest, select the revision that matches your Icicle documentation, and synchronize the layers. This supplies the board machine configuration, kernel, bootloader and recipes used by the supported image.

3. Select the Icicle target

Choose the Icicle Kit machine or target specified by the manifest documentation before starting the build. A target for another PolarFire SoC board can produce a valid image that nevertheless has the wrong pin mux, boot media or peripheral nodes for the Icicle.

4. Add packages and hardware settings

Place application packages in the appropriate Yocto image configuration and modify the board device tree for enabled GPIO, SPI or custom logic connections. Keep hardware description changes in a layer or configuration fragment so they can be reproduced when the manifest is updated.

5. Build, deploy and validate

Run the build task named by the selected Microchip manifest, write the resulting boot media or image using the deployment method in the Icicle guide, then boot over UART. Validate the change on the board: check the expected device nodes, exercise the interface and confirm that unrelated peripherals still initialize.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

GPIO development pattern

Microchip’s GPIO application guide illustrates the normal progression: configure the Yocto image, describe the board GPIO in the device tree, rebuild, deploy and test from Linux. Use that pattern for LEDs, buttons or an external GPIO header instead of hard-coding pins in an application. The page was last modified on April 17, 2026, so check it alongside the board revision and current manifest.

SPI: start in Linux userspace, then accelerate selectively

The Microchip SPI application guide shows two supported validation routes:

  1. Enable the SPI controller and its chip-select in the device tree and include the userspace support needed for spidev.
  2. Use spidev_test to verify transfers and chip-select wiring.
  3. Move to a small C program when your protocol needs application-specific framing or error handling.
  4. Only after the Linux path is understood, place timing-critical or high-throughput portions in FPGA fabric and connect them through the documented SoC interfaces.

This staged approach makes a wiring or device-tree error visible before it is hidden inside a larger FPGA design.

Decide what belongs in Linux and what belongs in the FPGA

Workload Better starting point Reason
Networking, filesystems, updates and user interfaces Linux on the U54 application cores Uses the operating system’s drivers, processes and networking stack.
Control-plane logic and configuration Linux application Easier to develop, log and update in software.
Strictly timed I/O or pulse generation FPGA fabric, coordinated by Linux Hardware logic provides deterministic timing while Linux supplies policy.
Streaming transforms or protocol offload FPGA fabric with a Linux control path Parallel datapaths can run beside the application processors.
Rapid proof of concept Linux userspace first GPIO and SPI can be validated before committing to custom RTL.

The point of the Icicle platform is not to choose between a processor board and an FPGA board. It lets a design assign each function to the subsystem that fits its timing, throughput and maintainability requirements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Interfaces available for a prototype

Interface or resource Practical use
Gigabit Ethernet Remote shell, data transfer, network services and test automation.
USB Host or peripheral connectivity, depending on the board configuration.
SD card Boot and removable storage workflows supported by the board image.
PCIe High-bandwidth expansion or endpoint experiments when the design enables the required hardware and software.
CAN Embedded and industrial network experiments.
Expansion connectors External GPIO, serial and custom FPGA-connected circuitry, subject to the connector pinout and device-tree setup.

Availability of an interface on the board does not by itself enable it in Linux. The kernel configuration, device tree, FPGA design and physical pin multiplexing must agree.

Toolchain, security and evidence limits

A complete project spans the Linux/Yocto software stack and Microchip’s FPGA design flow. Select the vendor tool versions and board files that match the Icicle documentation revision; mixing a device-tree description from one revision with an FPGA design or image from another is a common source of confusing failures.

For a deployable product, evaluate secure-boot and image-signing support in the applicable PolarFire SoC and board documentation rather than assuming that a development image is production-secure. Microchip’s product overview is the starting point for the device-level feature set: PolarFire SoC FPGAs.

No independent performance benchmark or power measurement is established by the cited material. Treat the Icicle as a flexible development platform, and measure throughput, latency, thermals and power on your own design.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshooting checklist

Symptom Likely area to check Next action
No UART output Power, cable, serial device or board revision Repeat the QuickStart wiring and confirm the revision-specific console instructions.
Linux boots but Ethernet is absent Cable, link partner, network configuration or image support Check link LEDs and ip addr; verify the image and device tree for the selected board.
GPIO does not respond Pin mux, device-tree node or package configuration Compare the node with Microchip’s GPIO example, rebuild and retest.
No /dev/spidev* SPI node, chip-select or spidev support Follow the SPI guide, enable the node and userspace driver, then run spidev_test.
Custom image fails before login Wrong machine, manifest revision or deployment media Return to the known-good supplied image, confirm the target and rebuild from the matching manifest.

What the Icicle Kit is best suited for

  • Learning how Linux and RISC-V software interact with FPGA logic in one device.
  • Building networked or storage-aware FPGA prototypes with a Linux control plane.
  • Testing deterministic I/O, sensor pipelines, communications and hardware acceleration.
  • Creating a reproducible Yocto distribution tailored to a custom carrier, peripheral set or application.

Bottom line

Start with the revision-matched QuickStart image and UART console. Once that baseline works, use the linux4microchip Yocto manifest to create a reproducible Icicle image, describe peripherals in the device tree, and validate GPIO or SPI in Linux before moving timing-critical functions into the FPGA fabric. That processor-plus-FPGA split is the board’s defining advantage over a Linux-only single-board computer or an FPGA-only development board.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.