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.
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:
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.
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
Breadcrumbs¶
Often in this document, there are steps described in ‘breadcrumbs’ form such as this:
Usually these breadcrumbs reference a GUI location where to click or how to navigate the menus, submenus, their tabs/dialogs. There are few common places where these breadcrumbs start:
The
SoftConsole Menu toolbar
as starting location, example:Which is located under the Window’s title:
The
Project's properties
as starting location, example:Which requires the user to first go into Project’s settings/properties by following these steps:
This opens the following menu and can be navigated with the breadcrumbs:
The launchers
Debug configuration
as starting location, example:Which requires the user to open the corresponding debug launcher associated with your project:
Note
Each project might have multiple Debug Launchers associated with the project, for example one
hw
for Hardware targets and oneRenode
for Renode emulated targets. User needs to select the coresponding launcher within the context of the SoftConsole chapter. Renode troubleshooting guide will expect users to select the Renode variants of the launchers.This will open the following dialog menu:
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 |
Embedded |
Embedded |
Standalone |
Standalone |
Standalone |
|
---|---|---|---|---|---|---|
Windows |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Linux |
Yes |
Yes |
Yes |
|||
Virtual Machine |
||||||
Docker on Linux |
Yes |
Yes |
Yes |
|||
Debug PolarFire SoC |
Yes |
Yes |
Yes |
Yes |
Yes |
|
PolarFire SoC UltraSoC |
||||||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
|||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
Yes |
||
Debug Cortex-M1 |
Yes |
Yes |
Yes |
|||
Debug Cortex-M1 |
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 |
Embedded |
Embedded |
Standalone |
Standalone |
Standalone |
|
---|---|---|---|---|---|---|
Windows |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Linux |
Yes |
Yes |
Yes |
|||
Virtual Machine |
||||||
Docker on Linux |
Yes |
Yes |
Yes |
|||
Debug PolarFire SoC |
Yes |
Yes |
Yes |
Yes |
Yes |
|
PolarFire SoC UltraSoC |
Yes |
Yes |
Yes |
Yes |
||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
|||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
Yes |
||
Debug Cortex-M1 |
Yes |
Yes |
Yes |
|||
Debug Cortex-M1 |
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 |
Embedded |
Embedded |
Standalone |
Standalone |
Standalone |
|
---|---|---|---|---|---|---|
Windows |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Linux |
Yes |
Yes |
Yes |
|||
Virtual Machine |
||||||
Docker on Linux |
Yes |
Yes |
Yes |
|||
Debug PolarFire SoC |
Yes |
Yes |
Yes |
Yes |
Yes |
|
PolarFire SoC UltraSoC |
Yes |
Yes |
Yes |
Yes |
||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
|||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
Yes |
||
Debug Cortex-M1 |
Yes |
Yes |
Yes |
|||
Debug Cortex-M1 |
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 |
Embedded |
Embedded |
Standalone |
Standalone |
Standalone |
|
---|---|---|---|---|---|---|
Windows |
Yes |
Yes |
Yes |
|||
Linux |
Yes |
|||||
Virtual Machine |
||||||
Docker on Linux |
Yes |
|||||
Debug PolarFire SoC |
Yes |
Yes |
Yes |
|||
PolarFire SoC UltraSoC |
Yes |
Yes |
Yes |
|||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
|||
Debug Mi-V RV32 RISCV |
Yes |
Yes |
Yes |
|||
Debug Cortex-M1 soft |
Yes |
Yes |
Yes |
|||
Cortex-M1 soft core |
Yes |
Yes |
Yes |
Note
Empty cells mean there is no support.