summaryrefslogtreecommitdiff
path: root/boot/uboot
diff options
context:
space:
mode:
Diffstat (limited to 'boot/uboot')
-rw-r--r--boot/uboot/Config.in131
-rw-r--r--boot/uboot/uboot-2010.03-fix-avr32.patch5
-rw-r--r--boot/uboot/uboot.mk129
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