diff --git a/board/Barix/ipam390/README.ipam390 b/board/Barix/ipam390/README.ipam390
index 2d155a3..5c45fca 100644
--- a/board/Barix/ipam390/README.ipam390
+++ b/board/Barix/ipam390/README.ipam390
@@ -50,7 +50,7 @@
 Filename '/tftpboot/ipam390/u-boot.ais'.
 Load address: 0xc0000000
 Loading: ##################################
-         1.5 MiB/s
+	 1.5 MiB/s
 done
 Bytes transferred = 493716 (78894 hex)
 
diff --git a/board/altera/common/sevenseg.c b/board/altera/common/sevenseg.c
index 7ae7ca2..1f22c85 100644
--- a/board/altera/common/sevenseg.c
+++ b/board/altera/common/sevenseg.c
@@ -87,10 +87,10 @@
 
 #if (SEVENSEG_ACTIVE == 0)
 	sevenseg_portval = (sevenseg_portval &   SEVENDEG_MASK_DP)
-		         | ((~value)         & (~SEVENDEG_MASK_DP));
+			 | ((~value)         & (~SEVENDEG_MASK_DP));
 #else
 	sevenseg_portval = (sevenseg_portval & SEVENDEG_MASK_DP)
-		         | (value);
+			 | (value);
 #endif
 
 	piop->data = sevenseg_portval;
diff --git a/board/boundary/nitrogen6x/6x_upgrade.txt b/board/boundary/nitrogen6x/6x_upgrade.txt
index 0d8e8e5..1f9a889 100644
--- a/board/boundary/nitrogen6x/6x_upgrade.txt
+++ b/board/boundary/nitrogen6x/6x_upgrade.txt
@@ -6,39 +6,39 @@
       if sf probe || sf probe || \
 	 sf probe 1 27000000 || sf probe 1 27000000 ; then
 	   echo "probed SPI ROM" ;
-           if sf read 0x12400000 $offset $filesize ; then
-               if cmp.b 0x12000000 0x12400000 $filesize ; then
-                   echo "------- U-Boot versions match" ;
-               else
-                   echo "Need U-Boot upgrade" ;
-                   echo "Program in 5 seconds" ;
-                   for n in 5 4 3 2 1 ; do
-                        echo $n ;
-                        sleep 1 ;
-                   done
+	   if sf read 0x12400000 $offset $filesize ; then
+	       if cmp.b 0x12000000 0x12400000 $filesize ; then
+		   echo "------- U-Boot versions match" ;
+	       else
+		   echo "Need U-Boot upgrade" ;
+		   echo "Program in 5 seconds" ;
+		   for n in 5 4 3 2 1 ; do
+			echo $n ;
+			sleep 1 ;
+		   done
 		   echo "erasing" ;
-                   sf erase 0 0x50000 ;
+		   sf erase 0 0x50000 ;
 		   # two steps to prevent bricking
 		   echo "programming" ;
-                   sf write 0x12000000 $offset $filesize ;
+		   sf write 0x12000000 $offset $filesize ;
 		   echo "verifying" ;
-                   if sf read 0x12400000 $offset $filesize ; then
-                       if cmp.b 0x12000000 0x12400000 $filesize ; then
-                           while echo "---- U-Boot upgraded. reset" ; do
+		   if sf read 0x12400000 $offset $filesize ; then
+		       if cmp.b 0x12000000 0x12400000 $filesize ; then
+			   while echo "---- U-Boot upgraded. reset" ; do
 				sleep 120
 			   done
-                       else
-                           echo "Read verification error" ;
-                       fi
-                   else
-                        echo "Error re-reading EEPROM" ;
-                   fi
-               fi
-           else
-               echo "Error reading boot loader from EEPROM" ;
-           fi
+		       else
+			   echo "Read verification error" ;
+		       fi
+		   else
+			echo "Error re-reading EEPROM" ;
+		   fi
+	       fi
+	   else
+	       echo "Error reading boot loader from EEPROM" ;
+	   fi
       else
-           echo "Error initializing EEPROM" ;
+	   echo "Error initializing EEPROM" ;
       fi ;
 else
      echo "No U-Boot image found on SD card" ;
diff --git a/board/chromebook-x86/dts/alex.dts b/board/chromebook-x86/dts/alex.dts
index cb6a9e4..2f13544 100644
--- a/board/chromebook-x86/dts/alex.dts
+++ b/board/chromebook-x86/dts/alex.dts
@@ -3,8 +3,8 @@
 /include/ "coreboot.dtsi"
 
 / {
-        #address-cells = <1>;
-        #size-cells = <1>;
+	#address-cells = <1>;
+	#size-cells = <1>;
 	model = "Google Alex";
 	compatible = "google,alex", "intel,atom-pineview";
 
@@ -12,13 +12,13 @@
 	       silent_console = <0>;
 	};
 
-        gpio: gpio {};
+	gpio: gpio {};
 
 	serial {
 		reg = <0x3f8 8>;
 		clock-frequency = <115200>;
 	};
 
-        chosen { };
-        memory { device_type = "memory"; reg = <0 0>; };
+	chosen { };
+	memory { device_type = "memory"; reg = <0 0>; };
 };
diff --git a/board/chromebook-x86/dts/link.dts b/board/chromebook-x86/dts/link.dts
index c95ee8a..4a37dac 100644
--- a/board/chromebook-x86/dts/link.dts
+++ b/board/chromebook-x86/dts/link.dts
@@ -3,8 +3,8 @@
 /include/ "coreboot.dtsi"
 
 / {
-        #address-cells = <1>;
-        #size-cells = <1>;
+	#address-cells = <1>;
+	#size-cells = <1>;
 	model = "Google Link";
 	compatible = "google,link", "intel,celeron-ivybridge";
 
@@ -12,15 +12,15 @@
 	       silent_console = <0>;
 	};
 
-        gpio: gpio {};
+	gpio: gpio {};
 
 	serial {
 		reg = <0x3f8 8>;
 		clock-frequency = <115200>;
 	};
 
-        chosen { };
-        memory { device_type = "memory"; reg = <0 0>; };
+	chosen { };
+	memory { device_type = "memory"; reg = <0 0>; };
 
 	spi {
 		#address-cells = <1>;
diff --git a/board/cobra5272/bdm/cobra5272_uboot.gdb b/board/cobra5272/bdm/cobra5272_uboot.gdb
index abecb40..61e778e 100644
--- a/board/cobra5272/bdm/cobra5272_uboot.gdb
+++ b/board/cobra5272/bdm/cobra5272_uboot.gdb
@@ -1,11 +1,11 @@
 #
 # GDB Init script for the Coldfire 5272 processor.
 #
-# The main purpose of this script is to configure the
+# The main purpose of this script is to configure the 
 # DRAM controller so code can be loaded.
 #
 # This file was changed to suite the senTec COBRA5272 board.
-#
+# 
 
 define addresses
 
diff --git a/board/cogent/flash.c b/board/cogent/flash.c
index 207380f..d4ae4d0 100644
--- a/board/cogent/flash.c
+++ b/board/cogent/flash.c
@@ -487,7 +487,7 @@
 
 	if (haderr > 0) {
 		printf (" failed\n");
-	        rcode = 1;
+		rcode = 1;
 	}
 	else
 		printf (" done\n");
diff --git a/board/cray/L1/bootscript.hush b/board/cray/L1/bootscript.hush
index c9e3c91..f2f78ad 100644
--- a/board/cray/L1/bootscript.hush
+++ b/board/cray/L1/bootscript.hush
@@ -47,7 +47,7 @@
 	echo no kernel to boot from $flash_krl, need tftp
 fi
 
-# Have a rootfs in flash?
+# Have a rootfs in flash? 
 echo test for SQUASHfs at $flash_rfs
 
 if imi $flash_rfs
@@ -69,7 +69,7 @@
 
 # TFTP down a kernel
 if printenv bootfile
-then
+then 
 	tftp $tftp_addr $bootfile
 	setenv kernel $tftp_addr
 	echo I will boot the TFTP kernel
@@ -90,7 +90,7 @@
 then
 	echo rootpath is $rootpath
 	if printenv initrd
-	then
+	then 
 		echo initrd is also specified, so use $initrd
 		tftp $tftp2_addr $initrd
 		setenv bootargs root=/dev/ram0 rw cwsroot=$serverip:$rootpath $bootargs
diff --git a/board/esd/common/lcd.h b/board/esd/common/lcd.h
index 96e4b99..5b14bf9 100644
--- a/board/esd/common/lcd.h
+++ b/board/esd/common/lcd.h
@@ -9,7 +9,7 @@
  * Neutralize little endians.
  */
 #define SWAP_LONG(data) ((unsigned long)                                  \
-		         (((unsigned long)(data) >> 24)                 | \
+			 (((unsigned long)(data) >> 24)                 | \
 			  ((unsigned long)(data)  << 24)                | \
 			  (((unsigned long)(data) >> 8) & 0x0000ff00 )  | \
 			   (((unsigned long)(data) << 8) & 0x00ff0000 )))
diff --git a/board/esd/cpci750/ide.c b/board/esd/cpci750/ide.c
index 5f30685..f555c08 100644
--- a/board/esd/cpci750/ide.c
+++ b/board/esd/cpci750/ide.c
@@ -43,7 +43,7 @@
 	if (devbusfn != -1) {
 		cpci_hd_type = 1;
 	} else {
-	        devbusfn = pci_find_device (0x1095, 0x3114, 0);
+		devbusfn = pci_find_device (0x1095, 0x3114, 0);
 		if (devbusfn != -1) {
 			cpci_hd_type = 2;
 		}
diff --git a/board/esd/cpci750/pci.c b/board/esd/cpci750/pci.c
index c9b3ac2..59f170a 100644
--- a/board/esd/cpci750/pci.c
+++ b/board/esd/cpci750/pci.c
@@ -746,7 +746,7 @@
 	int bus = PCI_BUS (dev);
 
 	if ((bus == local_buses[0]) || (bus == local_buses[1])) {
-	        *value = pciReadConfigReg ((PCI_HOST) hose->cfg_addr,
+		*value = pciReadConfigReg ((PCI_HOST) hose->cfg_addr,
 					   offset | (PCI_FUNC(dev) << 8),
 					   PCI_DEV (dev));
 	} else {
diff --git a/board/etin/debris/flash.c b/board/etin/debris/flash.c
index 9d22aa2..2657958 100644
--- a/board/etin/debris/flash.c
+++ b/board/etin/debris/flash.c
@@ -323,7 +323,7 @@
 
 	if (prot)
 		printf ("- Warning: %d protected sectors will not be erased!\n",
-					                        prot);
+								prot);
 	else
 		printf ("\n");
 
@@ -365,7 +365,7 @@
 		DevSize: SIZE_1MiB,
 		NumEraseRegions: 4,
 		regions: {ERASEINFO(0x10000,15),
-		          ERASEINFO(0x08000,1),
+			  ERASEINFO(0x08000,1),
 			  ERASEINFO(0x02000,2),
 			  ERASEINFO(0x04000,1)
 		}
@@ -376,7 +376,7 @@
 		DevSize: SIZE_2MiB,
 		NumEraseRegions: 4,
 		regions: {ERASEINFO(0x10000,31),
-		          ERASEINFO(0x08000,1),
+			  ERASEINFO(0x08000,1),
 			  ERASEINFO(0x02000,2),
 			  ERASEINFO(0x04000,1)
 		}
@@ -387,7 +387,7 @@
 		DevSize: SIZE_2MiB,
 		NumEraseRegions: 4,
 		regions: {ERASEINFO(0x04000,1),
-		          ERASEINFO(0x02000,2),
+			  ERASEINFO(0x02000,2),
 			  ERASEINFO(0x08000,1),
 			  ERASEINFO(0x10000,31)
 		}
@@ -398,7 +398,7 @@
 		DevSize: SIZE_4MiB,
 		NumEraseRegions: 2,
 		regions: {ERASEINFO(0x10000,63),
-		          ERASEINFO(0x02000,8)
+			  ERASEINFO(0x02000,8)
 		}
 
 	}, {
@@ -408,7 +408,7 @@
 		DevSize: SIZE_4MiB,
 		NumEraseRegions: 2,
 		regions: {ERASEINFO(0x02000,8),
-		          ERASEINFO(0x10000,63)
+			  ERASEINFO(0x10000,63)
 		}
 	}
 };
diff --git a/board/evb64260/flash.c b/board/evb64260/flash.c
index 88c43ff..f3b0074 100644
--- a/board/evb64260/flash.c
+++ b/board/evb64260/flash.c
@@ -60,7 +60,7 @@
 #define CONFIG_SYS_BOOT_FLASH_WIDTH	1
 #endif
 	size_b0 = flash_get_size(CONFIG_SYS_BOOT_FLASH_WIDTH, (vu_long *)base,
-	                         &flash_info[0]);
+				 &flash_info[0]);
 
 #ifndef CONFIG_P3G4
 	printf("[");
@@ -97,17 +97,17 @@
 #if CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE
 	/* monitor protection ON by default */
 	flash_protect(FLAG_PROTECT_SET,
-	              CONFIG_SYS_MONITOR_BASE,
-	              CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1,
-	              flash_get_info(CONFIG_SYS_MONITOR_BASE));
+		      CONFIG_SYS_MONITOR_BASE,
+		      CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1,
+		      flash_get_info(CONFIG_SYS_MONITOR_BASE));
 #endif
 
 #ifdef  CONFIG_ENV_IS_IN_FLASH
 	/* ENV protection ON by default */
 	flash_protect(FLAG_PROTECT_SET,
-	              CONFIG_ENV_ADDR,
-	              CONFIG_ENV_ADDR + CONFIG_ENV_SIZE - 1,
-	              flash_get_info(CONFIG_ENV_ADDR));
+		      CONFIG_ENV_ADDR,
+		      CONFIG_ENV_ADDR + CONFIG_ENV_SIZE - 1,
+		      flash_get_info(CONFIG_ENV_ADDR));
 #endif
 
 	flash_size = size_b0 + size_b1;
diff --git a/board/evb64260/mpsc.c b/board/evb64260/mpsc.c
index 1a2ad20..c9da57c 100644
--- a/board/evb64260/mpsc.c
+++ b/board/evb64260/mpsc.c
@@ -785,7 +785,7 @@
 
 	GT_REG_WRITE(GALSDMA_0_COM_REG + CHANNEL * GALSDMA_REG_DIFF, 0);
 	GT_REG_WRITE(GALSDMA_0_COM_REG + CHANNEL * GALSDMA_REG_DIFF,
-	             SDMA_TX_ABORT | SDMA_RX_ABORT);
+		     SDMA_TX_ABORT | SDMA_RX_ABORT);
 
 	/* shut down the MPSC */
 	GT_REG_WRITE(GALMPSC_MCONF_LOW, 0);
@@ -797,7 +797,7 @@
 	/* shut down the sdma engines. */
 	/* reset config to default */
 	GT_REG_WRITE(GALSDMA_0_CONF_REG + CHANNEL * GALSDMA_REG_DIFF,
-	             0x000000fc);
+		     0x000000fc);
 
 	udelay(100);
 
diff --git a/board/fads/fads.c b/board/fads/fads.c
index 3fe318f..89dd9ef 100644
--- a/board/fads/fads.c
+++ b/board/fads/fads.c
@@ -434,7 +434,7 @@
 	*/
 
 	memctl->memc_mcr = 0x80808111;   /* run umpb cs4 1 count 1, addr 0x11 ??? (50MHz) */
-	                                 /* run umpb cs4 1 count 1, addr 0x11 precharge+MRS (100MHz) */
+					 /* run umpb cs4 1 count 1, addr 0x11 precharge+MRS (100MHz) */
 	udelay(200);
 
 	/* Run 8 refresh cycles */
@@ -567,7 +567,7 @@
 
 	if(!_initsdram(base, m))
 	{
-	        *noMbytes += m;
+		*noMbytes += m;
 		return 0;
 	}
 	else
diff --git a/board/freescale/b4860qds/tlb.c b/board/freescale/b4860qds/tlb.c
index f71aca4..00798a1 100644
--- a/board/freescale/b4860qds/tlb.c
+++ b/board/freescale/b4860qds/tlb.c
@@ -68,7 +68,7 @@
 		      0, 3, BOOKE_PAGESZ_256M, 1),
 
 	SET_TLB_ENTRY(1, CONFIG_SYS_PCIE1_MEM_VIRT + 0x10000000,
-                      CONFIG_SYS_PCIE1_MEM_PHYS + 0x10000000,
+		      CONFIG_SYS_PCIE1_MEM_PHYS + 0x10000000,
 		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
 		      0, 4, BOOKE_PAGESZ_256M, 1),
 
diff --git a/board/freescale/bsc9132qds/README b/board/freescale/bsc9132qds/README
index 4a3dbfe..f8377c9 100644
--- a/board/freescale/bsc9132qds/README
+++ b/board/freescale/bsc9132qds/README
@@ -23,14 +23,14 @@
       ECC), up to 1333 MHz data rate
     - Dedicated security engine featuring trusted boot
     - Two DMA controllers
-         - OCNDMA with four bidirectional channels
-         - SysDMA with sixteen bidirectional channels
+	 - OCNDMA with four bidirectional channels
+	 - SysDMA with sixteen bidirectional channels
     - Interfaces
-        - Four-lane SerDes PHY
+	- Four-lane SerDes PHY
 	    - PCI Express controller complies with the PEX Specification-Rev 2.0
-        - Two Common Public Radio Interface (CPRI) controller lanes
+	- Two Common Public Radio Interface (CPRI) controller lanes
 	    - High-speed USB 2.0 host and device controller with ULPI interface
-        - Enhanced secure digital (SD/MMC) host controller (eSDHC)
+	- Enhanced secure digital (SD/MMC) host controller (eSDHC)
 	    - Antenna interface controller (AIC), supporting four industry
 		standard JESD207/four custom ADI RF interfaces
        - ADI lanes support both full duplex FDD support & half duplex TDD
diff --git a/board/freescale/mpc8313erdb/mpc8313erdb.c b/board/freescale/mpc8313erdb/mpc8313erdb.c
index 591a4c6..69e98a5 100644
--- a/board/freescale/mpc8313erdb/mpc8313erdb.c
+++ b/board/freescale/mpc8313erdb/mpc8313erdb.c
@@ -129,12 +129,12 @@
 {
 	board_early_init_f();
 	NS16550_init((NS16550_t)(CONFIG_SYS_IMMR + 0x4500),
-	             CONFIG_SYS_NS16550_CLK / 16 / CONFIG_BAUDRATE);
+		     CONFIG_SYS_NS16550_CLK / 16 / CONFIG_BAUDRATE);
 	puts("NAND boot... ");
 	init_timebase();
 	initdram(0);
 	relocate_code(CONFIG_SYS_NAND_U_BOOT_RELOC_SP, (gd_t *)gd,
-	              CONFIG_SYS_NAND_U_BOOT_RELOC);
+		      CONFIG_SYS_NAND_U_BOOT_RELOC);
 }
 
 void board_init_r(gd_t *gd, ulong dest_addr)
diff --git a/board/freescale/mpc8360emds/mpc8360emds.c b/board/freescale/mpc8360emds/mpc8360emds.c
index 39a86df..ac96163 100644
--- a/board/freescale/mpc8360emds/mpc8360emds.c
+++ b/board/freescale/mpc8360emds/mpc8360emds.c
@@ -427,7 +427,7 @@
 			if (prop) {
 				path = fdt_path_offset(blob, prop);
 				prop = fdt_getprop(blob, path,
-				                   "phy-connection-type", 0);
+						   "phy-connection-type", 0);
 				if (prop && (strcmp(prop, "rgmii-id") == 0))
 					fdt_fixup_phy_connection(blob, path,
 						PHY_INTERFACE_MODE_RGMII_RXID);
@@ -439,7 +439,7 @@
 			if (prop) {
 				path = fdt_path_offset(blob, prop);
 				prop = fdt_getprop(blob, path,
-				                   "phy-connection-type", 0);
+						   "phy-connection-type", 0);
 				if (prop && (strcmp(prop, "rgmii-id") == 0))
 					fdt_fixup_phy_connection(blob, path,
 						PHY_INTERFACE_MODE_RGMII_RXID);
diff --git a/board/funkwerk/vovpn-gw/vovpn-gw.c b/board/funkwerk/vovpn-gw/vovpn-gw.c
index d33563b..c2aad6e 100644
--- a/board/funkwerk/vovpn-gw/vovpn-gw.c
+++ b/board/funkwerk/vovpn-gw/vovpn-gw.c
@@ -270,9 +270,9 @@
 	for (i = 0; i < 64; i++) {
 		c = *dummy;
 		printf( "UPMA[%02d]: 0x%08lx,0x%08lx: 0x%08lx\n",i,
-		        memctl->memc_mamr,
-		        memctl->memc_mar,
-		        memctl->memc_mdr );
+			memctl->memc_mamr,
+			memctl->memc_mar,
+			memctl->memc_mdr );
 	}
 	memctl->memc_mamr = 0x00044440;
 #endif
diff --git a/board/gen860t/flash.c b/board/gen860t/flash.c
index 8433d5d..ca1ed3d 100644
--- a/board/gen860t/flash.c
+++ b/board/gen860t/flash.c
@@ -182,7 +182,7 @@
 
 		default:
 			printf ("Don't know sector offsets for FLASH"
-			        " type 0x%lx\n", info->flash_id);
+				" type 0x%lx\n", info->flash_id);
 	    return;
 	}
 }
diff --git a/board/incaip/incaip.c b/board/incaip/incaip.c
index 911fb63..217b8af 100644
--- a/board/incaip/incaip.c
+++ b/board/incaip/incaip.c
@@ -58,9 +58,9 @@
 		for (rows = 0xB; rows <= 0xD; rows++)
 		{
 			*INCA_IP_SDRAM_MC_CFGPB0 = (0x14 << 8) |
-			                           (rows << 4) | cols;
+						   (rows << 4) | cols;
 			size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
-			                                     max_sdram_size());
+							     max_sdram_size());
 
 			if (size > max_size)
 			{
diff --git a/board/matrix_vision/mvbc_p/Makefile b/board/matrix_vision/mvbc_p/Makefile
index 84add28..61474aa 100644
--- a/board/matrix_vision/mvbc_p/Makefile
+++ b/board/matrix_vision/mvbc_p/Makefile
@@ -19,7 +19,7 @@
 SOBJS   := $(addprefix $(obj),$(SOBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-	        $(call cmd_link_o_target, $(OBJS))
+		$(call cmd_link_o_target, $(OBJS))
 
 #########################################################################
 
diff --git a/board/matrix_vision/mvsmr/Makefile b/board/matrix_vision/mvsmr/Makefile
index 0e53e8d..ef768fe 100644
--- a/board/matrix_vision/mvsmr/Makefile
+++ b/board/matrix_vision/mvsmr/Makefile
@@ -19,7 +19,7 @@
 SOBJS   := $(addprefix $(obj),$(SOBJS))
 
 $(LIB): $(obj).depend $(OBJS)
-	        $(call cmd_link_o_target, $(OBJS))
+		$(call cmd_link_o_target, $(OBJS))
 	@mkimage -T script -C none -n mvSMR_Script -d bootscript $(obj)bootscript.img
 
 #########################################################################
diff --git a/board/openrisc/openrisc-generic/or1ksim.cfg b/board/openrisc/openrisc-generic/or1ksim.cfg
index 9926093..2bd8642 100644
--- a/board/openrisc/openrisc-generic/or1ksim.cfg
+++ b/board/openrisc/openrisc-generic/or1ksim.cfg
@@ -20,8 +20,8 @@
    not found too, it reverts to the built-in default configuration.
 
    NOTE: Users should not rely on the built-in configuration, since the
-         default configuration may differ between version.
-         Rather create a configuration file that sets all critical values.
+	 default configuration may differ between version.
+	 Rather create a configuration file that sets all critical values.
 
    This file may contain (standard C) comments only - no // support.
 
@@ -306,7 +306,7 @@
   debug = 0-9
       0  : no debug messages
       1-9: debug message level.
-           higher numbers produce more messages
+	   higher numbers produce more messages
 
   profile = 0/1
       '0': don't generate profiling file 'sim.profile'
@@ -375,11 +375,11 @@
     Core Verification.
 
     enabled = 0/1
-        '0': disbable VAPI server
-        '1': enable/start VAPI server
+	'0': disbable VAPI server
+	'1': enable/start VAPI server
 
     server_port = <value>
-        TCP/IP port to start VAPI server on
+	TCP/IP port to start VAPI server on
 
     log_enabled = 0/1
        '0': disable VAPI requests logging
@@ -565,56 +565,56 @@
    This section configures the UARTs
 
      enabled = <0|1>
-        Enable/disable the peripheral.  By default if it is enabled.
+	Enable/disable the peripheral.  By default if it is enabled.
 
      baseaddr = <hex_value>
-        address of first UART register for this device
+	address of first UART register for this device
 
 
      channel = <channeltype>:<args>
 
-        The channel parameter indicates the source of received UART characters
-        and the sink for transmitted UART characters.
+	The channel parameter indicates the source of received UART characters
+	and the sink for transmitted UART characters.
 
-        The <channeltype> can be either "file", "xterm", "tcp", "fd", or "tty"
-        (without quotes).
+	The <channeltype> can be either "file", "xterm", "tcp", "fd", or "tty"
+	(without quotes).
 
-          A) To send/receive characters from a pair of files, use a file
-             channel:
+	  A) To send/receive characters from a pair of files, use a file
+	     channel:
 
-               channel=file:<rxfile>,<txfile>
+	       channel=file:<rxfile>,<txfile>
 
 	  B) To create an interactive terminal window, use an xterm channel:
 
-               channel=xterm:[<xterm_arg>]*
+	       channel=xterm:[<xterm_arg>]*
 
 	  C) To create a bidirectional tcp socket which one could, for example,
-             access via telnet, use a tcp channel:
+	     access via telnet, use a tcp channel:
 
-               channel=tcp:<port number>
+	       channel=tcp:<port number>
 
 	  D) To cause the UART to read/write from existing numeric file
-             descriptors, use an fd channel:
+	     descriptors, use an fd channel:
 
-               channel=fd:<rx file descriptor num>,<tx file descriptor num>
+	       channel=fd:<rx file descriptor num>,<tx file descriptor num>
 
-          E) To connect the UART to a physical serial port, create a tty
-             channel:
+	  E) To connect the UART to a physical serial port, create a tty
+	     channel:
 
 	       channel=tty:device=/dev/ttyS0,baud=9600
 
      irq = <value>
-        irq number for this device
+	irq number for this device
 
      16550 = 0/1
-        '0': this device is a UART16450
-        '1': this device is a UART16550
+	'0': this device is a UART16450
+	'1': this device is a UART16550
 
      jitter = <value>
-        in msecs... time to block, -1 to disable it
+	in msecs... time to block, -1 to disable it
 
      vapi_id = <hex_value>
-        VAPI id of this instance
+	VAPI id of this instance
 */
 
 section uart
@@ -634,16 +634,16 @@
    This section configures the DMAs
 
      enabled = <0|1>
-        Enable/disable the peripheral.  By default if it is enabled.
+	Enable/disable the peripheral.  By default if it is enabled.
 
      baseaddr = <hex_value>
-        address of first DMA register for this device
+	address of first DMA register for this device
 
      irq = <value>
-        irq number for this device
+	irq number for this device
 
      vapi_id = <hex_value>
-        VAPI id of this instance
+	VAPI id of this instance
 */
 
 section dma
@@ -658,37 +658,37 @@
    This section configures the ETHERNETs
 
      enabled = <0|1>
-        Enable/disable the peripheral.  By default if it is enabled.
+	Enable/disable the peripheral.  By default if it is enabled.
 
      baseaddr = <hex_value>
-        address of first ethernet register for this device
+	address of first ethernet register for this device
 
      dma = <value>
-        which controller is this ethernet "connected" to
+	which controller is this ethernet "connected" to
 
      irq = <value>
-        ethernet mac IRQ level
+	ethernet mac IRQ level
 
      rtx_type = <value>
-        use 0 - file interface, 1 - socket interface
+	use 0 - file interface, 1 - socket interface
 
      rx_channel = <value>
-        DMA channel used for RX
+	DMA channel used for RX
 
      tx_channel = <value>
-        DMA channel used for TX
+	DMA channel used for TX
 
      rxfile = "<filename>"
-        filename, where to read data from
+	filename, where to read data from
 
      txfile = "<filename>"
-        filename, where to write data to
+	filename, where to write data to
 
      sockif = "<ifacename>"
-        interface name of ethernet socket
+	interface name of ethernet socket
 
      vapi_id = <hex_value>
-        VAPI id of this instance
+	VAPI id of this instance
 */
 
 section ethernet
@@ -711,16 +711,16 @@
    This section configures the GPIOs
 
      enabled = <0|1>
-        Enable/disable the peripheral.  By default if it is enabled.
+	Enable/disable the peripheral.  By default if it is enabled.
 
      baseaddr = <hex_value>
-        address of first GPIO register for this device
+	address of first GPIO register for this device
 
      irq = <value>
-        irq number for this device
+	irq number for this device
 
      base_vapi_id = <hex_value>
-        first VAPI id of this instance
+	first VAPI id of this instance
 	GPIO uses 8 consecutive VAPI IDs
 */
 
@@ -736,19 +736,19 @@
     This section configures the VGA/LCD controller
 
       enabled = <0|1>
-        Enable/disable the peripheral.  By default if it is enabled.
+	Enable/disable the peripheral.  By default if it is enabled.
 
       baseaddr = <hex_value>
-        address of first VGA register
+	address of first VGA register
 
       irq = <value>
-        irq number for this device
+	irq number for this device
 
       refresh_rate = <value>
-        number of cycles between screen dumps
+	number of cycles between screen dumps
 
       filename = "<filename>"
-        template name for generated names (e.g. "primary" produces "primary0023.bmp")
+	template name for generated names (e.g. "primary" produces "primary0023.bmp")
 */
 
 section vga
@@ -825,39 +825,39 @@
     This section configures the ATA/ATAPI host controller
 
       baseaddr = <hex_value>
-        address of first ATA register
+	address of first ATA register
 
       enabled = <0|1>
-        Enable/disable the peripheral.  By default if it is enabled.
+	Enable/disable the peripheral.  By default if it is enabled.
 
       irq = <value>
-        irq number for this device
+	irq number for this device
 
       debug = <value>
-        debug level for ata models.
+	debug level for ata models.
 	0: no debug messages
 	1: verbose messages
 	3: normal messages (more messages than verbose)
-        5: debug messages (normal debug messages)
+	5: debug messages (normal debug messages)
 	7: flow control messages (debug statemachine flows)
 	9: low priority message (display everything the code does)
 
       dev_type0/1 = <value>
-        ata device 0 type
-        0: NO_CONNeCT: none (not connected)
+	ata device 0 type
+	0: NO_CONNeCT: none (not connected)
 	1: FILE      : simulated harddisk
 	2: LOCAL     : local system harddisk
 
       dev_file0/1 = "<filename>"
-        filename for simulated ATA device
+	filename for simulated ATA device
 	valid only if dev_type0 == 1
 
       dev_size0/1 = <value>
-        size of simulated hard-disk (in MBytes)
+	size of simulated hard-disk (in MBytes)
 	valid only if dev_type0 == 1
 
       dev_packet0/1 = <value>
-        0: simulated ATA device does NOT implement PACKET command feature set
+	0: simulated ATA device does NOT implement PACKET command feature set
 	1: simulated ATA device does implement PACKET command feature set
 
    FIXME: irq number
diff --git a/board/ppmc8260/strataflash.c b/board/ppmc8260/strataflash.c
index 03d36ee..ea3c42e 100644
--- a/board/ppmc8260/strataflash.c
+++ b/board/ppmc8260/strataflash.c
@@ -407,7 +407,7 @@
 			printf("Command Sequence Error.\n");
 		} else if(flash_isset(info, sector, 0, FLASH_STATUS_ECLBS)){
 			printf("Block Erase Error.\n");
-		        retcode = ERR_NOT_ERASED;
+			retcode = ERR_NOT_ERASED;
 		} else if (flash_isset(info, sector, 0, FLASH_STATUS_PSLBS)) {
 			printf("Locking Error\n");
 		}
diff --git a/board/pxa255_idp/pxa_reg_calcs.py b/board/pxa255_idp/pxa_reg_calcs.py
index 786edc6..4a721d1 100644
--- a/board/pxa255_idp/pxa_reg_calcs.py
+++ b/board/pxa255_idp/pxa_reg_calcs.py
@@ -21,7 +21,7 @@
 		self.clr = clr
 		self.alt = alt
 		self.desc = desc
-
+		
 
 # the following is a dictionary of all GPIOs in the system
 # the key is the GPIO number
@@ -280,8 +280,8 @@
 
 # print define to past right into U-Boot source code
 
-print
-print
+print 
+print 
 
 for reg in registers:
 	print '#define %s	0x%x' % (uboot_reg_names[reg], pxa_regs[reg])
diff --git a/board/rbc823/rbc823.c b/board/rbc823/rbc823.c
index f276e5e..5881111 100644
--- a/board/rbc823/rbc823.c
+++ b/board/rbc823/rbc823.c
@@ -78,7 +78,7 @@
 	0x0FFFFC04, 0x0FF3FC04, 0x0FF3CC04, 0x0FF3CC04,
 	0x0FF3EC04, 0x0FF3CC00, 0x0FF7FC04, 0x3FFFFC04,
 	0xFFFFFC04, 0xFFFFFC05, /* last */
-	                        _NOT_USED_, _NOT_USED_,
+				_NOT_USED_, _NOT_USED_,
 	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
 	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
 	_NOT_USED_, _NOT_USED_, _NOT_USED_, _NOT_USED_,
diff --git a/board/samsung/dts/exynos5250-snow.dts b/board/samsung/dts/exynos5250-snow.dts
index 9b7e57e..12cd67e 100644
--- a/board/samsung/dts/exynos5250-snow.dts
+++ b/board/samsung/dts/exynos5250-snow.dts
@@ -71,9 +71,9 @@
 		codec-enable-gpio = <&gpio 0xb7 0>;
 	};
 
-        sound@12d60000 {
-                status = "disabled";
-        };
+	sound@12d60000 {
+		status = "disabled";
+	};
 
 	i2c@12cd0000 {
 		soundcodec@22 {
diff --git a/board/svm_sc8xx/svm_sc8xx.c b/board/svm_sc8xx/svm_sc8xx.c
index a508595..5db4850 100644
--- a/board/svm_sc8xx/svm_sc8xx.c
+++ b/board/svm_sc8xx/svm_sc8xx.c
@@ -139,6 +139,6 @@
 #if defined(CONFIG_CMD_DOC)
 void doc_init (void)
 {
-	        doc_probe (CONFIG_SYS_DOC_BASE);
+		doc_probe (CONFIG_SYS_DOC_BASE);
 }
 #endif
