<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>I am here...</title>
	<atom:link href="http://turbosree.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://turbosree.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 24 Nov 2011 07:16:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='turbosree.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/5f87e1a6b0705cdad0cb5bacd7b4413c?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>I am here...</title>
		<link>http://turbosree.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://turbosree.wordpress.com/osd.xml" title="I am here..." />
	<atom:link rel='hub' href='http://turbosree.wordpress.com/?pushpress=hub'/>
		<item>
		<title>A pleasant surprise!</title>
		<link>http://turbosree.wordpress.com/2011/11/24/a-pleasant-surprise/</link>
		<comments>http://turbosree.wordpress.com/2011/11/24/a-pleasant-surprise/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 07:16:03 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/2011/11/24/a-pleasant-surprise/</guid>
		<description><![CDATA[It was indeed a pleasant surprise this morning to see my name listed in ACE+TAO contributors . http://www.cs.wustl.edu/~schmidt/ACE-members.html I must thank Vyasan and Dhruba, my previous project managers, for their immense support and encouragement during the conceptualization of a ACE+TAO based distributed infotainment software architecture. I had then prototyped a digital cluster based on this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=358&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It was indeed a pleasant surprise this morning to see my name listed in ACE+TAO contributors <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><a href="http://www.cs.wustl.edu/~schmidt/ACE-members.html" target="_blank">http://www.cs.wustl.edu/~schmidt/ACE-members.html</a></p>
<p>I must thank Vyasan and Dhruba, my previous project managers, for their immense support and encouragement during the conceptualization of a ACE+TAO based distributed infotainment software architecture. I had then prototyped a digital cluster based on this distributed object architecture.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/358/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=358&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2011/11/24/a-pleasant-surprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux groups launch Tizen to fight Android</title>
		<link>http://turbosree.wordpress.com/2011/10/03/linux-groups-launch-tizen-to-fight-android/</link>
		<comments>http://turbosree.wordpress.com/2011/10/03/linux-groups-launch-tizen-to-fight-android/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 05:54:39 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[Mobile device software platform]]></category>
		<category><![CDATA[Android alternative]]></category>
		<category><![CDATA[Open source mobile platform]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/?p=175</guid>
		<description><![CDATA[Two Linux oriented non-profit groups, The LiMo Foundation and The Linux Foundation, have announced an open-source project called Tizen, intended to develop a mobile device software platform based on the Linux operating system. Read more here<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=175&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Two Linux oriented non-profit groups, The LiMo Foundation and The Linux Foundation, have announced an open-source project called Tizen, intended to develop a mobile device software platform based on the Linux operating system. Read more <a href="http://www.electronics-eetimes.com/en/linux-groups-launch-tizen-to-fight-android.html?cmp_id=7&amp;news_id=222909400" target="_blank">here</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/175/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=175&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2011/10/03/linux-groups-launch-tizen-to-fight-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>Know your EPF account balance online!</title>
		<link>http://turbosree.wordpress.com/2011/09/14/know-your-epf-account-balance-online/</link>
		<comments>http://turbosree.wordpress.com/2011/09/14/know-your-epf-account-balance-online/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 12:35:43 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Account balance online]]></category>
		<category><![CDATA[EPF]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/2011/09/14/know-your-epf-account-balance-online/</guid>
		<description><![CDATA[You can now check your EPF account balance online here. For Karnataka/Bangalore, you need to select “BOMMASANDRA” EPF office in Karnataka state page. Also you need to provide the EPF A/C details and mobile phone number. The balance information will be send to you via SMS. I am sure, you will be very happy when [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=153&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You can now check your EPF account balance online <a href="http://www.epfindia.com/MembBal.html" target="_blank">here</a>.<br />
For Karnataka/Bangalore, you need to select “BOMMASANDRA” EPF office in Karnataka state page. Also you need to provide the EPF A/C details and mobile phone number. The balance information will be send to you via SMS. I am sure, you will be very happy when you see that SMS <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=153&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2011/09/14/know-your-epf-account-balance-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>Atomthreads RTOS Port for AVR32</title>
		<link>http://turbosree.wordpress.com/2011/08/22/atomthreads-rtos-port-for-avr32/</link>
		<comments>http://turbosree.wordpress.com/2011/08/22/atomthreads-rtos-port-for-avr32/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 10:11:43 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Atomthreads]]></category>
		<category><![CDATA[AVR32]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[RTOS Scheduler]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/2011/09/13/atomthreads-rtos-port-for-avr32/</guid>
		<description><![CDATA[A testing version of AVR32 port for atomthreads RTOS is available here. I do have an ATNGW100 board, but since I don&#8217;t have a AVR JTAGICE mkII, I am yet to test this port on hardware. Any help in this regard is greatly appreciated. Everyone is welcome to review and contribute. More on atomthreads here.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=148&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A testing version of AVR32 port for atomthreads RTOS is available <a href="https://github.com/turbosree/atomthreads" target="_blank">here</a>.</p>
<p>I do have an ATNGW100 board, but since I don&#8217;t have a AVR JTAGICE mkII, I am yet to test this port on hardware. Any help in this regard is greatly appreciated.</p>
<p>Everyone is welcome to review and contribute. More on atomthreads <a href="http://atomthreads.com/" target="_blank">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=148&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2011/08/22/atomthreads-rtos-port-for-avr32/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>A simple tftp kaizen!</title>
		<link>http://turbosree.wordpress.com/2010/10/23/a-simple-tftp-kaizen-2/</link>
		<comments>http://turbosree.wordpress.com/2010/10/23/a-simple-tftp-kaizen-2/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 20:00:39 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[tftp]]></category>
		<category><![CDATA[uboot]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/?p=181</guid>
		<description><![CDATA[If you are using tftp and you copy the target executable to the tftp root folder each time after compilation, here is a simple kaizen to make your life easy! System: Ubuntu 10.04 1) sudo apt-get install atftp 2) sudo vim /etc/default/atftpd Change the following line USE_INETD=true to USE_INETD=false save and exit the file 3) sudo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=181&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you are using tftp and you copy the target executable to the tftp root folder each time after compilation, here is a simple kaizen to make your life easy!</p>
<p>System: Ubuntu 10.04<br />
1) sudo apt-get install atftp<br />
2) sudo vim /etc/default/atftpd</p>
<p>Change the following line</p>
<p>USE_INETD=true</p>
<p>to</p>
<p>USE_INETD=false</p>
<p>save and exit the file<br />
3) sudo service atftpd start<br />
4) Now comes the interesting part, just create a <strong>symbolic link</strong> to the target file in /srv/tftp, which you want to copy each time to the board.<br />
Eg:<br />
$sudo ln -s /home/sreejithn/Embedded/ATngw100/buildroot-avr32-v2.2.1/project_build_avr32/atngw100/root/boot/a.bin /srv/tftp/a.bin<br />
Now &#8216;make tftp&#8217; in the project folder can copy the new a.bin to the above target location and tftp from uboot prompt will download the newly copied a.bin.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=181&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2010/10/23/a-simple-tftp-kaizen-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>[U-Boot] Embedded standalone application for AVR32</title>
		<link>http://turbosree.wordpress.com/2010/10/21/u-boot-embedded-standalone-application-for-avr32/</link>
		<comments>http://turbosree.wordpress.com/2010/10/21/u-boot-embedded-standalone-application-for-avr32/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 12:41:50 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/?p=161</guid>
		<description><![CDATA[U-Boot&#62;  tftp 0&#215;10400000 a.bin macb0: Starting autonegotiation&#8230; macb0: Autonegotiation complete macb0: link up, 100Mbps full-duplex (lpa: 0x45e1) Using macb0 device TFTP from server 192.168.0.106; our IP address is 192.168.0.10 Filename &#8216;a.bin&#8217;. Load address: 0&#215;10400000 Loading: *T # done Bytes transferred = 56 (38 hex) U-Boot&#62; go 0&#215;10400000 ## Starting application at 0&#215;10400000 &#8230; &#8230; the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=161&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>U-Boot&gt;  tftp 0&#215;10400000 a.bin<br />
macb0: Starting autonegotiation&#8230;<br />
macb0: Autonegotiation complete<br />
macb0: link up, 100Mbps full-duplex (lpa: 0x45e1)<br />
Using macb0 device<br />
TFTP from server 192.168.0.106; our IP address is 192.168.0.10<br />
Filename &#8216;a.bin&#8217;.<br />
Load address: 0&#215;10400000<br />
Loading: *T #<br />
done<br />
Bytes transferred = 56 (38 hex)<br />
U-Boot&gt; go 0&#215;10400000<br />
## Starting application at 0&#215;10400000 &#8230;</p>
<p><strong>&#8230; the red LED on ATngw100 started blinking! So we have loaded our first standalone AVR32 application using u-boot <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</strong></p>
<p>blink_led.c:</p>
<p>#include &lt;avr32/io.h&gt;<br />
int main( void )<br />
{<br />
unsigned long i = 0;<br />
/* Set up a pio structure to point at PIOA&#8217;s base address */<br />
volatile avr32_pio_t *pioa = &amp;AVR32_PIOA;</p>
<p>pioa-&gt;per = 0&#215;00080000; /* Set pio enable for PA19 of PORTA */<br />
pioa-&gt;oer = 0&#215;00080000; /* Make them output port */<br />
pioa-&gt;idr = 0&#215;00080000; /* Disable interrupts on these pins */<br />
pioa-&gt;pudr =0&#215;00080000; /* disable pull-ups */</p>
<p>while(1)<br />
{<br />
i++;<br />
if(i &amp; 0&#215;00800000)<br />
{<br />
pioa-&gt;codr = 0&#215;00080000; /* set PA19 to low */<br />
} else<br />
{<br />
pioa-&gt;sodr = 0&#215;00080000; /* set PA19 to high */<br />
}<br />
}<br />
return 0;<br />
}</p>
<p>Makefile:</p>
<p>VPATH = src<br />
TOOL_CHAIN = /home/sreejithn/Embedded/ATngw100/as4e-ide/plugins/com.atmel.avr.toolchains.linux.x86_3.0.0.201009140852/os/linux/x86<br />
TFTP_ROOT = /home/sreejithn/Embedded/ATngw100/buildroot-avr32-v2.2.1/project_build_avr32/atngw100/root<br />
COMPILER = $(TOOL_CHAIN)/bin/avr32-gcc<br />
LD = $(TOOL_CHAIN)/bin/avr32-ld<br />
OBJCOPY = $(TOOL_CHAIN)/bin/avr32-objcopy<br />
OBJDUMP = $(TOOL_CHAIN)/bin/avr32-objdump<br />
OBJCOPYFLAGS = -O binary<br />
CFLAGS = -O2 -Wall -fmessage-length=0 -mpart=ap7000 -ffunction-sections<br />
LDFLAGS = -e 0&#215;10400000<br />
INCLUDE = -I./src -I$(TOOL_CHAIN)/avr32/include<br />
LIBS =<br />
OUT = a<br />
ODIR = out</p>
<p>SRC = blink_led.c</p>
<p>_OBJ = $(subst .c,.o,$(SRC))<br />
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))</p>
<p>all:    build \<br />
ld \<br />
objcopy</p>
<p>build: $(OBJ)<br />
# $(COMPILER) $(CFLAGS) \<br />
# $^ \<br />
# $(INCLUDE) \<br />
# -o $(ODIR)/$(OUT)</p>
<p>ld: $(OBJ)<br />
$(LD) $(LDFLAGS) \<br />
$^ \<br />
-o $(ODIR)/$(OUT).out</p>
<p>objcopy: $(ODIR)/$(OUT).out<br />
$(OBJCOPY) $(OBJCOPYFLAGS) \<br />
$&lt; \<br />
$(ODIR)/$(OUT).bin</p>
<p>objdump:<br />
$(OBJDUMP) -D $(ODIR)/$(OUT).out</p>
<p>copy:<br />
cp -vf $(ODIR)/$(OUT).bin $(TFTP_ROOT)/boot</p>
<p>$(ODIR)/%.o : %.c<br />
$(COMPILER) $(CFLAGS) \<br />
-c $&lt; \<br />
$(INCLUDE) \<br />
-o $@</p>
<p>clean:<br />
rm -f $(ODIR)/*.o $(ODIR)/$(OUT).out $(ODIR)/$(OUT).bin</p>
<p><strong>I need to find a better way to share files! <img src='http://s1.wp.com/wp-includes/images/smilies/icon_confused.gif' alt=':-?' class='wp-smiley' /> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=161&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2010/10/21/u-boot-embedded-standalone-application-for-avr32/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding u-boot source &#8211; linker script</title>
		<link>http://turbosree.wordpress.com/2010/10/17/understanding-u-boot-source-linker-script/</link>
		<comments>http://turbosree.wordpress.com/2010/10/17/understanding-u-boot-source-linker-script/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 09:26:14 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[ATngw100]]></category>
		<category><![CDATA[AVR32]]></category>
		<category><![CDATA[linker scripts]]></category>
		<category><![CDATA[understanding u-boot]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/?p=156</guid>
		<description><![CDATA[Linker scripts provides a memory dissected view of the final linker output &#8211; executable.  Generally, when a program is run (executed) under an OS with C environment, a loader reads executable file and loads different sections of the executable file in the specified memory location and starts executing the start function(entry point) specified in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=156&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Linker scripts provides a memory dissected view of the final linker output &#8211; executable.  Generally, when a program is run (executed) under an OS with C environment, a loader reads executable file and loads different sections of the executable file in the specified memory location and starts executing the start function(entry point) specified in the linker script. But, if you want to run(load) a boot loader there will not be any loader to load(basically to understand the file format, Eg: elf) different sections of executable file into the memory. The GNU binary utility objcopy is used to generate a raw binary(with no specific file format) from executable file (elf). This binary image can be loaded into device ROM at architecture specific address and will start execution from there on power on reset. Let us examine AVR32/board specific linker script,</p>
<p>OUTPUT_FORMAT(&#8220;elf32-avr32&#8243;, &#8220;elf32-avr32&#8243;, &#8220;elf32-avr32&#8243;) /* Executable file format */<br />
OUTPUT_ARCH(avr32) /*CPU Architecture*/<br />
ENTRY(_start) /*Entry point, &#8216;_start&#8217; label*/</p>
<p>SECTIONS<br />
{<br />
. = 0;    /* AP7000 exception vector base address is 0&#215;00, so we place our .text segment here */<br />
_text = .; /* Initialize labels, later used in remap */<br />
.text : {<br />
*(.exception.text) /* Beginning of .text is exception vector. See start.S */<br />
*(.text)<br />
*(.text.*)<br />
}<br />
_etext = .; /* Initialize labels, later used in remap */</p>
<p>.rodata : { /* Follows the read only data. Eg: string constants. */<br />
*(.rodata)<br />
*(.rodata.*)<br />
}</p>
<p>. = ALIGN(8); /* 8 byte align the current location counter (.) */<br />
_data = .; /* Follows the data segment. Eg: Initialized global variables. */<br />
.data : {<br />
*(.data)<br />
*(.data.*)<br />
}</p>
<p>. = ALIGN(4); /* 4 byte align the current location counter (.) */<br />
__u_boot_cmd_start = .; /* Initialize labels, later referenced in C code */<br />
.u_boot_cmd : { /* Follows the u-boot command objects discussed in earlier post */<br />
KEEP(*(.u_boot_cmd))<br />
}<br />
__u_boot_cmd_end = .; /* Initialize labels, later referenced in C code */</p>
<p>. = ALIGN(4); /* 4 byte align the current location counter (.) */<br />
_got = .;<br />
.got : { /* Follows the .got segment discussed in earlier post */<br />
*(.got)<br />
}<br />
_egot = .;</p>
<p>. = ALIGN(8); /* 8 byte align the current location counter (.) */<br />
_edata = .;</p>
<p>.bss : { /* Follows the .bss sections. Eg: Uninitialized global variables*/<br />
*(.bss)<br />
*(.bss.*)<br />
}<br />
. = ALIGN(8);<br />
_end = .;<br />
}<br />
See also <a href="http://pramode.net/fosstronics/essential-ld.txt" target="_blank">essential-ld</a>.</p>
<p>Based on your boot strategy, you will have to provide correct entry point in linker script for u-boot to load OS/standalone application correctly. This can also be done using -e argument to the gcc linker. This restriction is not there if your built OS/Application image is position independent code (PIC). Some interesting experiments are,</p>
<p>1) Load and boot a Linux image from different SDRAM locations.</p>
<p>2) Load and boot a standalone application from u-boot prompt.</p>
<p>3) Let u-boot run a standalone application first, then successfully return to u-boot and run a Linux kernel.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=156&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2010/10/17/understanding-u-boot-source-linker-script/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding u-boot source – Shell commands and Environment variables</title>
		<link>http://turbosree.wordpress.com/2010/09/29/understanding-u-boot-source-%e2%80%93-shell-commands-and-environment-variables/</link>
		<comments>http://turbosree.wordpress.com/2010/09/29/understanding-u-boot-source-%e2%80%93-shell-commands-and-environment-variables/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 22:55:13 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[FOSS]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/?p=119</guid>
		<description><![CDATA[U-boot supports scripting with shell commands and to leverage the same it has a set of environment variables maintained in a non-volatile memory. The command table is build time configurable and is placed in a separate section in the u-boot image. Let&#8217;s inspect the u-boot.lds linker script, ./board/atmel/atngw100/u-boot.lds:51: __u_boot_cmd_start = .; .u_boot_cmd : { KEEP(*(.u_boot_cmd)) } __u_boot_cmd_end [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=119&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>U-boot supports scripting with shell commands and to leverage the same it has a set of environment variables maintained in a non-volatile memory. The command table is build time configurable and is placed in a separate section in the u-boot image. Let&#8217;s inspect the u-boot.lds linker script,</p>
<p>./board/atmel/atngw100/u-boot.lds:51:</p>
<p>__u_boot_cmd_start = .;	.u_boot_cmd : {		KEEP(*(.u_boot_cmd))	}	__u_boot_cmd_end = .;</p>
<p>__u_boot_cmd_start and __u_boot_cmd_end are global symbols which are used in C code while relocating the command table to SDRAM. Some interesting implementation are there in command table handling. The above global symbols are defined in command.h as below,</p>
<p>./include/command.h:59:</p>
<p>extern cmd_tbl_t  __u_boot_cmd_start;</p>
<p>extern cmd_tbl_t  __u_boot_cmd_end;</p>
<p>cmd_tbl_t is a structure holding command attributes. &#8216;Struct_Section&#8217; defines a new section in the u-boot output image &#8211; .u_boot_cmd</p>
<p>#define Struct_Section  __attribute__ ((unused,section (&#8220;.u_boot_cmd&#8221;)))</p>
<p>And the below XMACRO makes the build time command table configuration possible,</p>
<p>#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage}</p>
<p>In u-boot memory map, we can imagine an array of command structures (cmd_tbl_t) stored, starting at &#8216;__u_boot_cmd_start&#8217; till &#8216;__u_boot_cmd_end&#8217;. This means (&amp;__u_boot_cmd_start &#8211; &amp;__u_boot_cmd_end) will give the number of commands configured for a particular board variant. The below code will make an array of commands from the .uboot_cmd section,</p>
<p>/* Make array of commands from .uboot_cmd section */</p>
<p>cmd_tbl_t * cmdtp = &amp;__u_boot_cmd_start;</p>
<p>int num_cmds = &amp;__u_boot_cmd_end &#8211; &amp;__u_boot_cmd_start;	/* pointer arith! */</p>
<p>cmd_tbl_t *cmd_array[num_cmds];</p>
<p>for (i = 0; i &lt; num_cmds; i++)</p>
<p>{</p>
<p style="padding-left:30px;">cmd_array[i] = cmdtp++;</p>
<p>}</p>
<p>The shell interpretor is implemented in the &#8216;main_loop()&#8217; function.</p>
<p>The &#8216;env_t&#8217; structure defines an environment variable attribute. U-boot supports environment variable storage in a fashion and memory devices -.text segment (CFG_ENV_IS_EMBEDDED), in flash (CFG_ENV_IS_IN_FLASH) and in EEPROM (CFG_ENV_IS_IN_EEPROM) etc. U-boot allocates &#8216;CFG_ENV_SIZE&#8217; size memory for environment variables and it is copied from non-volatile memory to SDRAM.The following shell commands manipulate environment variables: setenv, printenv, saveenv.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=119&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2010/09/29/understanding-u-boot-source-%e2%80%93-shell-commands-and-environment-variables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding u-boot source – Global variables in a Global data structure</title>
		<link>http://turbosree.wordpress.com/2010/09/28/understanding-u-boot-source-%e2%80%93-global-variables-in-a-global-data-structure/</link>
		<comments>http://turbosree.wordpress.com/2010/09/28/understanding-u-boot-source-%e2%80%93-global-variables-in-a-global-data-structure/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 20:43:16 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[ATngw100]]></category>
		<category><![CDATA[AVR32]]></category>
		<category><![CDATA[boot loader]]></category>
		<category><![CDATA[understanding u-boot]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/?p=106</guid>
		<description><![CDATA[A major challenge in boot loader design in high level languages such as C is the lack of a run-time environment at the early stage of boot loader execution. The run-time initialization code (for C programs, usually crt0) include something like the following, to copy the initialized data from the ROM image to its runtime address: char [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=106&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A major challenge in boot loader design in high level languages such as C is the lack of a run-time environment at the early stage of boot loader execution. The run-time initialization code (for C programs, usually <code>crt0</code>) include something like the following, to copy the initialized data from the ROM image to its runtime address:</p>
<dd>
<pre>char *src = _etext;
char *dst = _data;
/* ROM has data at end of text; copy it. */
while (dst &lt; _edata) {
  *dst++ = *src++;
}
/* Zero bss */
for (dst = _bstart; dst&lt; _bend; dst++)
  *dst = 0;</pre>
<p><a name="IDX233"></a><a name="IDX234"></a><a name="IDX235"></a></dd>
<p>U-boot README mentions few assumptions in this regard,</p>
<p>&#8220;It is essential to remember this, since it has some impact on the C code for the initialization procedures:<br />
* Initialized global data (data segment) is read-only. Do not attempt to write it.<br />
* Do not use any uninitialized global data (or implicitely initialized as zero data &#8211; BSS segment) at all &#8211; this is undefined, initialization is performed later (when relocating to RAM).<br />
* Stack space is very limited. Avoid big data buffers or things like that.<br />
Having only the stack as writable memory limits means we cannot use normal global data to share information beween the code. But it turned out that the implementation of U-Boot can be greatly simplified by making a global data structure (gd_t) available to all functions. We could pass a pointer to this data as argument to _all_functions, but this would bloat the code. Instead we use a feature of the GCC compiler (Global Register Variables) to share the data: we place a pointer (gd) to the global data into a register which we reserve for this purpose.&#8221;</p>
<p>For avr32 target gd_t pointer is defined here:</p>
<p>/include/asm-avr32/global_data.h:59:#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm(&#8220;r5&#8243;)</p>
<p>The &#8216;relocate_code&#8217; assembly function relocates the u-boot image into RAM and continue from there. The &#8216;SP&#8217; is modified to use the new bigger stack in SDRAM. Then the .text section and .data section are copied to SDRAM and .bss(uninitialized global data) is zeroed. This function never return, but self modifies &#8216;PC&#8217; and jumps to a location in ram (in_ram). Finally calls &#8216;board_init_r&#8217; C function and continues execution in C environment.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=106&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2010/09/28/understanding-u-boot-source-%e2%80%93-global-variables-in-a-global-data-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding u-boot source &#8211; The curious case of &#8216;gd_t&#8217;!</title>
		<link>http://turbosree.wordpress.com/2010/09/24/understanding-u-boot-source-the-curious-case-of-gd_t/</link>
		<comments>http://turbosree.wordpress.com/2010/09/24/understanding-u-boot-source-the-curious-case-of-gd_t/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 13:34:15 +0000</pubDate>
		<dc:creator>Sreejith</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[ATngw100]]></category>
		<category><![CDATA[AVR32]]></category>
		<category><![CDATA[boot loader]]></category>
		<category><![CDATA[understanding u-boot]]></category>

		<guid isPermaLink="false">http://turbosree.wordpress.com/?p=111</guid>
		<description><![CDATA[Now we know that the boot strap initialization in u-boot is done in assembly and then after initializing an &#8216;initial&#8217; stack the control flow goes to the &#8216;C&#8217; functions in u-boot. By looking at other cpu\ and board\ files we can understand that each cpu implements its initial boot strap code in assembly (start.S) and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=111&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now we know that the boot strap initialization in u-boot is done in assembly and then after initializing an &#8216;initial&#8217; stack the control flow goes to the &#8216;C&#8217; functions in u-boot. By looking at other cpu\ and board\ files we can understand that each cpu implements its initial boot strap code in assembly (start.S) and they have specific &#8216;C&#8217; initialization functions for different boards which use these cpus. The AP7000 processor uses its internal RAM first for allocating a small stack before the SDRAM controller is initialized later in the &#8216;board_init_f&#8217; function. If SDRAM is not available on the board the booting stalls here, ./lib_avr32/board.c:199:</p>
<p>/* If we have no SDRAM, we can&#8217;t go on */<br />
if (sdram_size &lt;= 0)<br />
panic(&#8220;No working SDRAM available\n&#8221;);</p>
<p>U-boot sets UART Baudrate and initializes the serial console and sends a &#8216;banner&#8217; to display memory configuration and ram test results. This can be view by connecting gtkTerm or PuTTy to ATngw100 serial port.</p>
<p>Once the SDRAM is initialized u-boot relocates itself from flash to RAM and execute from there. Before relocating code a &#8216;bigger&#8217; stack and space for the following are allocated in RAM,<br />
- u-boot image<br />
- heap for malloc()<br />
- board info struct<br />
- global data struct(**)</p>
<p>It is interesting that &#8216;board_init_f&#8217; function never returns, knowing that it was never &#8216;call&#8217;ed! [ ./cpu/at32ap/start.S:186:	rjmp	board_init_f ]<br />
It simply calls &#8216;relocate_code((unsigned long)new_sp, new_gd, monitor_addr);&#8217; which is a call to its assembly implementation in start.S.</p>
<p>(**) Did you notice that? There is a mysterious pointer &#8216;new_gd&#8217; leading us to know more about so called &#8216;global data struct&#8217; (gd_t) in u-boot! Also I am curios to know how &#8216;relocate_code&#8217; &#8216;C&#8217; function call pass parameters to its assembly implementation in start.S!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/turbosree.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/turbosree.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/turbosree.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/turbosree.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/turbosree.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/turbosree.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/turbosree.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/turbosree.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/turbosree.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/turbosree.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/turbosree.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/turbosree.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/turbosree.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/turbosree.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=turbosree.wordpress.com&amp;blog=863067&amp;post=111&amp;subd=turbosree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://turbosree.wordpress.com/2010/09/24/understanding-u-boot-source-the-curious-case-of-gd_t/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b519fa77dafeb975fa0c3c72f82ac450?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">turbosree</media:title>
		</media:content>
	</item>
	</channel>
</rss>
