wiki:GSoC/2015/BeagleBSPPortingUmon

Version 1 (modified by Jarielle Catbagan, on 06/06/15 at 23:37:33) (diff)

Added contents to wiki "BeagleBSPPortingUmon"

Beagle BSP Improvements - Porting Umon to the Beaglebone Black

The goal of this project is to port Umon, which is an open-source bootloader, to the Beaglebone Black in order to replace the more license-restrictive U-boot.

Mentors

Ben Gras, Ed Sutter, DrJoel?, Thomas Doerfler

Student

Jarielle Catbagan

Project Description

The goal of this project is to undertake the development of porting Umon to the Beaglebone Black. This is part of an effort to replace the limitations associated with a GPL-licensed bootloader such as U-boot that currently exists on the board. This project will require understanding the boot process that the Beaglebone Black and the AM335x processor in general undergo in order to initialize the system properly, locate an application image, and then to execute it.

The only responsibility that Umon has, and will be the primary focus that this project will strive to achieve, is to initialize the whole system to the point where an application image can be transferred into main memory and then executed. There are a multitude of sources where an application image can be obtained, such as via Ethernet, UART, or directly from a physical memory medium, where a majority will be integrated into the Umon port for the Beaglebone Black initially.

One of the goals of this project is establishing the mechanisms to locate and transfer an application image. When the AM335x processor powers on, the first program that runs is the internal ROM code. This ROM code does the minimal amount of tasks to initialize the processor and then to locate for an application image. This application will then be transferred into the internal SRAM where control will then be passed. At this point in time, the functionality and memory are limited. It is up to this transferred image to set up any additional functions, to initialize a much larger external memory, and to possibly locate and execute a larger application image, which in many cases would be an operating system.

The image that will be transferred into the internal SRAM by the internal ROM code will be Umon. Umon will then initialize the system even further, most importantly the external DDR3 RAM, and then transfer the main application image into this external memory before passing control to it. How this main application image is transferred is another one of the primary focus of this project and that is to provide the capability to provide options for booting from Ethernet, UART, or from an external non-volatile memory such as the onboard eMMC or a uSD card.

References