Beagle Board XM splash screen logo support in U-boot

I want to add a splash screen on boot in U-boot bootloader on
BeagleBoard Xm. In early u-boot revisions there was a support for
displaying bootup screen on original BeagleBoards. It is supported
with a patch now in this link.

http://groups.google.com/group/beagleboard/browse_thread/thread/3ad9b803a3418624

But this patch doesn't work with BB XMs, I think there are some
changes in DSS register settings with the classic BB version. Is there
a way to add boot up screen logo in U-boot on XM s? There are some
settings for dvi, resolution, timings etc. With these, BB outputs only
an orange blank background screen, and that's not what I want. I think
I should write to its framebuffer or video memory etc. and activate it
to output to the screen but I don't know how.
Thanks.

Hello,

I want to add a splash screen on boot in U-boot bootloader on
BeagleBoard Xm. In early u-boot revisions there was a support for
But this patch doesn't work with BB XMs, I think there are some

correct, splash screen support in u-boot in non-functional for
beagleboard-xm

I spent quite some time to get it to work (I am preparing u-boot
patches ATM)

you need to power up DVI (i.e. the TFP410) (assuming you have a
beagleboard-xm rev. B/C);

the beagleboard-xm SRM is misleading in several places and mentions
GPIO170 to power up the DVI (DVI_PUP); however, the TPS65950 GPIO2 is
actually used for that since rev. A3

the following code can be used to enable DVI_PUP in u-boot:

/*
* Enable DVI power via TWL4030 GPIO 2
*/
static void enable_dvi_pup() {
  uchar val;

  i2c_read(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1);
  val |= 4;
  i2c_write(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1);

  i2c_read(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1);
  val |= 4;
  i2c_write(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1);
}

furthermore, you need to set the framebuffer address and size (below
code does it for 800x480 and RGB24 format):

static void configure_frame_buffer() {
  writel(0x80500000, (uint *) 0x48050480); // address
  writel(0x80500000, (uint *) 0x48050484);
  writel(0x01df031f, (uint *) 0x4805048c); // size
  writel(0x00000091, (uint *) 0x480504a0); // RGB24
}

so in total you need at the end of misc_init_r() in u-boot:

  enable_dvi_pup();
        configure_frame_buffer();
        omap3_dss_panel_config(&dvid_cfg_xm);
        omap3_dss_enable();

regards, p.

Thanks a lot!
With your help I could get it work. I can embed images into bootup
now. The only bad thing is, XM has 64 kbytes SRAM. With u-boot codes,
there remains around ~40 kb memory size for images, meaning I could
only work with low quality images. There is RFBI module in DM3370. I
think it is used for dumping image data from sdram not from sram. I
hope if I would get it to work, I can have much more memory for good
images.
King regards, cosar.