diff --git a/CHANGELOG b/CHANGELOG
index 6cded51..382bfbd 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -28,7 +28,7 @@
 
 * Patch by Hojin, 17 Sep 2004:
   Fix typo in cfi_flash.c
-  
+
 * Patch by Mark Jonas, 09 September 2004:
   mtest's data line test (with CFG_ALT_MEMTEST set) returned a wrong
   error message
diff --git a/board/dbau1x00/README b/board/dbau1x00/README
index d8f9ecc..b37ff36 100644
--- a/board/dbau1x00/README
+++ b/board/dbau1x00/README
@@ -13,7 +13,7 @@
 I named the board dbau1x00, to allow
 support for all three development boards
 ( dbau1000, dbau1100 and dbau1500 ).
-Now there is a new board called dbau1550 also, which 
+Now there is a new board called dbau1550 also, which
 should be supported RSN.
 
 I only have a dbau1000, so my testing is limited
@@ -25,10 +25,10 @@
 boot loader delivered with board.
 
 NOTE! When you switch between the two boot flashes, the
-base addresses will be swapped. 
+base addresses will be swapped.
 Have this in mind when you compile u-boot. TEXT_BASE has
-to match the address where u-boot is located when you 
-actually launch. 
+to match the address where u-boot is located when you
+actually launch.
 
 Ethernet only supported for mac0.
 
diff --git a/board/nc650/nc650.c b/board/nc650/nc650.c
index c2f0c79..e0fa76f 100644
--- a/board/nc650/nc650.c
+++ b/board/nc650/nc650.c
@@ -195,8 +195,7 @@
  * - short between data lines
  */
 
-static long int dram_size (long int mamr_value, long int *base,
-						   long int maxsize)
+static long int dram_size (long int mamr_value, long int *base, long int maxsize)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
@@ -209,9 +208,10 @@
 #if (CONFIG_COMMANDS & CFG_CMD_NAND)
 void nand_init(void)
 {
+	extern unsigned long nand_probe(unsigned long physadr);
+
 	unsigned long totlen = nand_probe(CFG_NAND_BASE);
 
 	printf ("%4lu MB\n", totlen >> 20);
 }
 #endif
-
diff --git a/board/omap1510inn/platform.S b/board/omap1510inn/platform.S
index 40b067e..8045e84 100644
--- a/board/omap1510inn/platform.S
+++ b/board/omap1510inn/platform.S
@@ -159,7 +159,7 @@
 	 */
 	mov r0, #0x10000000                 /* Load physical SDRAM base. */
 	mov r1, pc                          /* Get current execution location. */
-	/* Zero all but top 6 bits of PC, as they alone detect whether an 
+	/* Zero all but top 6 bits of PC, as they alone detect whether an
 	 * address is in the range 0x1000:0000-0x13ff:ffff, the 64M sized
 	 * valid range for SDRAM on the OMAP 1510/5910.
 	 */
diff --git a/common/serial.c b/common/serial.c
index c0f5a4c..4f50911 100644
--- a/common/serial.c
+++ b/common/serial.c
@@ -123,7 +123,7 @@
 int serial_init (void)
 {
 	DECLARE_GLOBAL_DATA_PTR;
-	
+
 	if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
 		struct serial_device *dev = default_serial_console ();
 
@@ -136,7 +136,7 @@
 void serial_setbrg (void)
 {
 	DECLARE_GLOBAL_DATA_PTR;
-	
+
 	if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
 		struct serial_device *dev = default_serial_console ();
 
@@ -150,7 +150,7 @@
 int serial_getc (void)
 {
 	DECLARE_GLOBAL_DATA_PTR;
-	
+
 	if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
 		struct serial_device *dev = default_serial_console ();
 
@@ -163,7 +163,7 @@
 int serial_tstc (void)
 {
 	DECLARE_GLOBAL_DATA_PTR;
-	
+
 	if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
 		struct serial_device *dev = default_serial_console ();
 
@@ -176,7 +176,7 @@
 void serial_putc (const char c)
 {
 	DECLARE_GLOBAL_DATA_PTR;
-	
+
 	if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
 		struct serial_device *dev = default_serial_console ();
 
@@ -190,7 +190,7 @@
 void serial_puts (const char *s)
 {
 	DECLARE_GLOBAL_DATA_PTR;
-	
+
 	if (!(gd->flags & GD_FLG_RELOC) || !serial_current) {
 		struct serial_device *dev = default_serial_console ();
 
diff --git a/doc/README.SBC8560 b/doc/README.SBC8560
index 83f2640..c4b6422 100644
--- a/doc/README.SBC8560
+++ b/doc/README.SBC8560
@@ -1,49 +1,52 @@
-The port was tested on Wind River System Sbc8560 board <www.windriver.com>. U-Boot was
-installed on the flash memory of the CPU card (no the SODIMM). 
+The port was tested on Wind River System Sbc8560 board
+<www.windriver.com>. U-Boot was installed on the flash memory of the
+CPU card (no the SODIMM).
 
-NOTE: Please configure uboot compile to the proper PCI frequency and setup the 
-appropriate DIP switch settings.
+NOTE: Please configure uboot compile to the proper PCI frequency and
+setup the appropriate DIP switch settings.
 
 SBC8560 board:
 
-Make sure boards switches are set to their appropriate conditions. Refer
-to the Engineering Reference Guide ERG-00300-002. Of particular 
-importance are: 1)Tthe settings for JP4 (JP4 1-3 and 2-4), which select
-the on-board FLASH device (Intel 28F128Jx); 2) The settings for the Clock SW9 (33 MHz
-or 66 MHz). 
+Make sure boards switches are set to their appropriate conditions.
+Refer to the Engineering Reference Guide ERG-00300-002. Of particular
+importance are: 1) the settings for JP4 (JP4 1-3 and 2-4), which
+select the on-board FLASH device (Intel 28F128Jx); 2) The settings
+for the Clock SW9 (33 MHz or 66 MHz).
 
-	Note:	SW9 Settings: 66 MHz 
-		4:1 ratio CCB clocks:SYSCLK 
+	Note:	SW9 Settings: 66 MHz
+		4:1 ratio CCB clocks:SYSCLK
 		3:1 ration e500 Core:CCB
 		pos1 - on, pos2 - on, pos3 - off, pos4 - on, pos5 - off, pos6 - on
-	Note:	SW9 Settings: 33 MHz 
+	Note:	SW9 Settings: 33 MHz
 		8:1 ratio CCB clocks:SYSCLK
 		3:1 ration e500 Core:CCB
 		pos1 - on, pos2 - on, pos3 - on, pos4 - off, pos5 - off, pos6 - on
-		
+
 
 Flashing the FLASH device with the "Wind River ICE":
 
-1) Properly connect and configure the Wind River ICE to the 
-   target JTAG port. This includes running the SBC8560 register script.
-   Make sure target memory can be read and written.
+1) Properly connect and configure the Wind River ICE to the target
+   JTAG port. This includes running the SBC8560 register script. Make
+   sure target memory can be read and written.
 
 2) Build the u-boot image:
 	make distclean
 	make SBC8560_66_config or SBC8560_33_config
 	make CROSS_COMPILE=.../ELDK3.0/ppc_8xx-/ all
 
-   Note: reference is made to the ELDK3.0 compiler. Further, it seems the ppc_8xx compiler is
- 	 required for the 85xx (no 85xx designated compiler in ELDK3.0)
+   Note: reference is made to the ELDK3.0 compiler. Further, it seems
+	 the ppc_8xx compiler is required for the 85xx (no 85xx
+	 designated compiler in ELDK3.0)
 
-3) Convert the uboot (.elf) file to a uboot.bin file (using visionClick converter).
-   The bin file should be converted from fffc0000 to ffffffff
+3) Convert the uboot (.elf) file to a uboot.bin file (using
+   visionClick converter). The bin file should be converted from
+   fffc0000 to ffffffff
 
 4) Setup the Flash Utility (tools menu) for:
-  
+
    Do a "dc clr" [visionClick] to load the default register settings
    Determine the clock speed of the PCI bus and set SW9 accordingly
-	Note: the speed of the PCI bus defaults to the slowest PCI card 
+	Note: the speed of the PCI bus defaults to the slowest PCI card
    PlayBack the "default" register file for the SBC8560
    Select the uboot.bin file with zero bias
    Select the initialize Target prior to programming
@@ -52,4 +55,3 @@
    Select the start address from 0 with size of 4000
 
 5) Erase and Program
-
diff --git a/doc/README.autoboot b/doc/README.autoboot
index c971bb1..e4c4186 100644
--- a/doc/README.autoboot
+++ b/doc/README.autoboot
@@ -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
@@ -97,7 +97,7 @@
   CONFIG_AUTOBOOT_STOP_STR2
 
   "bootdelaykey"  environment variable
-  "bootstopkey"   environment variable
+  "bootstopkey"	  environment variable
   "bootdelaykey2" environment variable
   "bootstopkey2"  environment variable
 
@@ -106,7 +106,7 @@
 	stop or delay autoboot.
 
 	Define CONFIG_AUTOBOOT_KEYED (no value required) to enable
-	this group of options.  CONFIG_AUTOBOOT_DELAY_STR,
+	this group of options.	CONFIG_AUTOBOOT_DELAY_STR,
 	CONFIG_AUTOBOOT_STOP_STR or both should be specified (or
 	specified by the corresponding environment variable),
 	otherwise there is no way to stop autoboot.
@@ -119,17 +119,17 @@
 	down the seconds. "autoboot in %d seconds\n" is a reasonable
 	prompt.
 
-        If CONFIG_AUTOBOOT_DELAY_STR or "bootdelaykey" is specified
-        and this string is received from console input before
-        autoboot starts booting, U-Boot gives a command prompt. The
-        U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
-        used, otherwise it never times out.
+	If CONFIG_AUTOBOOT_DELAY_STR or "bootdelaykey" is specified
+	and this string is received from console input before
+	autoboot starts booting, U-Boot gives a command prompt. The
+	U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
+	used, otherwise it never times out.
 
-        If CONFIG_AUTOBOOT_STOP_STR or "bootstopkey" is specified and
-        this string is received from console input before autoboot
-        starts booting, U-Boot gives a command prompt. The U-Boot
-        prompt never times out, even if CONFIG_BOOT_RETRY_TIME is
-        used.
+	If CONFIG_AUTOBOOT_STOP_STR or "bootstopkey" is specified and
+	this string is received from console input before autoboot
+	starts booting, U-Boot gives a command prompt. The U-Boot
+	prompt never times out, even if CONFIG_BOOT_RETRY_TIME is
+	used.
 
 	The string recognition is not very sophisticated. If a
 	partial match is detected, the first non-matching character
@@ -138,11 +138,11 @@
 	character of a key string does not appear in the rest of the
 	string.
 
-        Using the CONFIG_AUTOBOOT_DELAY_STR2 #define or the
-        "bootdelaykey2" environment variable and/or the
-        CONFIG_AUTOBOOT_STOP_STR2 #define or the "bootstopkey"
-        environment variable you can specify a second, alternate
-        string (which allows you to have two "password" strings).
+	Using the CONFIG_AUTOBOOT_DELAY_STR2 #define or the
+	"bootdelaykey2" environment variable and/or the
+	CONFIG_AUTOBOOT_STOP_STR2 #define or the "bootstopkey"
+	environment variable you can specify a second, alternate
+	string (which allows you to have two "password" strings).
 
   CONFIG_ZERO_BOOTDELAY_CHECK
 
diff --git a/include/configs/SBC8540.h b/include/configs/SBC8540.h
index 6279d33..3a09de9 100644
--- a/include/configs/SBC8540.h
+++ b/include/configs/SBC8540.h
@@ -29,7 +29,7 @@
 /* make sure you change the MAC address and other network params first,
  * search for CONFIG_ETHADDR,CONFIG_SERVERIP,etc in this file
  */
- 
+
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
@@ -203,7 +203,7 @@
 #define CFG_NS16550_COM1	((CFG_BR5_PRELIM & 0xff000000)+0x00700000)
 #define CFG_NS16550_COM2	((CFG_BR5_PRELIM & 0xff000000)+0x00800000)
 #else
-/* SBC8540 uses internal COMM controller */ 
+/* SBC8540 uses internal COMM controller */
 #define CFG_NS16550_COM1	((CFG_CCSRBAR & 0xfff00000)+0x00004500)
 #define CFG_NS16550_COM2	((CFG_CCSRBAR & 0xfff00000)+0x00004600)
 #endif
@@ -232,13 +232,13 @@
   #define CONFIG_MII		1	/* MII PHY management		*/
   #define CONFIG_PHY_ADDR	25	/* PHY address			*/
 
- 
+
 #elif defined(CONFIG_ETHER_ON_FCC)	/* CPM FCC Ethernet */
 
   #undef  CONFIG_ETHER_NONE		/* define if ether on something else */
   #define CONFIG_ETHER_ON_FCC2		/* cpm FCC ethernet support	*/
   #define CONFIG_ETHER_INDEX	2	/* which channel for ether  */
-  
+
   #if (CONFIG_ETHER_INDEX == 2)
     /*
      * - Rx-CLK is CLK13
@@ -250,11 +250,11 @@
     #define CFG_CMXFCR_VALUE	(CMXFCR_RF2CS_CLK13 | CMXFCR_TF2CS_CLK14)
     #define CFG_CPMFCR_RAMTYPE	0
     #define CFG_FCC_PSMR	(FCC_PSMR_FDE)
-    
+
   #elif (CONFIG_ETHER_INDEX == 3)
     /* need more definitions here for FE3 */
   #endif				/* CONFIG_ETHER_INDEX */
-  
+
   #define CONFIG_MII			/* MII PHY management */
   #define CONFIG_BITBANGMII		/* bit-bang MII PHY management	*/
   /*
@@ -272,7 +272,7 @@
 			else	iop->pdat &= ~0x00200000
 
   #define MIIDELAY	udelay(1)
-  
+
 #endif
 
 /*-----------------------------------------------------------------------
diff --git a/include/configs/SBC8560.h b/include/configs/SBC8560.h
index 8830737..8e3c392 100644
--- a/include/configs/SBC8560.h
+++ b/include/configs/SBC8560.h
@@ -29,7 +29,7 @@
 /* make sure you change the MAC address and other network params first,
  * search for CONFIG_ETHADDR,CONFIG_SERVERIP,etc in this file
  */
- 
+
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
@@ -220,13 +220,13 @@
   #define CONFIG_MII		1	/* MII PHY management		*/
   #define CONFIG_PHY_ADDR	25	/* PHY address			*/
 
- 
+
 #elif defined(CONFIG_ETHER_ON_FCC)	/* CPM FCC Ethernet */
 
   #undef  CONFIG_ETHER_NONE		/* define if ether on something else */
   #define CONFIG_ETHER_ON_FCC2		/* cpm FCC ethernet support	*/
   #define CONFIG_ETHER_INDEX	2	/* which channel for ether  */
-  
+
   #if (CONFIG_ETHER_INDEX == 2)
     /*
      * - Rx-CLK is CLK13
@@ -238,11 +238,11 @@
     #define CFG_CMXFCR_VALUE	(CMXFCR_RF2CS_CLK13 | CMXFCR_TF2CS_CLK14)
     #define CFG_CPMFCR_RAMTYPE	0
     #define CFG_FCC_PSMR	(FCC_PSMR_FDE)
-    
+
   #elif (CONFIG_ETHER_INDEX == 3)
     /* need more definitions here for FE3 */
   #endif				/* CONFIG_ETHER_INDEX */
-  
+
   #define CONFIG_MII			/* MII PHY management */
   #define CONFIG_BITBANGMII		/* bit-bang MII PHY management	*/
   /*
@@ -260,7 +260,7 @@
 			else	iop->pdat &= ~0x00200000
 
   #define MIIDELAY	udelay(1)
-  
+
 #endif
 
 /*-----------------------------------------------------------------------
