GSOC 2015: Porting MicroMonitor to the Beaglebone Black

Jarielle Catbagan jcatbagan93 at gmail.com
Thu Mar 26 20:08:11 UTC 2015


I'll definitely check out the AM335x TRM.

Referring to this link
(http://beagleboard.org/project/U-Boot+%28V1%29/), it briefly
elaborates that the U-boot on the Beaglebone consists of two phases.
First phase consists of the SPL which is transferred from eMMC or uSD
(depending on boot switch) and must be in a specific format and
location before being transferred to the internal SRAM of the AM335x.
This SPL is really a file that is part of the U-boot secondary program
loader functionality, which for now I am assuming is built along side
when U-boot is built.  This SPL performs initialization which includes
initializing the off-chip memory, which in the case of the Beaglebone
Black would be the DDR3 RAM.  Once external RAM is initialized, main
U-boot bootloader image is transferred to there.

I also found this thread in the U-boot mailing list:
http://lists.denx.de/pipermail/u-boot/2013-December/168433.html

Currently in the process of reading through it but for the most part I
understand it to be focusing on where the sources of the SPL
implementation can be found.


On Thu, Mar 26, 2015 at 12:09 PM, Ed Sutter
<ed.sutter at alcatel-lucent.com> wrote:
> Refer to chapter 26 of this document (AM335x TRM):
> http://www.ti.com/lit/ug/spruh73l/spruh73l.pdf
> for more detail on the booting process of the chip.
>
> Depending on how hard it is to reconfigure the SYSBOOT pins, it may be
> simpler to initially try to boot this off the UART.  Then once that works,
> its likely that it would easily transition over to the uSD card. I suggest
> this only to eliminate the need for 'dd' and burning the uSD card till we
> get it right.
>
> Gotta learn about the format of this initial image pulled into the device.
>>
>> 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
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>
>
>
> --
> Ed Sutter
> Alcatel-Lucent Technologies -- Bell Laboratories
> Phone: 908-582-2351
> Email: ed.sutter at alcatel-lucent.com
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel



More information about the devel mailing list