About SoftConsole and this document

Important

This documentation is not recommended for new RISC-V projects. New RISC-V projects should reference the newest version of the documentation. Users targeting Arm devices can still use this documentation as their reference.

The newest version of the documentation can be found here: https://mi-v-ecosystem.github.io/SoftConsole-Documentation/

This is manual for Microchip SoftConsole v2021.3.

SoftConsole is Microchip’s free and primarily open-source based software development environment for Windows and GNU/Linux facilitating the rapid development of bare-metal and RTOS based C/C++ software for Microchip CPU and SoC (System on Chip) based FPGAs.It provides development and debugging support for all Microchip SoC FPGAs and 32-bit soft IP CPUs.

SoftConsole can be downloaded for free from Microchip’s website.

IDE screenshot

For first-time users the manual is strongly recommended to be read in full at least once. The installation might require extra manual steps.

And it is recommended to search for the error messages in the troubleshooting section when encountering a issue:

Flashpro and OpenOCD

Project settings

RISC-V

RISC-V Trap Exceptions

Arm

Renode troubleshooting

Renode networking

Eclipse

Note

Users of previous releases should watch for changes and in the What is new chapter and re-read all affected chapters.

Documentation variants

The SoftConsole documentation is distributed in three variants:

  • Containing information relevant to both Windows and Linux users deployed online

  • Containing information relevant to only Windows users shipped with Windows SoftConsole

  • Containing information relevant to only Linux users shipped with Linux SoftConsole

The online documentation contains both OSs and can be updated/improved even after the SoftConsole release. While documentation installed with specific SoftConsole contains only information relevant to its host OS and can be viewed without an internet connection.

Currently you are reading the: Windows and Linux variant.

Download offline versions

The documentation can be downloaded for ‘offline’ use. Because various versions are generated, there is an option to download variant which covers only the user’s host operating system and doesn’t include irrelevant information. Or download variant which covers both operating systems.

Both Windows and Linux

Only Windows

Only Linux

Used terms

This document uses <SoftConsole-install-dir> and <SC_INSTALL_DIR> as a placeholders for the actual SoftConsole install directory. Where this is mentioned substitute the actual SoftConsole install directory name.

  • Windows example: C:\Microchip\SoftConsole_v2021.3-7.0.0.599

  • Linux example: $HOME/Microchip/SoftConsole_v2021.3-7.0.0.599

What is new

SoftConsole 2021.3

Features

  • MPFS boot mode programmer

    • Supporting X.509 public and PCKS#8 private keys in boot mode 3 (factory secure boot from eNVM)

    • Bug fixes (see the section below)

  • Arm toolchain version updated to v10.3.1-2.1

  • Documentation shifted from release notes to dedicated HTML format

    • Content of the documentation rewritten to make it more user friendly

    • Online version is deployed here.

    • Downloads for offline versions are here.

    • And each SoftConsole has offline version bundled here:

      <SOFTCONSOLE_INSTALL_DIR>/documentation/softconsole/index.html

      Shortcut to the bundled documentation is added by the installer into the start menu so users do not have to memorize the above path.

      Note

      The offline versions bundled with the SoftConsole contain only the relevant operating system. That means the online documentation contains info relevant for both Windows and Linux users. While the documentation in Windows SoftConsole contains only relevant information for Windows users. And the documentation in Linux SoftConsole contains only relevant information for Linux users. This should improve readability as Windows users do not have to read/parse Linux sections and vice versa.

    • Fixing SAR (see section below)

  • Eclipse

    • Bundling custom Eclipse plugins that generate correct workspace for the user automatically.

    • When opening new workspace plugins check for compatibility to make sure that incompatible versions of workspaces are opened by accident.

    • Workspace generated with streamlined metadata, should provide very minor performance improvement

    • Tweaked Java memory management handling

  • Improved installer

    • CAL library integrated to the installer

    • Bug fixes (see section below)

  • UltraSoC trace support removed from SoftConsole

  • OpenOCD supports RTPFS devices

Bug fixes and SARs

  • MPFS boot mode programmer

    • SAR 122301 - MPFS bootmode programmer doesn’t handle multiple ELF files in one workdir

      The manual ELF file selection was not working.

    • SAR 121969 - Running mpfs-bootmode-programer with wrong arguments can cause unhandled exception

      Tool crashed when given a certain combination of input arguments.

    • SAR 122302 - MPFS bootmode programmer can cause exceptions

      Tool crashed when given a certain combination of input arguments.

    • SAR 121388 - Environment variable path string throws Java Exception

      Tool crashed when the environment variable contained invalid characters instead of a valid path.

  • Installer

    • SAR 121482 - Shortcuts not generated consistently on some Linux distributions

      Users couldn’t see the SoftConsole shortcuts in their desktop and their start menu.

    • SAR 121479 - malformed post-installation readme.

      The installer was struggling with correct formatting. Switched to the HTML documentation

    • SAR 116431 - Installer ignores --prefix command line option in --mode unattended

      Unattended installations were ignoring the --prefix command and always installing SoftConsole into its default location

  • Eclipse

    • SAR 115587 - HOME variable in the softconsole.sh file overwrites the default HOME on Linux machines

      Primarily the HOME variable is set to provide a consistent experience in the most portable and standalone setup. However, if SoftConsole is installed in a shared environment where one installation can be used by many users then using the default HOME is preferred. Therefore, a secondary launcher script is added which allows SoftConsole to be used in a shared setup.

  • Documentation

    • SAR 110489 - Request to provide SoftConsole User guide with all the details provided in release notes

      Creating SoftConsole documentation in a new HTML format while release notes now are not overlapping with a user guide.

Known issues

All issues inherited from 6.5 (see SoftConsole 6.5 Known issues)

FlashPro support matrix

Standalone
FlashPro6

Embedded
FlashPro6
Rev B

Embedded
FlashPro6
Rev A

Standalone
&
Embedded
FlashPro5

Standalone
&
Embedded
FlashPro4

Standalone
&
Embedded
FlashPro3/LCPS

Windows

Yes

Yes

Yes

Yes

Yes

Linux

Yes

Yes

Yes

Virtual Machine

Docker on Linux

Yes

Yes

Yes

Debug PolarFire SoC
MSS Core Complex

Yes

Yes

Yes

Yes

Yes

PolarFire SoC UltraSoC
trace/debug

Debug Mi-V RV32 RISCV
soft core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Debug Mi-V RV32 RISCV
soft core via
JTAG signals on I/O pins

Yes

Yes

Yes

Yes

Debug Cortex-M1
soft core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Debug Cortex-M1
soft core via
JTAG signals on I/O pins

Yes

Yes

Yes

Yes

Note

Refer to the Libero SoC v2021.3 or Program Debug Tools v2021.3 (or later) release notes for details of how to upgrade the Embedded FlashPro6 from Rev A to Rev B.

Note

Empty cells mean there is no support.

SoftConsole 2021.1

Features

  • Support for programming PolarFire SoC boot mode 0/1/2/3. Please refer to /extras/mpfs/mpfs-bootmodes-readme.txt for full details.

    • Extra attention needs to be paid for boards which do not have SMK initialized yet and extra steps in Libero/FlashProExpress are necessary.

  • Original SoftConsole v6.4 Bash script-based support for boot modes 0/1 replaced by a Java utility program that supports all boot modes. The built_tools on Linux version were removed in the process as the bundled bash/shell scripting is not needed, and still the bundled bash/zsh/shell on the distribution can be used.

  • Improved custom Eclipse launcher for SoftConsole which generates our recommended workspace settings when creating new workspace.

  • Fixed a bug in CDT whereby register groups that were previously configured got lost whenever a debug connection attempt failed.

  • Please refer to the table in the section below for details of FlashPro programmer support in SoftConsole v2021.1.

Known issues

All issues inherited from 6.5 (see SoftConsole 6.5 Known issues)

FlashPro support matrix

Standalone
FlashPro6

Embedded
FlashPro6
Rev B

Embedded
FlashPro6
Rev A

Standalone
&
Embedded
FlashPro5

Standalone
&
Embedded
FlashPro4

Standalone
&
Embedded
FlashPro3/LCPS

Windows

Yes

Yes

Yes

Yes

Yes

Linux

Yes

Yes

Yes

Virtual Machine

Docker on Linux

Yes

Yes

Yes

Debug PolarFire SoC
MSS Core Complex

Yes

Yes

Yes

Yes

Yes

PolarFire SoC UltraSoC
trace/debug

Yes

Yes

Yes

Yes

Debug Mi-V RV32 RISCV
soft core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Debug Mi-V RV32 RISCV
soft core via
JTAG signals on I/O pins

Yes

Yes

Yes

Yes

Debug Cortex-M1
soft core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Debug Cortex-M1
soft core via
JTAG signals on I/O pins

Yes

Yes

Yes

Yes

Note

Refer to the Libero SoC v12.5 SP1 or Program Debug Tools v12.5 SP1 (or later) release notes for details of how to upgrade the Embedded FlashPro6 from Rev A to Rev B.

Note

Empty cells mean there is no support.

SoftConsole 6.5

Features

  • Support for PolarFire SoC Icicle board’s Embedded FlashPro6 Rev B for debugging a PolarFire SoC MSS (Microcontroller Subsystem) RISC-V multicore core complex based SoC.

  • Newer RISC-V GDB with improved performance (the first connection after power cycle significanly improved)

  • Adding support for embedded and standalone FP6

Known issues

  • Port selection when multiple FlashPros are connected might not work.

  • Providing the symbol files in the debug launchers are necessary to avoid errors on RV32 targets (see launchers of example projects).

  • The Icicle board’s Embedded FlashPro6 programmer must be upgraded from Rev A to Rev B for it to work with SoftConsole. Refer to the Libero SoC v12.5 SP1 or Program Debug Tools v12.5 SP1 (or later) release notes for details of how to upgrade the Embedded FlashPro6 from Rev A to Rev B. The following table below summarizes the FlashPro support in SoftConsole v6.5 and later.

FlashPro support matrix

Standalone
FlashPro6

Embedded
FlashPro6
Rev B

Embedded
FlashPro6
Rev A

Standalone
&
Embedded
FlashPro5

Standalone
&
Embedded
FlashPro4

Standalone
&
Embedded
FlashPro3/LCPS

Windows

Yes

Yes

Yes

Yes

Yes

Linux

Yes

Yes

Yes

Virtual Machine

Docker on Linux

Yes

Yes

Yes

Debug PolarFire SoC
MSS Core Complex

Yes

Yes

Yes

Yes

Yes

PolarFire SoC UltraSoC
trace/debug

Yes

Yes

Yes

Yes

Debug Mi-V RV32 RISCV
soft core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Debug Mi-V RV32 RISCV
soft core via
JTAG signals on I/O pins

Yes

Yes

Yes

Yes

Debug Cortex-M1
soft core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Debug Cortex-M1
soft core via
JTAG signals on I/O pins

Yes

Yes

Yes

Yes

Note

Refer to the Libero SoC v12.5 SP1 or Program Debug Tools v12.5 SP1 (or later) release notes for details of how to upgrade the Embedded FlashPro6 from Rev A to Rev B.

Note

Empty cells mean there is no support.

SoftConsole 6.3

Features

  • Static portable Python runtime bundled with SoftConsole, to allow the PolarFire Configuration generate corresponding header files before each build.

FlashPro support matrix

Standalone
FlashPro6

Embedded
FlashPro6
Rev B

Embedded
FlashPro6
Rev A

Standalone
&
Embedded
FlashPro5

Standalone
&
Embedded
FlashPro4

Standalone
&
Embedded
FlashPro3/LCPS

Windows

Yes

Yes

Yes

Linux

Yes

Virtual Machine

Docker on Linux

Yes

Debug PolarFire SoC
MSS Core Complex

Yes

Yes

Yes

PolarFire SoC UltraSoC
trace/debug

Yes

Yes

Yes

Debug Mi-V RV32 RISCV
soft core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Debug Mi-V RV32 RISCV
soft core via
JTAG signals on I/O pins

Yes

Yes

Yes

Debug Cortex-M1 soft
core via
CoreJTAGDebug/UJTAG

Yes

Yes

Yes

Cortex-M1 soft core
debug via JTAG signals
on I/O pins

Yes

Yes

Yes

Note

Empty cells mean there is no support.