This discussion is archived
12 Replies Latest reply: Jul 8, 2013 1:56 PM by bmy1 RSS

JavaFX Embedded ARM on Freescale i.MX 6

bmy1 Newbie
Currently Being Moderated
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.

So here is little information on the Freescale i.MX6 processor:

* Quad-Core ARM® Cortex A9 processor at 1GHz per core
* 1GByte of 64-bit wide DDR3 @ 532MHz
* Multi-stream-capable HD video engine delivering H.264 1080p60 decode,1080p30 encode and 3-D video playback in HD
* Triple Play Graphics system consisting of a Quad-shader 3D unit, and a separate 2-D and separate OpenVG Vertex acceleration engine for superior 3D, 2D and user interface acceleration
* etc.

More information is available at Linaro Community - https://wiki.linaro.org/Boards/MX6QSabreLite, Freescale i.MX6 - http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES and Boundary Devices - SabreLite Board http://boundarydevices.com/products/sabre-lite-imx6-sbc/.

The JavaFX Embedded team at J1 confirmed that a number of technical conditions for the operation of JavaFX Embedded must be met, including:

* Linux kernel 3.x
* ARMv 6/7 Core
* Integrated EGL / GLESv2 support
* Integrated touch support
* Integrated Gstreamer with hardware decoding

From a technical point of view, the i.MX 6 platform meet these criteria largely. For this reason I have collected the official source code parts, which i want to share with the community.

* Freescale - Ubuntu Oneiric https://www.dropbox.com/s/ofhdrga8toju5ho/oneiric-freescale-12.09-GA.tar.gz Root File System (Oktober 2012)
* Freescale Linux Kernel Sources - https://www.dropbox.com/s/1h8bqq2ibcog2e1/boundary-L3.0.35_12.09.01_GA.tar.gz
* U-Boot Boot-Loader Sources - https://www.dropbox.com/s/th5irqowqbqlmm3/u-boot-2009-08-boundary-L3.0.35_12.09.03_GA.tar.gz

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.

Greetings

Hannes
  • 1. Re: JavaFX Embedded ARM on Freescale i.MX 6
    902701 Newbie
    Currently Being Moderated
    Hi Hannes,

    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,
    Daniel
  • 2. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated
    Hey Daniel,
    daniel_b wrote:
    Hi Hannes,

    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.
    Thanks,
    Daniel
    Greetings,

    Hannes
  • 3. Re: JavaFX Embedded ARM on Freescale i.MX 6
    902701 Newbie
    Currently Being Moderated
    Hello again Hannes,

    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?

    Thanks,
    Daniel
  • 4. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated
    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.
  • 5. Re: JavaFX Embedded ARM on Freescale i.MX 6
    973846 Newbie
    Currently Being Moderated
    There are two key parts to the Vivante stack:

    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.
  • 6. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated
    That's some good news. I'm looking forward to EA.
  • 7. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated
    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.
  • 8. Re: JavaFX Embedded ARM on Freescale i.MX 6
    983035 Newbie
    Currently Being Moderated
    Does someone have a download of Hard Float ABI OS and Graphics stack. opengl glesv2,etc? I would be willing to give them a try on my imx6 device
  • 9. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated
    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 ?

    Greetings Hannes
  • 10. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated
    Is there any progress on this issue? Vivante, Oracle engineers, Freescale, maybe somebody?
  • 11. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated
    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?
  • 12. Re: JavaFX Embedded ARM on Freescale i.MX 6
    bmy1 Newbie
    Currently Being Moderated

    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.

     

    Regards Hannes

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points