Index: firmware/kernel.c
===================================================================
--- firmware/kernel.c	(revision 14873)
+++ firmware/kernel.c	(working copy)
@@ -753,7 +753,7 @@
     EPITSR1 = 1;            /* Clear the interrupt request */
 }
 #endif
-#endif
+#endif /* CONFIG_CPU == IMX31L */
 
 int tick_add_task(void (*f)(void))
 {
Index: firmware/target/arm/sandisk/ata-c200_e200.c
===================================================================
--- firmware/target/arm/sandisk/ata-c200_e200.c	(revision 14873)
+++ firmware/target/arm/sandisk/ata-c200_e200.c	(working copy)
@@ -153,7 +153,9 @@
 };
 
 /* Shoot for around 75% usage */
+#ifndef BOOTLOADER
 static long sd_stack [(DEFAULT_STACK_SIZE*2 + 0x1c0)/sizeof(long)];
+#endif
 static const char         sd_thread_name[] = "ata/sd";
 static struct mutex       sd_mtx;
 static struct event_queue sd_queue;
@@ -1143,6 +1145,7 @@
         GPIOG_OUTPUT_VAL |= (0x3 << 5);
 
         /* enable card detection port - mask interrupt first */
+#ifndef BOOTLOADER
         GPIOA_INT_EN     &= ~0x80;
 
         GPIOA_OUTPUT_EN  &= ~0x80;
@@ -1167,6 +1170,7 @@
 
         GPIOA_INT_CLR = 0x80;
         GPIOA_INT_EN |= 0x80;
+#endif
 
         spinlock_unlock(&sd_mtx);
     }
Index: firmware/drivers/button.c
===================================================================
--- firmware/drivers/button.c	(revision 14873)
+++ firmware/drivers/button.c	(working copy)
@@ -362,7 +362,9 @@
     
     button_read();
     lastbtn = button_read();
+#ifndef BOOTLOADER
     tick_add_task(button_tick);
+#endif
     reset_poweroff_timer();
 
 #ifdef HAVE_LCD_BITMAP
