Customizing U-Boot

There are 2 areas of customizing U-Boot, one is the U-Boot System Customization and the other is the U-Boot Application Customization. This section will address both this area.

U-Boot System Customization

U-Boot uses PetaLogix AutoConfig technology to automatically target any platform using MicroBlaze system. This allows U-Boot to be automatically ported to the selected platform, without the need to customize the U-Boot system configurations for the platform.

The pre-configured U-Boot will support the U-Boot default command set that should be sufficient to support most embedded systems. The following list the U-Boot configuration parameters for the supported default command set.

  • CONFIG_CMD_DFL
  • CFG_CMD_NET
  • CFG_CMD_PING

Most user should not be required to Customize the U-Boot system settings. For more platform specific system customization refer to the Editing U-Boot configuration file Section in the Advance Topics Chapter.

U-Boot Platform Customization

Platform Customization allows the user to customize the supported features within U-Boot for their target embedded system. U-Boot uses environment variables to configure the supported functionality. For example the 'bootdelay' variable will specific the number of seconds delay before U-Boot tries to boot the Linux Kernel image.

These variables can be set either on run time via the U-Boot command prompt or by a configration script file. Refer to the U-Boot Manual for more information on U-Boot scripting support and configuration.

An example of the configuration script used by PetaLinux is as per below.

echo PetaLogix MicroBlaze-Auto Board Configuration
echo ---------------------------------------------
echo Network Configuration:
set ethaddr 00:0a:35:00:22:04
set ipaddr 192.168.0.10
set serverip 192.168.0.1
set netkargs macaddr=$(ethaddr)

echo MTD Configuration:
set mtdparts physmap-flash.0:256K(boot),256K(bootenv),256K(config),5M(image),2M(spare)
set mtdkargs mtdparts=$(mtdparts)

echo Clobber DRAM Configuration:
set clobstart 0x10000000

echo Bootloader Configuration:
set bootsize 0x40000
set bootstart 0x28000000

echo Kernel Configuration:
set kernsize 0x400000
set kernstart 0x280c0000
set bootargs $(mtdkargs) $(netkargs)

echo Boot Configuration:
set bootcmd bootm $(kernstart)
set bootdelay 4

echo Saving Configurations...
saveenv

echo Configuration Completed

!

If you have chosen the "Obtain IP address automatically" option from the System Configuration Menu, u-boot will not get a static IP or server IP address.

Instead you can use the u-boot 'dhcp' command to obtain these addresses from your network DHCP server.