Hi Genodians,
I would like to tell you what I am trying to achieve.
I want to have Genode as a service system for RISC OS. When aarch32 is dropped from Cortex cpu's it will also provide emulation services.
Right now I run RISC OS fully natively on core 1 and Genode on core 0 (A53). The reason for doing this on iMX8M is that it , since a week or so , is supported by both systems.
Besides drivers , I also want to take advantage from some apps. A good example is a webbrowser. Genode is much better suited to run such applications. The idea is to run render and network tasks on Genode , but with a RISC OS allocated buffer as its framebuffer. On RISC OS it will look and feel like a native app.
It will also be a base for converting RISC OS kernel to C. By trapping SWI's from RISC OS to Genode I can implement them in C/C++. The goal is to have as much as possible running natively on aarch64. Today the RISC OS kernel is assembler.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
Hi, Sorry if I misunderstood, but you would like to run Genode os as a virtual machine in your RISC OS (or something similar)?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:36 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
Hi Genodians,
I would like to tell you what I am trying to achieve.
I want to have Genode as a service system for RISC OS. When aarch32 is dropped from Cortex cpu's it will also provide emulation services.
Right now I run RISC OS fully natively on core 1 and Genode on core 0 (A53). The reason for doing this on iMX8M is that it , since a week or so , is supported by both systems.
Besides drivers , I also want to take advantage from some apps. A good example is a webbrowser. Genode is much better suited to run such applications. The idea is to run render and network tasks on Genode , but with a RISC OS allocated buffer as its framebuffer. On RISC OS it will look and feel like a native app.
It will also be a base for converting RISC OS kernel to C. By trapping SWI's from RISC OS to Genode I can implement them in C/C++. The goal is to have as much as possible running natively on aarch64. Today the RISC OS kernel is assembler.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
No. Both systems is running natively at the moment. If first tried to start Genode from RISC OS, but Genode refused to run on anything else than boot cpu (core 0). That is as cpu0.
In message <CAO3d8Hhe8oj3sMZBpEqt_O-YFKwUOM2BbxekcS126VBRhB+mew@mail.gmail .com> Edoardo Mantovani mantovani.edoardo18@gmail.com wrote:
Hi, Sorry if I misunderstood, but you would like to run Genode os as a virtual machine in your RISC OS (or something similar)?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:36 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
Hi Genodians,
I would like to tell you what I am trying to achieve.
I want to have Genode as a service system for RISC OS. When aarch32 is dropped from Cortex cpu's it will also provide emulation services.
Right now I run RISC OS fully natively on core 1 and Genode on core 0 (A53). The reason for doing this on iMX8M is that it , since a week or so , is supported by both systems.
Besides drivers , I also want to take advantage from some apps. A good example is a webbrowser. Genode is much better suited to run such applications. The idea is to run render and network tasks on Genode , but with a RISC OS allocated buffer as its framebuffer. On RISC OS it will look and feel like a native app.
It will also be a base for converting RISC OS kernel to C. By trapping SWI's from RISC OS to Genode I can implement them in C/C++. The goal is to have as much as possible running natively on aarch64. Today the RISC OS kernel is assembler.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Ah ok, now is more clear, but Honestly with no abstraction layers, I cannot think how this could be possible in real life (never seen something similar), But the idea of ""split"" the cpu or at least occupy more than 1 cpu for this task can be cool.
But, if i can ask, what benefit would you get from this action?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:48 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
No. Both systems is running natively at the moment. If first tried to start Genode from RISC OS, but Genode refused to run on anything else than boot cpu (core 0). That is as cpu0.
In message <CAO3d8Hhe8oj3sMZBpEqt_O-YFKwUOM2BbxekcS126VBRhB+mew@mail.gmail .com> Edoardo Mantovani mantovani.edoardo18@gmail.com wrote:
Hi, Sorry if I misunderstood, but you would like to run Genode os as a
virtual
machine in your RISC OS (or something similar)?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:36 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
Hi Genodians,
I would like to tell you what I am trying to achieve.
I want to have Genode as a service system for RISC OS. When aarch32 is dropped from Cortex cpu's it will also provide emulation services.
Right now I run RISC OS fully natively on core 1 and Genode on core 0 (A53). The reason for doing this on iMX8M is that it , since a week or
so
, is supported by both systems.
Besides drivers , I also want to take advantage from some apps. A good example is a webbrowser. Genode is much better suited to run such applications. The idea is to run render and network tasks on Genode ,
but
with a RISC OS allocated buffer as its framebuffer. On RISC OS it will look and feel like a native app.
It will also be a base for converting RISC OS kernel to C. By trapping SWI's from RISC OS to Genode I can implement them in C/C++. The goal is
to
have as much as possible running natively on aarch64. Today the RISC OS kernel is assembler.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hi Edoardo,
I have done something similar with RISC OS and NetBSD. but in that case I did drivers in NetBSD for getting something to output framebuffer on. So most hardware was been running in RISC OS. You can read about it here: http://www.update.uu.se/~micken/ronetbsd.html
On Fri, 5 Mar 2021 at 13:53, Edoardo Mantovani < mantovani.edoardo18@gmail.com> wrote:
Ah ok, now is more clear, but Honestly with no abstraction layers, I cannot think how this could be possible in real life (never seen something similar), But the idea of ""split"" the cpu or at least occupy more than 1 cpu for this task can be cool.
But, if i can ask, what benefit would you get from this action?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:48 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
No. Both systems is running natively at the moment. If first tried to start Genode from RISC OS, but Genode refused to run on anything else than boot cpu (core 0). That is as cpu0.
In message <CAO3d8Hhe8oj3sMZBpEqt_O-YFKwUOM2BbxekcS126VBRhB+mew@mail.gmail .com> Edoardo Mantovani mantovani.edoardo18@gmail.com wrote:
Hi, Sorry if I misunderstood, but you would like to run Genode os as a
virtual
machine in your RISC OS (or something similar)?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:36 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
Hi Genodians,
I would like to tell you what I am trying to achieve.
I want to have Genode as a service system for RISC OS. When aarch32 is dropped from Cortex cpu's it will also provide emulation services.
Right now I run RISC OS fully natively on core 1 and Genode on core 0 (A53). The reason for doing this on iMX8M is that it , since a week or
so
, is supported by both systems.
Besides drivers , I also want to take advantage from some apps. A good example is a webbrowser. Genode is much better suited to run such applications. The idea is to run render and network tasks on Genode ,
but
with a RISC OS allocated buffer as its framebuffer. On RISC OS it will look and feel like a native app.
It will also be a base for converting RISC OS kernel to C. By trapping SWI's from RISC OS to Genode I can implement them in C/C++. The goal
is to
have as much as possible running natively on aarch64. Today the RISC OS kernel is assembler.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
--
Edoardo Mantovani *Independent security researcher* *email: *Baseband@cpan.org Urbino, Italy _______________________________________________ Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hi Michael, Sorry if I am late, but only now I had time for read this: http://www.update.uu.se/~micken/ronetbsd.html
Extremely interesting and, at the same time, extremely fast to read, I have only one question: Have you created two more GRUB partitions (separate one from each other) to boot the 2 systems? it would be interesting to know more about the boot phase because honestly I can't understand if there could be problems related to the probe of the connected devices (like, if the 2 OS at the same time probe via PCI for the same hardware at the same time, could an error occur? for example something like "device busy, impossible to connect with it"?) It would be very interesting for an article about an advanced Fault Injection methodology that I've been thinking about for a long time.
Let me know, Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 14:02 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
Hi Edoardo,
I have done something similar with RISC OS and NetBSD. but in that case I did drivers in NetBSD for getting something to output framebuffer on. So most hardware was been running in RISC OS. You can read about it here: http://www.update.uu.se/~micken/ronetbsd.html
On Fri, 5 Mar 2021 at 13:53, Edoardo Mantovani < mantovani.edoardo18@gmail.com> wrote:
Ah ok, now is more clear, but Honestly with no abstraction layers, I cannot think how this could be possible in real life (never seen something similar), But the idea of ""split"" the cpu or at least occupy more than 1 cpu for this task can be cool.
But, if i can ask, what benefit would you get from this action?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:48 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
No. Both systems is running natively at the moment. If first tried to start Genode from RISC OS, but Genode refused to run on anything else than boot cpu (core 0). That is as cpu0.
In message <CAO3d8Hhe8oj3sMZBpEqt_O-YFKwUOM2BbxekcS126VBRhB+mew@mail.gmail .com> Edoardo Mantovani mantovani.edoardo18@gmail.com wrote:
Hi, Sorry if I misunderstood, but you would like to run Genode os as a
virtual
machine in your RISC OS (or something similar)?
Regards, Edoardo Mantovani, 2021
Il giorno ven 5 mar 2021 alle ore 13:36 Michael Grunditz < michael.grunditz@gmail.com> ha scritto:
Hi Genodians,
I would like to tell you what I am trying to achieve.
I want to have Genode as a service system for RISC OS. When aarch32 is dropped from Cortex cpu's it will also provide emulation services.
Right now I run RISC OS fully natively on core 1 and Genode on core 0 (A53). The reason for doing this on iMX8M is that it , since a week
or so
, is supported by both systems.
Besides drivers , I also want to take advantage from some apps. A
good
example is a webbrowser. Genode is much better suited to run such applications. The idea is to run render and network tasks on Genode ,
but
with a RISC OS allocated buffer as its framebuffer. On RISC OS it will look and feel like a native app.
It will also be a base for converting RISC OS kernel to C. By trapping SWI's from RISC OS to Genode I can implement them in C/C++. The goal
is to
have as much as possible running natively on aarch64. Today the RISC
OS
kernel is assembler.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
--
Edoardo Mantovani *Independent security researcher* *email: *Baseband@cpan.org Urbino, Italy _______________________________________________ Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
In message <CAO3d8HiWwzqnWE+GqGYOhWaJN6KOmiidFBLB6rJC+x2_Mx7Btw@mail.gmail .com> Edoardo Mantovani mantovani.edoardo18@gmail.com wrote:
Hi Michael, Sorry if I am late, but only now I had time for read this: http://www.update.uu.se/~micken/ronetbsd.html
Thanks.
Extremely interesting and, at the same time, extremely fast to read, I have only one question: Have you created two more GRUB partitions (separate one from each other) to boot the 2 systems?
ARM doesn't use GRUB , it uses u-boot. I have only done this for RK3399 SoC. It started with the fact that the cpu was continuing running after I started RISC OS on the A72 core 0. I figured that this could be (ab)used to run a second system.
it would be interesting to know more about the boot phase because honestly I can't understand if there could be problems related to the probe of the connected devices (like, if the 2 OS at the same time probe via PCI for the same hardware at the same time, could an error occur? for example something like "device busy, impossible to connect with it"?) It would be very interesting for an article about an advanced Fault Injection methodology that I've been thinking about for a long time.
I am very careful not to use the same devices from the different OSes. I am using what is called affinity routing in the interrupt "chip" (General Interrupt Controller). It does route the interrupts to different CPUs. That means that only the supported hardware interrupts.
I have written a couple of drivers for NetBSD in order to use the WiMP in RISC OS (the desktop) as input and display devices.
The NetBSD project is the first of it kind ,according to NetBSD developers. There are other uses that do run a realtime system on a small cpu. But I haven't found anything that does run full scale OSes without virtualization . Correct me if I am wrong!
Let me know, Regards, Edoardo Mantovani, 2021
<big snip>
You can in theory run 4 OSes on a quad core cpu. But the OSes needs to be able to run quite limited.
Best regards,
Michael
Hello Michael,
I'm pretty sure you already know that, but just in case you don't:
within the i.MX 8M SoC there is a security mechanism called "resource domain controller" that enables one to divide the device peripherals in between different OSes running on the different cores. Which means you can - beside the IRQ routing - also prevent that the wrong OS touches a MMIO region of a device not assigned to it. I have not used that mechanism actively, but given your use-case it might be interesting for you.
Best regards Stefan
On Mon, Mar 08, 2021 at 01:58:40AM +0100, Michael Grunditz wrote:
In message <CAO3d8HiWwzqnWE+GqGYOhWaJN6KOmiidFBLB6rJC+x2_Mx7Btw@mail.gmail .com> Edoardo Mantovani mantovani.edoardo18@gmail.com wrote:
Hi Michael, Sorry if I am late, but only now I had time for read this: http://www.update.uu.se/~micken/ronetbsd.html
Thanks.
Extremely interesting and, at the same time, extremely fast to read, I have only one question: Have you created two more GRUB partitions (separate one from each other) to boot the 2 systems?
ARM doesn't use GRUB , it uses u-boot. I have only done this for RK3399 SoC. It started with the fact that the cpu was continuing running after I started RISC OS on the A72 core 0. I figured that this could be (ab)used to run a second system.
it would be interesting to know more about the boot phase because honestly I can't understand if there could be problems related to the probe of the connected devices (like, if the 2 OS at the same time probe via PCI for the same hardware at the same time, could an error occur? for example something like "device busy, impossible to connect with it"?) It would be very interesting for an article about an advanced Fault Injection methodology that I've been thinking about for a long time.
I am very careful not to use the same devices from the different OSes. I am using what is called affinity routing in the interrupt "chip" (General Interrupt Controller). It does route the interrupts to different CPUs. That means that only the supported hardware interrupts.
I have written a couple of drivers for NetBSD in order to use the WiMP in RISC OS (the desktop) as input and display devices.
The NetBSD project is the first of it kind ,according to NetBSD developers. There are other uses that do run a realtime system on a small cpu. But I haven't found anything that does run full scale OSes without virtualization . Correct me if I am wrong!
Let me know, Regards, Edoardo Mantovani, 2021
<big snip>
You can in theory run 4 OSes on a quad core cpu. But the OSes needs to be able to run quite limited.
Best regards,
Michael
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hi Stefan,
I don't know how RDC would help me. It is useful for shared peripherals, but for shared memory addresses will be different each time. Thanks for reminding me! The manual is pretty big.
On Mon, 8 Mar 2021 at 10:14, Stefan Kalkowski stefan.kalkowski@genode-labs.com wrote:
Hello Michael,
I'm pretty sure you already know that, but just in case you don't:
within the i.MX 8M SoC there is a security mechanism called "resource domain controller" that enables one to divide the device peripherals in between different OSes running on the different cores. Which means you can - beside the IRQ routing - also prevent that the wrong OS touches a MMIO region of a device not assigned to it. I have not used that mechanism actively, but given your use-case it might be interesting for you.
Best regards Stefan
On Mon, Mar 08, 2021 at 01:58:40AM +0100, Michael Grunditz wrote:
In message <CAO3d8HiWwzqnWE+GqGYOhWaJN6KOmiidFBLB6rJC+x2_Mx7Btw@mail.gmail .com> Edoardo Mantovani mantovani.edoardo18@gmail.com wrote:
Hi Michael, Sorry if I am late, but only now I had time for read this: http://www.update.uu.se/~micken/ronetbsd.html
Thanks.
Extremely interesting and, at the same time, extremely fast to read, I have only one question: Have you created two more GRUB partitions (separate one from each other) to boot the 2 systems?
ARM doesn't use GRUB , it uses u-boot. I have only done this for RK3399 SoC. It started with the fact that the cpu was continuing running after I started RISC OS on the A72 core 0. I figured that this could be (ab)used to run a second system.
it would be interesting to know more about the boot phase because honestly I can't understand if there could be problems related to the probe of the connected devices (like, if the 2 OS at the same time probe via PCI for the same hardware at the same time, could an error occur? for example something like "device busy, impossible to connect with it"?) It would be very interesting for an article about an advanced Fault Injection methodology that I've been thinking about for a long time.
I am very careful not to use the same devices from the different OSes. I am using what is called affinity routing in the interrupt "chip" (General Interrupt Controller). It does route the interrupts to different CPUs. That means that only the supported hardware interrupts.
I have written a couple of drivers for NetBSD in order to use the WiMP in RISC OS (the desktop) as input and display devices.
The NetBSD project is the first of it kind ,according to NetBSD developers. There are other uses that do run a realtime system on a small cpu. But I haven't found anything that does run full scale OSes without virtualization . Correct me if I am wrong!
Let me know, Regards, Edoardo Mantovani, 2021
<big snip>
You can in theory run 4 OSes on a quad core cpu. But the OSes needs to be able to run quite limited.
Best regards,
Michael
-- Michael Grunditz Sent from my RISC OS workstation..
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
-- Stefan Kalkowski Genode labs
https://github.com/skalk | https://genode.org
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hi Michael,
thank you for the insights into your plans!
Personally, I find the combination of both systems fascinating to see, and I would love to tinker with such a hybrid system.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
I wonder, why do you think anyone would dislike it?
Have you considered presenting your work at https://genodians.org?
Cheers Norman
In message 58b7d3e9-30c0-6a1f-56b9-5c4838d11277@genode-labs.com Norman Feske norman.feske@genode-labs.com wrote:
Hi Michael,
thank you for the insights into your plans!
Personally, I find the combination of both systems fascinating to see, and I would love to tinker with such a hybrid system.
I want to keep the RISC OS experience as it is today, and this hybrid solution is a experiment to see how it all can be solved.
If you don't like this project , please tell me now!
I wonder, why do you think anyone would dislike it?
Well, it can involve changes in Genode. But I will add it as a new board, and everything specific will be in board specific code.
Have you considered presenting your work at https://genodians.org?
Yes, but the way of posting there scares me! But if someone could do it for me , I can write something.