* Modify KUP4X board configuration to use SL811 driver for USB memory
  sticks (including FAT / VFAT filesystem support)

* Add SL811 Host Controller Interface driver for USB

* Add CFG_I2C_EEPROM_ADDR_OVERFLOW desription to README

* Patch by Pantelis Antoniou, 19 Apr 2004:
  Allow to use shell style syntax (i. e. ${var} ) with standard parser.
  Minor patches for Intracom boards.

* Patch by Christian Pell, 19 Apr 2004:
  cleanup support for CF/IDE on PCMCIA for PXA25X
diff --git a/include/configs/KUP4X.h b/include/configs/KUP4X.h
index 4451f2a..a5dcb4e 100644
--- a/include/configs/KUP4X.h
+++ b/include/configs/KUP4X.h
@@ -118,7 +118,9 @@
 #define CONFIG_COMMANDS	      ( CONFIG_CMD_DFL	| \
 				CFG_CMD_DHCP	| \
 				CFG_CMD_I2C	| \
-				CFG_CMD_IDE	)
+				CFG_CMD_IDE	| \
+				CFG_CMD_USB	| \
+				CFG_CMD_FAT)
 
 /* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
 #include <cmd_confdefs.h>
@@ -386,4 +388,7 @@
 #define CONFIG_AUTOBOOT_STOP_STR	"."	/* easy to stop for now		*/
 #define CONFIG_SILENT_CONSOLE	1
 
+#define CONFIG_USB_STORAGE	1
+#define CONFIG_USB_SL811HS	1
+
 #endif	/* __CONFIG_H */
diff --git a/include/configs/NETPHONE.h b/include/configs/NETPHONE.h
index d82d5a7..9dadaa8 100644
--- a/include/configs/NETPHONE.h
+++ b/include/configs/NETPHONE.h
@@ -67,8 +67,8 @@
 #undef	CONFIG_BOOTARGS
 #define CONFIG_BOOTCOMMAND							\
 	"tftpboot; " 								\
-	"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " 	\
-	"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; " 	\
+	"setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " 	\
+	"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " 	\
 	"bootm"
 
 #define CONFIG_AUTOSCRIPT
diff --git a/include/configs/NETTA.h b/include/configs/NETTA.h
index d9a78bd..b720ec5 100644
--- a/include/configs/NETTA.h
+++ b/include/configs/NETTA.h
@@ -65,8 +65,8 @@
 #undef	CONFIG_BOOTARGS
 #define CONFIG_BOOTCOMMAND							\
 	"tftpboot; " 								\
-	"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " 	\
-	"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; " 	\
+	"setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " 	\
+	"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " 	\
 	"bootm"
 
 #define CONFIG_LOADS_ECHO	0	/* echo off for serial download	*/
diff --git a/include/configs/NETVIA.h b/include/configs/NETVIA.h
index 8f93a49..dc6b15f 100644
--- a/include/configs/NETVIA.h
+++ b/include/configs/NETVIA.h
@@ -64,8 +64,8 @@
 #undef	CONFIG_BOOTARGS
 #define CONFIG_BOOTCOMMAND							\
 	"tftpboot; " 								\
-	"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " 	\
-	"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; " 	\
+	"setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " 	\
+	"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " 	\
 	"bootm"
 
 #define CONFIG_LOADS_ECHO	0	/* echo off for serial download	*/
diff --git a/include/fat.h b/include/fat.h
index 3e7c91c..0645458 100644
--- a/include/fat.h
+++ b/include/fat.h
@@ -27,6 +27,8 @@
 #ifndef _FAT_H_
 #define _FAT_H_
 
+#include <asm/byteorder.h>
+
 #define CONFIG_SUPPORT_VFAT
 
 #define SECTOR_SIZE FS_BLOCK_SIZE
@@ -210,11 +212,4 @@
 const char *file_getfsname(int idx);
 int fat_register_device(block_dev_desc_t *dev_desc, int part_no);
 
-#ifdef CONFIG_PXA250
-#undef FAT2CPU16
-#define FAT2CPU16(x) x
-#undef FAT2CPU32
-#define FAT2CPU32(x) x
-#endif
-
 #endif /* _FAT_H_ */
diff --git a/include/usb.h b/include/usb.h
index 074e0f1..6940d32 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -12,7 +12,7 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
@@ -29,15 +29,15 @@
 #include <usb_defs.h>
 
 /* Everything is aribtrary */
-#define USB_ALTSETTINGALLOC          4
-#define USB_MAXALTSETTING	           128  /* Hard limit */
+#define USB_ALTSETTINGALLOC		4
+#define USB_MAXALTSETTING		128	/* Hard limit */
 
-#define USB_MAX_DEVICE              32
-#define USB_MAXCONFIG		            8
-#define USB_MAXINTERFACES	          8
-#define USB_MAXENDPOINTS	          16
-#define USB_MAXCHILDREN  						8 	/* This is arbitrary */
-#define USB_MAX_HUB									16
+#define USB_MAX_DEVICE			32
+#define USB_MAXCONFIG			8
+#define USB_MAXINTERFACES		8
+#define USB_MAXENDPOINTS		16
+#define USB_MAXCHILDREN			8	/* This is arbitrary */
+#define USB_MAX_HUB			16
 
 #define USB_CNTL_TIMEOUT 100 /* 100ms timeout */
 
@@ -125,19 +125,19 @@
 	unsigned char  bmAttributes;
 	unsigned char  MaxPower;
 
-	unsigned char  no_of_if;			/* number of interfaces */
+	unsigned char  no_of_if;		/* number of interfaces */
 	struct usb_interface_descriptor if_desc[USB_MAXINTERFACES];
 } __attribute__ ((packed));
 
 
 struct usb_device {
-	int devnum;								/* Device number on USB bus */
-	int slow;									/* Slow device? */
-	char mf[32];		     			/* manufacturer */
-	char prod[32];		     		/* product */
-	char serial[32];       	  /* serial number */
+	int devnum;			/* Device number on USB bus */
+	int slow;			/* Slow device? */
+	char mf[32];			/* manufacturer */
+	char prod[32];			/* product */
+	char serial[32];		/* serial number */
 
-	int maxpacketsize;		    /* Maximum packet size; encoded as 0,1,2,3 = 8,16,32,64 */
+	int maxpacketsize;		/* Maximum packet size; encoded as 0,1,2,3 = 8,16,32,64 */
 	unsigned int toggle[2];		/* one bit for each endpoint ([0] = IN, [1] = OUT) */
 	unsigned int halted[2];		/* endpoint halts; one bit per endpoint # & direction; */
 			    /* [0] = IN, [1] = OUT */
@@ -152,7 +152,7 @@
 	int string_langid;		/* language ID for strings */
 	int (*irq_handle)(struct usb_device *dev);
 	unsigned long irq_status;
-	int irq_act_len;			/* transfered bytes */
+	int irq_act_len;		/* transfered bytes */
 	void *privptr;
 	/*
 	 * Child devices -  if this is a hub device
@@ -169,7 +169,7 @@
  * this is how the lowlevel part communicate with the outer world
  */
 
-#if defined(CONFIG_USB_UHCI) || defined(CONFIG_USB_OHCI)
+#if defined(CONFIG_USB_UHCI) || defined(CONFIG_USB_OHCI) || defined (CONFIG_USB_SL811HS)
 int usb_lowlevel_init(void);
 int usb_lowlevel_stop(void);
 int submit_bulk_msg(struct usb_device *dev, unsigned long pipe, void *buffer,int transfer_len);
@@ -180,7 +180,7 @@
 
 /* Defines */
 #define USB_UHCI_VEND_ID 0x8086
-#define USB_UHCI_DEV_ID  0x7112
+#define USB_UHCI_DEV_ID	 0x7112
 
 #else
 #error USB Lowlevel not defined
@@ -242,8 +242,8 @@
 	({ unsigned long x_ = (unsigned long)x; \
 	 (unsigned long)( \
 		((x_ & 0x000000FFUL) << 24) | \
-		((x_ & 0x0000FF00UL) <<  8) | \
-		((x_ & 0x00FF0000UL) >>  8) | \
+		((x_ & 0x0000FF00UL) <<	 8) | \
+		((x_ & 0x00FF0000UL) >>	 8) | \
 		((x_ & 0xFF000000UL) >> 24) ); \
 	})
 #endif /* LITTLEENDIAN */
@@ -298,7 +298,7 @@
 
 /* The D0/D1 toggle bits */
 #define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> ep) & 1)
-#define	usb_dotoggle(dev, ep, out)  ((dev)->toggle[out] ^= (1 << ep))
+#define usb_dotoggle(dev, ep, out)  ((dev)->toggle[out] ^= (1 << ep))
 #define usb_settoggle(dev, ep, out, bit) ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << ep)) | ((bit) << ep))
 
 /* Endpoint halt control/status */