About SoftConsole and this document¶
This is manual the for Microchip SoftConsole v2022.2-RISC-V.
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.
Running miv-rv32imaf-cpp
example with Renode:
Running mpfs-mustein
example with Renode:
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_v2022.2-747-RISC-V
Linux example:
$HOME/Microchip/SoftConsole_v2022.2-747-RISC-V
Breadcrumbs¶
Often in this document steps are described in ‘breadcrumbs’ form such as this:
These breadcrumbs usually 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 2022.2 for RISC-V¶
Features¶
This release is focused on RISC-V support
Java
Switching from OpenJDK to JustJ vendor
Upgrading to v17
Eclipse
Eclipse upgraded to v4.22
CDT upgraded to v10.5.0
Using upstream starter.exe instead of our fork. The aggressive shutdown timing is fixed in the upstream.
GUI
Dedicated documentation link
Help -> Documentation
Welcome page plugin with useful links is shown on the first startup and can be invoked with
Help -> Welcome
Can detect multiple PolarFire SoC MSS Configurator configs and allow users to invoke PolarFire SoC MSS Configurator with them
Note
This feature requires a compatible project to work correctly. There are no compatible projects (including the bundled example projects) at the time of SoftConsole 2022.2 release. Projects deployed on GitHub should start utilizing this feature in the future.
For more information see the PolarFire SoC MSS Configurator launcher section.
JDC Helper allowing users to update content of eNVM clients without the need to run Libero or having access to the Libero design project. More information in JDC Helper section.
Can specify an external web browser (on Windows)
Launch bar, Click here for more Eclipse/CDT info. If required, the launch bar can be disabled from the preferences page.
Console, Terminal and color support
Terminal 4-bit, 8-bit and 24-bit color support
Can edit the terminal palette from preferences
Terminal colors can be inverted
Terminal tabs can be renamed
Paths inside the Terminal and URLs can be clicked with CTRL + left click
Arbitrary baud rates supported in the Serial terminal
Console supports word wrap
The build console has now its own
close
buttonThe
bring to top
toggle button is now in the toolbar and in the preferences as wellConsole’s
Find Next
andFind Previous
Editors
Dedicated assembly editor associated with
.lst
list filesThe last edit location remembers history and allows to go forward and backwards (icons added to the main toolbar as well)
Dedicated launcher view – showing launchers in a convenient manner
Support for a new pragma
#pragma mark
added which improves the readability of the code outlineC++17 constructor template deduction supported
Debugging
Secondary Debug icons added to the debug view/tab
Alternative way added to disable all breakpoints
Eclipse now drops its internal caches when gdb’s
load
is invokedImproved memory viewer (allows floating-point, asci and other ways of rendering the memory)
Floating point view
String view
Traditional view
Headless builder
Multiple builds of multiple projects running in one go could have caused an exit code to masked and report falsely a successful build. Now any subproject build failure will cause the whole build to fail
Projects
Redundant projects removed (mandelbrot and raytracer demos combined into one project)
Few of the bundled projects build much faster, see Parallel builds section for more information.
The
miv-rv32i-systick-blinky
project supports the new soft processorMIV_RV32
and legacy soft processorMIV_RV32IMA_L1_AHB
,MIV_RV32IMA_L1_AXI
andMIV_RV32IMAF_L1_AHB
as well. This requires extra attention to what build configuration can be used with what target and with what launcher:Configuration Target Launcher to debug with Renode miv32i-Debug new RV32 miv-rv32i-systick-blinky Renode-rv32i Start-platform-and-debug miv32i-Release new RV32 miv-rv32i-systick-blinky Renode-rv32i Start-platform-and-debug miv32ima-Debug legacy RV32 miv-rv32i-systick-blinky Renode-legacy-rv32 Start-platform-and-debug miv32ima-Release legacy RV32 miv-rv32i-systick-blinky Renode-legacy-rv32 Start-platform-and-debug miv32imc-Debug new RV32 miv-rv32i-systick-blinky Renode-rv32i Start-platform-and-debug miv32imc-Release new RV32 miv-rv32i-systick-blinky Renode-rv32i Start-platform-and-debug
Note
When targeting real Hardware, then all the configurations are using the same launcher miv-rv32i-systick-blinky Hw Debug
. However the connected board must have matching design. For the new core it needs to be 2022.1 release of MIV_RV32
with ESS memory map (such as DGC2
config). And for the legacy core it needs to be 2022.1 release of MIV_RV32IMA_L1_AHB
, MIV_RV32IMA_L1_AXI
or MIV_RV32IMAF_L1_AHB
(for example CFG1
config). The reset vector for legacy core changed in this release and using older builds of this core is not recomended.
Renode
Upgraded to v1.13.1 release
Includes support for Mi-RV32 IMAF legacy cores and Mi-RV32 cores
Improved speeds of GDB startup and
tlib
runtimeCoreGPIO supports fixed IO config. See the Fixed configuration of a GPIO peripheral section for more details.
Optional installer step to install Renode sources
Added Scratchpad L2 zero device memory region
Renode’s Monitor (by default) is embedded into the terminal (it’s possible to return to the original behaviour, read the Embedded monitor window section)
Installer
CAL library integration removed from the installer
Bug fixes and SARs¶
Eclipse
Missing X button to close views SAR 123248
Removed redundant and broken ‘copy settings’ option from the launcher SAR 123476
Issues with links in the Welcome page SAR 124454
Git freezing on Windows. SAR 125155
Shared SoftConsole installation. SAR 115585
Launcher’s error message can sometimes display a badly formatted path in the text SAR 124471
OpenOCD
FlashPro port selection fixed. SAR 119110
MPFS boot mode programmer
Styling bug in the verbose log fixed (no SAR reference).
Documentation
Discrepancy in the number of hardware breakpoints between PFSoC TRM and SoftConsole. SAR 123621
Projects
Mi-V example projects using old HAL. SAR 113988
mpfs-gpio-interrupt example has updated HAL (no SAR reference).
A malloc() issue with C++. SAR 120920
Renode
Renode freezing when embedding the monitor. SAR 123436
Renode DDR was overlapping with the FIC. SAR 125178
Renode freezing when its UART is overloaded. SAR 123718 and SAR 123717
Renode not showing CSR registers in the Register Window. SAR 114512
PLIC crashes when enabling PLIC IRQ on multiple harts. SAR 107418
QSPI model not indicating correctly TXDONE and RXDONE. SAR 109794
QSPI model not supporting
QSPIMODE[2:0]
modes. SAR 109794Watchdog IRQs cleared correctly. SAR 110415
Watchdog refresh issues. SAR 110524
Renode interacting with host based devices (UART -> Socket -> UDP). SAR 124676
Compiling models on Windows with JIT. SAR 120739
Non-responding UART terminal on low-end Linux machines (no SAR reference). Please read the UART analyzer not responding section for the fix instructions.
CoreGPIO Renode model doesn’t support fixed IO config. See the Fixed configuration of a GPIO peripheral section for more details. SAR 115138
Known issues¶
Providing the symbol files in the debug launchers is necessary to avoid errors on RV32 targets (see launchers of example projects).
The DDR training on Renode targets is extremely slow and applications do not reach the main breakpoint for an extensive time. DDR on Renode doesn’t have to be trained, it works reliably instantly on the ‘power-up’. Applications targeting Renode can disable the DDR training to avoid this issue. For more details see the Renode troubleshooting section.
FlashPro support matrix¶
Standalone |
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 v2022.2 or Program Debug Tools v2022.2 (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.3¶
Note
SoftConsole v2021.3 software was removed from the Microchip website The features listed in this section are supported by SoftConsole v2022.2 and later releases.
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.