<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bootloader on Rootcommit WIP</title>
    <link>https://rootcommit.l0g.eu/tags/bootloader/</link>
    <description>Recent content in Bootloader on Rootcommit WIP</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 15 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://rootcommit.l0g.eu/tags/bootloader/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>U-Boot: protect sensitive environment variables</title>
      <link>https://rootcommit.l0g.eu/2026/u-boot-protect-sensitive-environment-variables/</link>
      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://rootcommit.l0g.eu/2026/u-boot-protect-sensitive-environment-variables/</guid>
      <description>&lt;p&gt;This is a follow-up from our &lt;a href=&#34;https://rootcommit.l0g.eu/2026/accessing-u-boot-env-from-c/&#34;&gt;Accessing the U-Boot environment from a C program&lt;/a&gt; blog post.&lt;/p&gt;&#xA;&lt;h3 id=&#34;need-to-protect-the-environment&#34;&gt;🌳Need to protect the environment&lt;/h3&gt;&#xA;&lt;p&gt;When you&amp;rsquo;re trying to harden an embedded Linux device to make it more resistant to attacks, one key part to secure is the bootloader, because that&amp;rsquo;s the part that boots the operating system. Even you implement a &lt;strong&gt;secure boot&lt;/strong&gt; chain, if an attacker manages to interrupt the boot process and get access to the bootloader shell, this attacker would be able to load and run her/his own payload on the device.&lt;/p&gt;</description>
    </item>
    <item>
      <title>See how U-Boot modifies your board device tree</title>
      <link>https://rootcommit.l0g.eu/2025/u-boot-dt-fixups/</link>
      <pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://rootcommit.l0g.eu/2025/u-boot-dt-fixups/</guid>
      <description>&lt;p&gt;If you compare the device tree as loaded by Linux, available in &lt;code&gt;/sys/firmware/fdt&lt;/code&gt;, you will see that it differs from the one that you loaded in U-Boot. Taking the time to make the comparison is quite instructive.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s do this on my &lt;a href=&#34;https://developer.toradex.com/hardware/verdin-som-family/modules/verdin-imx8m-mini/&#34;&gt;Toradex Verdin iMX8M Mini&lt;/a&gt; SoM on the &lt;a href=&#34;https://developer.toradex.com/hardware/verdin-som-family/carrier-boards/dahlia-carrier-board&#34;&gt;Dahlia carrier board&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;decompiling-the-dtb&#34;&gt;Decompiling the DTB&lt;/h3&gt;&#xA;&lt;p&gt;It&amp;rsquo;s easy to decompile any Device Tree Binary (DTB) file using &lt;code&gt;dtc&lt;/code&gt;, the Device Tree Compiler.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Copy &lt;code&gt;/sys/firmware/fdt&lt;/code&gt; from your live Linux system to external storage (assuming your external storage is mounted on &lt;code&gt;/mnt/usb&lt;/code&gt;)&lt;br&gt;&#xA;&lt;code&gt;cp /sys/firmware/fdt /mnt/usb/linux.dtb&lt;/code&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
