diff options
Diffstat (limited to 'boot/uboot')
-rw-r--r-- | boot/uboot/Config.in | 131 | ||||
-rw-r--r-- | boot/uboot/uboot-2010.03-fix-avr32.patch | 5 | ||||
-rw-r--r-- | boot/uboot/uboot.mk | 129 |
3 files changed, 265 insertions, 0 deletions
diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in new file mode 100644 index 000000000..aada346e7 --- /dev/null +++ b/boot/uboot/Config.in @@ -0,0 +1,131 @@ +menuconfig BR2_TARGET_UBOOT + bool "U-Boot" + help + Build "Das U-Boot" Boot Monitor + +if BR2_TARGET_UBOOT +config BR2_TARGET_UBOOT_BOARDNAME + string "U-Boot board name" + help + One of U-Boot supported boards to be built. + This will be suffixed with _config to meet U-Boot standard naming. + +choice + prompt "U-Boot Version" + default BR2_TARGET_UBOOT_2011_03 + help + Select the specific U-Boot version you want to use + +config BR2_TARGET_UBOOT_2011_03 + bool "2011.03" + +config BR2_TARGET_UBOOT_2010_12 + bool "2010.12" + +config BR2_TARGET_UBOOT_2010_09 + bool "2010.09" + +config BR2_TARGET_UBOOT_2010_06 + bool "2010.06" + +config BR2_TARGET_UBOOT_2010_03 + bool "2010.03" + +config BR2_TARGET_UBOOT_CUSTOM_TARBALL + bool "Custom tarball" + +endchoice + +if BR2_TARGET_UBOOT_CUSTOM_TARBALL + +config BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION + string "URL of custom U-Boot tarball" + +endif + +config BR2_TARGET_UBOOT_VERSION + string + default "2011.03" if BR2_TARGET_UBOOT_2011_03 + default "2010.12" if BR2_TARGET_UBOOT_2010_12 + default "2010.09" if BR2_TARGET_UBOOT_2010_09 + default "2010.06" if BR2_TARGET_UBOOT_2010_06 + default "2010.03" if BR2_TARGET_UBOOT_2010_03 + default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL + +config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR + string "custom patch dir" + help + If your board requires custom patches, add the path to the + directory containing the patches here. The patches must be + named u-boot-<version>-<something>.patch. + + Most users may leave this empty + +choice + prompt "U-Boot binary format" + +config BR2_TARGET_UBOOT_FORMAT_BIN + bool "u-boot.bin" + +config BR2_TARGET_UBOOT_FORMAT_KWB + depends on BR2_arm + bool "u-boot.kwb (Marvell)" + +config BR2_TARGET_UBOOT_FORMAT_LDR + depends on BR2_bfin + bool "u-boot.ldr" + +endchoice + +config BR2_TARGET_UBOOT_TOOL_ENV + bool "fw_printenv tool in target" + help + Install fw_printenv / fw_setenv tools in target. + +menuconfig BR2_TARGET_UBOOT_NETWORK + bool "Network Settings" + default y + help + Network settings for U-boot + +if BR2_TARGET_UBOOT_NETWORK + +config BR2_TARGET_UBOOT_SERVERIP + string "server ip" + default "10.175.196.221" + help + TFTP server ip address + +config BR2_TARGET_UBOOT_IPADDR + string "ip address" + default "10.175.196.18" + help + Target ip address + +config BR2_TARGET_UBOOT_GATEWAY + string "gateway ip" + default "10.175.196.1" + help + Gateway ip address + +config BR2_TARGET_UBOOT_NETMASK + string "netmask" + default "255.255.255.0" + help + Network Mask + +config BR2_TARGET_UBOOT_ETHADDR + string "ethernet address" + default "04:25:fe:ed:00:18" + help + Target MAC address for the ethernet interface. + This should be changed for production units + +config BR2_TARGET_UBOOT_ETH1ADDR + string "ethernet 2 address" + help + Target MAC address for the second ethernet interface. + +endif # BR2_TARGET_UBOOT_NETWORK + +endif # BR2_TARGET_UBOOT diff --git a/boot/uboot/uboot-2010.03-fix-avr32.patch b/boot/uboot/uboot-2010.03-fix-avr32.patch new file mode 100644 index 000000000..1f9aab8f0 --- /dev/null +++ b/boot/uboot/uboot-2010.03-fix-avr32.patch @@ -0,0 +1,5 @@ +diff -Naur u-boot-2010.03-orig/include/asm-avr32/unaligned.h u-boot-2010.03/include/asm-avr32/unaligned.h +--- u-boot-2010.03-orig/include/asm-avr32/unaligned.h 1969-12-31 21:00:00.000000000 -0300 ++++ u-boot-2010.03/include/asm-avr32/unaligned.h 2010-06-22 23:09:49.000000000 -0300 +@@ -0,0 +1 @@ ++#include <asm-generic/unaligned.h> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk new file mode 100644 index 000000000..3e945c7f2 --- /dev/null +++ b/boot/uboot/uboot.mk @@ -0,0 +1,129 @@ +############################################################# +# +# U-Boot +# +############################################################# +UBOOT_VERSION = $(call qstrip,$(BR2_TARGET_UBOOT_VERSION)) +UBOOT_BOARD_NAME = $(call qstrip,$(BR2_TARGET_UBOOT_BOARDNAME)) + +UBOOT_INSTALL_IMAGES = YES + +ifeq ($(UBOOT_VERSION),custom) +# Handle custom U-Boot tarballs as specified by the configuration +UBOOT_TARBALL = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION)) +UBOOT_SITE = $(dir $(UBOOT_TARBALL)) +UBOOT_SOURCE = $(notdir $(UBOOT_TARBALL)) +else +# Handle stable official U-Boot versions +UBOOT_SITE = ftp://ftp.denx.de/pub/u-boot +UBOOT_SOURCE = u-boot-$(UBOOT_VERSION).tar.bz2 +endif + +ifeq ($(BR2_TARGET_UBOOT_FORMAT_KWB),y) +UBOOT_BIN = u-boot.kwb +UBOOT_MAKE_TARGET = $(U_BOOT_BIN) +else ifeq ($(BR2_TARGET_UBOOT_FORMAT_LDR),y) +UBOOT_BIN = u-boot.ldr +else +UBOOT_BIN = u-boot.bin +endif + +UBOOT_ARCH=$(KERNEL_ARCH) + +# u-boot in the past used arch=ppc for powerpc +ifneq ($(findstring x2010.03,x$(UBOOT_VERSION)),) +UBOOT_ARCH=$(KERNEL_ARCH:powerpc=ppc) +endif + +UBOOT_CONFIGURE_OPTS += CONFIG_NOSOFTFLOAT=1 +UBOOT_MAKE_OPTS += \ + CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \ + ARCH=$(UBOOT_ARCH) + +# Helper function to fill the U-Boot config.h file. +# Argument 1: option name +# Argument 2: option value +# If the option value is empty, this function does nothing. +define insert_define +$(if $(call qstrip,$(2)), + @echo "#ifdef $(strip $(1))" >> $(@D)/include/config.h + @echo "#undef $(strip $(1))" >> $(@D)/include/config.h + @echo "#endif" >> $(@D)/include/config.h + @echo '#define $(strip $(1)) $(call qstrip,$(2))' >> $(@D)/include/config.h) +endef + +ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),) +define UBOOT_APPLY_CUSTOM_PATCHES + toolchain/patch-kernel.sh $(@D) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) \ + uboot-$(UBOOT_VERSION)-\*.patch +endef + +UBOOT_POST_PATCH_HOOKS += U_BOOT_APPLY_CUSTOM_PATCHES +endif + +define UBOOT_CONFIGURE_CMDS + $(TARGET_CONFIGURE_OPTS) $(UBOOT_CONFIGURE_OPTS) \ + $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ + $(UBOOT_BOARD_NAME)_config + @echo >> $(@D)/include/config.h + @echo "/* Add a wrapper around the values Buildroot sets. */" >> $(@D)/include/config.h + @echo "#ifndef __BR2_ADDED_CONFIG_H" >> $(@D)/include/config.h + @echo "#define __BR2_ADDED_CONFIG_H" >> $(@D)/include/config.h + $(call insert_define,DATE,$(DATE)) + $(call insert_define,CONFIG_LOAD_SCRIPTS,1) + $(call insert_define,CONFIG_IPADDR,$(BR2_TARGET_UBOOT_IPADDR)) + $(call insert_define,CONFIG_GATEWAYIP,$(BR2_TARGET_UBOOT_GATEWAY)) + $(call insert_define,CONFIG_NETMASK,$(BR2_TARGET_UBOOT_NETMASK)) + $(call insert_define,CONFIG_SERVERIP,$(BR2_TARGET_UBOOT_SERVERIP)) + $(call insert_define,CONFIG_ETHADDR,$(BR2_TARGET_UBOOT_ETHADDR)) + $(call insert_define,CONFIG_ETH1ADDR,$(BR2_TARGET_UBOOT_ETH1ADDR)) + @echo "#endif /* __BR2_ADDED_CONFIG_H */" >> $(@D)/include/config.h +endef + +ifeq ($(BR2_TARGET_UBOOT_TOOL_ENV),y) +define UBOOT_BUILD_TARGET_ENV_UTILS + $(TARGET_CONFIGURE_OPTS) $(MAKE) HOSTCC="$(TARGET_CC)" -C $(@D) env +endef +endif + +define UBOOT_BUILD_CMDS + $(TARGET_CONFIGURE_OPTS) $(UBOOT_CONFIGURE_OPTS) \ + $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ + $(UBOOT_MAKE_TARGET) + $(UBOOT_BUILD_TARGET_ENV_UTILS) +endef + +define UBOOT_INSTALL_IMAGES_CMDS + cp -dpf $(@D)/$(UBOOT_BIN) $(BINARIES_DIR)/ +endef + +ifeq ($(BR2_TARGET_UBOOT_TOOL_ENV),y) +define UBOOT_INSTALL_TARGET_ENV_UTILS + $(INSTALL) -m 0755 -D $(@D)/tools/env/fw_printenv \ + $(TARGET_DIR)/usr/sbin/fw_printenv + ln -sf fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv +endef +endif + +define UBOOT_INSTALL_TARGET_CMDS + $(UBOOT_INSTALL_TARGET_ENV_UTILS) +endef + +$(eval $(call GENTARGETS,boot,uboot)) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(BR2_TARGET_UBOOT),y) +TARGETS+=u-boot + +# we NEED a board name unless we're at make source +ifeq ($(filter source,$(MAKECMDGOALS)),) +ifeq ($(UBOOT_BOARD_NAME),) +$(error NO U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting) +endif +endif + +endif |