I really appreciate the work of the Java FX Embedded team and the great work they've done since the announcement of Java FX Embedded. I know that the current developer preview for JavaFX Embedded on ARM is only working on BeagleBord xM, but i thought it would be a nice idea to bring the Freescale i.MX 6 processor into play. As I know the restrictions on preview binaries or intellectual property within Oracle, i tought this thread might be the first step in community participation.

The instructions for compiling and running the sources are available through Boundary Devices - SabreLite Board - http://boundarydevices.com/blog or the Linaro Community- https://wiki.linaro.org/Boards/MX6QSabreLite.

What I really want to do is making this thread a first step in a dialog between Oracle and Freescale. I appreciate any kind of feedback in this subject, please feel free for any kind of comments.

Thanks for reaching out. We're very interested in supporting a modern chipset like the i.MX6 and have been looking into this hardware. The Boundary Devices board is a good potential target for us because of its price point and its multi-core GPU which JavaFX would be able to utilize.

Once we are open source this conversation will obviously be a lot easier since we can talk about specifics of the code. In the meantime, I wonder if you could clarify some specific points about the Boundary Devices board and the Freescale chip set:

1. The Linaro distribution for the SabreLite is (last time I checked) for an older version of Linaro. Are there plans to update this? What we did in the JavaFX preview for ARM in requiring evaluators to build their own OS was far from ideal.
2. Are you aware of any difference we might encounter between Freescales SDB/SDP and the SabreLite, particularly in GPU and framebuffer drivers?
3. Is any hard float Linux distribution supported or planned to be supported for the SabreLite?

Thanks for reaching out. We're very interested in supporting a modern chipset like the i.MX6 and have been looking into this hardware. The Boundary Devices board is a good potential target for us because of its price point and its multi-core GPU which JavaFX would be able to utilize.

Once we are open source this conversation will obviously be a lot easier since we can talk about specifics of the code. In the meantime, I wonder if you could clarify some specific points about the Boundary Devices board and the Freescale chip set:

I'm really delighted you guys are interested in this topic. I will gladly answer your questions as best as I can.

>

1. The Linaro distribution for the SabreLite is (last time I checked) for an older version of Linaro. Are there plans to update this? What we did in the JavaFX preview for ARM in requiring evaluators to build their own OS was far from ideal.

The Linaro distribution for the SabreLite Board is quite up-to-date. If you've a look at http://releases.linaro.org/ you'll see that there are hardware-packs and imx6 root-file systems up to ubuntu 12.05. Somehow they stopped building these packs for imx 6 platform. But Boundary Devices helps out in this situation by delivering a current ubuntu 12.09 under http://boundarydevices.com/linaro-12-09-for-i-mx6/. This distribution has hard-float support compiled in.

I remember the issue on JavaFX preview for ARM where you have to build your own operating system,in fact it's much easier to create a bootable linaro sd-card for the SabreLite. Just follow some simple instructions on https://wiki.linaro.org/Boards/MX6QSabreLite and you'll be able to setup a sdcard within minutes.

2. Are you aware of any difference we might encounter between Freescales SDB/SDP and the SabreLite, particularly in GPU and framebuffer drivers?

The implementation of vivante (galcore) drivers should be the same in Freescale SDB and the Linaro kernel. But I'm no kernel hacker, so I guess somebody who's able to clarify this should have a look at it.

3. Is any hard float Linux distribution supported or planned to be supported for the SabreLite?

Oh yeah. Since Linaro Ubuntu 12.04 every Linaro ubuntu distribution for sabrelite is compiled with hard-float support. It's even harder to get a distribution without hard-float to run the current JavaSE Embedded releases. A short hint, just use the ubuntu 12.03 releases available for armel.

Hard float is the more interesting configuration to us, especially since that is what Linaro and Ubuntu support. Are Vivante hard-float GPU drivers included in the Linaro OS distributions, or otherwise available for download?

Well in my experience the vivante drivers are included in the linaro as well as the freescale kernel. All of the ubuntu versions i tried had vivante.ko and galcore.ko modules. What i do not know is, if these are the official drivers from vivante, or if there are any closed source binaries available. As I'm no kernel hacker it's hard for me to estimate the completeness of the drivers. Maybe some readers from Vivante or Freescale can help us out here.

1.) The kernel drivers. These are GPLd and included in our kernel trees at http://github.com/boundarydevices/linux-imx6
2.) The OpenGL/OpenVG/OpenCL libraries built on top of the kernel drivers. These are closed source, but binaries are
made available for various platforms.

Freescale has provided us some hard-float binaries, but we've yet to test them out.

In the meantime i tried the current LTIB image from freescale. It includes the grafics stack parts mentioned before. There are several demos and tutorials included and the results are quite impressive. I've seen those capabilities only on NVidida Tegra 2 SoCs before. I've downloaded the current LTIB image to my dropbox account under https://www.dropbox.com/s/xjjeowqdkasepwh/LTIB-12.09.GA.tar.gz for all who are interested in the image.

It really would be a good idea if someone would offer these binaries for download. Unfortunately, it is currently not possible to run the brand new EA JDK8 on Freescale i.MX6 processor. In the meantime I conducted a series of new experiments on this issue. I've tested have all available JDK 7 and 8 ARM binaries in various configurations. Only in one configuration, it was possible to start JavaFX. It currently works only under JDK7 using the soft-float ubuntu from freescale (see my initial post). This requires a different render path argument ( fb, instead of eglfb ) when running the jvm. This means that the cpu gets kind of exhaustet while falling back to software rendering. The tests with our internal "real world application" do boots but is is pretty much unusable while being under heavy cpu load. I know that Daniel and Gerrit are doing experiments too, maybe you guys could give as a short feedback. Under https://community.freescale.com/message/303399#303399 i've mentionted that David Clack also tried to get JavaFX running on a i.mx6. Please, could someone from the engineering team, Freescale, Linux community or Vivante back us up here ?

Yesterdy we were at the embedded world exhibition and had a short talk with David Clack. He showed us some new and interesting features on the upcoming capabilities of JavaFX Embedded on ARM devices. There also was a demonstration of JavaFX on a tablet device based on i.MX6 processor. So how big are the chances for platform support on the upcoming ea preview?

I thought I give this topic a short update. Recently we had the chance to test the latest JDK 8 EA binary for ARM including JavaFX. The JavaFX Embedded team is doing a great job and development progresses fast. To keep a long story short, for now there is no support for i.MX6 platform. Also prepare yourselves to adapting your code to some changes in JavaFX runtime. Several internet posts by david hill point out that the team definitly works on i.MX6 platform.

Also there are rumours on a commitment at J1@2013 for i.MX6 as a high performance platform. Because having Freescale as a strategic partner this platform is extremly interesting for industrial purposes. So I'm really excited how things develop and looking forward to J1.