Hi, I want to build a system based on the TZ_VMM example where a user space Linux application can trigger a SMC. This SMC will tell the secure world to display an image (and then return to the normal world after some time or after the user explicitly triggers another world switch).
For now I want to start by using Linux on the Normal World, but I want to eventually run Android in the Normal World.
The question which made me come to the mailing list is the following: in your article regarding TrustZone [1], section "Additional device drivers", you write that in order to run Android at almost-native performance in the normal world you used hardware overlays and that you invested significant development time into enabling this feature on the QSB.
Does this mean you have a working framebuffer driver for the i.MX53 QSB as well as a working example on how to use hardware overlays on this platform?
If so I would like to know where can I get the mentioned framebuffer driver as well as the hardware overlay example.
Thanks, Tiago
[1] - An Exploration of ARM TrustZone Technology ( http://genode.org/documentation/articles/trustzone)
I was wondering about 2 things:
observation_1)
It takes a "big" market to drive down the unit cost of anything that requires development, specially hardware. The more people buy a microchip, the more the cost of its development can be spread across the end users of the microchip.
observation_2)
The more universal a piece of equipment is, the greater its potential market.
observation_3)
The WiFi chipsets and GPU-s are ridiculously cheap compared to the effort that went in to designing them. Semiconductor Foundries that service multiple vendors, produce totally different chips, are a stellar example, how gigantic investment can be diluted to the point that people consider their products cheap commodities.
The question, "The Q", is: if drivers for WiFi cards, GPU-s, USB pheripherals, etc. are such an issue, then why isn't there an economic incentive to just produce loads-and-loads of FPGA-fabric and make every OS just read in, how the fabric has been connected in the current hardware, re-compile VHDL and load its own code to the FPGA-fabric, ELIMINATING THE NEEDS FOR HARDWARE VENDORS TO INVEST TO DRIVER DEVELOPMENT and INCREASING THE POTENTIAL MARKET FOR THE HARDWARE, FOR THE PRODUCTS OF THE HARDWARE PRODUCESRS?
What am I missing?
The economics is there, technology is there, a RELATIVELY RECENT precedent of introducing new types of computers to the market is there, in the form of Android phones and touchschreen based readers. There's even a competitor to the ARM: http://riscv.org/
Basically, the first, if not the very first, then at least the second, FPGA-vendor, who creates a proper set of open tools wins the market and buries the Intel and AMD and ARM alive. The various FPGA-patents should also be outdated by now. A prototype might be made by loading a closed source FPGA with a VHDL-design that implements the open source FPGA. Even that has been done: "Flavia: the Free Logic Array"
https://www.element14.com/community/groups/fpga-group/blog/2014/07/21/flavia...
I admit, I do not imagine that any classical Venture Capitalist would ever invest to that project, but, hell, most of them did not invest even in Google and Facebook.
Thank You for reading my letter and I hope to receive critisism that explains, why the idea described in this letter is hopeless or otherwise dumb or stupid.
Thank Your. :-)
Somewhat esoteric, Martin.Vahi@...427...
Hello Tiago,
On 05/27/2016 04:59 PM, Tiago Brito wrote:
Hi, I want to build a system based on the TZ_VMM example where a user space Linux application can trigger a SMC. This SMC will tell the secure world to display an image (and then return to the normal world after some time or after the user explicitly triggers another world switch).
For now I want to start by using Linux on the Normal World, but I want to eventually run Android in the Normal World.
The question which made me come to the mailing list is the following: in your article regarding TrustZone [1], section "Additional device drivers", you write that in order to run Android at almost-native performance in the normal world you used hardware overlays and that you invested significant development time into enabling this feature on the QSB.
Does this mean you have a working framebuffer driver for the i.MX53 QSB as well as a working example on how to use hardware overlays on this platform?
If so I would like to know where can I get the mentioned framebuffer driver as well as the hardware overlay example.
The framebuffer driver is part of the Genode OS framework and can be found at repos/os/src/drivers/framebuffer/spec/imx53/*
It is automatically build when compiling drivers/framebuffer for the corresponding build target, e.g., hw_imx53_qsb. Be aware of the fact that it currently hardcodes to use the tablet's touchscreen display when using the SABRE tablet, and to use the LCD board extension when using i.MX53 QSB. It won't work with VGA connected to the i.MX53 QSB in the current state. Moreover, the mentioned overlay mechanism although also present in the driver is only tested using the SABRE tablet settings.
Regards Stefan
Thanks, Tiago
[1] - An Exploration of ARM TrustZone Technology ( http://genode.org/documentation/articles/trustzone)
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello Tiago,
Hi Stefan, thanks for your response.
On 05/27/2016 04:59 PM, Tiago Brito wrote:
Hi, I want to build a system based on the TZ_VMM example where a user
space
Linux application can trigger a SMC. This SMC will tell the secure
world to
display an image (and then return to the normal world after some time or after the user explicitly triggers another world switch).
For now I want to start by using Linux on the Normal World, but I want
to
eventually run Android in the Normal World.
The question which made me come to the mailing list is the following: in your article regarding TrustZone [1], section "Additional device
drivers",
you write that in order to run Android at almost-native performance in
the
normal world you used hardware overlays and that you invested
significant
development time into enabling this feature on the QSB.
Does this mean you have a working framebuffer driver for the i.MX53 QSB
as
well as a working example on how to use hardware overlays on this
platform?
If so I would like to know where can I get the mentioned framebuffer
driver
as well as the hardware overlay example.
The framebuffer driver is part of the Genode OS framework and can be found at repos/os/src/drivers/framebuffer/spec/imx53/*
It is automatically build when compiling drivers/framebuffer for the corresponding build target, e.g., hw_imx53_qsb. Be aware of the fact that it currently hardcodes to use the tablet's touchscreen display when using the SABRE tablet, and to use the LCD board extension when using i.MX53 QSB. It won't work with VGA connected to the i.MX53 QSB in the current state.
What changes am I expected to do in order to make the framebuffer driver work with the VGA connected to the i.MX53 QSB?
What I want to do with this is to have a simple command line application running on linux (Normal World). I want to keep the interaction between user and Linux as is (serial connection - tz_vmm example). This application calls some kernel module function which in turn triggers an SMC. Then the secure world (tz_vmm) detects the SMC from the application and displays an image to the user (for now it could just fill the screen with some color).
Moreover, the mentioned overlay mechanism although also present in the driver is only tested using the SABRE tablet settings.
In the past I have adapted an On-board Diagnostics Suite from Freescale to display images using my bare metal program. I stripped the OBDS down to the standalone IPU and I sent the bits to the configured MMIO for the framebuffer. This wasn't that hard to do, but it's not really flexible. I had no user interface, just plain BITMAP imagens which were displayed for some time.
I'm wondering if it's easier to modify your framebuffer driver in order to support VGA (which would be a much flexible solution since I could then use other components from Genode, like nitpicker - right?) or should I just try to adapt the OBDS code to work inside Genode?
Regards Stefan
Thanks again!!
Best Regards, Tiago
2016-05-31 10:44 GMT+01:00 Stefan Kalkowski < stefan.kalkowski@...1...>:
Hello Tiago,
On 05/27/2016 04:59 PM, Tiago Brito wrote:
Hi, I want to build a system based on the TZ_VMM example where a user
space
Linux application can trigger a SMC. This SMC will tell the secure world
to
display an image (and then return to the normal world after some time or after the user explicitly triggers another world switch).
For now I want to start by using Linux on the Normal World, but I want to eventually run Android in the Normal World.
The question which made me come to the mailing list is the following: in your article regarding TrustZone [1], section "Additional device
drivers",
you write that in order to run Android at almost-native performance in
the
normal world you used hardware overlays and that you invested significant development time into enabling this feature on the QSB.
Does this mean you have a working framebuffer driver for the i.MX53 QSB
as
well as a working example on how to use hardware overlays on this
platform?
If so I would like to know where can I get the mentioned framebuffer
driver
as well as the hardware overlay example.
The framebuffer driver is part of the Genode OS framework and can be found at repos/os/src/drivers/framebuffer/spec/imx53/*
It is automatically build when compiling drivers/framebuffer for the corresponding build target, e.g., hw_imx53_qsb. Be aware of the fact that it currently hardcodes to use the tablet's touchscreen display when using the SABRE tablet, and to use the LCD board extension when using i.MX53 QSB. It won't work with VGA connected to the i.MX53 QSB in the current state. Moreover, the mentioned overlay mechanism although also present in the driver is only tested using the SABRE tablet settings.
Regards Stefan
Thanks, Tiago
[1] - An Exploration of ARM TrustZone Technology ( http://genode.org/documentation/articles/trustzone)
What NetFlow Analyzer can do for you? Monitors network bandwidth and
traffic
patterns at an interface-level. Reveals which users, apps, and protocols
are
consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.
https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
-- Stefan Kalkowski Genode Labs
http://www.genode-labs.com/ · http://genode.org/
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
On 05/31/2016 12:37 PM, Tiago Brito wrote:
Hello Tiago,
Hi Stefan, thanks for your response.
On 05/27/2016 04:59 PM, Tiago Brito wrote:
Hi, I want to build a system based on the TZ_VMM example where a user
space
Linux application can trigger a SMC. This SMC will tell the secure
world to
display an image (and then return to the normal world after some time or after the user explicitly triggers another world switch).
For now I want to start by using Linux on the Normal World, but I want
to
eventually run Android in the Normal World.
The question which made me come to the mailing list is the following: in your article regarding TrustZone [1], section "Additional device
drivers",
you write that in order to run Android at almost-native performance in
the
normal world you used hardware overlays and that you invested
significant
development time into enabling this feature on the QSB.
Does this mean you have a working framebuffer driver for the i.MX53 QSB
as
well as a working example on how to use hardware overlays on this
platform?
If so I would like to know where can I get the mentioned framebuffer
driver
as well as the hardware overlay example.
The framebuffer driver is part of the Genode OS framework and can be found at repos/os/src/drivers/framebuffer/spec/imx53/*
It is automatically build when compiling drivers/framebuffer for the corresponding build target, e.g., hw_imx53_qsb. Be aware of the fact that it currently hardcodes to use the tablet's touchscreen display when using the SABRE tablet, and to use the LCD board extension when using i.MX53 QSB. It won't work with VGA connected to the i.MX53 QSB in the current state.
What changes am I expected to do in order to make the framebuffer driver work with the VGA connected to the i.MX53 QSB?
Well, I do not know otherwise it would be available as an option within the driver already. You might study the quite voluminous documentation of the IPU of Freescale, or trace I/O register accesses of a working example, e.g., from the Linux kernel, or you combine both techniques.
What I want to do with this is to have a simple command line application running on linux (Normal World). I want to keep the interaction between user and Linux as is (serial connection - tz_vmm example). This application calls some kernel module function which in turn triggers an SMC. Then the secure world (tz_vmm) detects the SMC from the application and displays an image to the user (for now it could just fill the screen with some color).
Moreover, the mentioned overlay mechanism although also present in the driver is only tested using the SABRE tablet settings.
In the past I have adapted an On-board Diagnostics Suite from Freescale to display images using my bare metal program. I stripped the OBDS down to the standalone IPU and I sent the bits to the configured MMIO for the framebuffer. This wasn't that hard to do, but it's not really flexible. I had no user interface, just plain BITMAP imagens which were displayed for some time.
I'm wondering if it's easier to modify your framebuffer driver in order to support VGA (which would be a much flexible solution since I could then use other components from Genode, like nitpicker - right?) or should I just try to adapt the OBDS code to work inside Genode?
I really cannot answer that for you. I can only say that I had some longstanding debug sessions when enabling the IPU together with the SABRE tablet's display and the overlay mechanism. But maybe its less complicated just to enable the VGA connector. And yes you are right that you can use other Genode components then as well.
Regards Stefan
Regards Stefan
Thanks again!!
Best Regards, Tiago
2016-05-31 10:44 GMT+01:00 Stefan Kalkowski < stefan.kalkowski@...1...>:
Hello Tiago,
On 05/27/2016 04:59 PM, Tiago Brito wrote:
Hi, I want to build a system based on the TZ_VMM example where a user
space
Linux application can trigger a SMC. This SMC will tell the secure world
to
display an image (and then return to the normal world after some time or after the user explicitly triggers another world switch).
For now I want to start by using Linux on the Normal World, but I want to eventually run Android in the Normal World.
The question which made me come to the mailing list is the following: in your article regarding TrustZone [1], section "Additional device
drivers",
you write that in order to run Android at almost-native performance in
the
normal world you used hardware overlays and that you invested significant development time into enabling this feature on the QSB.
Does this mean you have a working framebuffer driver for the i.MX53 QSB
as
well as a working example on how to use hardware overlays on this
platform?
If so I would like to know where can I get the mentioned framebuffer
driver
as well as the hardware overlay example.
The framebuffer driver is part of the Genode OS framework and can be found at repos/os/src/drivers/framebuffer/spec/imx53/*
It is automatically build when compiling drivers/framebuffer for the corresponding build target, e.g., hw_imx53_qsb. Be aware of the fact that it currently hardcodes to use the tablet's touchscreen display when using the SABRE tablet, and to use the LCD board extension when using i.MX53 QSB. It won't work with VGA connected to the i.MX53 QSB in the current state. Moreover, the mentioned overlay mechanism although also present in the driver is only tested using the SABRE tablet settings.
Regards Stefan
Thanks, Tiago
[1] - An Exploration of ARM TrustZone Technology ( http://genode.org/documentation/articles/trustzone)
What NetFlow Analyzer can do for you? Monitors network bandwidth and
traffic
patterns at an interface-level. Reveals which users, apps, and protocols
are
consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.
https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
-- Stefan Kalkowski Genode Labs
http://www.genode-labs.com/ · http://genode.org/
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main