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