diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S
index ba38678..bc48ca0 100644
--- a/arch/m68k/cpu/mcf5445x/start.S
+++ b/arch/m68k/cpu/mcf5445x/start.S
@@ -33,62 +33,47 @@
 	rte;
 
 #if defined(CONFIG_SERIAL_BOOT)
-#define ASM_DRAMINIT	(asm_dram_init - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR)
+#define ASM_DRAMINIT	(asm_dram_init - CONFIG_SYS_TEXT_BASE + \
+	CONFIG_SYS_INIT_RAM_ADDR)
 #define ASM_DRAMINIT_N	(asm_dram_init - CONFIG_SYS_TEXT_BASE)
-#define ASM_SBF_IMG_HDR	(asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR)
+#define ASM_SBF_IMG_HDR	(asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + \
+	CONFIG_SYS_INIT_RAM_ADDR)
 #endif
 
 .text
 
 /*
- *	Vector table. This is used for initial platform startup.
- *	These vectors are to catch any un-intended traps.
+ * Vector table. This is used for initial platform startup.
+ * These vectors are to catch any un-intended traps.
  */
 _vectors:
 #if defined(CONFIG_SERIAL_BOOT)
 
-INITSP:	.long	0		/* Initial SP	*/
+INITSP:	.long	0			/* Initial SP	*/
 #ifdef CONFIG_CF_SBF
-INITPC:	.long	ASM_DRAMINIT	/* Initial PC 	*/
+INITPC:	.long	ASM_DRAMINIT		/* Initial PC 	*/
 #endif
 #ifdef CONFIG_SYS_NAND_BOOT
-INITPC:	.long	ASM_DRAMINIT_N	/* Initial PC 	*/
+INITPC:	.long	ASM_DRAMINIT_N		/* Initial PC 	*/
 #endif
 
 #else
 
-INITSP:		.long	0	/* Initial SP	*/
-INITPC:		.long	_START	/* Initial PC 		*/
+INITSP:	.long	0			/* Initial SP	*/
+INITPC:	.long	_START			/* Initial PC 	*/
 
 #endif
 
-vector02:	.long	_FAULT	/* Access Error		*/
-vector03:	.long	_FAULT	/* Address Error	*/
-vector04:	.long	_FAULT	/* Illegal Instruction	*/
-vector05:	.long	_FAULT	/* Reserved		*/
-vector06:	.long	_FAULT	/* Reserved		*/
-vector07:	.long	_FAULT	/* Reserved		*/
-vector08:	.long	_FAULT	/* Privilege Violation	*/
-vector09:	.long	_FAULT	/* Trace		*/
-vector0A:	.long	_FAULT	/* Unimplemented A-Line	*/
-vector0B:	.long	_FAULT	/* Unimplemented F-Line	*/
-vector0C:	.long	_FAULT	/* Debug Interrupt	*/
-vector0D:	.long	_FAULT	/* Reserved		*/
-vector0E:	.long	_FAULT	/* Format Error		*/
-vector0F:	.long	_FAULT	/* Unitialized Int.	*/
+vector02_0F:
+.long	_FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
+.long	_FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
 
 /* Reserved */
 vector10_17:
 .long	_FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
 
-vector18:	.long	_FAULT	/* Spurious Interrupt	*/
-vector19:	.long	_FAULT	/* Autovector Level 1	*/
-vector1A:	.long	_FAULT	/* Autovector Level 2	*/
-vector1B:	.long	_FAULT	/* Autovector Level 3	*/
-vector1C:	.long	_FAULT	/* Autovector Level 4	*/
-vector1D:	.long	_FAULT	/* Autovector Level 5	*/
-vector1E:	.long	_FAULT	/* Autovector Level 6	*/
-vector1F:	.long	_FAULT	/* Autovector Level 7	*/
+vector18_1F:
+.long	_FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
 
 #if !defined(CONFIG_SERIAL_BOOT)
 
@@ -136,12 +121,12 @@
 #if defined(CONFIG_SERIAL_BOOT)
 	/* Image header: chksum 4 bytes, len 4 bytes, img dest 4 bytes */
 asm_sbf_img_hdr:
-	.long	0x00000000	/* checksum, not yet implemented */
-	.long	0x00040000	/* image length */
+	.long	0x00000000		/* checksum, not yet implemented */
+	.long	0x00040000		/* image length */
 	.long	CONFIG_SYS_TEXT_BASE	/* image to be relocated at */
 
 asm_dram_init:
-	move.w #0x2700,%sr		/* Mask off Interrupt */
+	move.w	#0x2700,%sr		/* Mask off Interrupt */
 
 #ifdef CONFIG_SYS_NAND_BOOT
 	/* for assembly stack */
@@ -149,7 +134,7 @@
 	movec	%d0, %RAMBAR1
 
 	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET), %sp
-	clr.l %sp@-
+	clr.l	%sp@-
 #endif
 
 #ifdef CONFIG_CF_SBF
@@ -160,11 +145,11 @@
 	movec	%d0, %RAMBAR1
 
 	/* initialize general use internal ram */
-	move.l #0, %d0
-	move.l #(ICACHE_STATUS), %a1	/* icache */
-	move.l #(DCACHE_STATUS), %a2	/* dcache */
-	move.l %d0, (%a1)
-	move.l %d0, (%a2)
+	move.l	#0, %d0
+	move.l	#(ICACHE_STATUS), %a1	/* icache */
+	move.l	#(DCACHE_STATUS), %a2	/* dcache */
+	move.l	%d0, (%a1)
+	move.l	%d0, (%a2)
 
 	/* invalidate and disable cache */
 	move.l	#(CONFIG_SYS_ICACHE_INV + CONFIG_SYS_DCACHE_INV), %d0
@@ -176,7 +161,7 @@
 	movec	%d0, %ACR3
 
 	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET), %sp
-	clr.l %sp@-
+	clr.l	%sp@-
 
 	/* Must disable global address */
 	move.l	#0xFC008000, %a1
@@ -185,7 +170,7 @@
 	move.l	#(CONFIG_SYS_CS0_CTRL), (%a1)
 	move.l	#0xFC008004, %a1
 	move.l	#(CONFIG_SYS_CS0_MASK), (%a1)
-#endif			/* CONFIG_CF_SBF */
+#endif /* CONFIG_CF_SBF */
 
 #ifdef CONFIG_MCF5441x
 	/* TC: enable all peripherals,
@@ -193,9 +178,9 @@
 	move.l	#0xFC04002D, %a1
 
 #if defined(CONFIG_CF_SBF)
-	move.b	#23, (%a1)	/* dspi */
+	move.b	#23, (%a1)		/* dspi */
 #endif
-	move.b	#46, (%a1)	/* DDR */
+	move.b	#46, (%a1)		/* DDR */
 
 	/* slew settings */
 	move.l	#0xEC094060, %a1
@@ -365,7 +350,7 @@
 
 	move.l	#2000, %d1
 	jsr	asm_delay
-#endif		/* CONFIG_MCF5445x */
+#endif /* CONFIG_MCF5445x */
 
 #ifdef CONFIG_CF_SBF
 	/*
@@ -484,7 +469,7 @@
 
 	move.b	(%a3), %d1
 	rts
-#endif			/* CONFIG_CF_SBF */
+#endif /* CONFIG_CF_SBF */
 
 #ifdef CONFIG_SYS_NAND_BOOT
 	/* copy 4 boot pages to dram as soon as possible */
@@ -509,13 +494,13 @@
 	move.l	%d1, (%a1)
 
 	/* initialize general use internal ram */
-	move.l #0, %d0
-	move.l #(CACR_STATUS), %a1	/* CACR */
-	move.l #(ICACHE_STATUS), %a2	/* icache */
-	move.l #(DCACHE_STATUS), %a3	/* dcache */
-	move.l %d0, (%a1)
-	move.l %d0, (%a2)
-	move.l %d0, (%a3)
+	move.l	#0, %d0
+	move.l	#(CACR_STATUS), %a1	/* CACR */
+	move.l	#(ICACHE_STATUS), %a2	/* icache */
+	move.l	#(DCACHE_STATUS), %a3	/* dcache */
+	move.l	%d0, (%a1)
+	move.l	%d0, (%a2)
+	move.l	%d0, (%a3)
 
 	/* invalidate and disable cache */
 	move.l	#0x01004100, %d0	/* Invalidate cache cmd */
@@ -571,7 +556,7 @@
 	move.l	#4, %d2			/* start at 4 */
 	move.l  #0xFC0FFF04, %a0	/* cmd2 */
 	move.l  #0xFC0FFF0C, %a1	/* rar */
-	move.l	#(CONFIG_SYS_TEXT_BASE + 0xF80), %a2	/* dst */
+	move.l	#(CONFIG_SYS_TEXT_BASE + 0xF80), %a2
 
 asm_nand_read:
 	move.l	#0x11000000, %d0	/* rar */
@@ -621,14 +606,14 @@
 	rts
 #endif			/* CONFIG_CF_SBF || CONFIG_NAND_U_BOOT */
 
-	.text
+.text
 	. = 0x400
-	.globl	_start
+.globl _start
 _start:
 #if !defined(CONFIG_SERIAL_BOOT)
 	nop
 	nop
-	move.w #0x2700,%sr		/* Mask off Interrupt */
+	move.w	#0x2700,%sr		/* Mask off Interrupt */
 
 	/* Set vector base register at the beginning of the Flash */
 	move.l	#CONFIG_SYS_FLASH_BASE, %d0
@@ -638,11 +623,11 @@
 	movec	%d0, %RAMBAR1
 
 	/* initialize general use internal ram */
-	move.l #0, %d0
-	move.l #(ICACHE_STATUS), %a1	/* icache */
-	move.l #(DCACHE_STATUS), %a2	/* dcache */
-	move.l %d0, (%a1)
-	move.l %d0, (%a2)
+	move.l	#0, %d0
+	move.l	#(ICACHE_STATUS), %a1	/* icache */
+	move.l	#(DCACHE_STATUS), %a2	/* dcache */
+	move.l	%d0, (%a1)
+	move.l	%d0, (%a2)
 
 	/* invalidate and disable cache */
 	move.l	#(CONFIG_SYS_ICACHE_INV + CONFIG_SYS_DCACHE_INV), %d0
@@ -658,10 +643,10 @@
 #endif
 
 	/* put relocation table address to a5 */
-	move.l #__got_start, %a5
+	move.l	#__got_start, %a5
 
 	/* setup stack initially on top of internal static ram  */
-	move.l  #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
+	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
 
 	/*
 	 * if configured, malloc_f arena will be reserved first,
@@ -672,25 +657,26 @@
 	jsr	(%a1)
 
 	/* update stack and frame-pointers */
-	move.l  %d0, %sp
-	move.l  %sp, %fp
+	move.l	%d0, %sp
+	move.l	%sp, %fp
 
 	/* initialize reserved area */
-	move.l  %d0, -(%sp)
+	move.l	%d0, -(%sp)
 	move.l	#board_init_f_init_reserve, %a1
 	jsr	(%a1)
 
 	/* run low-level CPU init code (from flash) */
-	move.l #cpu_init_f, %a1
-	jsr (%a1)
+	move.l	#cpu_init_f, %a1
+	jsr	(%a1)
+
 	/* run low-level board init code (from flash) */
 	clr.l   %sp@-
-	move.l #board_init_f, %a1
-	jsr (%a1)
+	move.l	#board_init_f, %a1
+	jsr	(%a1)
 
 	/* board_init_f() does not return */
 
-/*------------------------------------------------------------------------------*/
+/******************************************************************************/
 
 /*
  * void relocate_code (addr_sp, gd, addr_moni)
@@ -703,23 +689,23 @@
  * r5 = length in bytes
  * r6 = cachelinesize
  */
-	.globl	relocate_code
+.globl relocate_code
 relocate_code:
-	link.w %a6,#0
-	move.l 8(%a6), %sp		/* set new stack pointer */
+	link.w	%a6,#0
+	move.l	8(%a6), %sp		/* set new stack pointer */
 
-	move.l 12(%a6), %d0		/* Save copy of Global Data pointer */
-	move.l 16(%a6), %a0		/* Save copy of Destination Address */
+	move.l	12(%a6), %d0		/* Save copy of Global Data pointer */
+	move.l	16(%a6), %a0		/* Save copy of Destination Address */
 
-	move.l #CONFIG_SYS_MONITOR_BASE, %a1
-	move.l #__init_end, %a2
-	move.l %a0, %a3
+	move.l	#CONFIG_SYS_MONITOR_BASE, %a1
+	move.l	#__init_end, %a2
+	move.l	%a0, %a3
 
 	/* copy the code to RAM */
 1:
-	move.l (%a1)+, (%a3)+
-	cmp.l  %a1,%a2
-	bgt.s	 1b
+	move.l	(%a1)+, (%a3)+
+	cmp.l	%a1,%a2
+	bgt.s	1b
 
 /*
  * We are done. Do not return, instead branch to second part of board
@@ -749,7 +735,7 @@
 	 */
 	move.l	%a0, %a1
 	add.l	#(__got_start - CONFIG_SYS_MONITOR_BASE),%a1
-	move.l	%a1,%a5			/* * fix got pointer register a5 */
+	move.l	%a1,%a5			/* fix got pointer register a5 */
 
 	move.l	%a0, %a2
 	add.l	#(__got_end - CONFIG_SYS_MONITOR_BASE),%a2
@@ -763,39 +749,40 @@
 	bne	7b
 
 	/* calculate relative jump to board_init_r in ram */
-	move.l %a0, %a1
-	add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1
+	move.l	%a0, %a1
+	add.l	#(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1
 
 	/* set parameters for board_init_r */
-	move.l %a0,-(%sp)		/* dest_addr */
-	move.l %d0,-(%sp)		/* gd */
+	move.l	%a0,-(%sp)		/* dest_addr */
+	move.l	%d0,-(%sp)		/* gd */
 	jsr	(%a1)
 
-/*------------------------------------------------------------------------------*/
+/******************************************************************************/
+
 /* exception code */
-	.globl _fault
+.globl _fault
 _fault:
-	bra _fault
-	.globl	_exc_handler
+	bra	_fault
 
+.globl _exc_handler
 _exc_handler:
 	SAVE_ALL
 	movel	%sp,%sp@-
-	bsr exc_handler
+	bsr	exc_handler
 	addql	#4,%sp
 	RESTORE_ALL
 
-	.globl	_int_handler
+.globl _int_handler
 _int_handler:
 	SAVE_ALL
 	movel	%sp,%sp@-
-	bsr int_handler
+	bsr	int_handler
 	addql	#4,%sp
 	RESTORE_ALL
 
-/*------------------------------------------------------------------------------*/
+/******************************************************************************/
 
-	.globl	version_string
+.globl version_string
 version_string:
-	.ascii U_BOOT_VERSION_STRING, "\0"
-	.align 4
+.ascii U_BOOT_VERSION_STRING, "\0"
+.align 4
