From 82be2de62075bf42ccb268eacdecc01aaa84fd41 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Fri, 1 Jun 2007 13:21:55 +0000
Subject: [PATCH] make xscale images containing proprietary microcode optional,
 but enabled by default

SVN-Revision: 7431
---
 target/linux/ixp4xx-2.6/image/Config.in |  9 ++++++
 target/linux/ixp4xx-2.6/image/Makefile  | 40 ++++++++++++++-----------
 2 files changed, 31 insertions(+), 18 deletions(-)
 create mode 100644 target/linux/ixp4xx-2.6/image/Config.in

diff --git a/target/linux/ixp4xx-2.6/image/Config.in b/target/linux/ixp4xx-2.6/image/Config.in
new file mode 100644
index 0000000000..b87aa5131e
--- /dev/null
+++ b/target/linux/ixp4xx-2.6/image/Config.in
@@ -0,0 +1,9 @@
+config IXP4XX_INCLUDE_UCODE
+	bool "Build images with Intel IXP4xx Microcode
+	default y
+	help
+	  You must manually download IPL_ixp400NpeLibrary-2_4.zip from
+	  http://www.intel.com/design/network/products/npfamily/ixp400_archives.htm
+	  and put it in the dl/ directory of the build system.
+	  You will need to agree to the Intel Public License to do so - please do read it!
+
diff --git a/target/linux/ixp4xx-2.6/image/Makefile b/target/linux/ixp4xx-2.6/image/Makefile
index 7d23002853..8d05a1b8f1 100644
--- a/target/linux/ixp4xx-2.6/image/Makefile
+++ b/target/linux/ixp4xx-2.6/image/Makefile
@@ -7,15 +7,33 @@
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
+UCODEFILE:=IPL_ixp400NpeLibrary-2_4.zip
+
+ifneq ($(CONFIG_IXP4XX_INCLUDE_UCODE),)
+  define Require/npe-ucode
+	[ -f $(DL_DIR)/$(UCODEFILE) ]
+  endef
+  define Build/Compile/npe
+	$(MAKE) -C npe-ucode \
+		BUILD_DIR="$(KDIR)" \
+		TARGET="$(KDIR)" \
+		compile
+  endef
+  define Image/Build/slug
+	BIN_DIR=$(BIN_DIR) $(TOPDIR)/scripts/slugimage.pl \
+		-L $(KDIR)/apex-nslu2-armeb.bin -m $(KDIR)/NPE-B \
+		-k $(BIN_DIR)/openwrt-nslu2-$(KERNEL)-zImage \
+		-r rootfs:$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).img \
+		-p -o $(BIN_DIR)/openwrt-nslu2-$(KERNEL)-$(1).bin
+  endef
+endif
+
 define Build/Compile
 	$(MAKE) -C apex \
 		BUILD_DIR="$(KDIR)" \
 		TARGET="$(KDIR)" \
 		compile	
-	$(MAKE) -C npe-ucode \
-		BUILD_DIR="$(KDIR)" \
-		TARGET="$(KDIR)" \
-		compile
+	$(call Build/Compile/npe)
 endef
 
 define Build/Clean
@@ -37,14 +55,6 @@ define Image/Build
 	$(call Image/Build/$(1),$(1))
 endef
 
-define Image/Build/slug
-	BIN_DIR=$(BIN_DIR) $(TOPDIR)/scripts/slugimage.pl \
-		-L $(KDIR)/apex-nslu2-armeb.bin -m $(KDIR)/NPE-B \
-		-k $(BIN_DIR)/openwrt-nslu2-$(KERNEL)-zImage \
-		-r rootfs:$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).img \
-		-p -o $(BIN_DIR)/openwrt-nslu2-$(KERNEL)-$(1).bin
-endef
-
 define Image/Build/jffs2-64k
 	dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).img bs=65536 conv=sync
 endef
@@ -62,12 +72,6 @@ endef
 
 $(eval $(call BuildImage))
 
-UCODEFILE:=IPL_ixp400NpeLibrary-2_4.zip
-
-define Require/npe-ucode
-	[ -f $(DL_DIR)/$(UCODEFILE) ]
-endef
-
 $(eval $(call Require,npe-ucode, \
 	You must manually download $(UCODEFILE) from \\\
 	http://www.intel.com/design/network/products/npfamily/ixp400_archives.htm \\\
-- 
2.30.2