GSOC 2015: Porting MicroMonitor to the Beaglebone Black

Jarielle Catbagan jcatbagan93 at gmail.com
Thu Mar 26 16:35:33 UTC 2015


It looks like the internal ROM-based bootloader looks for a secondary
program loader (SPL) that initializes the necessary devices to
continue the boot process and pass control to a third-stage
bootloader.  So now I believe it's a matter of finding whether there
are existing code implementations of this SPL, or last-case scenario
this would have to be implemented.  Time for more investigating. :)

On Thu, Mar 26, 2015 at 9:27 AM, Jarielle Catbagan
<jcatbagan93 at gmail.com> wrote:
> To put things into context in regards to the conversation that I was
> having with Ed, Dr. Joel, and Gedare:
>
> I am currently in the process of looking into porting MicroMonitor to
> the Beaglebone Black.  As indicated by Ed, "[t]he difficulty of the
> port will depend on how much existing CPU-initialization
> (clocks, cache, etc..) code we can reuse."
>
> Ed has also indicated to me that there might be an internal bootloader
> stored in a ROM-based memory that might look for an image in a
> specific format.  I will definitely be investigating more into this.
> I did manage to briefly browse through the Beaglebone Black System
> Reference Manual Rev C.1 [1], and I have found that the boot
> configuration/process is briefly elaborated in section 6.7.  For
> convenience, since it's a short section I will post it here:
>
> "The design supports two groups of boot options on the board. The user
> can switch between these modes via the Boot button. The primary boot
> source is the onboard eMMC device. By holding the Boot button, the
> user can force the board to boot from the microSD slot. This enables
> the eMMC to be overwritten when needed or to just boot an alternate
> image...
>
> [T]the processor-external boot code is composed of two stages. After
> the primary boot code in the processor ROM passes control, a secondary
> stage (secondary program loader -- "SPL" or "MLO") takes over. The SPL
> stage initializes only the required devices to continue the boot
> process, and then control is transferred to the third stage "U-boot".
> Based on the settings of the boot pins, the ROM knows where to go and
> get the SPL and UBoot code. In the case of the BeagleBone Black, that
> is either eMMC or microSD based on the position of the boot switch."
>
> I was kindly guided to look into programming a uSD card as it might be
> more efficient to run MicroMonitor off of the uSD for quick testing
> after every build.  If all goes well, either an application image will
> be located and booted off of the same SD card or via a network boot.
> For serial debugging I have an FTDI 3.3V USB-to-Serial cable that I
> have been previously using to access the U-boot monitor on the
> Beaglebone Black.
>
>
> [1] https://github.com/CircuitCo/BeagleBone-Black/blob/master/BBB_SRM.pdf?raw=true


More information about the devel mailing list