diff --git a/board/jse/flash.c b/board/jse/flash.c
index a86ac1a..763e8e0 100644
--- a/board/jse/flash.c
+++ b/board/jse/flash.c
@@ -54,19 +54,17 @@
 unsigned long flash_init (void)
 {
 	unsigned long size_b0;
-	unsigned long base_b0;
 
 	/* Init: no FLASHes known */
 	flash_info[0].flash_id = FLASH_UNKNOWN;
 
 	/* Static FLASH Bank configuration here - FIXME XXX */
 
-	size_b0 =
-		flash_get_size ((vu_long *) FLASH_BASE0_PRELIM,
-				&flash_info[0]);
+	size_b0 = flash_get_size ((vu_long *) FLASH_BASE0_PRELIM, &flash_info[0]);
 
 	if (flash_info[0].flash_id == FLASH_UNKNOWN) {
-		printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n", size_b0, size_b0 << 20);
+		printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
+			size_b0, size_b0 << 20);
 	}
 
 	/* Only one bank */
@@ -212,15 +210,10 @@
 
 		if ((i % 5) == 0)
 			printf ("\n   ");
-#if 0				/* test-only */
-		printf (" %08lX%s",
-			info->start[i], info->protect[i] ? " (RO)" : "     "
-#else
 		printf (" %08lX%s%s",
 			info->start[i],
 			erased ? " E" : "  ", info->protect[i] ? "RO " : "   "
-#endif
-			);
+		);
 	}
 	printf ("\n");
 	return;
@@ -248,11 +241,7 @@
 	addr2[ADDR1] = (FLASH_WORD_SIZE) 0x00550055;
 	addr2[ADDR0] = (FLASH_WORD_SIZE) 0x00900090;
 
-#ifdef CONFIG_ADCIOP
-	value = addr2[2];
-#else
 	value = addr2[0];
-#endif
 
 	switch (value) {
 	case (FLASH_WORD_SIZE) AMD_MANUFACT:
@@ -271,12 +260,7 @@
 		return (0);	/* no or unknown flash  */
 	}
 
-#ifdef CONFIG_ADCIOP
-	value = addr2[0];	/* device ID            */
-	/*        printf("\ndev_code=%x\n", value); */
-#else
 	value = addr2[1];	/* device ID            */
-#endif
 
 	switch (value) {
 	case (FLASH_WORD_SIZE) AMD_ID_F040B:
@@ -387,36 +371,19 @@
 	for (i = 0; i < info->sector_count; i++) {
 		/* read sector protection at sector address, (A7 .. A0) = 0x02 */
 		/* D0 = 1 if protected */
-#ifdef CONFIG_ADCIOP
-		addr2 = (volatile FLASH_WORD_SIZE *) (info->start[i]);
-		info->protect[i] = addr2[4] & 1;
-#else
 		addr2 = (volatile FLASH_WORD_SIZE *) (info->start[i]);
 		if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST)
 			info->protect[i] = 0;
 		else
 			info->protect[i] = addr2[2] & 1;
-#endif
 	}
 
 	/*
 	 * Prevent writes to uninitialized FLASH.
 	 */
 	if (info->flash_id != FLASH_UNKNOWN) {
-#if 0				/* test-only */
-#ifdef CONFIG_ADCIOP
-		addr2 = (volatile unsigned char *) info->start[0];
-		addr2[ADDR0] = 0xAA;
-		addr2[ADDR1] = 0x55;
-		addr2[ADDR0] = 0xF0;	/* reset bank */
-#else
-		addr2 = (FLASH_WORD_SIZE *) info->start[0];
-		*addr2 = (FLASH_WORD_SIZE) 0x00F000F0;	/* reset bank */
-#endif
-#else  /* test-only */
 		addr2 = (FLASH_WORD_SIZE *) info->start[0];
 		*addr2 = (FLASH_WORD_SIZE) 0x00F000F0;	/* reset bank */
-#endif /* test-only */
 	}
 
 	return (info->size);
diff --git a/board/stxgp3/stxgp3.c b/board/stxgp3/stxgp3.c
index df48e77..c2eacdd 100644
--- a/board/stxgp3/stxgp3.c
+++ b/board/stxgp3/stxgp3.c
@@ -195,7 +195,6 @@
     }
 };
 
-static	uint64_t	blinky_increment;
 static	uint64_t	next_led_update;
 static	uint		led_bit;
 
diff --git a/common/cmd_ace.c b/common/cmd_ace.c
index 3512a15..4969811 100644
--- a/common/cmd_ace.c
+++ b/common/cmd_ace.c
@@ -53,7 +53,7 @@
       return readw(CFG_SYSTEMACE_BASE+offset);
 }
 
-static unsigned ace_writew(unsigned val, unsigned offset)
+static void ace_writew(unsigned val, unsigned offset)
 {
       writew(val, CFG_SYSTEMACE_BASE+offset);
 }
@@ -119,7 +119,6 @@
 				    unsigned long blkcnt,
 				    unsigned long *buffer)
 {
-      unsigned val;
       int retry;
       unsigned blk_countdown;
       unsigned char*dp = (unsigned char*)buffer;
@@ -218,4 +217,4 @@
 
       return blkcnt;
 }
-#endif
+#endif	/* CONFIG_SYSTEMACE */
