<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linux-xtensa.org/index.php?action=history&amp;feed=atom&amp;title=Platform_Porting</id>
	<title>Platform Porting - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linux-xtensa.org/index.php?action=history&amp;feed=atom&amp;title=Platform_Porting"/>
	<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Platform_Porting&amp;action=history"/>
	<updated>2026-05-05T01:09:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Platform_Porting&amp;diff=670&amp;oldid=prev</id>
		<title>Chris: /* Adding a new Platform to the Kernel */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Platform_Porting&amp;diff=670&amp;oldid=prev"/>
		<updated>2013-03-18T22:03:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Adding a new Platform to the Kernel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:03, 18 March 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Modify &amp;lt;code&amp;gt;arch/xtensa/Kconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;arch/xtensa/Makefile&amp;lt;/code&amp;gt; to add support for the new platform.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Modify &amp;lt;code&amp;gt;arch/xtensa/Kconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;arch/xtensa/Makefile&amp;lt;/code&amp;gt; to add support for the new platform.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Create a directory with the name of the platform in the architecture part of the kernel under &amp;lt;code&gt;arch/xtensa/platforms/&amp;lt;/code&gt;. This directory should contain the source files to support  hardware components other than generic devices, such as PCI host-bridges, etc.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Create a directory for the header files: &amp;lt;code&amp;gt;arch/xtensa/platforms/&amp;#039;&amp;#039;name&amp;#039;&amp;#039;/include&amp;lt;/code&amp;gt;. It must at least contain the &amp;lt;code&amp;gt;hardware.h&amp;lt;/code&amp;gt; file to describe some fundamental hardware settings.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Create a directory for the header files: &amp;lt;code&amp;gt;arch/xtensa/platforms/&amp;#039;&amp;#039;name&amp;#039;&amp;#039;/include&amp;lt;/code&amp;gt;. It must at least contain the &amp;lt;code&amp;gt;hardware.h&amp;lt;/code&amp;gt; file to describe some fundamental hardware settings.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Create a directory with the name of the platform in the architecture part of the kernel under &amp;lt;code&gt;arch/xtensa/platform/&amp;lt;/code&gt;. This directory should contain the source files to support  hardware components other than generic devices, such as PCI host-bridges, etc.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;(optional)&amp;#039;&amp;#039; add a default configuration file for the platform with the name &amp;lt;code&amp;gt;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;_defconfig&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;arch/xtensa/configs&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;(optional)&amp;#039;&amp;#039; add a default configuration file for the platform with the name &amp;lt;code&amp;gt;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;_defconfig&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;arch/xtensa/configs&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Platform_Porting&amp;diff=669&amp;oldid=prev</id>
		<title>Chris: /* Adding a new Platform to the Kernel */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Platform_Porting&amp;diff=669&amp;oldid=prev"/>
		<updated>2013-03-18T22:02:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Adding a new Platform to the Kernel&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:02, 18 March 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Modify &amp;lt;code&amp;gt;arch/xtensa/Kconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;arch/xtensa/Makefile&amp;lt;/code&amp;gt; to add support for the new platform.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Modify &amp;lt;code&amp;gt;arch/xtensa/Kconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;arch/xtensa/Makefile&amp;lt;/code&amp;gt; to add support for the new platform.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Create a directory for the header files: &amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;include&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;asm-&lt;/del&gt;xtensa/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;platform-&lt;/del&gt;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;. It must at least contain the &amp;lt;code&amp;gt;hardware.h&amp;lt;/code&amp;gt; file to describe some fundamental hardware settings.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Create a directory for the header files: &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;arch&lt;/ins&gt;/xtensa/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;platforms/&lt;/ins&gt;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/include&lt;/ins&gt;&amp;lt;/code&amp;gt;. It must at least contain the &amp;lt;code&amp;gt;hardware.h&amp;lt;/code&amp;gt; file to describe some fundamental hardware settings.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Create a directory with the name of the platform in the architecture part of the kernel under &amp;lt;code&amp;gt;arch/xtensa/platform/&amp;lt;/code&amp;gt;. This directory should contain the source files to support  hardware components other than generic devices, such as PCI host-bridges, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Create a directory with the name of the platform in the architecture part of the kernel under &amp;lt;code&amp;gt;arch/xtensa/platform/&amp;lt;/code&amp;gt;. This directory should contain the source files to support  hardware components other than generic devices, such as PCI host-bridges, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;(optional)&amp;#039;&amp;#039; add a default configuration file for the platform with the name &amp;lt;code&amp;gt;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;_defconfig&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;arch/xtensa/configs&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;(optional)&amp;#039;&amp;#039; add a default configuration file for the platform with the name &amp;lt;code&amp;gt;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;_defconfig&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;arch/xtensa/configs&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Platform_Porting&amp;diff=17&amp;oldid=prev</id>
		<title>Chris: New page: == Adding a new Platform to the Kernel ==  The easiest way to add support for a new platform for Xtensa is usually to look at the directories of one of the platforms already supported for ...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Platform_Porting&amp;diff=17&amp;oldid=prev"/>
		<updated>2007-04-24T07:02:53Z</updated>

		<summary type="html">&lt;p&gt;New page: == Adding a new Platform to the Kernel ==  The easiest way to add support for a new platform for Xtensa is usually to look at the directories of one of the platforms already supported for ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Adding a new Platform to the Kernel ==&lt;br /&gt;
&lt;br /&gt;
The easiest way to add support for a new platform for Xtensa is usually to look at the directories of one of the platforms already supported for Xtensa and to copy and modify those files. Drivers to support on-chip devices should go to the generic driver directory instead of the architecture directory. Adding a new platform should not require other changes to generic sources outside the platform specific directories. Modifications to the kernel are, therefore, mostly limited to the following places:&lt;br /&gt;
&lt;br /&gt;
# Modify &amp;lt;code&amp;gt;arch/xtensa/Kconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;arch/xtensa/Makefile&amp;lt;/code&amp;gt; to add support for the new platform.&lt;br /&gt;
# Create a directory for the header files: &amp;lt;code&amp;gt;include/asm-xtensa/platform-&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;. It must at least contain the &amp;lt;code&amp;gt;hardware.h&amp;lt;/code&amp;gt; file to describe some fundamental hardware settings.&lt;br /&gt;
# Create a directory with the name of the platform in the architecture part of the kernel under &amp;lt;code&amp;gt;arch/xtensa/platform/&amp;lt;/code&amp;gt;. This directory should contain the source files to support  hardware components other than generic devices, such as PCI host-bridges, etc.&lt;br /&gt;
# &amp;#039;&amp;#039;(optional)&amp;#039;&amp;#039; add a default configuration file for the platform with the name &amp;lt;code&amp;gt;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;_defconfig&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;arch/xtensa/configs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modify &amp;lt;code&amp;gt;Kconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Adding support for a new platform to the build system of Linux only requires to modify &amp;lt;code&amp;gt;Kconfig&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt;. The new entry in &amp;lt;code&amp;gt;Kconfig&amp;lt;/code&amp;gt; allows the configuration scripts to pick up the new platform and the change in &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt; instructs the build process to enter the platform directory, if selected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;code&amp;gt;Kconfig&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 config XTENSA_PLATFORM_&amp;#039;&amp;#039;NAME&amp;#039;&amp;#039;&lt;br /&gt;
     bool &amp;#039;&amp;#039;NAME&amp;#039;&amp;#039;&lt;br /&gt;
     help&lt;br /&gt;
     &amp;#039;&amp;#039;descriptive text&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
 platform-$(CONFIG_XTENSA_PLATFORM_&amp;#039;&amp;#039;NAME&amp;#039;&amp;#039;)           := &amp;#039;&amp;#039;directory-name&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Directory for the Headers ===&lt;br /&gt;
&lt;br /&gt;
Any platform specific header files should go to the &amp;lt;code&amp;gt;platform-&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; directory under &amp;lt;code&amp;gt;include/asm-xtensa/&amp;lt;/code&amp;gt;. It should contain at least the &amp;lt;code&amp;gt;hardware.h&amp;lt;/code&amp;gt; file that describes the physical memory configuration.&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
  * Memory configuration.&lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
 #define PLATFORM_DEFAULT_MEM_START      0x00000000&lt;br /&gt;
 #define PLATFORM_DEFAULT_MEM_SIZE       0x08000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Directory for the new Platform ===&lt;br /&gt;
&lt;br /&gt;
All source files for the new platform should be in &amp;lt;code&amp;gt;arch/xtensa/platforms/&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;. The Xtensa port provides a few hooks that can be used by the platform for initialization and other purposes. These functions are defined as &amp;lt;code&amp;gt;weak&amp;lt;/code&amp;gt; symbols with a default &amp;#039;dummy&amp;#039; implementation in the generic Xtensa sources. Platforms can, therefore, overwrite the default implementation simply by defining the function in one of its sources. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_init(bp_tag_t* bootparams);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The kernel calls this function early in the boot process prior to initializing the MMU. This allows the platform to perform early initializations of components. The argument &amp;lt;code&amp;gt;bootparams&amp;lt;/code&amp;gt; is a list of configuration tags passed from the boot-loader (see also [[Boot Loader]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_setup (char **);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This function is called from &amp;lt;code&amp;gt;setup_arch&amp;lt;/code&amp;gt; with a pointer to the command-line string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_init_irq (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This function, called from &amp;lt;code&amp;gt;init_IRQ&amp;lt;/code&amp;gt;, allows platforms to initialize external interrupt controllers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_restart (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_halt (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_power_off (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The kernel calls one of these functions to either restart, halt, or reboot the system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_idle (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This is the &amp;#039;&amp;#039;idle&amp;#039;&amp;#039; function called whenever there is no thread or process ready.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_heartbeat (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The kernel calls this function every HZ interval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_pcibios_init (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The kernel calls this function in case PCI is enabled to allow the platform to setup the PCI bus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern int platform_pcibios_fixup (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The kernel calls this function in case PCI is enabled to allow the platform to modify PCI configuration after scanning the PCI bus has completed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extern void platform_calibrate_ccount (void);&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Platforms that can identify the processor speed should implement this function. It allows the platform to set the cpu clock frequency (if CONFIG_XTENSA_CALIBRATE is enabled). This function should determine the processor speed and set the following variables accordingly:&lt;br /&gt;
* &amp;lt;code&amp;gt;ccount_per_jiffy&amp;lt;/code&amp;gt; - This is the number of CCOUNT ticks per &amp;lt;code&amp;gt;jiffy&amp;lt;/code&amp;gt;. &amp;#039;A jiffy&amp;#039; is the time between two ticks, where HZ describes the number of ticks per seconds.&lt;br /&gt;
* &amp;lt;code&amp;gt;ccount_nsec&amp;lt;/code&amp;gt; - This is the time (in nano-seconds) between two subsequent CCOUNT ticks.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
</feed>