Hello Freescale, anyone out there?
I hate to sound like a whiner, but I'm willing to take some heat to get some answers...
Following the instructions in the Quick Start Guide, and on-line intro video, I finally got my board to boot up using the EPD (ribbon cable was inserted, but not fully seated in board connector), and the little penguin displays as mentioned in the video. However, that's all that I get. The implication is that the Ubuntu desktop that I get in HDMI mode will display on the EPD, but that doesn't happen... I cannot tell from any documentation WHAT should happen. From the console port I have been able to launch the EPD unit test successfully, so that's a start.
Hopefully I am just looking in the wrong place, but I can find zero source files that I might use as a starting point. I did find one source file for the EPD unit test, but that is the only one. I can find no useful information to get this thing running, and almost no information at all.
I have always had good experience with Freescale support; going back 20 years, but I am extremely disappointed with the support I am finding for the i.MX50 / eReader. Even most of the posts to the discussion forums don't even have replies.
So, is this now an unsupported product with the new i.MX6 coming out?
Is nobody using this part?
Does anyone at Freescale read this forum?
I am really looking forward to using the i.MS508 in an upcoming product, especially since it is the best part available for the job. However, if I can't figure out how to use it, I will have to look somewhere else...
First of all, I am sorry for my late response to your questions.
About the i.MX50 EPD controller interface, I quote the answer from Danny in another post https://community.freescale.com/message/279560#279560.
"The basic concept is that updates to the content of the frame buffer must be accompanied with an invocation of the MXCFB_SEND_UPDATE API ioctl extension. This tells the EPD controller about the precise region that requires an update on the EPD panel. To achieve this, the UI must exert tight control over any graphics updates to the framebuffer. There are a few additional APIs to do things like synchronize with the completion of any given EPD update, or to set or change the mapping of waveform modes used in the EPDC driver."
I don't think the generic Ubuntu UI is taking care of the EPD controller. Any update to frame buffer will not depict on the EPD unless the MXCFB_SEND_UPDATE ioctl is sent the the device. So, this may be the reason why only the little penguin is seen on the EPD.
The EPD unit test is available in the device at /unit_tests/mxc_epdc_fb_test.out. You may run this unit_test to validate the EPD board. To view the source code of this unit test, please download the i.MX50 source code and follow the instruction there to install the LTIB. Run "./ltib -m prep -p imx-test.spec" and you will find the unit test source code at rpm/BUILD/imx-test-11.04.01/test/mxc_fb_test/mxc_epdc_fb_test.c. Take a look to this file to learn about how application interact with the EPD driver to perform frame buffer update.
The kernel source code for the EPD driver can be found at rpm/BUILD/linux/drivers/video/mxc/mxc_epdc_fb.c. It exposes all the properties and functions that the EPD driver supports.
I hope this information is useful to you as a starting point to learn about i.MX50 EPD control.
Thanks Peter, this is helpful...
Since I posted the original question, I discovered a few of the things you mentioned. I have now written my own frame buffer code by copying from the unit test, as you said. This works great; I can draw some rectangles and even rotate the display, etc.
What I *really* want to do is run GTK on the EPD. I found some simple GTK tutorial on YouTube, and finally got my little test program to compile and link. However, when I run it, I get an error message, "... cannot open display." I have found other people on the Web having this problem, but no conclusive solution. One thing mentioned is to run "export DISPLAY=:0", and when I do that my program just hangs forever...
I suspect that some other program (like the Ubuntu desktop that isn't displaying) has control of the EPD frame buffer, and my program can't get access. I also don't know if X11 is in the way, or helping.
I am doing all of my development on the i.MX50 at this time, using the console port; not a cross-compiling system.
The final hurdle I am facing is to run GTK on top of DirectFB on top of /dev/fb0.
I'm inpressed with what this system can do, but new to Linux, and that doesn't help. Any hints you can provide will be appreciated.
I have made some progress and have learned a lot, but still haven't gotten anything to work.
When I try to run ltib with gtk+ and DirectFB selected, I get a linker error because a bunch of functions are defined in two places...
LTIB can generate several output images, by default it creates the rootfs folder and a rootfs.jffs2 image. In case you want to change the later, Open the LTIB menu (./ltib --configure) then select the Target Image Generation Options->target image. In case you want to flash an SD, the way to do it is either with the MFG Tool or manually from a Linux console. Follow the instructions on the corresponding User guide.
Thanks Leo; I actually edited the question you answered out of the previous post after I found some info on my own, but I appreciate your response...
Refering to the last page of the i.MX50_ARM2_Linux_BSP_UserGuide, I have practiced flashing some images to SD from a Linux PC host. I would still like to verify that the rootfs.jffs2 is the file that I copy to SD in the last step; is this the case?
It has been a busy week for me, but this embedded Linux world is kind of fun.. .;-)
You do not need to copy the jffs2 into the SD. I checked the User Guide and I did not find anything related to JFFS2. Let me know where you find that step. welcome to the embedded world :smileyhappy:
Great news, Peter, thanks for the effort...
I have tried a number of things over the past few days with no success. One thing that I just realized is that the current code from Freescale is very close to working. The next thing I plan to try is updating all of the Linux components using the update manager, since I haven't yet done this.
One question I have is has anyone had the SABRE successfully boot to the Ubuntu desktop on the EDP?
Unfortunately, there is also the issue of the touch-screen; someone must have gotten this thing to work...