<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>vm-kernel &#187; OMAP</title>
	<atom:link href="http://vm-kernel.org/blog/tag/omap/feed/" rel="self" type="application/rss+xml" />
	<link>http://vm-kernel.org/blog</link>
	<description>All about emulation and virtualization</description>
	<lastBuildDate>Sat, 17 Apr 2010 03:51:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Linux is running on qemu-omap3</title>
		<link>http://vm-kernel.org/blog/2008/12/15/linux-is-running-on-qemu-omap3/</link>
		<comments>http://vm-kernel.org/blog/2008/12/15/linux-is-running-on-qemu-omap3/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 09:05:36 +0000</pubDate>
		<dc:creator>yajin</dc:creator>
				<category><![CDATA[OMAP]]></category>
		<category><![CDATA[emulation]]></category>
		<category><![CDATA[beagle board]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[qemu-omap3]]></category>

		<guid isPermaLink="false">http://vm-kernel.org/blog/2008/12/15/linux-is-running-on-qemu-omap3/</guid>
		<description><![CDATA[Hi everyone, a good news for you. Linux in running successfully on qemu-omap3. Following is the screenshot.

However, MMC/USB/audio/LCD display/keyboard emulation are not ok . I will work on it.
In the following I will give you some informations of how to run qemu-omap3.
1. checkout qemu-omap3 from svn. Tag v0.01 is working.
svn checkout http://qemu-omap3.googlecode.com/svn/tags/v0.01 qemu-omap3
Or you can [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone, a good news for you. Linux in running successfully on qemu-omap3. Following is the screenshot.</p>
<p><a href="http://picasaweb.google.com/lh/photo/SG8C2_rqSfuuH_xMvqTiLg"><img src="http://lh4.ggpht.com/_vf_uV7bji2A/SUYcM3m6jLI/AAAAAAAAANo/9nKq87MosAg/s400/bb2.jpg" alt="" /></a></p>
<p>However, MMC/USB/audio/LCD display/keyboard emulation are not ok . I will work on it.</p>
<p>In the following I will give you some informations of how to run qemu-omap3.</p>
<p>1. checkout qemu-omap3 from svn. Tag v0.01 is working.</p>
<blockquote><p>svn checkout <a href="http://qemu-omap3.googlecode.com/svn/tags/v0.01">http://qemu-omap3.googlecode.com/svn/tags/v0.01</a> qemu-omap3</p></blockquote>
<p>Or you can download it from <a title="http://qemu-omap3.googlecode.com/files/qemu-omap3-v0.01.tar.bz2" href="http://qemu-omap3.googlecode.com/files/qemu-omap3-v0.01.tar.bz2">http://qemu-omap3.googlecode.com/files/qemu-omap3-v0.01.tar.bz2</a> .</p>
<p>2. make qemu-omap3</p>
<blockquote><p>cd qemu-omap3<br />
./configure --target-list=arm-softmmu<br />
make</p></blockquote>
<p>qemu-system-arm will be generated in directory qemu-omap3/arm-softmmu.</p>
<p>3. download the x-loader/u-boot/kernel image.</p>
<blockquote><p>cd qemu-omap3/arm-softmmu<br />
wget <a href="http://qemu-omap3.googlecode.com/files/image-v0.01.tar.bz2">http://qemu-omap3.googlecode.com/files/image-v0.01.tar.bz2</a><br />
tar jxvf image-v0.01.tar.bz2</p></blockquote>
<p>4. download the rootfs from beagle board site.</p>
<blockquote><p>wget <a title="http://beagleboard.googlecode.com/files/rd-ext2-8M.bin" href="http://beagleboard.googlecode.com/files/rd-ext2-8M.bin">http://beagleboard.googlecode.com/files/rd-ext2-8M.bin</a></p></blockquote>
<p>5. make nand flash image</p>
<blockquote><p>cd qemu-omap3/arm-softmmu<br />
cp ../bb_nandflash.sh .<br />
cp ../bb_nandflash_ecc .<br />
./bb_nandflash.sh x-load.bin.ift beagle-nand.bin x-loader<br />
./bb_nandflash.sh u-boot.bin beagle-nand.bin u-boot<br />
./bb_nandflash.sh uImage beagle-nand.bin kernel<br />
./bb_nandflash.sh rd-ext2-8M.bin  beagle-nand.bin  rootfs<br />
./bb_nandflash_ecc beagle-nand.bin 0x0 0xe80000</p></blockquote>
<p>6. run qemu-omap3</p>
<blockquote><p>./qemu-system-arm -M beagle -mtdblock beagle-nand.bin</p></blockquote>
<p>7. During the graphical emulation, you can use the following keys:<br />
Ctrl-Alt-f<br />
Toggle full screen<br />
Ctrl-Alt-n<br />
Switch to virtual console 'n'. Standard console mappings are:<br />
1<br />
Target system display<br />
2<br />
Monitor<br />
3<br />
Serial port<br />
Ctrl-Alt<br />
Toggle mouse and keyboard grab.</p>
<p>Using Ctrl-Alt-3 to switch to beagle board serial port. You can see x-loader and u-boot booting message. When u-boot command line appears, type the following commands.</p>
<blockquote><p>OMAP3 beagleboard.org # nand read 0x80000000 0x280000 0x400000<br />
NAND read: device 0 offset 0x280000, size 0x400000<br />
4194304 bytes read: OK<br />
OMAP3 beagleboard.org # nand read 0x81600000 0x680000 0x800000<br />
NAND read: device 0 offset 0x680000, size 0x800000<br />
8388608 bytes read: OK<br />
OMAP3 beagleboard.org # setenv bootargs 'console=ttyS2,115200n8 ramdisk_size=8192 root=/dev/ram0 rw rootfstype=ext2 initrd=0x81600000,8M nohz=0ff'<br />
OMAP3 beagleboard.org # bootm 0x80000000</p></blockquote>
<p>Linux will boot with some debug information of qemu-omap3. Enjoy it.</p>
<p>Update: 2010-02-20</p>
<p>I am too busy to do omap3 emulation these days. The guy at maemo has made great improvement in qemu omap3 emulation. Go to <a rel="nofollow" href="https://garage.maemo.org/scm/?group_id=877">this page</a> for more information. I do not know whether the steps in this artilcle can be used in the new version of qemu-omap3.</p>
]]></content:encoded>
			<wfw:commentRss>http://vm-kernel.org/blog/2008/12/15/linux-is-running-on-qemu-omap3/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>low level debug of linux omap</title>
		<link>http://vm-kernel.org/blog/2008/12/12/low-level-debug-of-linux-omap/</link>
		<comments>http://vm-kernel.org/blog/2008/12/12/low-level-debug-of-linux-omap/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 05:02:28 +0000</pubDate>
		<dc:creator>yajin</dc:creator>
				<category><![CDATA[OMAP]]></category>
		<category><![CDATA[emulation]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[low level debug]]></category>
		<category><![CDATA[printascii]]></category>
		<category><![CDATA[qemu-omap3]]></category>

		<guid isPermaLink="false">http://vm-kernel.org/blog/2008/12/12/low-level-debug-of-linux-omap/</guid>
		<description><![CDATA[Working on qmeu-omap3. A starange problem. If I use the kernel image downloaded from http://beagleboard.googlecode.com/files/uImage_OTG, some kernel boot informations can be displayed in uart3. But when I use the kernel source from linux omap git and build it by myself, there are NO linux kernel boot informations at all.
Linux kernel uses printk to output informations [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Working on qmeu-omap3. A starange problem. If I use the kernel image downloaded from <a title="http://beagleboard.googlecode.com/files/uImage_OTG" href="http://beagleboard.googlecode.com/files/uImage_OTG">http://beagleboard.googlecode.com/files/uImage_OTG</a>, some kernel boot informations can be displayed in uart3. But when I use the kernel source from <a href="http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=summary" target="_blank">linux omap git</a> and build it by myself, there are NO linux kernel boot informations at all.</p>
<p align="justify">Linux kernel uses printk to output informations to console and the console struct is initialized in function console_init(). So why the linux can be displayed before function console_init()?</p>
<p align="justify">The answer is that there is another way to output informations to console. That is low level debug. It uses printascii to print informations. The following is the code in vprintk.</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #e9e9e9">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #e9e9e9">556 #ifdef  CONFIG_DEBUG_LL
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #e9e9e9">557         printascii(printk_buf);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #e9e9e9">558 #endif</pre>
</pre>
<p>So if we want to output debug information as early as possible, define CONFIG_DEBUG_LL first. </p>
<p>The default configuration of beagle board in <a title="http://www.beagleboard.org/uploads/2.6_kernel_revb-v2.tar.gz" href="http://www.beagleboard.org/uploads/2.6_kernel_revb-v2.tar.gz">http://www.beagleboard.org/uploads/2.6_kernel_revb-v2.tar.gz</a> defines this macro while the source code from&#160; <a href="http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=summary" target="_blank">linux omap git</a> does not define this macro.</p>
<p>Function printascii is defined in include/asm-arm/arch-omap/debug-macro.S.</p>
]]></content:encoded>
			<wfw:commentRss>http://vm-kernel.org/blog/2008/12/12/low-level-debug-of-linux-omap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>add ecc value to nand flash image</title>
		<link>http://vm-kernel.org/blog/2008/12/06/add-ecc-value-to-nand-flash-image/</link>
		<comments>http://vm-kernel.org/blog/2008/12/06/add-ecc-value-to-nand-flash-image/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 06:38:59 +0000</pubDate>
		<dc:creator>yajin</dc:creator>
				<category><![CDATA[OMAP]]></category>
		<category><![CDATA[emulation]]></category>
		<category><![CDATA[beagle board]]></category>
		<category><![CDATA[qemu-omap3]]></category>

		<guid isPermaLink="false">http://vm-kernel.org/blog/2008/12/06/add-ecc-value-to-nand-flash-image/</guid>
		<description><![CDATA[I use qemu-omap3 to boot linux kernel from nand. The linux image is downloaded from http://beagleboard.googlecode.com/files/uImage_OTG.

OMAP3 beagleboard.org #
OMAP3 beagleboard.org # nand read 0x80000000 0x280000 0x400000
NAND read: device 0 offset 0x280000, size 0x400000
 4194304 bytes read: ERROR
OMAP3 beagleboard.org # bootm 0x80000000
## Booting kernel from Legacy Image at 80000000 ...
   Image Name:   Linux-2.6.22.18-omap3
 [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">I use qemu-omap3 to boot linux kernel from nand. The linux image is downloaded from <a href="http://beagleboard.googlecode.com/files/uImage_OTG">http://beagleboard.googlecode.com/files/uImage_OTG</a>.</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #e9e9e9">
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">OMAP3 beagleboard.org #</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">OMAP3 beagleboard.org # nand <span style="color: #0000ff;">read</span> 0x80000000 0x280000 0x400000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">NAND <span style="color: #0000ff;">read</span>: device 0 offset 0x280000, size 0x400000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;"> 4194304 bytes <span style="color: #0000ff;">read</span>: ERROR</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">OMAP3 beagleboard.org # bootm 0x80000000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">## Booting kernel from Legacy Image at 80000000 ...</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Image Name:   Linux-2.6.22.18-omap3</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Image Type:   ARM Linux Kernel Image (uncompressed)</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Data Size:    1856616 Bytes =  1.8 MB</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Load Address: 80008000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Entry Point:  80008000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Verifying Checksum ... Bad Data CRC</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">ERROR: can't get kernel image!</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">OMAP3 beagleboard.org #</pre>
</pre>
<p align="justify">It means crc error in linux image. I use qemu console command 'memsave' to dump the data from address 0x80000000 to a file and compare it to uImage_OTG. The result is that linux image in ram(from 0x80000000) is different from uImage_OTG. In every block(256 bytes), there is one bit different from uImage_OTG. The linux image is changed when using 'nand read' command to read it from nand flash image to sram.</p>
<p align="justify">What has happened when reading linux image from nand flash image into sram??</p>
<p>After debuging about half a day, I find that the data are changed by the correct_data function. I <strong>*DID NOT*</strong> save ecc value in nand flash image so u-boot thinks the ecc value in oob is wrong and correct it. Ecc can only correct one bit in an block, that is why a bit has been changed in 256 bytes.</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #e9e9e9">
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">ecc_status = this-&gt;correct_data(mtd, &amp;data_poi[datidx], &amp;ecc_code[j], &amp;ecc_calc[j]);</pre>
</pre>
<p>I write a file(<a href="http://code.google.com/p/qemu-omap3/source/browse/trunk/bb_nandflash_ecc.c" target="_blank">bb_nandflash_ecc.c</a>) to generate ecc value for nand flash image. Now I can boot linux image using u-boot command.</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #e9e9e9">
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">OMAP3 beagleboard.org # nand <span style="color: #0000ff;">read</span> 0x80000000 0x280000 0x400000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">NAND <span style="color: #0000ff;">read</span>: device 0 offset 0x280000, size 0x400000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;"> 4194304 bytes <span style="color: #0000ff;">read</span>: OK</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">OMAP3 beagleboard.org # bootm 0x80000000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">## Booting kernel from Legacy Image at 80000000 ...</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Image Name:   Linux-2.6.22.18-omap3</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Image Type:   ARM Linux Kernel Image (uncompressed)</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Data Size:    1856616 Bytes =  1.8 MB</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Load Address: 80008000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Entry Point:  80008000</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Verifying Checksum ... OK</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">   Loading Kernel Image ... OK</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">OK</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">Starting kernel ...</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">smc 80e80414  insn 1600070</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">Uncompressing Linux.......................................................................................................................... done, booting the kernel.</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">&lt;5&gt;Linux version 2.6.22.18-omap3 (root@fedoraserver) (gcc version 4.2.1 (CodeSourcery Sourcery G++ Lite 2007q3-51)) #1 Thu Jul 24 15:29:36 IST 2008</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=00003837</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">Machine: OMAP3 Beagle board</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">Memory policy: ECC disabled, Data cache writeback</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">&lt;7&gt;On node 0 totalpages: 32768</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">&lt;7&gt;  DMA zone: 256 pages used <span style="color: #0000ff;">for</span> memmap</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">&lt;7&gt;  DMA zone: 0 pages reserved</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">&lt;7&gt;  DMA zone: 32512 pages, LIFO batch:7</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">&lt;7&gt;  Normal zone: 0 pages used <span style="color: #0000ff;">for</span> memmap</pre>
<pre style="margin: 0em; font-size: 12px; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #e9e9e9;">Unassigned mem readl 4830a204</pre>
</pre>
<p align="justify">Because of omap3 emulation is not complete, linux kernel will stop after linux kernel booting. I will work on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://vm-kernel.org/blog/2008/12/06/add-ecc-value-to-nand-flash-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LCD is working in qemu-omap3</title>
		<link>http://vm-kernel.org/blog/2008/12/04/lcd-is-working-in-qemu-omap3/</link>
		<comments>http://vm-kernel.org/blog/2008/12/04/lcd-is-working-in-qemu-omap3/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 12:31:45 +0000</pubDate>
		<dc:creator>yajin</dc:creator>
				<category><![CDATA[OMAP]]></category>
		<category><![CDATA[emulation]]></category>
		<category><![CDATA[beagle board]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[qemu-omap3]]></category>

		<guid isPermaLink="false">http://vm-kernel.org/blog/2008/12/04/lcd-is-working-in-qemu-omap3/</guid>
		<description><![CDATA[Good news. LCD is working in qemu-omap3
Beagle board has an DVI transmitter TFP 410 and it outputs ditigal signal to LCD panel which has DVI connector. However, we do not care TFP 410 because it is just a pipe for LCD output data. What we care about is the LCD output data itself.
According to the [...]]]></description>
			<content:encoded><![CDATA[<p>Good news. LCD is working in <a href="http://code.google.com/p/qemu-omap3" target="_blank">qemu-omap3</a></p>
<p align="justify">Beagle board has an DVI transmitter TFP 410 and it outputs ditigal signal to LCD panel which has DVI connector. However, we do not care TFP 410 because it is just a pipe for LCD output data. What we care about is the LCD output data itself.</p>
<p align="justify">According to the datasheet of OMAP3530, it has three interfaces for LCD output:Parellel Interface, SDI interface and DSI interface. In the case of parellel interface, it can work in two modes: RFBI mode and RFBI bypass mode.</p>
<p align="justify">In RFBI mode, the datapath for LCD output data is display controller and RFBI chip. In RFBI bypass mode, the data is output to LCD panel or other interfaces directly. Beagle board uses TFP 410 to receive 24 bit LCD data and then transmits the data to LCD through DVI interface.</p>
<p align="justify">Qemu already has omap dss emulation. But it is not complete and only for RFBI mode(Nokia N800 uses RFBI). I just follow the Blizzard template and write my own omap3_lcd_panel_template. And then add the sdl update function omap3_lcd_panel_update_display to omap_dss.c. Also some other utility functions are needed. It works now, the beagle and penguin are displayed in my LCD panel. The following is the screenshot.</p>
<p align="justify">
<table style="width:auto;">
<tr>
<td><a href="http://picasaweb.google.com/lh/photo/jGNZQCmgvq2cbOTImFntqA"><img src="http://lh4.ggpht.com/_vf_uV7bji2A/STfwNadnFHI/AAAAAAAAANE/BxfA_n1ZBkM/s288/omap3-dss.JPG" /></a></td>
</tr>
</table>
<p align="justify">I have tested the LCD emulation speed and the result is not bad. It can reach about 20-30 frames per second. I think it is good enough for an emulator.</p>
<p align="justify">The next steps for qemu-omaps are: running linux kernel and distribution(Ångström for example). However the most exciting part is the 3D virtualization for OMAP3. That is you can run 3D application in qemu by using the host 3D accelerator hardware.</p>
<p align="justify">Please be patient. I am working on it.</p>
<p align="justify">
]]></content:encoded>
			<wfw:commentRss>http://vm-kernel.org/blog/2008/12/04/lcd-is-working-in-qemu-omap3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
