HDMI (SBC-i.MX51)

From BlueWiki

Jump to: navigation, search

HDMI is the primary graphical output of the SBC. It is connected to display interface 1 of the i.MX51 processor. The primary display supports up to 24 bpp (bits per pixel) up to WXGA resolution.

Contents

1 Linux kernel 2.6.28

The following is valid for Releases up to sbc-imx51-v0.3-hw2.1.

1.1 Linux kernel configuration

The HDMI transmitter chip is configured via I2C:

System Type  --->
  Freescale MXC Implementations  --->
    MX51 Options  --->
      Device options  --->
        [*] Enable I2C1 module
Device Drivers  --->
  <*> I2C support  --->
    <*>   I2C device interface
    [*]   Autoselect pertinent helper modules
    I2C Hardware Bus support  --->
      <*> MXC I2C support

Framebuffer configuration:

Device Drivers  --->
  Graphics support  --->
    <*> Support for frame buffer devices  --->
      -*-   Enable Video Mode Handling Helpers
    <*> MXC Framebuffer support
    <*>   Synchronous Panel Framebuffer
    <*>     AD9889 HDMI transmitter
    Console display driver support  --->
      <*> Framebuffer Console support
      [*] Select compiled-in fonts
      [*]   VGA 8x16 font

1.2 Resolution settings

The default resolution is XGA (1024x768) at 60 Hz. You may change the resolution by editing the following source code file.

btmxc-linux/arch/arm/mach-mx51/mx51_i.fly.c

Look for the following struct:

static struct mxc_fb_platform_data fb_data[] = {
	{
		.interface_pix_fmt = IPU_PIX_FMT_RGB24,
		.mode_str = "1280x768M-16@50",
	},
	{
		.interface_pix_fmt = IPU_PIX_FMT_RGB565,
		.mode_str = "1024x768M-16@60",
	},
};

The mode_str element of fb_data[0] sets the resolution of the HDMI output.

The following modes were tested:

.mode_str = "1280x768M-16@50"
.mode_str = "1280x720M-16@50"
.mode_str = "1024x768M-16@60"
.mode_str = "800x600M-16@60"

You need to recompile your kernel afterwards for the changes to take effect.

2 Linux kernel 2.6.31

The following is valid for Release sbc-imx51-v0.9-hw2.1 or newer.

2.1 Linux kernel configuration

The HDMI transmitter chip is configured via I2C:

Device Drivers  --->
  <*> I2C support  --->
    <*>   I2C device interface
    [*]   Autoselect pertinent helper modules
    I2C Hardware Bus support  --->
      <*> MXC I2C support

Framebuffer configuration:

Device Drivers  --->
  Graphics support  --->
    <*> Support for frame buffer devices  --->
      -*-   Enable Video Mode Handling Helpers
    <*> MXC Framebuffer support
    <*>   Synchronous Panel Framebuffer
    <*>     AD9889 HDMI transmitter
    Console display driver support  --->
      <*> Framebuffer Console support
      [*] Select compiled-in fonts
      [*]   VGA 8x16 font

2.2 Resolution settings

The resolution is configured via the kernel argument

display=hdmi:[mode]

where mode is defined as

[xres]x[yres]M-[bpp]@[refresh]

Some examples:

800x600M-16@60
1024x768M-16@60
1280x720M-16@50
1280x768M-16@50

Please note that in most cases, the exact refresh rate will differ because of the i.MX51 internal clock divider.

The default resolution is XGA (1024x768) at 60 Hz, i.e. mode 1024x768M-16@60.

3 Test

If you boot the SBC with the default image and have a monitor/TV connected to the HDMI output, you will see the Linux Tux during boot (after some time) and then the Gnome Desktop will show up.

Personal tools