<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linux-xtensa.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ross</id>
	<title>Linux/Xtensa - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linux-xtensa.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ross"/>
	<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Special:Contributions/Ross"/>
	<updated>2026-05-05T02:24:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Boot_Loader&amp;diff=155</id>
		<title>Boot Loader</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Boot_Loader&amp;diff=155"/>
		<updated>2008-07-29T01:34:44Z</updated>

		<summary type="html">&lt;p&gt;Ross: Add setting of PATH and fix booboos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== BootLoader ==&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Bootloader bootstrap loader or boot loader] is a small program running on a computer or device after power-on to load the operating system. Most boot loaders today provide additional features that allow to upgrade the firmware and access the system for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
== RedBoot ==&lt;br /&gt;
&lt;br /&gt;
Tensilica has done a port of [http://sourceware.org/redboot/ RedBoot] for the Xtensa architecture. A RedBoot binary targeting the XTAV60 (LX60) or XTAV200 (LX200) emulation board is usually provided after generating an FPGA bitstream for one of these boards.  See the relevant board documentation from Tensilica for more details such as usage and supported features.  For more information and to request sources, please contact [http://www.tensilica.com/ Tensilica] directly.  For an example of how to boot the Linux kernel using RedBoot on the LX60 or LX200 boards, see [[RedBoot Example]].&lt;br /&gt;
&lt;br /&gt;
A source tarball for RedBoot with support for the Xtensa architecture is available [http://linux-xtensa.org/pub/redboot/redboot1.3.1-RB2007.2.tgz here].  For more details, see the tarball&#039;s [http://linux-xtensa.org/pub/redboot/redboot1.3.1-RB2007.2/README.txt README.txt] file.&lt;br /&gt;
&lt;br /&gt;
== U-Boot ==&lt;br /&gt;
&lt;br /&gt;
[http://www.denx.de/wiki/UBoot U-Boot] is another popular boot loader.  A preliminary port to the Xtensa architecture is now available.  See [http://git.linux-xtensa.org/cgi-bin/git.cgi?p=u-boot/u-boot-xtensa.git;a=summary U-Boot Sources (GIT Summary)].  Or, to access this tree using &amp;lt;tt&amp;gt;git&amp;lt;/tt&amp;gt; directly, use something like:&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.linux-xtensa.org/git/u-boot/u-boot-xtensa.git u-boot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(&#039;&#039;&#039;Note:&#039;&#039;&#039;  This path is subject to change.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Before you can build U-Boot you must have built the toolchain for XTensa core.&lt;br /&gt;
Set your PATH to point to the toolchain built using buildroot.&lt;br /&gt;
&lt;br /&gt;
   $ export PATH=&amp;quot;&#039;&#039;&amp;lt;workdir&amp;gt;&#039;&#039;/buildroot/build_xtensa_&#039;&#039;&amp;lt;cname&amp;gt;&#039;&#039;/staging_dir/usr/bin:$PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;&amp;lt;cname&amp;gt;&#039;&#039; is the name of the Xtensa core variant you wish to build for (e.g., &amp;lt;tt&amp;gt;dc232b&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
To build U-Boot, first clone the tree as above, change to the top level of the tree, then configure it for your board and Xtensa core variant as follows:&lt;br /&gt;
&lt;br /&gt;
 make &amp;lt;cname&amp;gt;_&amp;lt;board&amp;gt;_config&lt;br /&gt;
&lt;br /&gt;
This should only take a few seconds. For example, to build U-boot for the &#039;xtav60&#039; board and &#039;dc232b&#039; core:&lt;br /&gt;
&lt;br /&gt;
 make dc232b_xtav60_config&lt;br /&gt;
&lt;br /&gt;
Only boards and core variants currently supported in the tree can be built out of the box. Headers for supported cores can be found in the tree under &amp;lt;tt&amp;gt;include/asm-xtensa/variant-&amp;lt;cname&amp;gt;&amp;lt;/tt&amp;gt;. The core specific headers are described in the &amp;lt;tt&amp;gt;doc/README.xtensa&amp;lt;/tt&amp;gt; file. To support a new core, these headers must be copied from the overlay in the same way as for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
After the configuration step, to actually build U-Boot, simply:&lt;br /&gt;
&lt;br /&gt;
 make all&lt;br /&gt;
&lt;br /&gt;
This will take a few minutes.&lt;br /&gt;
&lt;br /&gt;
Further details on U-Boot in general are in the generic &amp;lt;tt&amp;gt;README&amp;lt;/tt&amp;gt; at the top of the U-Boot tree. Details specific to the Xtensa architecture are in &amp;lt;tt&amp;gt;doc/README.xtensa&amp;lt;/tt&amp;gt;. Details specific to a board are in &amp;lt;tt&amp;gt;board[/&amp;lt;family&amp;gt;]/&amp;lt;board&amp;gt;/README&amp;lt;/tt&amp;gt; (for example &amp;lt;tt&amp;gt;board/avnet/xtav60/README&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Host-Side Loading via OCD ==&lt;br /&gt;
&lt;br /&gt;
An alternative to boot loaders is an external (e.g. &#039;&#039;&amp;quot;host-side&amp;quot;&#039;&#039;) loading mechanism.&lt;br /&gt;
&lt;br /&gt;
One common way to load a Linux kernel is to use debugging interfaces such as On-Chip Debug (OCD).  For example, Tensilica Tools GDB (xt-gdb) can connect to a target Xtensa processor using OCD via the Xtensa OCD Daemon.  It can then load and execute a Linux RAM image (Image.elf or vmlinux) onto the target using standard GDB commands.  See [[Buildroot_Build_Instructions#Download_and_run_the_kernel|Download and Run the Kernel]] for an example.&lt;br /&gt;
&lt;br /&gt;
== Linux Kernel Self-Boot Image ==&lt;br /&gt;
&lt;br /&gt;
It is possible to adapt the kernel build scripts for the Xtensa architecture to create a self-booting image. That is, a Linux kernel image that includes a Reset handler and can be either burned in ROM or Flash or downloaded to the target using another mechanism such as OCD.  &#039;&#039;&#039;&#039;&#039;Note:  This has not yet been implemented.&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ross</name></author>
	</entry>
	<entry>
		<id>http://wiki.linux-xtensa.org/index.php?title=Boot_Loader&amp;diff=154</id>
		<title>Boot Loader</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux-xtensa.org/index.php?title=Boot_Loader&amp;diff=154"/>
		<updated>2008-07-28T22:53:06Z</updated>

		<summary type="html">&lt;p&gt;Ross: Add basic build instructions and point to relevant READMEs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== BootLoader ==&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Bootloader bootstrap loader or boot loader] is a small program running on a computer or device after power-on to load the operating system. Most boot loaders today provide additional features that allow to upgrade the firmware and access the system for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
== RedBoot ==&lt;br /&gt;
&lt;br /&gt;
Tensilica has done a port of [http://sourceware.org/redboot/ RedBoot] for the Xtensa architecture. A RedBoot binary targeting the XTAV60 (LX60) or XTAV200 (LX200) emulation board is usually provided after generating an FPGA bitstream for one of these boards.  See the relevant board documentation from Tensilica for more details such as usage and supported features.  For more information and to request sources, please contact [http://www.tensilica.com/ Tensilica] directly.  For an example of how to boot the Linux kernel using RedBoot on the LX60 or LX200 boards, see [[RedBoot Example]].&lt;br /&gt;
&lt;br /&gt;
A source tarball for RedBoot with support for the Xtensa architecture is available [http://linux-xtensa.org/pub/redboot/redboot1.3.1-RB2007.2.tgz here].  For more details, see the tarball&#039;s [http://linux-xtensa.org/pub/redboot/redboot1.3.1-RB2007.2/README.txt README.txt] file.&lt;br /&gt;
&lt;br /&gt;
== U-Boot ==&lt;br /&gt;
&lt;br /&gt;
[http://www.denx.de/wiki/UBoot U-Boot] is another popular boot loader.  A preliminary port to the Xtensa architecture is now available.  See [http://git.linux-xtensa.org/cgi-bin/git.cgi?p=u-boot/u-boot-xtensa.git;a=summary U-Boot Sources (GIT Summary)].  Or, to access this tree using &amp;lt;tt&amp;gt;git&amp;lt;/tt&amp;gt; directly, use something like:&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.linux-xtensa.org/git/u-boot/u-boot-xtensa.git u-boot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(&#039;&#039;&#039;Note:&#039;&#039;&#039;  This path is subject to change.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To build U-Boot, first clone the tree as above, change to the top level of the tree, then configure it for your board and xtensa core variant as follows:&lt;br /&gt;
&lt;br /&gt;
 make &amp;lt;variant&amp;gt;_&amp;lt;board&amp;gt;_config&lt;br /&gt;
&lt;br /&gt;
This should only take a few seconds. For example, to build U-boot for the &#039;xtav60&#039; board and &#039;dc232b&#039; core variant:&lt;br /&gt;
&lt;br /&gt;
 make dc232b_xtav60_config&lt;br /&gt;
&lt;br /&gt;
Only boards and core variants currently supported in the tree can be built out of the box. Headers for supported variants can be found in the tree under &amp;lt;tt&amp;gt;include/asm-&amp;lt;variant&amp;gt;&amp;lt;/tt&amp;gt;. The variant specific headers are described in the &amp;lt;tt&amp;gt;doc/README.xtensa&amp;lt;/tt&amp;gt; file. To support a new variant, these headers must be copied from the overlay in the same way as for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
After the configuration step, to actually build U-Boot, simply:&lt;br /&gt;
&lt;br /&gt;
 make all&lt;br /&gt;
&lt;br /&gt;
This will take a few minutes.&lt;br /&gt;
&lt;br /&gt;
Further details on U-Boot in general are in the generic &amp;lt;tt&amp;gt;README&amp;lt;/tt&amp;gt; at the top of the U-Boot tree. Details specific to the xtensa architecture are in &amp;lt;tt&amp;gt;doc/README.xtensa&amp;lt;/tt&amp;gt;. Details specific to a board are in &amp;lt;tt&amp;gt;board[/&amp;lt;family&amp;gt;]/&amp;lt;board&amp;gt;/README&amp;lt;/tt&amp;gt; (for example &amp;lt;tt&amp;gt;board/avnet/xtav60/README&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Host-Side Loading via OCD ==&lt;br /&gt;
&lt;br /&gt;
An alternative to boot loaders is an external (e.g. &#039;&#039;&amp;quot;host-side&amp;quot;&#039;&#039;) loading mechanism.&lt;br /&gt;
&lt;br /&gt;
One common way to load a Linux kernel is to use debugging interfaces such as On-Chip Debug (OCD).  For example, Tensilica Tools GDB (xt-gdb) can connect to a target Xtensa processor using OCD via the Xtensa OCD Daemon.  It can then load and execute a Linux RAM image (Image.elf or vmlinux) onto the target using standard GDB commands.  See [[Buildroot_Build_Instructions#Download_and_run_the_kernel|Download and Run the Kernel]] for an example.&lt;br /&gt;
&lt;br /&gt;
== Linux Kernel Self-Boot Image ==&lt;br /&gt;
&lt;br /&gt;
It is possible to adapt the kernel build scripts for the Xtensa architecture to create a self-booting image. That is, a Linux kernel image that includes a Reset handler and can be either burned in ROM or Flash or downloaded to the target using another mechanism such as OCD.  &#039;&#039;&#039;&#039;&#039;Note:  This has not yet been implemented.&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ross</name></author>
	</entry>
</feed>