YTread Logo
YTread Logo

What is the HSS?

Mar 07, 2024
Hi, I'm Hugh Breslin with Microchip's FPGA business unit. In this video we will see

what

HSS or Heart software services are for Polar Fire Soc. First we will see the role of HSS in the system. startup, then we will see how to build the hss and the specific configuration steps you need to follow in Windows and finally, we will see how to configure an hss, first

what

is the role of the hss at system startup. What to note is that the hss code is stored in the polarfire soc envm and the mss startup mode must be set to 1. in this mode the heart restart vectors are set to start from emm or envm when this happens.
what is the hss
The startup code that uses the hss, which configures the polarfire soc system, such as mss clocks and mss io configuration, will be executed, and then once this has completed, the main hss code begins to run as it has seen in our demos and if you have an iso kit yourself the hss will implement a five second countdown at startup, if you don't give it any input in these five seconds it will then start searching for a memory source for a payload, this memory source is set at build time to be for example emmc or the SD card, it could also be a source like q spy.
what is the hss

More Interesting Facts About,

what is the hss...

If a valid payload is found, the payload is decompressed into the kit ddor and then loaded into its relevant memory location and the hss knows this information from a header that is generated with the payload once the payload has been unpacked and loaded into their memory locations, all kernels associated with the payload will be started, so the key points to keep in mind is that the hss and application code are small enough to fit. the en vm of a part of polarfire soc will allow booting of images that are larger than the onboard storage of the fpga soc and will eventually allow scheduling of those storage locations, so for example in polarfireslc we have a 128k envm but we have an eight gigabyte emmc available off chip, the hss allows us to program the emmc and it also allows us to copy an image of the emmc to our ddr and use it to boot our system and if we were to take a look at that graphically we have our mss which It contains our kernels and when it starts it will execute the code contained in the envm at this point our e51 and u54 application kernels will execute the hss once the five second timeout has completed. the hss will copy the code from a memory source to the ddor and then load it into the relevant locations once it completes the application course associated with that payload will stop executing the hss and start executing the application code if you want to program an external soc. fpga storage like emmc you can do this using the usbd msc service that is included with the hss and if you want to learn more about it watch our video called reverting to factory defaults.
what is the hss
Okay, now let's take a look at how to create a copy. from heart software services if you are running windows you need to install an additional tool to do this it is msys2 to download a copy go to msys2.org forward slash libra install and you will be redirected to this page here you can download a copy of the installer and then follow the steps listed on the page to configure msys2. Once this is done you can start an instance of mtis msis264 and then you need to install three packages there python 3 python 3 pip and have it install them type pacman dash s and it is a capital s followed by make python 3 and python 3 pip and press enter once it asks if you want to continue with the installation click yes or enter yes now that you are done installing i want to use pip 3 to install a python package called k config lib to do this guy in pip 3 install k config lib and press Enter now that it is complete.
what is the hss
I just need to add the path to msysys2's makef directory to my system properties or my system environment variables. this opens the system properties and select the environment variables under system variables, scroll down to the path and if I double click, I can't, I can open it to edit the environment variable. Make sure you have added the path to your m64 installation and the user. bin folder this is used by the software console to build the hss and you will get an error if you haven't added this to your system path now that I have done that I can continue building the hss if you go to the polarfire soc github organization the hss can be found in the repositories if I open it here you can clone or download a copy of the hss once you have done that open the virtual console version 6.4 or higher and select the file and then import and under the general header select projects existing in the workspace and click Next browse to the folder where you downloaded a copy of the hss repository and select the folder when the virtual console finds the heart software services project make sure it is selected and click finish now that has been imported.
You can see it in the project explorer on the left side and you have to follow one step which is to configure the actual hss build that you are going to use for this example. I'm going to use the default emmc configuration if you open the boards folder and then the icicle folder is there are two def config files, one def config and one def config.sd card, the first devconfig is for the emmc configuration and the sd card defconfig dot is for sd card configuration, copy the one that applies to you and paste it into the top level software services project folder, find it in the top level folder and rename the file, in this case just we want to call this point config and then click OK once you have done this make sure you have selected the heart software services project and generated the default build configuration.
Ok, now let's take a look at the hss build configuration. One thing you may want to change is the xml that hss uses, for example if you change mss settings with a different clock. frequency and you wanted to build this xml with your hss to do this open the heart software services project open the boards folder and then select your target and in my case it is the icicle kit here there are two folders soc the soc configuration the folder contains the generated soc configuration header files which are produced by the xml and the soc fpga layout folder actually contains the source xml.
When you replace this file during a build, the soc configuration generator runs and replaces the contents of the soc configuration. folder so to update soc configuration you just need to update xml file shown here now if you want to reconfigure hss with different features for example default hss build includes usbd msc service but if you want to include service like as a modem and, you would have to use k config lib and menu configuration system to actually configure the hss system iphone open here and I changed to the um folder which contains the soft console project for my hss project and the reason why What I did is that I downloaded the Heart software services master repository to my downloads folder, but I copied the project to my virtual console workspace, so my virtual console workspace is on my drive. , which is separate from where I cloned the repository, so make sure you've switched to the correct folder once you've done that, in my case I've already copied the icicle um icicle kit definition configuration into my top level project folder , so if I type make and then in uppercase dash equals icicle kit or icicle dash case is config it opens the configuration dialog for me, so there are several options that you can configure for example in service , you can select the destination address where packets are decompressed, so this is the ddor location that will be used to decompress an image when copying from a source destination you can also configure, for example, if you have mmc support and the mmc mode which is used for emmc or sd card and the voltages that are supplied, you could add q spy if you were using q spy as storage media and various other services for example as i mentioned and modem if you want to enable the service press space to select it and the same applies if you want to deselect a service, there are compression options available, you can configure the overall build. options for example if you want to include um open sbi or not you can set the build options and then also the debug options when you are done setting up the hss if you enter q m it will exit or you can save and exit by pressing s and this will tell you it asks you to name your file so that this file is called dot config which will be used when I actually run a build and if I press q I will now exit the menu configuration utility.

If you have any copyright issue, please Contact