Saturday, May 29, 2010

OMAP3530 Memory Map classification

Friday, May 28, 2010

STEP1: Beagle learns to crawl with its first stage XLOADER

Beagleboard comes preflashed with Xloader and U-Boot on the NAND. This can always be helpful during the early days of customised XLoader development, as I need not have to worry much about bricking my board. This is especially true sometimes, when I need to develop without any help from the JTAG.

But that also means that I should find some way of loading my loader onto the board and ensure it gets executed before the preflashed XLoader does. Since OMAPs can be re-ordered with its booting device sequences using certain hardware pins [sys_boot], such that I can change the boot device detections from NAND to UART/USB/MMC, I can get my loader copied onto the internal SRAM without much of a problem.

I decided to start off with UART booting method and thanks to Nishanth, who has developed a tool called pserial, I can download my images without any issues. The only requirement for booting loader from UART is to hold down the USER button on the Beagle and then powering up the board. When the board powers up, the bootrom code residing within the OMAP's internal ROM checks the sys_boot config pins to decide which boot devices must be scanned first. With the press of USER button, bootrom code detects that it must first check on USB/UART/MMC before falling back to the default NAND flash.

Customized Open Source software solution for Beagle

With the possession of my  newly acquired fanless embedded platform - The BeagleBoard incorporating state of the art ARM Cortex A8 based TI OMAP3530, I have started to work on a complete software solution customized for Beagle, based on the Linux OS.


The plan is to develop a simple bootloader, that would provide the required functionality of both 1st stage (XLDR) and the 2nd stage (U-Boot) bootloader in a single loader and support booting an ARM Linux OS.
At a secondary level, I envision to customize even the Linux OS specifically for Beagle, by removing unwanted/generalized code that mostly reside to support wide varieties of OMAP platforms, in order to obtain a swift running Linux OS.

Wednesday, May 19, 2010

MOTIVATION BEHIND THIS BLOG

The background for this blog is to record all the learning and findings that happens as I start to explore the deeply embedded computing systems with great details wherever it finds fit.


As I start working on some complex embedded systems based on ARM architecture, I plan to document all the things that I learn as I go by. This might range from low level assembly programming for bootloaders to as high as an end user interface application programmed in C/C++ or any other suitable programming languages.