Getting NTSC video output from DSS2

Hi,

I'm trying to get NTSC video output working correctly on my
BeagleBoard. I'm having mixed success and could use some help.

I read through the DSS2 documentation, but it doesn't provide clear
guidance on the NTSC/PAL configuration. I used the "Clone GFX overlay
to LCD and TV" script and got output on my TV, but it appears to be
PAL and I have an NTSC monitor.

One thing that seems strange is that after I used the scripts outlined
in the DSS2 documentation, the kernel seems to ignore my bootargs and
always sets up the screen resolutions (on my DVI monitor) and settings
to the same thing (reflected in the omapfb displays, managers, and
overlays files). As a result, the various bootargs video settings
from Tomi and others seem to have no effect.

I would prefer to get NTSC video output by setting up the bootargs
correctly, but I'm open to other solutions that get the NTSC output
set up correctly.

Thanks for your help,

Tim

What bootargs are you using that give you the non-NTSC/possibly-PAL
output? I haven't tried to get NTSC out, but I've messed around with
DSS2 quite a bit, and I'll try to help if I can.

Brett

Here’s the details.

I first started the investigation by following the directions here (I didn’t change the bootargs): http://git.mansr.com/?p=linux-omap;a=blob;f=Documentation/arm/OMAP/DSS;h=1151ee2f0a2f080dedeaf603353e66815b5b84fc;hb=37a80a4201849c2d1331908593bf28b710ef27e7

I changed the omapfb parameters and got what I believe to be PAL output (the reason I believe this is that the “tv” line in the “displays” had v=574, and the video on my TV clearly didn’t have the right vertical format). I tried to change v to something appropriate for NTSC, but it woudn’t work.

In the process, I also changed the video resolution for dvi to 640x480 using the processes defined in the reference above.

Then I tried the bootargs approaches outlined here: http://groups.google.com/group/beagleboard/browse_thread/thread/6023d5387c290d54/35f1b08f2cb73ea7?show_docid=35f1b08f2cb73ea7

This didn’t work, and in fact didn’t change my dvi resolution from 640x480, so I don’t think it liked the bootargs. I tried several variations, but nothing seemed to work.

The thread mentioned previously provided a link to Tomi’s DSS2 development kernel (http://www.bat.org/~tomba/git/linux-omap-dss.git), so I downloaded and built that kernel. Now things are weird. This kernel has a different /sys/devices/platform/omapfb structure than is documented in the DSS2 documentation, so I’m not sure what to do with it.

Interestingly, I did try the bootargs mentioned above (modified for NTSC rather than PAL), with the new kernel and got promising results (i.e., the display1/timings line now shows a tv resolution of h=482). The issue is with this is two-fold:

  1. The DSS2 instructions for mirroring the framebuffer on both the DVI and TV interfaces don’t hold true - I’m trying to translate the instructions to the new /sys/devices/platform structure.
  2. The X server appears to be unhappy with something in the new kernel. After I boot, the DVI display alternates between the “X” and the username/password screen. I used the OE Angstrom build method for the root file system (and previous kernel), but I buillt the new kernel outside OE, so that might be part of the problem (any advice here would be appreciated).

That sums up my current situation. Any help would be greatly appreciated.

Thanks,

Tim

I recommend using Tomi's DSS2 kernel (as you are trying now), because
I found that it gave better results when playing around with video. As
you discovered, the DSS2 sysfs interface has changed in some major
ways. Once I figured out that there were several flavors of "DSS2", I
could start sorting out which commands to use. I found the
documentation in the kernel source/Documentation/arm/OMAP/DSS to be
correct, so you might look there.

I wrote up the results of some of my experiments here:
http://groups.google.com/group/beagleboard/browse_thread/thread/a57950001eeb54be/fc252d23f8eebc17

I also built Tomi's kernel outside of OE, but I have not tried running
X windows on it. In question 2, you say it alternates between the
username/password screen and the "X" screen. Do you mean it alternates
between the X-windows username/password screen and the test-pattern
screen (color bars and X graphic), or something else?

Take a look at that (it gives examples of how to mess around with the
new DSS2 interface) and see if it helps. If not, let me know what
happens and I'll try to help more.

Brett

Hi Brett,

Thanks for your link. I’m not sure why it didn’t register when I googled the issue.

Anyway, the X problem manifests by periodic restarts of the X server. So I see the little “X” on the screen (black background) followed by the login screen (graphical keyboard and username/password boxes), with this process repeating over and over until eventually X just gives up and quits (and presumably leaves something in the framebuffer because the last image stays on the screen even though ps shows no X server left).

I did have some success with the NTSC output. On the IRC, I was pointed to the DSS documentation in Tomi’s kernel and I used that to mirror the LCD output to my TV. There’s about a line or two of jitter when the login screen (keyboard image) is displayed. I’m not sure if that is an artifact of the scaler or whether the configuration isn’t quite right yet. Do you see similar results?

So:

  • NTSC output - good (quality could be a little better - maybe configuration?)
  • X server - not so good - wisdom on this would be helpful

Thanks again for your help,

Tim