<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>BBB-Linux on Embedded Linux Blog</title><link>https://embeddedlinux.blog/en/series/bbb-linux/</link><description>Recent content in BBB-Linux on Embedded Linux Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 22 Nov 2025 15:11:09 +0000</lastBuildDate><atom:link href="https://embeddedlinux.blog/en/series/bbb-linux/index.xml" rel="self" type="application/rss+xml"/><item><title>[BBB-Linux] 1. Beaglebone Black Boot Process Overview</title><link>https://embeddedlinux.blog/en/2025/06/21/bbb-linux-1-beaglebone-black-boot-process-overview/</link><pubDate>Sat, 21 Jun 2025 08:51:00 +0700</pubDate><guid>https://embeddedlinux.blog/en/2025/06/21/bbb-linux-1-beaglebone-black-boot-process-overview/</guid><description>&lt;p&gt;&lt;figure class="md-img"&gt;&lt;img src="https://embeddedlinux.blog/uploads/blogger/043d800bc825.jpg" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;The overview consists of 5 stages as shown in the picture; let's go deeper into each stage.&lt;/p&gt;&#10;&lt;h2 id="1-soc-rom-bootloader"&gt;1. SoC ROM Bootloader&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;RBL (ROM Bootloader): this is written by the vendor, i.e. the chip maker; its content cannot be replaced&lt;/li&gt;&#10;&lt;li&gt;It is the first piece of code that runs when the board powers up&lt;/li&gt;&#10;&lt;li&gt;Its main job is to run the next block, the First Stage Bootloader (SPL/MLO)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="2-first-stage-bootloader-splmlo"&gt;2. First Stage Bootloader (SPL/MLO)&lt;/h2&gt;&#10;&lt;p&gt;SPL: Secondary Program Loader&lt;/p&gt;</description></item><item><title>[BBB-Linux] 3. Beaglebone Black Boot Process - U-boot</title><link>https://embeddedlinux.blog/en/2025/05/10/bbb-linux-3-beaglebone-black-boot-process-u-boot/</link><pubDate>Sat, 10 May 2025 11:16:00 +0000</pubDate><guid>https://embeddedlinux.blog/en/2025/05/10/bbb-linux-3-beaglebone-black-boot-process-u-boot/</guid><description>&lt;p&gt;Continuing with the boot process on the BBB: u-boot.&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="md-img"&gt;&lt;img src="https://embeddedlinux.blog/uploads/blogger/b2740fa3dded.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;h2 id="1-what-is-u-boot"&gt;1. What is U-boot?&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;U-Boot (Universal Boot Loader)&lt;/strong&gt; is an open-source bootloader that plays an important role in embedded systems running Linux. It is responsible for initialising the basic hardware and handing control over to the operating system kernel. Because it supports many platforms such as ARM, x86 and PowerPC, U-Boot is widely used in embedded software development. It also lets you configure the system environment before the kernel runs, helping the boot process be stable and flexible.&lt;/p&gt;</description></item><item><title>[BBB-Linux] 3.1 Why do we need a Device Tree?</title><link>https://embeddedlinux.blog/en/2025/05/10/bbb-linux-3-1-tai-sao-can-co-device-tree/</link><pubDate>Sat, 10 May 2025 11:16:00 +0000</pubDate><guid>https://embeddedlinux.blog/en/2025/05/10/bbb-linux-3-1-tai-sao-can-co-device-tree/</guid><description>&lt;p&gt;&lt;figure class="md-img"&gt;&lt;img src="https://embeddedlinux.blog/uploads/blogger/30b8446785db.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;A board has many peripherals, but once the OS is running it cannot discover the on-board peripherals by itself, except USB (which has a self-discovery mechanism). That is why we need a code file that defines the peripherals on the board.&lt;/p&gt;</description></item><item><title>[BBB-Linux] 2. Beaglebone Black Boot Process - RBL, SPL</title><link>https://embeddedlinux.blog/en/2025/05/08/bbb-linux-2-beaglebone-black-boot-process-rbl-spl/</link><pubDate>Thu, 08 May 2025 15:29:00 +0000</pubDate><guid>https://embeddedlinux.blog/en/2025/05/08/bbb-linux-2-beaglebone-black-boot-process-rbl-spl/</guid><description>&lt;p&gt;&lt;figure class="md-img"&gt;&lt;img src="https://embeddedlinux.blog/uploads/2025/05/image-3.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;This post looks more closely at the RBL (ROM Bootloader) and SPL (Secondary Program Loader) stages that I mentioned in part 1.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Ti AM335x CPU diagram&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="md-img"&gt;&lt;img src="https://embeddedlinux.blog/uploads/2025/05/image-4.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;h2 id="1-rbl-rom-bootloader"&gt;1. RBL (ROM Bootloader)&lt;/h2&gt;&#10;&lt;p&gt;As in the picture above, we have the structure of the AM3359 SoC; the main chip consists of&lt;/p&gt;</description></item></channel></rss>