audk/BeagleBoardPkg
oliviermartin 0b6b57c4d7 BeagleBoardPkg: Check if the compiler arm-linux-gnueabi-gcc is present in the path
'arm-linux-gnueabi-gcc' is the compiler attached to the ARMLINUXGCC toolchain.
This compiler is available in the PATH environment variable when the Linaro's
toolchain package is installed (Ubuntu distribution).

If if compiler is in the path then select the ARMLINUXGCC toolchain. This change
is to make easier to build UEFI on the BeagleBoard for new starters by hiding the
toolchain.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12673 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-08 18:30:26 +00:00
..
Bds ARM Packages: Fixed Build failings/warnings/EDK2 coding convention 2011-09-27 16:42:47 +00:00
Debugger_scripts Update the copyright notice format 2010-04-29 12:24:22 +00:00
Include BeagleBoardPkg: Set paddings following the BeagleBoard revision (A, B, xM, etc) 2011-09-22 23:23:54 +00:00
Library ARM Packages: Fixed Build failings/warnings/EDK2 coding convention 2011-09-27 16:42:47 +00:00
Sec BeagleBoardPkg: Fix build 2011-07-04 13:43:58 +00:00
Tools BeagleBoardPkg: The FDF file does not reserve any more the area for the OMAP35xxx header 2011-09-22 23:25:39 +00:00
BeagleBoardPkg.dec Update the copyright notice format 2010-04-29 12:24:22 +00:00
BeagleBoardPkg.dsc BeagleBoard: Clean DSC and FDF files 2011-11-01 23:46:18 +00:00
BeagleBoardPkg.fdf BeagleBoard: Clean DSC and FDF files 2011-11-01 23:46:18 +00:00
ConfigurationHeader.dat Adding support for BeagleBoard. 2009-12-06 01:57:05 +00:00
b.bat ARM Packages: Fixed Build failings/warnings/EDK2 coding convention 2011-09-27 16:42:47 +00:00
ba.bat Update the copyright notice format 2010-04-29 12:24:22 +00:00
build.sh BeagleBoardPkg: Check if the compiler arm-linux-gnueabi-gcc is present in the path 2011-11-08 18:30:26 +00:00
readme.txt BeagleBoard: Update documentation 2011-07-06 18:25:47 +00:00

readme.txt

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

On Ubuntu 10.04, in your $(WORKROOT) directory (eg: ~/dev/)

Build UEFI for the BeagleBoard :
================================
# Requirements
sudo apt-get install uuid-dev

# Get the arm-none-eabi Toolchain:
cd $(WORKROOT)
wget http://www.codesourcery.com/sgpp/lite/arm/portal/package7813/public/arm-none-eabi/arm-2010.09-51-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
tar xjf arm-2010.09-51-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
Add the arm-none-eabi toolchain to your path

# Build UEFI
svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2 --username guest
cd $(WORKROOT)/edk2
svn co https://edk2-fatdriver2.svn.sourceforge.net/svnroot/edk2-fatdriver2/trunk/FatPkg FatPkg --username guest
patch -p1 < ArmPlatformPkg/Documentation/patches/BaseTools-Pending-Patches.patch
cd BeagleBoardPkg/
./build.sh

# To Build a Release verion of UEFI
./build.sh RELEASE


Test UEFI on qEmu :
===================

Installing Linaro qEmu:
-----------------------
cd $(WORKROOT)
git clone git://git.linaro.org/qemu/qemu-linaro.git
cd $(WORKROOT)/qemu-linaro
./configure --target-list=arm-softmmu,arm-linux-user,armeb-linux-user
make

Installing Linaro image Creator:
--------------------------------
wget http://launchpad.net/linaro-image-tools/trunk/0.4.8/+download/linaro-image-tools-0.4.8.tar.gz
tar xzf linaro-image-tools-0.4.8.tar.gz
cd $(WORKROOT)/linaro-image-tools-0.4.8/
sudo apt-get install parted dosfstools uboot-mkimage python-argparse python-dbus python-debian python-parted qemu-arm-static btrfs-tools command-not-found

Creating u-boot + Linux Linaro image:
-------------------------------------
mkdir $(WORKROOT)/beagle_image && cd $(WORKROOT)/beagle_image
wget http://releases.linaro.org/platform/linaro-m/hwpacks/final/hwpack_linaro-omap3_20101109-1_armel_supported.tar.gz
wget http://releases.linaro.org/platform/linaro-m/headless/release-candidate/linaro-m-headless-tar-20101101-0.tar.gz
sudo $(WORKROOT)/linaro-image-tools-0.4.8/linaro-media-create --image_file beagle_sd.img --dev beagle --binary linaro-m-headless-tar-20101101-0.tar.gz --hwpack hwpack_linaro-omap3_20101109-1_armel_supported.tar.gz
sudo chmod a+rw beagle_sd.img

Test u-boot + Linux Linaro image on qEmu:
-----------------------------------------
$(WORKROOT)/qemu-linaro/arm-softmmu/qemu-system-arm -M beagle -sd $(WORKROOT)/beagle_image/beagle_sd.img -serial stdio -clock unix
# in u-boot:
boot

Start UEFI from NOR Flash :
---------------------------
# Adding zImage to beagle_sd.img
mkdir /tmp/beagle_img1
sudo mount -o loop,offset=$[63*512] $(WORKROOT)/beagle_image/beagle_sd.img /tmp/beagle_img1
cp zImage /tmp/beagle_img1
sudo umount /tmp/beagle_img1

./qemu-system-arm -M beagle -mtdblock /work/tianocore/Build/BeagleBoard/DEBUG_ARMGCC/FV/BeagleBoard_EFI_flashboot.fd -serial stdio -sd /work/linaro-image-tools-0.4.8/beagle_sd.img

Start UEFI from SD card :
-------------------------
# To replace u-boot by uefi in the SD card
1) Build the BeagleBoard UEFI firmware without the OMAP353x header
cd $(WORKROOT)/edk2/BeagleBoardPkg/
./build.sh -D EDK2_SECOND_STAGE_BOOTOLADER=1

2) Replace u-boot by UEFI
sudo mount -o loop,offset=$[63*512] $(WORKROOT)/beagle_image/beagle_sd.img /tmp/beagle_img1
sudo cp ../Build/BeagleBoard/DEBUG_ARMGCC/FV/BEAGLEBOARD_EFI.fd /tmp/beagle_img1/u-boot.bin
sudo umount /tmp/beagle_img1