Skip to main content

[RTEMS/GEM5] RTEMS boot on GEM5 SPARC64


Thanks for Gedare Bloom.
This quest only to show that all the mentioned steps in his blog still work well.

Start from the case of SPARC64 on Gem5. (only for full simulation)
There is a fatal bug on Gem5 Sparc itself, about the cmdline reading error..
The error is held by the number of arguments is different.
In my opinion, I change the makeSparcSystem() with an additional argument "cmdline=None".

After that, the fs.py will report some misc. are missed.
http://gem5-users.gem5.narkive.com/MdeuWEv1/sparc-fs-trouble-running

Download the essential files of SPARC T1 from oracle and put them into binaries and disks folders/directory.
Of note, when we build Gem5 with scon command, $M5-PATH will change the default PATH of kernel loader.

Until here, all the stuffs are set up to execute!
If you directly execute the command:
build/SPARC/gem5.opt configs/example/fs.py
The result will be identical as the quest of Gedare for Booting OpenSolaris on M5 SPARC_FS.

<<<<<suppose you have the executable file from RTEMS SPRAC64>>>>>
By using the script from Gedare, we can have the executable files automatically, if the environment is set properly, in which the file is named image.iso in the boot directory.

With the generated image.iso, I stuck on the step that full simulation cannot load kernel file.
->In fact, we don't have to use the option --kernel to assign the specific kernel.
This is designed for the linux kernel case.
For se.py, I stuck on the privileged action fault. So far there is no any solution here.
At the end, run it!
build/SPARC/gem5.opt -d /tmp/output configs/example/fs.py

and use m5term to connect on port  3457 instead of 3456

For more detail, please check Gedare blog.


Comments

Popular posts from this blog

RSB+RTEMS 5/6 with QEMU-SMP (ARM realview_pbx_a9_qemu as example)

Since I got a request regarding this blog  written in 2016, summarizing again the complete flow with the latest version of RTEMS could be a good idea. Prepare a suitable workspace according to the adopted operating system on your host ( https://docs.rtems.org/branches/master/user/hosts/index.html ):  sudo apt-get build-dep build-essential gcc-defaults g++ gdb git unzip pax bison flex texinfo unzip python3-dev libpython-dev libncurses5-dev zlib1g-dev Checkout RSB and build: git clone git://git.rtems.org/rtems-source-builder.git rsb change directory to rsb/rtems/ and type ../source-builder/sb-set-builder --prefix=<the path you like to store the built toolchains> <the name of bsp> For example, to use QEMU, I need toolchains for ARM, so: ../source-builder/sb-set-builder --prefix=/home/kh.chen/respository/build/. 6/rtems-arm This will take a while. Please ensure your connection is reliable. Add the built folder into your PATH. For example, you can add one line in ~/.bas...

[LEGO nxt] Install the Enhanced NXT firmware and Upload the OSEK excutable file with Ubuntu 64bits 14.04 in 2015

This tutorial is referred from Install the Enhanced NXT firmware on NXT . I think this is the critical part to capture the idea from the tutorial for Windows. I have tried many ways to conquer the problem of libnxt3.0, however, I still have some problems on the compilation of fwflash or something else. Though the tutorial for Windows is doable, my preference is to build up everything with Linux environment. Fortunately, I notice that NxTTool in the tutorial for Windows is really powerful. We can handle the firmware updating by using NxTTool in Linux as well! I also refer to this Japanese Blog , which inspire me a lot. As usual, install the required packages: sudo apt-get install libusb-dev:i386 libusb-0.1-4 subversion fpc Please note, here is the case for 64bits user that I change libusb-dev to libusb-dev:i386 comparing to the original tutorial. Instead of using libnxt to do the uploading, here I follow that JP Blog to get the latest version of bricxcc: (The url in blog i...

Virtualenv experience or alternatives

Today I have a project which requires several packages on my python. However, due to whatever reason, I have a lot of different versions of python. Before I thought, it was fine to just install and maintain each by each. Maybe it is time to learn how to use virtualenv. (alternatively, you can use module). I first got some quick ideas from here: https://stackoverflow.com/questions/10763440/how-to-install-python3-version-of-package-via-pip-on-ubuntu The magic virtualenv does is that, it copies a series of your python binaries, include, pip, etc., into a folder. The prepared activate script does that, add the export folder into the general variable PATH at its beginning. By doing so, the targeted version of python will be the first target that will be executed. To enable virtualenv, source the position of the above folder/bin/activate To leave the virtualenv, just type deactivate, as it is defined when you load the activate script. For example, I call virtualenv in my home ...