Hi all,
In fact, I am looking for a micro-kernel based hypervisor (like L4:pistachio or Fiasco) to run on the SCC. The only pointer I found was a port of Fiasco OS for Intel SCC recently (http://os.inf.tu-dresden.de/papers_ps/partheymueller-beleg.pdf) and would like to try this.
I had a few questions though:
a. Is the public version of fiasco compatible with the SCC? If not, is it possible to get it? b. Since SCC uses a different compiler set (much older than gcc 4.4), does the compilation work out of the box? c. Finally, has anyone run L4Linux on top of the SCC?
Thanks in advance, Ramya
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 06/04/2014 10:07 AM, Masti Ramya Jayaram wrote:
Hi all,
In fact, I am looking for a micro-kernel based hypervisor (like L4:pistachio or Fiasco) to run on the SCC. The only pointer I found was a port of Fiasco OS for Intel SCC recently (http://os.inf.tu-dresden.de/papers_ps/partheymueller-beleg.pdf) and would like to try this.
I had a few questions though:
a. Is the public version of fiasco compatible with the SCC? If not, is it possible to get it?
The only major problem is booting Fiasco on the SCC. You will have to write a simple boot loader that uses the SCC's tools to write all the boot modules into the SCC's memory. After that it is rather straight-forward, except for the special page attributes the SCC supports, if you want to do message passing.
Regarding the code, maybe Markus (CCed) knows more.
b. Since SCC uses a different compiler set (much older than gcc 4.4), does the compilation work out of the box?
You don't need a special compiler for the SCC. Any version of gcc or clang will work if you set the compilation target to Pentium.
c. Finally, has anyone run L4Linux on top of the SCC?
Yes, I believe we did. Markus?
Btw, what do you want to achieve? The SCC is an abandoned and buggy platform.
Julian
Julian Stecklina <jsteckli <at> os.inf.tu-dresden.de> writes:
The only major problem is booting Fiasco on the SCC. You will have to write a simple boot loader that uses the SCC's tools to write all the boot modules into the SCC's memory. After that it is rather straight-forward, except for the special page attributes the SCC supports, if you want to do message passing.
Regarding the code, maybe Markus (CCed) knows more.
Great! I hope to hear more from Markus.
You don't need a special compiler for the SCC. Any version of gcc or clang will work if you set the compilation target to Pentium.
Ok.
c. Finally, has anyone run L4Linux on top of the SCC?
Yes, I believe we did. Markus?
In this case, it would be great to simply replicate your setup!
Btw, what do you want to achieve? The SCC is an abandoned and buggy platform.
I have to implement a "thin" hypervisor that can run linux on the SCC for one of my projects. Although the SCC is an outdated platform, it works ok for us to use it for prototypes.
Thanks again for your prompt reply. I must admit that as a first-time user of such a forum, I am really happy with how responsive this mailing list is.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
The only major problem is booting Fiasco on the SCC. You will have to write a simple boot loader that uses the SCC's tools to write all the boot modules into the SCC's memory. After that it is rather straight-forward, except for the special page attributes the SCC supports, if you want to do message passing.
Regarding the code, maybe Markus (CCed) knows more.
Great! I hope to hear more from Markus.
Indeed, one major step was to load the respective data onto the SCC and start it. The rest was to accommodate for the various particularities (no VGA, no input devices, no fixed frequency timer device, the special message passing buffer type, etc.)
The changes to the kernel have not been merged into upstream because they were very specific to the SCC and of little more generic use. But I can send you the patch if you want.
You don't need a special compiler for the SCC. Any version of gcc or clang will work if you set the compilation target to Pentium.
Ok.
c. Finally, has anyone run L4Linux on top of the SCC?
Yes, I believe we did. Markus?
In this case, it would be great to simply replicate your setup!
Yes, you should be able to run almost every ELF binary (conditions may apply...) produced by the L4Re build system (make elfimage E=yourmoduleentry), including L4Linux. But I have to say that we did not have the time for looking into larger deployments at the time. In order to load and start ELF binaries on the SCC, I wrote an extension to the sccKit that was available then. The way it worked was like this:
1) Extract ELF according to the ELF headers and copy it to the SCC's memory
2) Place protected mode boot code and the reset vector in memory
3) Set up multiboot information structure (for memory maps)
4) Set up an I/O connection for providing serial connection with the core
Now, if I remember correctly, a lot of improvement has been made to the sccKit and the whole interaction with the chip after I finished this project (virtual framebuffers, serial output, etc.). So I tend to doubt that this part of my (fairly outdated) work will be of any practical use to you. But you could of course have a look at it.
So let me know if I should send you some examples, but keep in mind that it is all horribly outdated.
Cheers
Markus
Markus Partheymueller <mpartheym <at> os.inf.tu-dresden.de> writes:
The changes to the kernel have not been merged into upstream because they were very specific to the SCC and of little more generic use. But I can send you the patch if you want.
That would be great! Also, do let me know the version of the compiler, fiasco and l4re you used just to be sure. Alternatively, the source tree will also work.
Yes, you should be able to run almost every ELF binary (conditions may apply...) produced by the L4Re build system (make elfimage E=yourmoduleentry), including L4Linux. But I have to say that we did not have the time for looking into larger deployments at the time. In order to load and start ELF binaries on the SCC, I wrote an extension to the sccKit that was available then. The way it worked was like this:
- Extract ELF according to the ELF headers and copy it to the SCC's
memory
Place protected mode boot code and the reset vector in memory
Set up multiboot information structure (for memory maps)
Set up an I/O connection for providing serial connection with the core
1,2,3 are possible but 4 depends on the OS I guess. Send me this as well in any case and I will get back to you if I have problems.
Now, if I remember correctly, a lot of improvement has been made to the sccKit and the whole interaction with the chip after I finished this project (virtual framebuffers, serial output, etc.). So I tend to doubt that this part of my (fairly outdated) work will be of any practical use to you. But you could of course have a look at it.
No problem. I will get back to you if I have problems.
Thanks, Ramya
l4-hackers@os.inf.tu-dresden.de