<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Another attempt at blogging</title>
    <link>http://blog.eciton.net/linux/smileplug-alive_at_last.html</link>
    <description>ARM, open source and stuff...</description>
    <language>en</language>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>blosxom/2.1.2</generator>

  <item>
    <title>SmilePlug - alive at last</title>
    <pubDate>Fri, 27 Dec 2013 13:37:00 +0000</pubDate>
    <link>http://blog.eciton.net/2013/12/27#smileplug-alive_at_last</link>
    <category>/linux</category>
    <guid isPermaLink="false">http://blog.eciton.net/linux/smileplug-alive_at_last</guid>
    <description>
&lt;p/&gt;So ... sometime last year I ordered a &lt;a href=&quot;http://www.marvell.com/solutions/education/cloud-computer-for-smile.jsp&quot;&gt;SmilePlug&lt;/a&gt; from &lt;a href=&quot;http://globalscaletechnologies.com/&quot;&gt;http://globalscaletechnologies.com/&lt;/a&gt;, and it arrived at some point early this year. Hardware-wise, it is a really neat piece of kit that I was intending to put to use as a very configurable home router/firewall; it has 2x1GBE and an ARMv7-A processor + 512MB of RAM.

&lt;p/&gt;Of course, being Marvell-based, source-code availability and system documentation was a few miles south of sufficient, and unfortunately, it ended up lying in a corner for the greater part of the year. However, the guys at Free-Electrons have managed to get to main parts of the Armada 370 support (including the smileplug&apos;s sister-platform &apos;mirabox&apos;) into mainline Linux, so I decided to have another go.

&lt;p/&gt;Since the U-Boot on the platform is outdated, and sources are not available for me to recompile it with CONFIG_API and be able to use GRUB, it requires the DTB to be appended to the kernel image - and then the whole thing needs to be wrapped as a uImage. I found &lt;a href=&quot;https://gist.github.com/psanford/6416725/raw/68519e68c943c75f27be51a69f16a19dba62906a/mirabox.md&quot;&gt;simple instructions to do that&lt;/a&gt;, but include instructions below so I don&apos;t need to go looking for it next time : )

&lt;p/&gt;Using 3.13-rc5+, 
&lt;pre&gt;
$ make mvebu_defconfig
# *fiddle*
CONFIG_TUN=m
$ cp arch/arm/boot/zImage zImage-with-dtb
$ cat arch/arm/boot/dts/armada-370-mirabox.dtb &gt;&gt; zImage-with-dtb
$ ./scripts/mkuboot.sh -A arm -O linux -T kernel -C none -a 0x00008000 \
	-e 0x00008000 -n &apos;Linux-marvell&apos; -d zImage-with-dtb uImage
&lt;/pre&gt;

&lt;p/&gt;What I haven&apos;t managed to do yet is read the kernel off uSD, so for now, I boot it via TFTP.</description>
  </item>
  </channel>
</rss>
