<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Arm on FreeBSD developer&#39;s notebook</title>
    <link>https://kernelnomicon.org/tags/arm/</link>
    <description>Recent content in Arm on FreeBSD developer&#39;s notebook</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 19 Apr 2013 19:24:19 +0000</lastBuildDate>
    <atom:link href="https://kernelnomicon.org/tags/arm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Netbooting ARM/MIPS devices: ubldr</title>
      <link>https://kernelnomicon.org/posts/netbooting-armmips-devices-ubldr/</link>
      <pubDate>Fri, 19 Apr 2013 19:24:19 +0000</pubDate>
      <guid>https://kernelnomicon.org/posts/netbooting-armmips-devices-ubldr/</guid>
      <description>&lt;p&gt;As it was mentioned in &lt;a href=&#34;http://kernelnomicon.org/?p=327&#34;&gt;previous post&lt;/a&gt; U-Boot can boot FreeBSD kernel directly but this approach doesn&amp;rsquo;t allow a great deal of control over boot process: there is no way to set tunables&amp;rsquo; values or pre-load module. Controlling this stuff requires more knowledge of FreeBSD internal data structures and its boot process then U-Boot holds.&lt;/p&gt;
&lt;p&gt;On i386 and other Tier1 architectures this task is handled by the &lt;a href=&#34;http://www.freebsd.org/cgi/man.cgi?query=loader&amp;amp;sektion=8&#34;&gt;loader(8)&lt;/a&gt; program. It&amp;rsquo;s last stage boot loader (e.g. it&amp;rsquo;s supposed to pass control to FreeBSD kernel only), highly customizable and scriptable. &lt;a href=&#34;http://www.freebsd.org/cgi/man.cgi?query=loader&amp;amp;sektion=8&#34;&gt;loader(8)&lt;/a&gt; relies on one of the previous stages boot loader to access resources like disks, console, network. For i386 it&amp;rsquo;s BTX and BIOS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Netbooting ARM/MIPS devices: kinds of kernel and u-boot</title>
      <link>https://kernelnomicon.org/posts/netbooting-armmips-devices-kinds-of-kernel-and-u-boot/</link>
      <pubDate>Fri, 15 Feb 2013 16:33:58 +0000</pubDate>
      <guid>https://kernelnomicon.org/posts/netbooting-armmips-devices-kinds-of-kernel-and-u-boot/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.denx.de/wiki/U-Boot&#34;&gt;U-Boot&lt;/a&gt; is a boot loader. Its task is to get kernel into memory and pass control to it. I will cover only parts of it related to netboot.&lt;/p&gt;
&lt;h2 id=&#34;kernel-or-kernelbin&#34;&gt;kernel or kernel.bin&lt;/h2&gt;
&lt;p&gt;But before we start loading something we need to know what to load. In &lt;a href=&#34;http://kernelnomicon.org/?p=306&#34;&gt;previous post&lt;/a&gt; I mentioned that there are kernel, kernel.bin, and ubldr files. Let&amp;rsquo;s get into details. First of all: ubldr requires its own post. So there will be one more covering just ubldr. Now kernel and kernel.bin.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Netbooting ARM/MIPS devices: server setup</title>
      <link>https://kernelnomicon.org/posts/netbooting-armmips-devices-server-setup/</link>
      <pubDate>Thu, 14 Feb 2013 18:50:42 +0000</pubDate>
      <guid>https://kernelnomicon.org/posts/netbooting-armmips-devices-server-setup/</guid>
      <description>&lt;p&gt;I was asked to share details about my root-over-NFS setup so here they are. I decided to split how-to in two posts: server/kernel part and u-boot part.&lt;/p&gt;
&lt;p&gt;Usual components in the setup are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DHCP server&lt;/li&gt;
&lt;li&gt;TFTP server&lt;/li&gt;
&lt;li&gt;NFS server&lt;/li&gt;
&lt;li&gt;NAT (optional)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;dhcp-server&#34;&gt;DHCP server&lt;/h2&gt;
&lt;p&gt;I use &lt;strong&gt;net/isc-dhcp42-server&lt;/strong&gt; as a server. Sample dhcpd.conf:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;option root-opts code 130 = string; # NFS / mount options
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;log-facility local7;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;subnet 192.168.10.0 netmask 255.255.255.0 {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        server-name &amp;#34;cinderella.bluezbox.com&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        server-identifier 192.168.10.1;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option subnet-mask 255.255.255.0;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option broadcast-address 192.168.10.255;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option domain-name-servers 8.8.8.8;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option domain-name &amp;#34;bluezbox.com&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        next-server 192.168.10.1;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        option routers 192.168.10.1;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;group {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        host pandaboard {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                hardware ethernet 0E:60:33:B1:46:01;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                fixed-address 192.168.10.90;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                filename &amp;#34;kernel.PANDA.bin&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                option root-path &amp;#34;/src/FreeBSD/nfs/armv6&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                option root-opts &amp;#34;nolockd&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        host rpi {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                hardware ethernet b8:27:eb:f6:08:83;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                fixed-address 192.168.10.91;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                filename &amp;#34;ubldr&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                option root-path &amp;#34;/src/FreeBSD/nfs/rpi&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                option root-opts &amp;#34;nolockd&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Config is pretty self-explanatory. I use google&amp;rsquo;s &lt;strong&gt;8.8.8.8&lt;/strong&gt; nameserver but you can change it to your very own DNS server. Difference between various &lt;strong&gt;filename &amp;ldquo;&amp;hellip;&amp;rdquo;&lt;/strong&gt; will be explained later.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
