--- a/MAKEALL
+++ b/MAKEALL
@@ -730,6 +730,12 @@
 ## MIPS Systems		(default = big endian)
 #########################################################################
 
+LIST_ifxcpe="		\
+	easy50712	\
+	easy50712_DDR166M	\
+	easy50712_DDR166M_ramboot	\
+"
+
 LIST_mips4kc="		\
 	incaip		\
 	qemu_mips	\
@@ -761,6 +767,7 @@
 "
 
 LIST_mips="		\
+	${LIST_ifxcpe}	\
 	${LIST_mips4kc}	\
 	${LIST_mips5kc}	\
 	${LIST_au1xx0}	\
--- a/Makefile
+++ b/Makefile
@@ -447,7 +447,7 @@
 	set -e ; \
 	: Extract the config macros ; \
 	$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
-		sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
+		sed -n -f tools/scripts/define2mk.sed |sort > $@.tmp && \
 	mv $@.tmp $@
 
 #########################################################################
@@ -3370,7 +3370,7 @@
 		{ echo "#define CPU_CLOCK_RATE 150000000" >>$(obj)include/config.h ; \
 		  $(XECHO) "... with 150MHz system clock" ; \
 		}
-	@$(MKCONFIG) -a $(call xtract_incaip,$@) mips mips incaip
+	@$(MKCONFIG) -a $(call xtract_incaip,$@) mips mips incaip infineon
 
 tb0229_config: unconfig
 	@$(MKCONFIG) $(@:_config=) mips mips tb0229
@@ -3411,6 +3411,53 @@
 	@$(MKCONFIG) -a vct mips mips vct micronas
 
 #########################################################################
+## MIPS32 ifxcpe
+#########################################################################
+
+easy50712%config	: unconfig
+	@mkdir -p $(obj)include
+	@mkdir -p $(obj)board/infineon/easy50712
+	@[ -z "$(findstring ramboot,$@)" ] || \
+		{ echo "TEXT_BASE = 0xA0400000" >$(obj)board/infineon/easy50712/config.tmp ; \
+			echo "#define CONFIG_SYS_RAMBOOT" >>$(obj)include/config.h ; \
+			$(XECHO) "... with ramboot configuration" ; \
+		}
+	@if [ "$(findstring _DDR,$@)" -a -z "$(findstring ramboot,$@)" ] ; then \
+		echo "#define CONFIG_USE_DDR_RAM"  >>$(obj)include/config.h ; \
+		echo "#define CONFIG_BOOTSTRAP"  >>$(obj)include/config.h ; \
+		DDR=$(subst DDR,,$(filter DDR%,$(subst _, ,$@))); \
+		case "$${DDR}" in \
+		111M|166M|e111M|e166M|promos400|samsung166|psc166) \
+			$(XECHO) "... with DDR RAM config $${DDR}" ; \
+			echo "#define CONFIG_USE_DDR_RAM_CFG_$${DDR}" >>$(obj)include/config.h ;; \
+		*)	$(XECHO) "... DDR RAM config \\\"$${DDR}\\\" unknown, use default"; \
+		esac; \
+	fi
+	@$(MKCONFIG) -a $(word 1,$(subst _, ,$@)) mips mips easy50712 infineon danube
+
+easy50812%config	: unconfig
+	@mkdir -p $(obj)include
+	@mkdir -p $(obj)board/infineon/easy50812
+	@[ -z "$(findstring ramboot,$@)" ] || \
+		{ echo "TEXT_BASE = 0xA0400000" >$(obj)board/infineon/easy50812/config.tmp ; \
+			echo "CONFIG_BOOTSTRAP = 0" >>$(obj)board/infineon/easy50812/config.tmp ; \
+			echo "#define CONFIG_SYS_RAMBOOT" >>$(obj)include/config.h ; \
+			$(XECHO) "... with ramboot configuration" ; \
+		}
+	@if [ "$(findstring _DDR,$@)" -a -z "$(findstring ramboot,$@)" ] ; then \
+		echo "#define CONFIG_USE_DDR_RAM"  >>$(obj)include/config.h ; \
+		echo "#define CONFIG_BOOTSTRAP"  >>$(obj)include/config.h ; \
+		DDR=$(subst DDR,,$(filter DDR%,$(subst _, ,$@))); \
+		case "$${DDR}" in \
+		111M|166M|e111M|e166M|promos400|samsung166|psc166) \
+			$(XECHO) "... with DDR RAM config $${DDR}" ; \
+			echo "#define CONFIG_USE_DDR_RAM_CFG_$${DDR}" >>$(obj)include/config.h ;; \
+		*)	$(XECHO) "... DDR RAM config \\\"$${DDR}\\\" unknown, use default"; \
+		esac; \
+	fi
+	@$(MKCONFIG) -a $(word 1,$(subst _, ,$@)) mips mips easy50812 infineon ar9
+
+#########################################################################
 ## MIPS32 AU1X00
 #########################################################################
 
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -43,6 +43,7 @@
 COBJS-$(CONFIG_FSLDMAFEC) += fsl_mcdmafec.o mcfmii.o
 COBJS-$(CONFIG_FTMAC100) += ftmac100.o
 COBJS-$(CONFIG_GRETH) += greth.o
+COBJS-$(CONFIG_IFX_ETOP) += ifx_etop.o
 COBJS-$(CONFIG_INCA_IP_SWITCH) += inca-ip_sw.o
 COBJS-$(CONFIG_KIRKWOOD_EGIGA) += kirkwood_egiga.o
 COBJS-$(CONFIG_DRIVER_KS8695ETH) += ks8695eth.o
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -28,6 +28,7 @@
 COBJS-$(CONFIG_ARM_DCC) += arm_dcc.o
 COBJS-$(CONFIG_AT91RM9200_USART) += at91rm9200_usart.o
 COBJS-$(CONFIG_ATMEL_USART) += atmel_usart.o
+COBJS-$(CONFIG_IFX_ASC) += ifx_asc.o
 COBJS-$(CONFIG_MCFUART) += mcfuart.o
 COBJS-$(CONFIG_NS9750_UART) += ns9750_serial.o
 COBJS-$(CONFIG_SYS_NS16550) += ns16550.o
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -57,6 +57,7 @@
 int ftmac100_initialize(bd_t *bits);
 int greth_initialize(bd_t *bis);
 void gt6426x_eth_initialize(bd_t *bis);
+int ifx_etop_initialize(bd_t *bis);
 int inca_switch_initialize(bd_t *bis);
 int kirkwood_egiga_initialize(bd_t *bis);
 int lan91c96_initialize(u8 dev_num, int base_addr);
@@ -85,6 +86,7 @@
 int uli526x_initialize(bd_t *bis);
 int sh_eth_initialize(bd_t *bis);
 int dm9000_initialize(bd_t *bis);
+int lq_eth_initialize(bd_t * bis);
 
 /* Boards with PCI network controllers can call this from their board_eth_init()
  * function to initialize whatever's on board.
