How to write U-Boot (Bootloader)


1.1.3 U-Boot Linux boot process
U-Boot using the tag list (tagged list) to the Linux way of passing parameters. The data structure is marked tag, in the U-Boot source directory include / asm-arm / setup.h defined as follows:

struct tag_header {

u32 size; / * said the joint u tag data structure in real terms the size of the data stored in * /

u32 tag; / * that the type of tag * /

};

struct tag {

struct tag_header hdr;

union {

struct tag_core core;

struct tag_mem32 mem;

struct tag_videotext videotext;

Kernel.org hacked – how to get Android repo?

As you may already know, kernel.org site which hosts the Android git repository has been hacked. Because of this we can’t obtain the Android source code from its servers. All attempts to do so ultimately fail with the similar response:
[root@localhost WORKING_DIRECTORY]# repo sync
android.git.kernel.org[0: 130.239.17.13]: errno=Connection refused
android.git.kernel.org[0: 199.6.1.173]: errno=Connection refused
android.git.kernel.org[0: 2001:6b0:e:4017:1972:112:1:0]: errno=Network is unreachable
android.git.kernel.org[0: 2001:500:60:10:1972:112:1:0]: errno=Network is unreachable
fatal: unable to connect a socket (Network is unreachable)
error: Cannot fetch platform/bionic
I will describe another way to get the Android source codes if you hadn’t already cloned it’s repo before kernel.org servers went down.

Android Porting on PandaBoard

Introduction

This software release has been developed and verified in the following software and hardware environment.
Known Issues
  • AV playback -- not available at this time --TODO: need ducati binaries
  • Mic not tested
  • First start up is slow
  • Screen black out after 30sec. Edit display timing to fix or use ALT-F1 then ALT-F7 to bring back up
  • mouse is slow for first start up
  • android's keyboard does not show up
  • music.apk and other apps are crashing -- latest pre-built-binary release does not have the fix required.
Please note Toolchain is upgraded since L27.7.0 release.
OMAP4 SGX hardware Graphics Accelerator libraries are required to boot AFS.

OS Kernel: Linux® 2.6.35
Android: Gingerbread public project
SGX version: 1.1.17.4403
Toolchain: CodeSourcery compiler version Sourcery G++ Lite 2010q1-202 for ARM GNU/Linux
Reference hardware platform: PandaBoard A1 -- ES2.1, PandaBoard A2
Build Host OS: Ubuntu 10.04, Ubuntu 11.04
HDMI Display: HP2159m, DELL 2408WFP, DELL ST2220L
SD Card: 2GB Kingston Technology, 2GB SanDisk microSD (using ADAPTER)

Android eMMC Booting

eMMC binaries

This is the efi partition table as exists on the emmc
Sector#    Size Name
    256     128K xloader
    512     256K bootloader
   2048       8M recovery                                                      
  18432       8M boot                                                          
  34816     512M system                                                        
1083392     256M cache                                                         
1607680     512M userdata                                                      
2656256    2183M media

Creating the GPT table

On Target
  1. Connect a USB cable to the OTG port on your platform
  2. Boot your platform up with a stock u-boot and MLO
  3. Once you platform is booted you will see the following:
Fastboot entered...
On Host Machine
locate fastboot in you android filesystem
cd $mydroid/out/host/linux-x86/bin/fastboot
Search for fastboot devices
fastboot devices
Create GPT table on eMMC/SD card
fastboot oem format