<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://elinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;feed=atom&amp;action=history</id>
		<title>Application XIP Instructions For OMAP - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;action=history"/>
		<updated>2013-05-23T01:37:49Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.21alpha</generator>

	<entry>
		<id>http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;diff=11633&amp;oldid=prev</id>
		<title>Tim Bird at 00:35, 13 May 2009</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;diff=11633&amp;oldid=prev"/>
				<updated>2009-05-13T00:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 00:35, 13 May 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that recent ARM community kernels contain support for, or at least partial support for, XIP (I believe Nicolas Pitre was the ARM community liason for the submittal).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that recent ARM community kernels contain support for, or at least partial support for, XIP (I believe Nicolas Pitre was the ARM community liason for the submittal).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Application XIP&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Boot Time]] [[Category:System Size&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tim Bird</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;diff=3705&amp;oldid=prev</id>
		<title>Chris at 07:50, 14 July 2007</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;diff=3705&amp;oldid=prev"/>
				<updated>2007-07-14T07:50:29Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 07:50, 14 July 2007&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that recent ARM community kernels contain support for, or at least partial support for, XIP (I believe Nicolas Pitre was the ARM community liason for the submittal).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Note that recent ARM community kernels contain support for, or at least partial support for, XIP (I believe Nicolas Pitre was the ARM community liason for the submittal).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Application XIP]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chris</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;diff=1847&amp;oldid=prev</id>
		<title>Wmat: Legacy Content Conversion</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Application_XIP_Instructions_For_OMAP&amp;diff=1847&amp;oldid=prev"/>
				<updated>2006-12-18T16:29:38Z</updated>
		
		<summary type="html">&lt;p&gt;Legacy Content Conversion&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Todd Poynor of MontaVista wrote the following:&lt;br /&gt;
&lt;br /&gt;
The MTD driver must either not be used or must be configured to not manage a flash chip used for XIP (kernel or application).  I believe the CELF tree contains CONFIG symbols to individually enable MTD use of flash chips 0 and 1 on the 1510 Innovator (CONFIG_MTD_OMAP_0/1).&lt;br /&gt;
&lt;br /&gt;
(Reason: flash chips are stateful devices and the state must be centrally managed by a driver such as MTD... direct memory references to read XIP executable data from the chip while the MTD driver has the chip in a non-read state, probing or writing, will probably hang.)&lt;br /&gt;
&lt;br /&gt;
XIP executables (kernel or application) must be stored in uncompressed format.  The usual way of doing XIP apps is to create a CramFS filesystem with XIP executables uncompressed.  mkcramfs can do this by not compressing any executable with the &amp;quot;sticky&amp;quot; bit set (I think the&lt;br /&gt;
community version has this feature).  Enabling XIP support in the kernel allows the kernel CramFS filesystem driver to know that an executable with the &amp;quot;sticky&amp;quot; bit set is uncompressed (and does not need the usual copy-and-uncompress operation).  You can mark XIP apps in the tree used as input to mkcramfs with &amp;quot;chmod +t &amp;lt;file&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The XIP cramfs filesystem is then copied to a flash partition, either through the bootloader or by copying to an MTD device (booting another kernel with MTD support for that chip/partition).  The kernel must also enable &amp;quot;Linear CRAMFS&amp;quot;, which mounts the filesystem directly into the&lt;br /&gt;
kernel virtual address space and bypasses the MTD layer (for reasons given above).&lt;br /&gt;
&lt;br /&gt;
Mount the filesystem as a root using kernel command line options:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    root=/dev/null rootflags=physaddr=0x&amp;lt;physical address&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
where 0x&amp;lt;physical address&amp;gt; is the physical address of the CRAMFS image in flash.  Or mount a non-root filesystem from a running Linux:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    mount -t cramfs -o physaddr=0x&amp;lt;physical address&amp;gt; ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For example, root fs on OMAP1510 Innovator flash chip normally&lt;br /&gt;
associated with first MTD partition mtd0 (at physical addr 0x1000000):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CRAMFS_LINEAR=y&lt;br /&gt;
CONFIG_CRAMFS_LINEAR_XIP=y&lt;br /&gt;
CONFIG_ROOT_CRAMFS_LINEAR=y&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot;mem=32M console=ttyS0,115200n8 noinitrd root=/dev/null rootflags=physaddr=0x1000000&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount from shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
    # mount -t cramfs -o physaddr=0x1000000 /dev/mtdblock0 /mnt/cramfs&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that recent ARM community kernels contain support for, or at least partial support for, XIP (I believe Nicolas Pitre was the ARM community liason for the submittal).&lt;/div&gt;</summary>
		<author><name>Wmat</name></author>	</entry>

	</feed>