<?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=CELF_Project_Proposal/Rework_ARM_architecture_support_in_U-Boot&amp;feed=atom&amp;action=history</id>
		<title>CELF Project Proposal/Rework ARM architecture support in U-Boot - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/index.php?title=CELF_Project_Proposal/Rework_ARM_architecture_support_in_U-Boot&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=CELF_Project_Proposal/Rework_ARM_architecture_support_in_U-Boot&amp;action=history"/>
		<updated>2013-05-21T16:36:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.21alpha</generator>

	<entry>
		<id>http://elinux.org/index.php?title=CELF_Project_Proposal/Rework_ARM_architecture_support_in_U-Boot&amp;diff=15890&amp;oldid=prev</id>
		<title>Tim Bird: /* Description */</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=CELF_Project_Proposal/Rework_ARM_architecture_support_in_U-Boot&amp;diff=15890&amp;oldid=prev"/>
				<updated>2009-12-22T00:55:38Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Description&lt;/span&gt;&lt;/span&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:55, 22 December 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 49:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 49:&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;U-Boot, and at least achieve the following goals:&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;U-Boot, and at least achieve the following goals:&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;* enable relocation (reduce differences to other architectures; make&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;* enable relocation (reduce differences to other architectures; make features available there also available on ARM)&lt;/div&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/del&gt;features available there also available on ARM)&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;* enable real cache support (significantly reduce boot times on many systems)&lt;/div&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;* enable real cache support (significantly reduce boot times on many&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;* improve support for systems with multi-stage boot (like booting from NAND, DataFlash, or using a ROM based bootstrap loader)&lt;/div&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/del&gt;systems)&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;&lt;/div&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;* improve support for systems with multi-stage boot (like booting from&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;&lt;/div&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/del&gt;NAND, DataFlash, or using a ROM based bootstrap loader)&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;&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;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;; Scope : 3...5 weeks&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;; Scope : 3...5 weeks&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=CELF_Project_Proposal/Rework_ARM_architecture_support_in_U-Boot&amp;diff=15889&amp;oldid=prev</id>
		<title>Tim Bird: add project proposal</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=CELF_Project_Proposal/Rework_ARM_architecture_support_in_U-Boot&amp;diff=15889&amp;oldid=prev"/>
				<updated>2009-12-22T00:55:09Z</updated>
		
		<summary type="html">&lt;p&gt;add project proposal&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;; Summary : Fix some design issues in the U-Boot implementation for the ARM architecture&lt;br /&gt;
&lt;br /&gt;
; Proposer : Wolfgang Denk&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
U-Boot is a pretty popular boot loader for embedded&lt;br /&gt;
systems, including and especially for systems based on the ARM&lt;br /&gt;
architecture. Unfortunately, the ARM implementation has some&lt;br /&gt;
deficiencies:&lt;br /&gt;
&lt;br /&gt;
On other architectures (like PowerPC), we normally use code to&lt;br /&gt;
automatically determine the memory sizes on a board. One binary image&lt;br /&gt;
of U-Boot can run unchanged on boards with different sizes of flash&lt;br /&gt;
and RAM. U-Boot will always relocate itself to the end of the&lt;br /&gt;
available RAM, thus leaving the maximum possible amount of RAM&lt;br /&gt;
available for the user, for example to load Linux kernel and root&lt;br /&gt;
file system.&lt;br /&gt;
&lt;br /&gt;
If we need to reserve memory, like for protected RAM (pRAM), or for a&lt;br /&gt;
frame buffer that will be shared between U-Boot and Linux (so you can&lt;br /&gt;
have a splash screen right after power-on which does not even flicker&lt;br /&gt;
when Linux boots), or for a shared log buffer (so you can for example&lt;br /&gt;
process U-Boot's Power-On Self Test messages in Linux using standard&lt;br /&gt;
syslog tools, or you can use U-Boot to dump the Linux kernel's crash&lt;br /&gt;
messages post mortem in U-Boot or in Linux after rebooting the&lt;br /&gt;
system), we just shift the relocation address for U-Boot down by the&lt;br /&gt;
required amount.&lt;br /&gt;
&lt;br /&gt;
If you need a different amount of pRAM, just &amp;quot;setenv&amp;quot; the &amp;quot;pram&amp;quot;&lt;br /&gt;
environment variable, and U-Boot will auto-adjust at the next reboot.&lt;br /&gt;
&lt;br /&gt;
On ARM, we don't do any such relocation, we link the image for a&lt;br /&gt;
fixed address in RAM. So assume you have a board that can come with&lt;br /&gt;
32 MB or with 64 MB of RAM. You will have to link U-Boot close to the&lt;br /&gt;
end of the 32 MB border - say to run at 31 MB. On a 64 MB board this&lt;br /&gt;
means it sits right in the middle of available RAM - you have some&lt;br /&gt;
63+ MB of RAM free, but you cannot find more than 32 MB contiguous&lt;br /&gt;
space. If you need pRAM or framebuffer or log buffer, you will have&lt;br /&gt;
to configure sizes at compile time, and then you cannot change it at&lt;br /&gt;
run time. Systems with variable RAM sizes will always suffer from the&lt;br /&gt;
same restrictions like on the board with the smallest RAM&lt;br /&gt;
configuration.&lt;br /&gt;
&lt;br /&gt;
Also, the initialization sequence on ARM is sub-optimal; for example,&lt;br /&gt;
on most systems caches are not effective, so booting (especially&lt;br /&gt;
loading big images from storage like NAND etc.) is slow.&lt;br /&gt;
&lt;br /&gt;
This project shall fix the problems in the ARM implementation of&lt;br /&gt;
U-Boot, and at least achieve the following goals:&lt;br /&gt;
&lt;br /&gt;
* enable relocation (reduce differences to other architectures; make&lt;br /&gt;
  features available there also available on ARM)&lt;br /&gt;
* enable real cache support (significantly reduce boot times on many&lt;br /&gt;
  systems)&lt;br /&gt;
* improve support for systems with multi-stage boot (like booting from&lt;br /&gt;
  NAND, DataFlash, or using a ROM based bootstrap loader)&lt;br /&gt;
&lt;br /&gt;
; Scope : 3...5 weeks&lt;br /&gt;
&lt;br /&gt;
== Contractor Candidate ==&lt;br /&gt;
Interested and willing to work on this: DENX&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Project proposals]]&lt;/div&gt;</summary>
		<author><name>Tim Bird</name></author>	</entry>

	</feed>