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: IDE screenshot

Running mpfs-mustein example with Renode: IDE screenshot2

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

Renode troubleshooting

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_v2022.2-747-RISC-V

  • Linux example: $HOME/Microchip/SoftConsole_v2022.2-747-RISC-V

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

        Welcome page

      • Can detect multiple PolarFire SoC MSS Configurator configs and allow users to invoke PolarFire SoC MSS Configurator with them

        PF SoC MSS Configurator button

        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)

        external web browsers

      • Launch bar, Click here for more Eclipse/CDT info. If required, the launch bar can be disabled from the preferences page.

        Launch bar

    • Console, Terminal and color support

      • Terminal 4-bit, 8-bit and 24-bit color support

        colors

      • Can edit the terminal palette from preferences

        can be configured

      • Terminal colors can be inverted

        inverting colors

      • Terminal tabs can be renamed

        rename tab

      • Paths inside the Terminal and URLs can be clicked with CTRL + left click

        clickable content

      • Arbitrary baud rates supported in the Serial terminal

      • Console supports word wrap

        word wrap

      • The build console has now its own close button

      • The bring to top toggle button is now in the toolbar and in the preferences as well

        close button

      • Console’s Find Next and Find Previous

        next and previous

    • Editors

      • Dedicated assembly editor associated with .lst list files

      • The last edit location remembers history and allows to go forward and backwards (icons added to the main toolbar as well)

        last edit location

      • Dedicated launcher view – showing launchers in a convenient manner

        launcher view

      • Support for a new pragma #pragma mark added which improves the readability of the code outline

        pragram mark

      • C++17 constructor template deduction supported

        cpp17 constructor template deduction

    • Debugging

      • Secondary Debug icons added to the debug view/tab

        debug icons

      • Alternative way added to disable all breakpoints

        disable breakpoints

      • Eclipse now drops its internal caches when gdb’s load is invoked

      • Improved memory viewer (allows floating-point, asci and other ways of rendering the memory)

        memory viewer render

        • Floating point view

          memory viewer floating point

        • String view

          memory viewer string

        • Traditional view

          memory viewer traditional

    • 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 processor MIV_RV32 and legacy soft processor MIV_RV32IMA_L1_AHB, MIV_RV32IMA_L1_AXI and MIV_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 runtime

    • CoreGPIO 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)

      Renode's embedded window view

  • 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

    • 33 bugs resolved in the upstream

  • 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 109794

    • Watchdog 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
FlashPro6

Embedded
FlashPro6
Rev B

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 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
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.