<?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/"
	>

<channel>
	<title>LinuxEco &#187; startup_32</title>
	<atom:link href="http://linuxeco.com/?feed=rss2&#038;tag=startup_32" rel="self" type="application/rss+xml" />
	<link>http://linuxeco.com</link>
	<description>Linux Ecosystems, Linux Kernel Training, Kernel Education and Information Exchange, Linux Training</description>
	<lastBuildDate>Fri, 03 Aug 2012 18:36:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Linux Boot: The Beginning was startup_32, and it was with Linus, and it WAS Linus also</title>
		<link>http://linuxeco.com/?p=197</link>
		<comments>http://linuxeco.com/?p=197#comments</comments>
		<pubDate>Mon, 23 Jan 2012 19:59:49 +0000</pubDate>
		<dc:creator>Anand</dc:creator>
				<category><![CDATA[Linux kernel Boot]]></category>
		<category><![CDATA[Linux Kernel x86]]></category>
		<category><![CDATA[Linux kernel boot]]></category>
		<category><![CDATA[startup_32]]></category>

		<guid isPermaLink="false">http://linuxeco.com/?p=197</guid>
		<description><![CDATA[In an earlier post, we referred to startup_32. Well, __start and start_of_setup the target of the int 19h within the boot context, the target of the first start_32 is located at the 1M watermark as we had mentioned. What is also special about __start is that we see here the first instruction executed within the [...]]]></description>
			<content:encoded><![CDATA[<p>In an earlier post, we referred to <strong>startup_32</strong>. Well, __start and start_of_setup the target of the int 19h within the boot context, the target of the first <strong>start_32</strong> is located at the 1M watermark as we had mentioned.</p>
<p><img class="alignright size-medium wp-image-198" title="First Instruction past Boot 2" src="http://linuxeco.com/wp-content/uploads/2012/01/First-Instruction-past-Boot-2-228x300.png" alt="" width="228" height="300" /></p>
<p>What is also special about __start is that we see here the first instruction executed within the context of the kernel (in the case of the objdump shown, we have opted out of the &#8220;SAFE RESET of the Controller at config time&#8221;, because INT19H presumably has done a good thorough job in the boot context), and we are onto creating a nice clean stack and then check out the magic codes of the boot sectors etc &#8211;&gt;</p>
<p>By the time we get to the first startup_32, we are in protected mode, memory &gt; 1MB can be accessed (the target of the decompress). The second startup_32 can therefore be located at the 1M watermark (0010 0000h), and with VA relocation at c010 0000h.</p>
<p>What is so special about this watermark ? It is &#8230; the first time we have executed instructions beyond the addressing limits set by x86 real-mode (which as we all know is limited in memory access to 0xFFFFF ..</p>
<p>We discuss Linux Kernel startup/boot concepts and more in my classes with kernel code walk throughs and programming assignments ( Advanced Linux Kernel Programming @UCSC-Extension, and also in other classes that I teach independently). Please take note, and take advantage also, of upcoming training sessions. Anand has also written production x86 protected-mode microcode, so is in a unique position to educate on that front. As always, Feedback, Questions and Comments are appreciated and will be responded to.</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxeco.com/?feed=rss2&#038;p=197</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
