diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..406e479123c939a62fba407a98c9fd2e22c2d61e
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "board"]
+	path = board
+	url = git@github.com:RIOT-OS/boards.git
diff --git a/board b/board
new file mode 160000
index 0000000000000000000000000000000000000000..182151f46326e9eb6c0c48bd2ac6438c66302a13
--- /dev/null
+++ b/board
@@ -0,0 +1 @@
+Subproject commit 182151f46326e9eb6c0c48bd2ac6438c66302a13
diff --git a/board/Jamfile b/board/Jamfile
deleted file mode 100644
index ad37fbe5b6bc064be343270f374785389e295b3e..0000000000000000000000000000000000000000
--- a/board/Jamfile
+++ /dev/null
@@ -1,3 +0,0 @@
-SubDir TOP board ;
-
-SubInclude TOP board $(BOARD) ;
diff --git a/board/chronos/Jamfile b/board/chronos/Jamfile
deleted file mode 100644
index 0899e4631bbf9c86c08d1d396b15af90298f2b66..0000000000000000000000000000000000000000
--- a/board/chronos/Jamfile
+++ /dev/null
@@ -1,10 +0,0 @@
-SubDir TOP board chronos ;
-
-HDRS += $(TOP)/board/$(CPU)/include ;
-
-Module board : putchar.c board_init.c ;
-UseModule board ;
-
-SubInclude TOP board $(BOARD) drivers ;
-SubInclude TOP cpu $(CPU) ;
-
diff --git a/board/chronos/Jamrules.chronos b/board/chronos/Jamrules.chronos
deleted file mode 100644
index 4c17a9a9ae3eb95d97e6a392f2acfc17d1c4ab2d..0000000000000000000000000000000000000000
--- a/board/chronos/Jamrules.chronos
+++ /dev/null
@@ -1,14 +0,0 @@
-# ******************************************************************************
-# Copyright 2010, Freie Universitaet Berlin (FUB). All rights reserved.
-# ******************************************************************************
-# $Id$
-
-BOARD = chronos ;
-CPU = cc430 ;
-MCU = cc430x6137 ;
-
-HDRS += [ FPath $(TOP) board chronos drivers include ] ;
-
-FLASHER ?= mspdebug ;
-FLASHFLAGS ?= rf2500 ;
-
diff --git a/board/chronos/board_init.c b/board/chronos/board_init.c
deleted file mode 100644
index 74799abace063124b8223b2c55e83050ec8a990e..0000000000000000000000000000000000000000
--- a/board/chronos/board_init.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include <stdint.h>
-#include <board.h>
-#include <cpu.h>
-#include <irq.h>
-
-void cc430_cpu_init(void) {
-    volatile uint16_t i;
-    volatile unsigned char *ptr;
-
-    /* disable watchdog */
-    WDTCTL = WDTPW + WDTHOLD;
-
-    // ---------------------------------------------------------------------
-    // Enable 32kHz ACLK    
-    P5SEL |= 0x03;                            // Select XIN, XOUT on P5.0 and P5.1
-    UCSCTL6 &= ~XT1OFF;                       // XT1 On, Highest drive strength
-    UCSCTL6 |= XCAP_3;                        // Internal load cap
-
-    UCSCTL3 = SELA__XT1CLK;                   // Select XT1 as FLL reference
-    UCSCTL4 = SELA__XT1CLK | SELS__DCOCLKDIV | SELM__DCOCLKDIV;
-
-    // ---------------------------------------------------------------------
-    // Configure CPU clock for 12MHz
-    _BIS_SR(SCG0);                  // Disable the FLL control loop
-    UCSCTL0 = 0x0000;          // Set lowest possible DCOx, MODx
-    UCSCTL1 = DCORSEL_5;       // Select suitable range
-    UCSCTL2 = FLLD_1 + 0x16E;  // Set DCO Multiplier
-    _BIC_SR(SCG0);                  // Enable the FLL control loop
-
-    // Worst-case settling time for the DCO when the DCO range bits have been
-    // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
-    // UG for optimization.
-    // 32 x 32 x 8 MHz / 32,768 Hz = 250000 = MCLK cycles for DCO to settle
-	for (i = 0xFF; i > 0; i--); // Time for flag to set
-
-    // Loop until XT1 & DCO stabilizes, use do-while to insure that 
-    // body is executed at least once
-    do
-    {
-        UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
-        SFRIFG1 &= ~OFIFG;                      // Clear fault flags
-    } while ((SFRIFG1 & OFIFG));
-
-    // Disable all interrupts
-    __disable_interrupt();
-    // Get write-access to port mapping registers:
-    PMAPPWD = 0x02D52;
-    // Allow reconfiguration during runtime:
-    PMAPCTL = PMAPRECFG;
-
-    // P2.7 = TA0CCR1A or TA1CCR0A output (buzzer output)
-    ptr  = &P2MAP0;
-    *(ptr+7) = PM_TA1CCR0A;
-    P2OUT &= ~BIT7;
-    P2DIR |= BIT7;
-
-    // P1.5 = SPI MISO input
-    ptr  = &P1MAP0;
-    *(ptr+5) = PM_UCA0SOMI;
-    // P1.6 = SPI MOSI output
-    *(ptr+6) = PM_UCA0SIMO;
-    // P1.7 = SPI CLK output
-    *(ptr+7) = PM_UCA0CLK;
-
-    // Disable write-access to port mapping registers:
-    PMAPPWD = 0;
-    // Re-enable all interrupts
-    enableIRQ();
- 
-}
-
-void board_init() {
-    cc430_cpu_init();
-}
diff --git a/board/chronos/drivers/Jamfile b/board/chronos/drivers/Jamfile
deleted file mode 100644
index 71ee1c982c3de085b497fbb4ae91644d9607e869..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/Jamfile
+++ /dev/null
@@ -1,11 +0,0 @@
-SubDir TOP board chronos drivers ;
-
-HDRS += $(TOP)/board/$(CPU)/drivers/include ;
-
-Module board_display : display.c display1.c ;
-Module board_cc110x : cc430-cc110x.c : cc110x_cc430 ;
-Module board_buzzer : buzzer.c : hwtimer ;
-Module battery : battery.c : adc hwtimer ;
-Module vti_ps_twi : vti_ps_twi.c : hwtimer ;
-
-Module display_putchar : display_putchar.c : board_display ;
diff --git a/board/chronos/drivers/battery.c b/board/chronos/drivers/battery.c
deleted file mode 100644
index bae37d329540f3dd69ea9b614ec5f6319b5d699a..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/battery.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <stdint.h>
-#include <cc430x613x.h>
-#include <cc430-adc.h>
-
-uint32_t battery_get_voltage(void) {
-    uint32_t voltage;
-    voltage = adc12_single_conversion(REFVSEL_1, ADC12SHT0_10, ADC12INCH_11);
-
-    /* Ideally we have A11=0->AVCC=0V ... A11=4095(2^12-1)->AVCC=4V
-     * --> (A11/4095)*4V=AVCC --> AVCC=(A11*4)/4095 */
-    voltage = (voltage * 2 * 2 * 1000) / 4095;  
-    return voltage;
-}
diff --git a/board/chronos/drivers/buzzer.c b/board/chronos/drivers/buzzer.c
deleted file mode 100644
index 5e0bc2ca34f38e48a310bd5dba5af56a634ce7c6..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/buzzer.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <stdint.h>
-#include <buzzer.h>
-#include <hwtimer.h>
-#include <cc430x613x.h>
-
-void buzzer_beep(uint8_t pitch, uint16_t duration) {
-    // Reset TA1R, set up mode, TA1 runs from 32768Hz ACLK 
-    TA1CTL = TACLR | MC_1 | TASSEL__ACLK;
-
-    // Set PWM frequency 
-    TA1CCR0 = pitch;
-
-    // Enable IRQ, set output mode "toggle"
-    TA1CCTL0 = OUTMOD_4;
-
-    // Allow buzzer PWM output on P2.7
-    P2SEL |= BIT7;
-
-    hwtimer_wait(duration);
-
-    // Stop PWM timer 
-    TA1CTL &= ~(BIT4 | BIT5);
-
-    // Reset and disable buzzer PWM output
-    P2OUT &= ~BIT7;
-    P2SEL &= ~BIT7;
-    TA1CCTL0 &= ~CCIE; 
-}
diff --git a/board/chronos/drivers/cc430-cc110x.c b/board/chronos/drivers/cc430-cc110x.c
deleted file mode 100644
index 78380c4ca4df6cb0faadadfc3096b5b23e98f848..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/cc430-cc110x.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <stdint.h>
-
-#include <cpu.h>
-#include <irq.h>
-#include <cc110x_ng.h>
-#include <cc110x-arch.h>
-
-//#include <cc430_.h>
-#include <cc430x613x.h>
-//#include <msp430/rf1a.h>
-
-#define CC1100_GDO0     (RF1AIN & BIT0) 
-#define CC1100_GDO1     (RF1AIN & BIT1)
-#define CC1100_GDO2     (RF1AIN & BIT2)
-
-int cc110x_get_gdo0(void) {
-	return 	CC1100_GDO0;
-}
-
-int cc110x_get_gdo1(void) {
-	return 	CC1100_GDO1;
-}
-
-int cc110x_get_gdo2(void) {
-	return 	CC1100_GDO2;
-}
-
-void cc110x_before_send(void)
-{
-	// Disable GDO2 interrupt before sending packet
-	cc110x_gdo2_disable();
-}
-
-void cc110x_after_send(void)
-{
-	// Enable GDO2 interrupt after sending packet
-	cc110x_gdo2_enable();
-}
-
-void cc110x_gdo0_enable(void) {
-    RF1AIFG &= ~BIT0;
-    RF1AIE  |= BIT0;
-}
-
-void cc110x_gdo0_disable(void) {
-    RF1AIE  &= ~BIT0;
-    RF1AIFG &= ~BIT0;
-}
-
-void cc110x_gdo2_disable(void) {
-    RF1AIFG &= ~BIT2;                         // Clear a pending interrupt
-    RF1AIE  &= ~BIT2;                          // Disable the interrupt 
-}
-
-void cc110x_gdo2_enable(void) {
-    RF1AIFG &= ~BIT2;                         // Clear a pending interrupt
-    RF1AIE  |= BIT2;                          // Enable the interrupt 
-}
-
-void cc110x_init_interrupts(void) {
-	uint8_t state = disableIRQ(); /* Disable all interrupts */
-    cc110x_gdo2_enable();
-    cc110x_gdo0_disable();
-	restoreIRQ(state);  /* Enable all interrupts */
-}
-
-interrupt (CC1101_VECTOR) __attribute__ ((naked)) cc110x_isr(void){
-    __enter_isr();
- 	/* Check IFG */
-	if (RF1AIV == RF1AIV_RFIFG2) {
-        while (RF1AIN & BIT2);
-        /* discard all further interrupts */
-        RF1AIV = 0;
-		cc110x_gdo2_irq();
-    }
-	if (RF1AIV == RF1AIV_RFIFG0) {
-        cc110x_gdo0_irq();
-        RF1AIE &= ~BIT0;
-	}
-	__exit_isr();
-}
diff --git a/board/chronos/drivers/display.c b/board/chronos/drivers/display.c
deleted file mode 100644
index 063ade5855f952d747f72950976b1dce7293733f..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/display.c
+++ /dev/null
@@ -1,383 +0,0 @@
-/* *************************************************************************************************
- *
- *	Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ 
- *	 
- *	 
- *	  Redistribution and use in source and binary forms, with or without 
- *	  modification, are permitted provided that the following conditions 
- *	  are met:
- *	
- *	    Redistributions of source code must retain the above copyright 
- *	    notice, this list of conditions and the following disclaimer.
- *	 
- *	    Redistributions in binary form must reproduce the above copyright
- *	    notice, this list of conditions and the following disclaimer in the 
- *	    documentation and/or other materials provided with the   
- *	    distribution.
- *	 
- *	    Neither the name of Texas Instruments Incorporated nor the names of
- *	    its contributors may be used to endorse or promote products derived
- *	    from this software without specific prior written permission.
- *	
- *	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- *	  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- *	  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *	  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
- *	  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- *	  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
- *	  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *	  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *	  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- *	  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- *	  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * *************************************************************************************************
- * Basic display functions.
- * ************************************************************************************************/
-
-/* *************************************************************************************************
- * Include section
- */
-
-/* system */
-#include <string.h>
-
-/* driver */
-#include <cc430x613x.h>
-#include <display.h>
-
-
-/**************************************************************************************************
- * Prototypes section */
-void write_lcd_mem(uint8_t *lcdmem, uint8_t bits, uint8_t bitmask, uint8_t state);
-void clear_line(uint8_t line);
-void display_symbol(uint8_t symbol, uint8_t mode);
-
-/* *************************************************************************************************
- * Global Variable section */
-
-/* Display flags */
-volatile s_display_flags_t display;
-
-/* Global return string for itoa function */
-char itoa_str[8];
-
-void lcd_init(void) {
-	/* Clear entire display memory */
-	LCDBMEMCTL |= LCDCLRBM + LCDCLRM;
-
-	/* LCD_FREQ = ACLK/16/8 = 256Hz  */
-	/* Frame frequency = 256Hz/4 = 64Hz, LCD mux 4, LCD on */
-	LCDBCTL0 = (LCDDIV0 + LCDDIV1 + LCDDIV2 + LCDDIV3) | (LCDPRE0 + LCDPRE1) | LCD4MUX | LCDON;
-
-	/* LCB_BLK_FREQ = ACLK/8/4096 = 1Hz */
-	LCDBBLKCTL = LCDBLKPRE0 | LCDBLKPRE1 | LCDBLKDIV0 | LCDBLKDIV1 | LCDBLKDIV2 | LCDBLKMOD0; 
-
-	/* I/O to COM outputs */
-	P5SEL |= (BIT5 | BIT6 | BIT7);
-	P5DIR |= (BIT5 | BIT6 | BIT7);
-  
-	/* Activate LCD output */
-	LCDBPCTL0 = 0xFFFF;                         /* Select LCD segments S0-S15 */
-	LCDBPCTL1 = 0x00FF;                         /* Select LCD segments S16-S22 */
-
-#ifdef USE_LCD_CHARGE_PUMP
-	/* Charge pump voltage generated internally, internal bias (V2-V4) generation */
-	LCDBVCTL = LCDCPEN | VLCD_2_72;
-#endif
-}
-
-void clear_display_all(void) {
-	// Clear generic content
-	clear_line(LINE1);
-	clear_line(LINE2);
-}
-
-void clear_display(void) {
-	clear_line(LINE1);
-	clear_line(LINE2);
-}
-
-void clear_line(uint8_t line) {
-	display_chars(switch_seg(line, LCD_SEG_L1_3_0, LCD_SEG_L2_5_0), NULL, SEG_OFF);
-	if (line == LINE1) {
-		display_symbol(LCD_SEG_L1_DP1, SEG_OFF);
-		display_symbol(LCD_SEG_L1_DP0, SEG_OFF);
-		display_symbol(LCD_SEG_L1_COL, SEG_OFF);
-	}
-    /* line == LINE2 */
-	else  {
-		display_symbol(LCD_SEG_L2_DP, SEG_OFF);
-		display_symbol(LCD_SEG_L2_COL1, SEG_OFF);
-		display_symbol(LCD_SEG_L2_COL0, SEG_OFF);
-	}
-}
-
-void write_lcd_mem(uint8_t *lcdmem, uint8_t bits, uint8_t bitmask, uint8_t state) {
-	if (state == SEG_ON) {
-		/* Clear segments before writing */
-		*lcdmem = (uint8_t)(*lcdmem & ~bitmask);
-	
-		/* Set visible segments */
-		*lcdmem = (uint8_t)(*lcdmem | bits);
-	}
-	else if (state == SEG_OFF) {
-		/* Clear segments */
-		*lcdmem = (uint8_t)(*lcdmem & ~bitmask);
-	}
-	else if (state == SEG_ON_BLINK_ON) {
-		/* Clear visible / blink segments before writing */
-		*lcdmem 		= (uint8_t)(*lcdmem & ~bitmask);
-		*(lcdmem+0x20) 	= (uint8_t)(*(lcdmem+0x20) & ~bitmask);
-	
-		/* Set visible / blink segments */
-		*lcdmem 		= (uint8_t)(*lcdmem | bits);
-		*(lcdmem+0x20) 	= (uint8_t)(*(lcdmem+0x20) | bits);
-	}
-	else if (state == SEG_ON_BLINK_OFF) {
-		/* Clear visible segments before writing */
-		*lcdmem = (uint8_t)(*lcdmem & ~bitmask);
-	
-		/* Set visible segments */
-		*lcdmem = (uint8_t)(*lcdmem | bits);
-
-		/* Clear blink segments */
-		*(lcdmem+0x20) 	= (uint8_t)(*(lcdmem+0x20) & ~bitmask);
-	}
-	else if (state == SEG_OFF_BLINK_OFF) {
-		/* Clear segments */
-		*lcdmem = (uint8_t)(*lcdmem & ~bitmask);
-
-		/* Clear blink segments */
-		*(lcdmem+0x20) 	= (uint8_t)(*(lcdmem+0x20) & ~bitmask);
-	}
-}
-
-char *itoa(uint32_t n, uint8_t digits, uint8_t blanks) {
-	uint8_t i;
-	uint8_t digits1 = digits;
-	
-	/* Preset result string */
-	memcpy(itoa_str, "0000000", 7);
-
-	/* Return empty string if number of digits is invalid (valid range for digits: 1-7) */
-	if ((digits == 0) || (digits > 7))  {
-        return (itoa_str);
-    }
-	
-	/* Numbers 0 .. 180 can be copied from itoa_conversion_table without conversion */
-	if (n <= 180) {
-		if (digits >= 3) {
-			memcpy(itoa_str+(digits-3), itoa_conversion_table[n], 3);
-		}
-        /* digits == 1 || 2   */
-        else {
-			memcpy(itoa_str, itoa_conversion_table[n]+(3-digits), digits);
-		}
-	}
-    /* For n > 180 need to calculate string content */
-	else {
-		/* Calculate digits from least to most significant number */
-		do {     
-			itoa_str[digits-1] = n % 10 + '0';   	
-			n /= 10;
-		} while (--digits > 0);  		
-	}
-
-	/* Remove specified number of leading '0', always keep last one */
-	i = 0;	
-	while ((itoa_str[i] == '0') && (i < digits1-1))	{
-		if (blanks > 0) {
-			/* Convert only specified number of leading '0' */
-			itoa_str[i]=' ';
-			blanks--;
-		}
-		i++;
-	}
-	return (itoa_str);	
-} 
-
-void display_value1(uint8_t segments, uint32_t value, uint8_t digits, uint8_t blanks, uint8_t disp_mode) {
-	char *str;
-
-	str = itoa(value, digits, blanks);
-
-	/* Display string in blink mode */
-	display_chars(segments, str, disp_mode);
-}
-
-void display_symbol(uint8_t symbol, uint8_t mode) {
-	uint8_t *lcdmem;
-	uint8_t bits;
-	uint8_t bitmask;
-	
-	if (symbol <= LCD_SEG_L2_DP) {
-		/* Get LCD memory address for symbol from table */
-		lcdmem 	= (uint8_t*)segments_lcdmem[symbol];
-	
-		/* Get bits for symbol from table */
-		bits 	= segments_bitmask[symbol];
-		
-		/* Bitmask for symbols equals bits */
-		bitmask = bits;
-	
-		/* Write LCD memory 	 */
-		write_lcd_mem(lcdmem, bits, bitmask, mode);
-	}
-}
-
-void display_char(uint8_t segment, char chr, uint8_t mode) {
-	uint8_t *lcdmem;			/* Pointer to LCD memory */
-	uint8_t bitmask;			/* Bitmask for character */
-	uint8_t bits, bits1;		/* Bits to write */
-	
-	/* Write to single 7-segment character */
-	if ((segment >= LCD_SEG_L1_3) && (segment <= LCD_SEG_L2_DP)) {
-		/* Get LCD memory address for segment from table */
-		lcdmem = (uint8_t*)segments_lcdmem[segment];
-
-		/* Get bitmask for character from table */
-		bitmask = segments_bitmask[segment];
-		
-		/* Get bits from font set */
-		if ((chr >= 0x30) && (chr <= 0x5A)) {
-			/* Use font set */
-			bits = lcd_font[chr-0x30];
-		}
-		else if (chr == 0x2D) {
-			/* '-' not in font set */
-			bits = BIT1;
-		}
-		else {
-			/* Other characters map to ' ' (blank) */
-			bits = 0;
-		}
-
-		/* When addressing LINE2 7-segment characters need to swap high- and low-nibble, */
-		/* because LCD COM/SEG assignment is mirrored against LINE1 */
-		if (segment >= LCD_SEG_L2_5) {
-			bits1 = ((bits << 4) & 0xF0) | ((bits >> 4) & 0x0F);
-			bits = bits1;
-
-			/* When addressing LCD_SEG_L2_5, need to convert ASCII '1' and 'L' to 1 bit, */
-			/* because LCD COM/SEG assignment is special for this incomplete character */
-			if (segment == LCD_SEG_L2_5) {
-				if ((chr == '1') || (chr == 'L')) bits = BIT7;
-			}
-		}
-		
-		/* Physically write to LCD memory		 */
-		write_lcd_mem(lcdmem, bits, bitmask, mode);
-	}
-}	
-
-void display_chars(uint8_t segments, char *str, uint8_t mode) {
-	uint8_t i;
-	uint8_t length = 0;			/* Write length */
-	uint8_t char_start = 0;			/* Starting point for consecutive write */
-	
-	switch (segments) {
-		/* LINE1 */
-		case LCD_SEG_L1_3_0:	
-            length=4; 
-            char_start=LCD_SEG_L1_3; 
-            break;
-		case LCD_SEG_L1_2_0:	
-            length=3; 
-            char_start=LCD_SEG_L1_2; 
-            break;
-		case LCD_SEG_L1_1_0: 	
-            length=2; 
-            char_start=LCD_SEG_L1_1; 
-            break;
-		case LCD_SEG_L1_3_1: 	
-            length=3; 
-            char_start=LCD_SEG_L1_3; 
-            break;
-		case LCD_SEG_L1_3_2: 	
-            length=2; 
-            char_start=LCD_SEG_L1_3; 
-            break;
-
-		/* LINE2 */
-		case LCD_SEG_L2_5_0:	
-            length=6; 
-            char_start=LCD_SEG_L2_5; 
-            break;
-		case LCD_SEG_L2_4_0:	
-            length=5; 
-            char_start=LCD_SEG_L2_4; 
-            break;
-		case LCD_SEG_L2_3_0:	
-            length=4; 
-            char_start=LCD_SEG_L2_3; 
-            break;
-		case LCD_SEG_L2_2_0:	
-            length=3; 
-            char_start=LCD_SEG_L2_2; 
-            break;
-		case LCD_SEG_L2_1_0: 	
-            length=2; 
-            char_start=LCD_SEG_L2_1; 
-            break;
-		case LCD_SEG_L2_5_4:	
-            length=2; 
-            char_start=LCD_SEG_L2_5; 
-            break;
-		case LCD_SEG_L2_5_2:	
-            length=4; 
-            char_start=LCD_SEG_L2_5; 
-            break;
-		case LCD_SEG_L2_3_2:	
-            length=2; 
-            char_start=LCD_SEG_L2_3; 
-            break;
-		case LCD_SEG_L2_4_2: 	
-            length=3; 
-            char_start=LCD_SEG_L2_4; 
-            break;
-	}
-	
-	/* Write to consecutive digits */
-	for(i=0; i<length; i++) {
-		/* Use single character routine to write display memory */
-		display_char(char_start+i, *(str+i), mode);
-	}
-}
-
-uint8_t switch_seg(uint8_t line, uint8_t index1, uint8_t index2) {
-	if (line == LINE1) {
-		return index1;
-	}
-    /* line == LINE2 */
-	else {
-		return index2;
-	}
-}
-
-void start_blink(void) {
-	LCDBBLKCTL |= LCDBLKMOD0;
-}
-
-void stop_blink(void) {
-	LCDBBLKCTL &= ~LCDBLKMOD0;
-}
-
-void clear_blink_mem(void) {
-	LCDBMEMCTL |= LCDCLRBM;	
-}
-
-void set_blink_rate(uint8_t bits) {
-	LCDBBLKCTL &= ~(BIT7 | BIT6 | BIT5);	
-	LCDBBLKCTL |= bits;	
-}
-
-void display_all_off(void) {
-	uint8_t *lcdptr = (uint8_t*)0x0A20;
-	uint8_t i;
-	
-	for (i=1; i<=12; i++) {
-		*lcdptr = 0x00; 
-		lcdptr++;
-	}
-}
diff --git a/board/chronos/drivers/display1.c b/board/chronos/drivers/display1.c
deleted file mode 100644
index 40795d54bbdee695139e8018ebc3a478f34a8826..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/display1.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* *************************************************************************************************
- *
- *	Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ 
- *	 
- *	 
- *	  Redistribution and use in source and binary forms, with or without 
- *	  modification, are permitted provided that the following conditions 
- *	  are met:
- *	
- *	    Redistributions of source code must retain the above copyright 
- *	    notice, this list of conditions and the following disclaimer.
- *	 
- *	    Redistributions in binary form must reproduce the above copyright
- *	    notice, this list of conditions and the following disclaimer in the 
- *	    documentation and/or other materials provided with the   
- *	    distribution.
- *	 
- *	    Neither the name of Texas Instruments Incorporated nor the names of
- *	    its contributors may be used to endorse or promote products derived
- *	    from this software without specific prior written permission.
- *	
- *	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- *	  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- *	  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *	  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
- *	  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- *	  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
- *	  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *	  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *	  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- *	  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- *	  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ************************************************************************************************/
-
-/* Basic display functions. */
-/* ************************************************************************************************* */
-
-/* ************************************************************************************************* */
-/* Include section */
-#include <cc430x613x.h>
-#include <display.h>
-
-/* ************************************************************************************************* */
-/* Global Variable section */
-
-/* Table with memory bit assignment for digits "0" to "9" and characters "A" to "Z" */
-/*   A */
-/* F   B */
-/*   G */
-/* E   C */
-/*   D */
-const uint8_t lcd_font[] = {
-  SEG_A+SEG_B+SEG_C+SEG_D+SEG_E+SEG_F,           /* Displays "0" */
-        SEG_B+SEG_C,                             /* Displays "1" */
-  SEG_A+SEG_B+      SEG_D+SEG_E+      SEG_G,     /* Displays "2" */
-  SEG_A+SEG_B+SEG_C+SEG_D+            SEG_G,     /* Displays "3" */
-        SEG_B+SEG_C+            SEG_F+SEG_G,     /* Displays "4" */
-  SEG_A+      SEG_C+SEG_D+      SEG_F+SEG_G,     /* Displays "5" */
-  SEG_A+      SEG_C+SEG_D+SEG_E+SEG_F+SEG_G,     /* Displays "6" */
-  SEG_A+SEG_B+SEG_C,                             /* Displays "7" */
-  SEG_A+SEG_B+SEG_C+SEG_D+SEG_E+SEG_F+SEG_G,     /* Displays "8" */
-  SEG_A+SEG_B+SEG_C+SEG_D+      SEG_F+SEG_G,     /* Displays "9" */
-  0                                        ,     /* Displays " " (:) */
-  0                                        ,     /* Displays " " (;) */
-  SEG_A+                        SEG_F+SEG_G,     /* Displays "<" as high c */
-                    SEG_D+            SEG_G,     /* Displays "=" */
-  0                                        ,     /* Displays " " (>) */
-  SEG_A+SEG_B+            SEG_E+      SEG_G,     /* Displays "?" */
-  0                                        ,     /* Displays " " (@) */
-  SEG_A+SEG_B+SEG_C+      SEG_E+SEG_F+SEG_G,     /* Displays "A" */
-              SEG_C+SEG_D+SEG_E+SEG_F+SEG_G,     /* Displays "b" */
-                    SEG_D+SEG_E+      SEG_G,     /* Displays "c" */
-        SEG_B+SEG_C+SEG_D+SEG_E+      SEG_G,     /* Displays "d" */
-  SEG_A+           +SEG_D+SEG_E+SEG_F+SEG_G,     /* Displays "E" */
-  SEG_A+                  SEG_E+SEG_F+SEG_G,     /* Displays "f" */
-  SEG_A+SEG_B+SEG_C+SEG_D+      SEG_F+SEG_G,     /* Displays "g" same as 9 */
-              SEG_C+      SEG_E+SEG_F+SEG_G,     /* Displays "h" */
-                          SEG_E            ,     /* Displays "i" */
-  SEG_A+SEG_B+SEG_C+SEG_D                  ,     /* Displays "J" */
-  		     		SEG_D+      SEG_F+SEG_G,     /* Displays "k" */
-                    SEG_D+SEG_E+SEG_F      ,     /* Displays "L" */
-  SEG_A+SEG_B+SEG_C+      SEG_E+SEG_F      ,     /* Displays "M" */
-              SEG_C+      SEG_E+      SEG_G,     /* Displays "n" */
-              SEG_C+SEG_D+SEG_E+      SEG_G,     /* Displays "o" */
-  SEG_A+SEG_B+            SEG_E+SEG_F+SEG_G,     /* Displays "P" */
-  SEG_A+SEG_B+SEG_C+            SEG_F+SEG_G,     /* Displays "q" */
-                          SEG_E+      SEG_G,     /* Displays "r" */
-  SEG_A+      SEG_C+SEG_D+      SEG_F+SEG_G,     /* Displays "S" same as 5 */
-                    SEG_D+SEG_E+SEG_F+SEG_G,     /* Displays "t" */
-              SEG_C+SEG_D+SEG_E            ,     /* Displays "u" */
-              SEG_C+SEG_D+SEG_E            ,     /* Displays "v" same as u */
-        SEG_B+SEG_C+SEG_D+SEG_E+SEG_F+SEG_G,     /* Displays "W" */
-        SEG_B+SEG_C+     +SEG_E+SEG_F+SEG_G,     /* Displays "X" as H */
-        SEG_B+SEG_C+SEG_D+      SEG_F+SEG_G,     /* Displays "Y" */
-  SEG_A+SEG_B+      SEG_D+SEG_E+      SEG_G,     /* Displays "Z" same as 2 */
-};
-
-/* Table with memory address for each display element  */
-const uint8_t * segments_lcdmem[] = {
-	LCD_SYMB_AM_MEM,
-	LCD_SYMB_PM_MEM,
-	LCD_SYMB_ARROW_UP_MEM,
-	LCD_SYMB_ARROW_DOWN_MEM,
-	LCD_SYMB_PERCENT_MEM,
-	LCD_SYMB_TOTAL_MEM,
-	LCD_SYMB_AVERAGE_MEM,
-	LCD_SYMB_MAX_MEM,
-	LCD_SYMB_BATTERY_MEM,
-	LCD_UNIT_L1_FT_MEM,
-	LCD_UNIT_L1_K_MEM,
-	LCD_UNIT_L1_M_MEM,
-	LCD_UNIT_L1_I_MEM,
-	LCD_UNIT_L1_PER_S_MEM,
-	LCD_UNIT_L1_PER_H_MEM,
-	LCD_UNIT_L1_DEGREE_MEM,
-	LCD_UNIT_L2_KCAL_MEM,
-	LCD_UNIT_L2_KM_MEM,
-	LCD_UNIT_L2_MI_MEM,
-	LCD_ICON_HEART_MEM,
-	LCD_ICON_STOPWATCH_MEM,
-	LCD_ICON_RECORD_MEM,
-	LCD_ICON_ALARM_MEM,
-	LCD_ICON_BEEPER1_MEM,
-	LCD_ICON_BEEPER2_MEM,
-	LCD_ICON_BEEPER3_MEM,
-	LCD_SEG_L1_3_MEM,
-	LCD_SEG_L1_2_MEM,
-	LCD_SEG_L1_1_MEM,
-	LCD_SEG_L1_0_MEM,
-	LCD_SEG_L1_COL_MEM,
-	LCD_SEG_L1_DP1_MEM,
-	LCD_SEG_L1_DP0_MEM,
-	LCD_SEG_L2_5_MEM,
-	LCD_SEG_L2_4_MEM,
-	LCD_SEG_L2_3_MEM,
-	LCD_SEG_L2_2_MEM,
-	LCD_SEG_L2_1_MEM,
-	LCD_SEG_L2_0_MEM,
-	LCD_SEG_L2_COL1_MEM,
-	LCD_SEG_L2_COL0_MEM,
-	LCD_SEG_L2_DP_MEM,
-};
-
-/* Table with bit mask for each display element  */
-const uint8_t segments_bitmask[] = {
-	LCD_SYMB_AM_MASK,
-	LCD_SYMB_PM_MASK,
-	LCD_SYMB_ARROW_UP_MASK,
-	LCD_SYMB_ARROW_DOWN_MASK,
-	LCD_SYMB_PERCENT_MASK,
-	LCD_SYMB_TOTAL_MASK,
-	LCD_SYMB_AVERAGE_MASK,
-	LCD_SYMB_MAX_MASK,
-	LCD_SYMB_BATTERY_MASK,
-	LCD_UNIT_L1_FT_MASK,
-	LCD_UNIT_L1_K_MASK,
-	LCD_UNIT_L1_M_MASK,
-	LCD_UNIT_L1_I_MASK,
-	LCD_UNIT_L1_PER_S_MASK,
-	LCD_UNIT_L1_PER_H_MASK,
-	LCD_UNIT_L1_DEGREE_MASK,
-	LCD_UNIT_L2_KCAL_MASK,
-	LCD_UNIT_L2_KM_MASK,
-	LCD_UNIT_L2_MI_MASK,
-	LCD_ICON_HEART_MASK,
-	LCD_ICON_STOPWATCH_MASK,
-	LCD_ICON_RECORD_MASK,
-	LCD_ICON_ALARM_MASK,
-	LCD_ICON_BEEPER1_MASK,
-	LCD_ICON_BEEPER2_MASK,
-	LCD_ICON_BEEPER3_MASK,
-	LCD_SEG_L1_3_MASK,
-	LCD_SEG_L1_2_MASK,
-	LCD_SEG_L1_1_MASK,
-	LCD_SEG_L1_0_MASK,
-	LCD_SEG_L1_COL_MASK,
-	LCD_SEG_L1_DP1_MASK,
-	LCD_SEG_L1_DP0_MASK,
-	LCD_SEG_L2_5_MASK,
-	LCD_SEG_L2_4_MASK,
-	LCD_SEG_L2_3_MASK,
-	LCD_SEG_L2_2_MASK,
-	LCD_SEG_L2_1_MASK,
-	LCD_SEG_L2_0_MASK,
-	LCD_SEG_L2_COL1_MASK,
-	LCD_SEG_L2_COL0_MASK,
-	LCD_SEG_L2_DP_MASK,
-};
-
-/* Quick integer to array conversion table for most common integer values 
- * discarding this would save aprox. 600 bytes codespace but increase cpu time
- * for displaying values */
-const uint8_t itoa_conversion_table[][3] = {
-	"000", "001", "002", "003", "004", "005", "006", "007", "008", "009", "010", "011", "012", "013", "014", "015",
-	"016", "017", "018", "019", "020", "021", "022", "023", "024", "025", "026", "027", "028", "029", "030", "031",
-	"032", "033", "034", "035", "036", "037", "038", "039", "040", "041", "042", "043", "044", "045", "046", "047",
-	"048", "049", "050", "051", "052", "053", "054", "055", "056", "057", "058", "059", "060", "061", "062", "063",
-	"064", "065", "066", "067", "068", "069", "070", "071", "072", "073", "074", "075", "076", "077", "078", "079",
-	"080", "081", "082", "083", "084", "085", "086", "087", "088", "089", "090", "091", "092", "093", "094", "095",
-	"096", "097", "098", "099", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111",
-	"112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127",
-	"128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143",
-	"144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159",
-	"160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175",
-	"176", "177", "178", "179", "180",
-};
diff --git a/board/chronos/drivers/display_putchar.c b/board/chronos/drivers/display_putchar.c
deleted file mode 100644
index 2f1d9468aff27c0a57e00378bdecbc0477f7eb0a..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/display_putchar.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <stdio.h>
-#include <display.h>
-#include <string.h>
-
-extern int toupper(int c);
-extern void (*_putchar)(int c);
-
-static char display_buf[11];
-
-void putchar_to_display();
-
-void init_display_putchar() {
-  memset(display_buf, '\0', 11);
-  _putchar = putchar_to_display;
-}
-
-void putchar_to_display(int c) {
-    if (c == '\n') {
-        display_buf[4] = 1;
-        return;
-    }
-
-    if (display_buf[4]) {
-        memset(display_buf, '\0', 11);
-    } else {
-        display_buf[0] = display_buf[1];
-        display_buf[1] = display_buf[2];
-        display_buf[2] = display_buf[3];
-        display_buf[3] = display_buf[5];
-        display_buf[5] = display_buf[6];
-        display_buf[6] = display_buf[7];
-        display_buf[7] = display_buf[8];
-        display_buf[8] = display_buf[9];
-    }
-
-    display_buf[9] = toupper(c);
-
-    clear_display_all();
-
-    display_chars(LCD_SEG_L1_3_0, display_buf, SEG_ON);
-    display_chars(LCD_SEG_L2_5_0, display_buf+4, SEG_ON);
-}
diff --git a/board/chronos/drivers/include/battery.h b/board/chronos/drivers/include/battery.h
deleted file mode 100644
index c6381b721bd198c86f0788b69b72fc70946bb7f3..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/include/battery.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef BATTERY_H
-#define BATTERY_H 
-
-uint32_t battery_get_voltage(void);
-
-#endif /* BATTERY_H */
diff --git a/board/chronos/drivers/include/buzzer.h b/board/chronos/drivers/include/buzzer.h
deleted file mode 100644
index 1786b0c513fb889276c2aa8215ebb2f7b7ce4c37..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/include/buzzer.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef BUZZER_H
-#define BUZZER_H 
-
-void buzzer_beep(uint8_t pitch, uint16_t duration);
-
-#endif /* BUZZER_H */
diff --git a/board/chronos/drivers/include/display.h b/board/chronos/drivers/include/display.h
deleted file mode 100644
index 3b7c2e131fc175da1fbde51be1a08506ca64f609..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/include/display.h
+++ /dev/null
@@ -1,458 +0,0 @@
-/* *************************************************************************************************
- *
- *	Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ 
- *	 
- *	 
- *	  Redistribution and use in source and binary forms, with or without 
- *	  modification, are permitted provided that the following conditions 
- *	  are met:
- *	
- *	    Redistributions of source code must retain the above copyright 
- *	    notice, this list of conditions and the following disclaimer.
- *	 
- *	    Redistributions in binary form must reproduce the above copyright
- *	    notice, this list of conditions and the following disclaimer in the 
- *	    documentation and/or other materials provided with the   
- *	    distribution.
- *	 
- *	    Neither the name of Texas Instruments Incorporated nor the names of
- *	    its contributors may be used to endorse or promote products derived
- *	    from this software without specific prior written permission.
- *	
- *	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- *	  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- *	  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *	  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
- *	  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- *	  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
- *	  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *	  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *	  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- *	  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- *	  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * *************************************************************************************************
- * Basic display functions.
- * ************************************************************************************************/
-
-#ifndef __DISPLAY_H
-#define __DISPLAY_H
-
-#define CLOCK_24HR              (0)
-#define CLOCK_AM_PM             (1)
-#define CLOCK_DISPLAY_SELECT    (2)
-
-
-/* *************************************************************************************************
- * Global Variable section */
-
-/* Set of display flags */
-typedef union {
-  struct {
-  	/* Line1 + Line2 + Icons*/
-    uint16_t full_update      		: 1;    // 1 = Redraw all content
-    uint16_t partial_update      	: 1;    // 1 = Update changes
-  	
-  	// Line only
-    uint16_t line1_full_update     	: 1;    // 1 = Redraw Line1 content
-    uint16_t line2_full_update     	: 1;    // 1 = Redraw Line2 content
-
-	// Logic module data update flags
-    uint16_t update_time      		: 1;    // 1 = Time was updated 
-    uint16_t update_stopwatch     	: 1;    // 1 = Stopwatch was updated
-    uint16_t update_temperature   	: 1;    // 1 = Temperature was updated
-    uint16_t update_battery_voltage 	: 1;    // 1 = Battery voltage was updated
-    uint16_t update_date      		: 1;    // 1 = Date was updated
-    uint16_t update_alarm      		: 1;    // 1 = Alarm time was updated
-    uint16_t update_acceleration		: 1; 	// 1 = Acceleration data was updated
-  } flag;
-  uint16_t all_flags;            // Shortcut to all display flags (for reset)
-} s_display_flags_t;
-
-extern volatile s_display_flags_t display;
-
-// Constants defined in library
-extern const uint8_t lcd_font[];
-extern const uint8_t *segments_lcdmem[];
-extern const uint8_t segments_bitmask[];
-extern const uint8_t itoa_conversion_table[][3];
-
-// *************************************************************************************************
-// Defines section
-
-// Display function modes
-#define DISPLAY_LINE_UPDATE_FULL		(BIT0)
-#define DISPLAY_LINE_UPDATE_PARTIAL		(BIT1)
-#define DISPLAY_LINE_CLEAR				(BIT2)
-
-// Definitions for line view style
-#define DISPLAY_DEFAULT_VIEW			(0u)
-#define DISPLAY_ALTERNATIVE_VIEW		(1u)
-#define DISPLAY_ALTERNATIVE2_VIEW		(2u)
- 
-// Definitions for line access
-#define LINE1							(1u)
-#define LINE2							(2u)
-
-// LCD display modes
-#define SEG_OFF					(0u)
-#define	SEG_ON					(1u)
-#define SEG_ON_BLINK_ON			(2u)
-#define SEG_ON_BLINK_OFF		(3u)
-#define SEG_OFF_BLINK_OFF		(4u)
-
-// 7-segment character bit assignments
-#define SEG_A                	(BIT4)
-#define SEG_B                	(BIT5)
-#define SEG_C                	(BIT6)
-#define SEG_D                	(BIT7)
-#define SEG_E                	(BIT2)
-#define SEG_F                	(BIT0)
-#define SEG_G                	(BIT1)
-
-/* ------------------------------------------
- * LCD symbols for easier access
- *
- * xxx_SEG_xxx 		= Seven-segment character (sequence 5-4-3-2-1-0)
- * xxx_SYMB_xxx 	= Display symbol, e.g. "AM" for ante meridiem 
- * xxx_UNIT_xxx 	= Display unit, e.g. "km/h" for kilometers per hour
- * xxx_ICON_xxx 	= Display icon, e.g. heart to indicate reception of heart rate data
- * xxx_L1_xxx 		= Item is part of Line1 information 
- * xxx_L2_xxx 		= Item is part of Line2 information
- */
-
-//* Symbols for Line1 */
-#define LCD_SYMB_AM					0
-#define LCD_SYMB_PM					1
-#define LCD_SYMB_ARROW_UP			2
-#define LCD_SYMB_ARROW_DOWN			3
-#define LCD_SYMB_PERCENT			4
-
-/* Symbols for Line2 */
-#define LCD_SYMB_TOTAL				5
-#define LCD_SYMB_AVERAGE			6
-#define LCD_SYMB_MAX				7
-#define LCD_SYMB_BATTERY			8
-
-/* Units for Line1 */
-#define LCD_UNIT_L1_FT				9
-#define LCD_UNIT_L1_K				10
-#define LCD_UNIT_L1_M				11
-#define LCD_UNIT_L1_I				12
-#define LCD_UNIT_L1_PER_S			13
-#define LCD_UNIT_L1_PER_H			14
-#define LCD_UNIT_L1_DEGREE			15
-
-/* Units for Line2 */
-#define LCD_UNIT_L2_KCAL			16
-#define LCD_UNIT_L2_KM				17
-#define LCD_UNIT_L2_MI				18
-
-/* Icons */
-#define LCD_ICON_HEART				19
-#define LCD_ICON_STOPWATCH			20
-#define LCD_ICON_RECORD				21
-#define LCD_ICON_ALARM				22
-#define LCD_ICON_BEEPER1			23
-#define LCD_ICON_BEEPER2			24
-#define LCD_ICON_BEEPER3			25
-
-/* Line1 7-segments */
-#define LCD_SEG_L1_3				26
-#define LCD_SEG_L1_2				27
-#define LCD_SEG_L1_1				28
-#define LCD_SEG_L1_0				29
-#define LCD_SEG_L1_COL				30
-#define LCD_SEG_L1_DP1				31
-#define LCD_SEG_L1_DP0				32
-
-/* Line2 7-segments */
-#define LCD_SEG_L2_5				33
-#define LCD_SEG_L2_4				34
-#define LCD_SEG_L2_3				35
-#define LCD_SEG_L2_2				36
-#define LCD_SEG_L2_1				37
-#define LCD_SEG_L2_0				38
-#define LCD_SEG_L2_COL1				39
-#define LCD_SEG_L2_COL0				40
-#define LCD_SEG_L2_DP				41
-
-/* Line1 7-segment arrays */
-#define LCD_SEG_L1_3_0				70
-#define LCD_SEG_L1_2_0				71
-#define LCD_SEG_L1_1_0				72
-#define LCD_SEG_L1_3_1				73
-#define LCD_SEG_L1_3_2				74
-
-/* Line2 7-segment arrays */
-#define LCD_SEG_L2_5_0				90
-#define LCD_SEG_L2_4_0				91
-#define LCD_SEG_L2_3_0				92
-#define LCD_SEG_L2_2_0				93
-#define LCD_SEG_L2_1_0				94
-#define LCD_SEG_L2_5_2				95
-#define LCD_SEG_L2_3_2				96
-#define LCD_SEG_L2_5_4				97
-#define LCD_SEG_L2_4_2				98
-
-/* LCD controller memory map */
-#define LCD_MEM_1          			((uint8_t*)0x0A20)
-#define LCD_MEM_2          			((uint8_t*)0x0A21)
-#define LCD_MEM_3          			((uint8_t*)0x0A22)
-#define LCD_MEM_4          			((uint8_t*)0x0A23)
-#define LCD_MEM_5          			((uint8_t*)0x0A24)
-#define LCD_MEM_6          			((uint8_t*)0x0A25)
-#define LCD_MEM_7          			((uint8_t*)0x0A26)
-#define LCD_MEM_8          	 		((uint8_t*)0x0A27)
-#define LCD_MEM_9          			((uint8_t*)0x0A28)
-#define LCD_MEM_10         			((uint8_t*)0x0A29)
-#define LCD_MEM_11         			((uint8_t*)0x0A2A)
-#define LCD_MEM_12         			((uint8_t*)0x0A2B)
-
-/* Memory assignment */
-#define LCD_SEG_L1_0_MEM			(LCD_MEM_6)
-#define LCD_SEG_L1_1_MEM			(LCD_MEM_4)
-#define LCD_SEG_L1_2_MEM			(LCD_MEM_3)
-#define LCD_SEG_L1_3_MEM			(LCD_MEM_2)
-#define LCD_SEG_L1_COL_MEM			(LCD_MEM_1)
-#define LCD_SEG_L1_DP1_MEM			(LCD_MEM_1)
-#define LCD_SEG_L1_DP0_MEM			(LCD_MEM_5)
-#define LCD_SEG_L2_0_MEM			(LCD_MEM_8)
-#define LCD_SEG_L2_1_MEM			(LCD_MEM_9)
-#define LCD_SEG_L2_2_MEM			(LCD_MEM_10)
-#define LCD_SEG_L2_3_MEM			(LCD_MEM_11)
-#define LCD_SEG_L2_4_MEM			(LCD_MEM_12)
-#define LCD_SEG_L2_5_MEM			(LCD_MEM_12)
-#define LCD_SEG_L2_COL1_MEM			(LCD_MEM_1)
-#define LCD_SEG_L2_COL0_MEM			(LCD_MEM_5)
-#define LCD_SEG_L2_DP_MEM			(LCD_MEM_9)
-#define LCD_SYMB_AM_MEM				(LCD_MEM_1)
-#define LCD_SYMB_PM_MEM				(LCD_MEM_1)
-#define LCD_SYMB_ARROW_UP_MEM		(LCD_MEM_1)
-#define LCD_SYMB_ARROW_DOWN_MEM		(LCD_MEM_1)
-#define LCD_SYMB_PERCENT_MEM		(LCD_MEM_5)
-#define LCD_SYMB_TOTAL_MEM			(LCD_MEM_11)
-#define LCD_SYMB_AVERAGE_MEM		(LCD_MEM_10)
-#define LCD_SYMB_MAX_MEM			(LCD_MEM_8)
-#define LCD_SYMB_BATTERY_MEM		(LCD_MEM_7)
-#define LCD_UNIT_L1_FT_MEM			(LCD_MEM_5)
-#define LCD_UNIT_L1_K_MEM			(LCD_MEM_5)
-#define LCD_UNIT_L1_M_MEM			(LCD_MEM_7)
-#define LCD_UNIT_L1_I_MEM			(LCD_MEM_7)
-#define LCD_UNIT_L1_PER_S_MEM		(LCD_MEM_5)
-#define LCD_UNIT_L1_PER_H_MEM		(LCD_MEM_7)
-#define LCD_UNIT_L1_DEGREE_MEM		(LCD_MEM_5)
-#define LCD_UNIT_L2_KCAL_MEM		(LCD_MEM_7)
-#define LCD_UNIT_L2_KM_MEM			(LCD_MEM_7)
-#define LCD_UNIT_L2_MI_MEM			(LCD_MEM_7)
-#define LCD_ICON_HEART_MEM			(LCD_MEM_2)
-#define LCD_ICON_STOPWATCH_MEM		(LCD_MEM_3)
-#define LCD_ICON_RECORD_MEM			(LCD_MEM_1)
-#define LCD_ICON_ALARM_MEM			(LCD_MEM_4)
-#define LCD_ICON_BEEPER1_MEM		(LCD_MEM_5)
-#define LCD_ICON_BEEPER2_MEM		(LCD_MEM_6)
-#define LCD_ICON_BEEPER3_MEM		(LCD_MEM_7)
-
-/* Bit masks for write access */
-#define LCD_SEG_L1_0_MASK			(BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4)
-#define LCD_SEG_L1_1_MASK			(BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4)
-#define LCD_SEG_L1_2_MASK			(BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4)
-#define LCD_SEG_L1_3_MASK			(BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4)
-#define LCD_SEG_L1_COL_MASK			(BIT5)
-#define LCD_SEG_L1_DP1_MASK			(BIT6)
-#define LCD_SEG_L1_DP0_MASK			(BIT2)
-#define LCD_SEG_L2_0_MASK			(BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4)
-#define LCD_SEG_L2_1_MASK			(BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4)
-#define LCD_SEG_L2_2_MASK			(BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4)
-#define LCD_SEG_L2_3_MASK			(BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4)
-#define LCD_SEG_L2_4_MASK			(BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4)
-#define LCD_SEG_L2_5_MASK			(BIT7)
-#define LCD_SEG_L2_COL1_MASK		(BIT4)
-#define LCD_SEG_L2_COL0_MASK		(BIT0)
-#define LCD_SEG_L2_DP_MASK			(BIT7)
-#define LCD_SYMB_AM_MASK			(BIT1+BIT0)
-#define LCD_SYMB_PM_MASK			(BIT0)
-#define LCD_SYMB_ARROW_UP_MASK		(BIT2)
-#define LCD_SYMB_ARROW_DOWN_MASK	(BIT3)
-#define LCD_SYMB_PERCENT_MASK		(BIT4)
-#define LCD_SYMB_TOTAL_MASK			(BIT7)
-#define LCD_SYMB_AVERAGE_MASK		(BIT7)
-#define LCD_SYMB_MAX_MASK			(BIT7)
-#define LCD_SYMB_BATTERY_MASK		(BIT7)
-#define LCD_UNIT_L1_FT_MASK			(BIT5)
-#define LCD_UNIT_L1_K_MASK			(BIT6)
-#define LCD_UNIT_L1_M_MASK			(BIT1)
-#define LCD_UNIT_L1_I_MASK			(BIT0)
-#define LCD_UNIT_L1_PER_S_MASK		(BIT7)
-#define LCD_UNIT_L1_PER_H_MASK		(BIT2)
-#define LCD_UNIT_L1_DEGREE_MASK		(BIT1)
-#define LCD_UNIT_L2_KCAL_MASK		(BIT4)
-#define LCD_UNIT_L2_KM_MASK			(BIT5)
-#define LCD_UNIT_L2_MI_MASK			(BIT6)
-#define LCD_ICON_HEART_MASK			(BIT3)
-#define LCD_ICON_STOPWATCH_MASK		(BIT3)
-#define LCD_ICON_RECORD_MASK		(BIT7)
-#define LCD_ICON_ALARM_MASK			(BIT3)
-#define LCD_ICON_BEEPER1_MASK		(BIT3)
-#define LCD_ICON_BEEPER2_MASK		(BIT3)
-#define LCD_ICON_BEEPER3_MASK		(BIT3)
-
-
-/* *************************************************************************************************
- * API section
- */
-
-/* Physical LCD memory write */
-/* *************************************************************************************************
- * @fn          write_segment
- * @brief       Write to one or multiple LCD segments
- * @param       lcdmem		Pointer to LCD byte memory
- *				bits		Segments to address
- *				bitmask		Bitmask for particular display item
- *				mode		On, off or blink segments
- * @return      
- * ************************************************************************************************/
-void write_lcd_mem(uint8_t *lcdmem, uint8_t bits, uint8_t bitmask, uint8_t state);
-
-/* Display init / clear */
-/* *************************************************************************************************
- * @fn          lcd_init
- * @brief       Erase LCD memory. Init LCD peripheral.
- * @param      	none
- * @return      none
- * ************************************************************************************************/
-void lcd_init(void);
-
-/* *************************************************************************************************
- * @fn          clear_display
- * @brief       Erase LINE1 and LINE2 segments. Keep icons.
- * @param      	none
- * @return      none
- * ************************************************************************************************/
-void clear_display(void);
-
-/* *************************************************************************************************
- * @fn          clear_display_all
- * @brief       Erase LINE1 and LINE2 segments. Clear also function-specific content.
- * @param      	none
- * @return      none
- * ************************************************************************************************/
-void clear_display_all(void);
-
-/* *************************************************************************************************
- * @fn          clear_line
- * @brief       Erase segments of a given line.
- * @param      	uint8_t line	LINE1, LINE2
- * @return      none
- * ************************************************************************************************/
-void clear_line(uint8_t line);
-
-/* Blinking function */
-/* *************************************************************************************************
- * @fn          start_blink
- * @brief       Start blinking. 
- * @param       none
- * @return      none
- * ************************************************************************************************/
-void start_blink(void);
-
-/* *************************************************************************************************
- * @fn          stop_blink
- * @brief       Stop blinking.
- * @param       none
- * @return      none
- * ************************************************************************************************/
-void stop_blink(void);
-
-/* *************************************************************************************************
- * @fn          stop_blink
- * @brief       Clear blinking memory.
- * @param       none
- * @return      none
- * ************************************************************************************************/
-void clear_blink_mem(void);
-
-/* *************************************************************************************************
- * @fn          set_blink_rate
- * @brief       Set blink rate register bits. 
- * @param       none
- * @return      none
- * ************************************************************************************************/
-void set_blink_rate(uint8_t bits);
-
-/* Character / symbol draw functions */
-/* *************************************************************************************************
- * @fn          display_char
- * @brief       Write to 7-segment characters.
- * @param       uint8_t segment		A valid LCD segment 
- *				uint8_t chr			Character to display
- *				uint8_t mode		SEG_ON, SEG_OFF, SEG_BLINK
- * @return      none
- * ************************************************************************************************/
-void display_char(uint8_t segment, char chr, uint8_t mode);
-
-/* *************************************************************************************************
- * @FN          display_chars
- * @brief       Write to consecutive 7-segment characters.
- * @param       uint8_t segments	LCD segment array 
- *				uint8_t * str		Pointer to a string
- *				uint8_t mode		SEG_ON, SEG_OFF, SEG_BLINK
- * @return      none
- * ************************************************************************************************/
-void display_chars(uint8_t segments, char *str, uint8_t mode);
-
-/* *************************************************************************************************
- * @fn          display_symbol
- * @brief       Switch symbol on or off on LCD.
- * @param       uint8_t symbol		A valid LCD symbol (index 0..42)
- *				uint8_t state		SEG_ON, SEG_OFF, SEG_BLINK
- * @return      none
- * ************************************************************************************************/
-void display_symbol(uint8_t symbol, uint8_t mode);
-
-/* Set_value display functions */
-/* *************************************************************************************************
- * @fn          display_value1
- * @brief       Generic decimal display routine. Used exclusively by set_value function.
- * @param       uint8_t segments		LCD segments where value is displayed
- *				uint32_t value			Integer value to be displayed
- *				uint8_t digits			Number of digits to convert
- *				uint8_t blanks			Number of leadings blanks in itoa result string
- * @return      none
- * ************************************************************************************************/
-void display_value1(uint8_t segments, uint32_t value, uint8_t digits, uint8_t blanks, uint8_t disp_mode);
-
-/* Integer to string conversion  */
-/* *************************************************************************************************
- * @fn          itoa
- * @brief       Generic integer to array routine. Converts integer n to string.
- *				Default conversion result has leading zeros, e.g. "00123"
- *				Option to convert leading '0' into whitespace (blanks)
- * @param       uint32_t n			integer to convert
- *				uint8_t digits		number of digits
- *				uint8_t blanks		fill up result string with number of whitespaces instead of leading zeros  
- * @return      uint8_t				string
- * ************************************************************************************************/
-char *itoa(uint32_t n, uint8_t digits, uint8_t blanks);
-
-/* Segment index helper function */
-/* *************************************************************************************************
- * @fn          switch_seg
- * @brief       Returns index of 7-segment character. Required for display routines that can draw 
- *				information on both lines.
- * @param       uint8_t line		LINE1, LINE2
- *				uint8_t index1		Index of LINE1
- *				uint8_t index2		Index of LINE2
- * @return      uint8
- * ************************************************************************************************/
-uint8_t switch_seg(uint8_t line, uint8_t index1, uint8_t index2);
-
-/* *************************************************************************************************
- * @fn          display_all_off
- * @brief       Sets everything of on the display
- * @param       none
- * @return      none
- * ************************************************************************************************/
-void display_all_off(void);
-
-#endif /* __DISPLAY_ */
diff --git a/board/chronos/drivers/include/display_putchar.h b/board/chronos/drivers/include/display_putchar.h
deleted file mode 100644
index 6adbb9c9c0b1bfdbb1d2bc6e0c77602fc6a24aa7..0000000000000000000000000000000000000000
--- a/board/chronos/drivers/include/display_putchar.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __DISPLAY_PUTCHAR_H
-#define __DISPLAY_PUTCHAR_H 
-
-void init_display_putchar();
-
-#endif /* __DISPLAY_PUTCHAR_H */
diff --git a/board/chronos/include/board.h b/board/chronos/include/board.h
deleted file mode 100644
index af0a99b5da4f485a43c2e89eaf0f8c72a44a4d19..0000000000000000000000000000000000000000
--- a/board/chronos/include/board.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _MSB_BOARD_H
-#define _MSB_BOARD_H
-
-#include <cc430x613x.h>
-
-#define MSP430_INITIAL_CPU_SPEED    7372800uL
-#define MSP430_HAS_DCOR             1
-#define MSP430_HAS_EXTERNAL_CRYSTAL 1
-
-#endif // _MSB_BOARD_H
diff --git a/board/chronos/include/buttons.h b/board/chronos/include/buttons.h
deleted file mode 100644
index 4e7ab28dca4427551d6a6c819cbabb515b2929a7..0000000000000000000000000000000000000000
--- a/board/chronos/include/buttons.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef BUTTONS_H
-#define BUTTONS_H
-
-// Button ports
-#define BUTTON_STAR_PIN        	(BIT2)
-#define BUTTON_NUM_PIN         	(BIT1)
-#define BUTTON_UP_PIN          	(BIT4)
-#define BUTTON_DOWN_PIN        	(BIT0)
-#define BUTTON_BACKLIGHT_PIN   	(BIT3)
-
-#endif
diff --git a/board/chronos/putchar.c b/board/chronos/putchar.c
deleted file mode 100644
index 436d350f51dc1fb4c5945cd136c4415ff4d4d6e3..0000000000000000000000000000000000000000
--- a/board/chronos/putchar.c
+++ /dev/null
@@ -1,11 +0,0 @@
-static void _dummy(int c) {
-}
-
-void (*_putchar)(int c) = _dummy;
-
-int putchar(int c)
-{
-    _putchar(c);
-    return c;
-}
-
diff --git a/board/msb-430-common/Jamfile b/board/msb-430-common/Jamfile
deleted file mode 100644
index 78807c1441c1cadefc7b1da26f3b6e41f884f071..0000000000000000000000000000000000000000
--- a/board/msb-430-common/Jamfile
+++ /dev/null
@@ -1,34 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-SubDir TOP board msb-430-common ;
-
-Module board : board_init.c uart1.c ;
-Module board_config : board_config.c : flashrom ;
-UseModule board ;
-
-SubInclude TOP cpu $(CPU) ;
diff --git a/board/msb-430-common/Jamrules.msb-430-common b/board/msb-430-common/Jamrules.msb-430-common
deleted file mode 100644
index 7eee8b088fa50a033ed0ac8368d4c33d762be0ab..0000000000000000000000000000000000000000
--- a/board/msb-430-common/Jamrules.msb-430-common
+++ /dev/null
@@ -1,38 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-CPU = msp430x16x ;
-MCU = msp430x1612 ;
-
-FLASH_PORT ?= "$(PORT)" ;
-FLASHER ?= mspdebug ;
-FLASHFLAGS ?= -d $(FLASH_PORT) -j uif ;
-
-RESET ?= $(FLASHER) $(FLASHFLAGS) reset ;
-
-HDRS += [ FPath $(TOP) board msb-430-common include ] ;
-HDRS += [ FPath $(TOP) board msb-430-common drivers include ] ;
diff --git a/board/msb-430-common/board_config.c b/board/msb-430-common/board_config.c
deleted file mode 100644
index f22e513b20b8aa74d748a4d488168bc44165ff36..0000000000000000000000000000000000000000
--- a/board/msb-430-common/board_config.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdint.h>
-#include <string.h>
-#include <board-conf.h>
-#include <config.h>
-#include <flashrom.h>
-
-void config_load(void) {
-   if (*((uint16_t*) INFOMEM) ==  CONFIG_KEY) {
-       memcpy(&sysconfig, (char*) (INFOMEM + sizeof(CONFIG_KEY)), sizeof(sysconfig));
-   }
-   else {
-       config_save();
-   }
-}
-
-uint8_t config_save(void) {
-    configmem_t mem = { CONFIG_KEY, sysconfig  };
-    return (flashrom_erase((uint8_t*) INFOMEM) && flashrom_write((uint8_t*) INFOMEM, (char*) &mem, sizeof(mem)));
-}
diff --git a/board/msb-430-common/board_init.c b/board/msb-430-common/board_init.c
deleted file mode 100644
index c9037cb521b663db642768a6d71b8038ce02d950..0000000000000000000000000000000000000000
--- a/board/msb-430-common/board_init.c
+++ /dev/null
@@ -1,208 +0,0 @@
-#include "cpu.h"
-#include "board.h"
-#include "kernel_intern.h"
-#include "msp430.h"
-#include "debug.h"
-#include <msb430-uart1.h>
-
-volatile static uint32_t __msp430_cpu_speed = MSP430_INITIAL_CPU_SPEED;
-
-/*---------------------------------------------------------------------------*/
-static uint8_t calc_umctl(uint16_t br) {
-	// from TI slaa049
-	register uint8_t CMOD = 256 * br - 256 * (br + 1) / 2;
-	register uint8_t c = 0;
-	register int i = 0;
-	register uint8_t a = CMOD;
-	a <<= 1;
-	do {
-		if( a & 0x80 ) {		// Overflow to integer?
-			a = a - 128 + CMOD;	// Yes, subtract 1.000000
-			c |= 0x80;
-		} else {
-			a += CMOD;			// No, add fraction
-		}
-		if( i == 7 )
-			return c;
-		i++;
-		c >>= 1;
-	} while(1);
-}
-
-static void msb_ports_init(void)
-{
-	// Port 1: Free port, for energy saving all outputs are set to zero.
-    P1SEL = 0x00;	// Port1 Zweitfunktion
-    P1OUT = 0x00;	// Port1 Ausgangsregister: 00000000 = 0x00
-    P1DIR = 0xFF;	// Port1 Direction: 11111111 = 0xFF
-
-	P2SEL = 0x20;	// Port2 Zweitfunktion
-	P2OUT = 0x00;	// Port2 Ausgangsregister: 00000000 = 0x00
-	P2DIR = 0x1C;	// Port2 Direction: 00011010 = 0x1C
-					//   0 - P2.0 [IN ] -
-					//   0 - P2.1 [OUT] -
-					//   1 - P2.2 [IN ] -
-					//   1 - P2.3 [OUT] -
-					//   1 - P2.4 [OUT] -
-					//   0 - P2.5 [IN ] -
-					//   0 - P2.6 [IN ] - SD-KARTE Protect
-					//   0 - P2.7 [IN ] - SD-KARTE Detect
-
-	P3SEL = 0xC0;	// Port3 Zweitfunktion
-	P3OUT = 0x09;	// Port3 Ausgangsregister: 00001001 = 0x09
-	P3DIR = 0x2B;	// Port3 Direction
-					//   1 - P3.0
-					//   1 - P3.1
-					//   0 - P3.2
-					//   1 - P3.3
-					//   0 - P3.4 [IN ] - SHT 11 DATA (OUT/IN)
-					//   1 - P3.5 [OUT] - SHT 11 CLK
-					//   0 - P3.6 [2-Funktion] - RS232_RxD
-					//   0 - P3.7 [2-Funktion] - RS232_TxD
-
-	// Port 4: Free port, for energy saving all outputs are set to zero.
-	P4SEL = 0x00;	// Port4 Zweitfunktion
-	P4OUT = 0x00;	// Port4 Ausgangsregister: 00000000 = 0x00
-	P4DIR = 0xFF;	// Port4 Direction: 11111111 = 0xFF
-					//   1 - P4.0 [OUT] - unused
-					//   1 - P4.1 [OUT] - unused
-					//   1 - P4.2 [OUT] - unused
-					//   1 - P4.3 [OUT] - unused
-					//   1 - P4.4 [OUT] - unused
-					//   1 - P4.5 [OUT] - unused
-					//   1 - P4.6 [OUT] - unused
-					//   1 - P4.7 [OUT] - unused
-
-	P5SEL = 0x00;	// Port5 Zweitfunktion: 00000000 = 0x00
-	P5OUT = 0x80;	// Port5 Ausgangsregister: 00001001 = 0x09
-	P5DIR = 0xFF;	// Port5 Direction: 11111011 = 0xFB
-					//   1 - P5.0 [OUT] - SD-KARTE /CS
-					//   1 - P5.1 [OUT] - SD-KARTE DI
-					//   0 - P5.2 [IN ] - SD-KARTE DO
-					//   1 - P5.3 [OUT] - SD-KARTE DCLK
-					//   1 - P5.4 [OUT] - MMA GS1
-					//   1 - P5.5 [OUT] - MMA GS2
-					//   1 - P5.6 [OUT] - MMA /SLEEP
-					//   1 - P5.7 [OUT] - LED_ROT 0-an, 1-aus
-
-	P6SEL = 0x00;	// Port6 Zweitfunktion = 0x07
-	P6OUT = 0x00;	// Port6 Ausgangsregister: 00000000 = 0x00
-	P6DIR = 0xFF;	// Port6 Direction: 11111000 = 0xF8
-					//   0 - P6.0 [AD-IN] - MMA X-Achse
-					//   0 - P6.1 [AD-IN] - MMA Y-Achse
-					//   0 - P6.2 [AD-IN] - MMA Z-Achse
-					//   1 - P6.3 [OUT] - unused
-					//   1 - P6.4 [OUT] - unused
-					//   1 - P6.5 [OUT] - unused
-					//   1 - P6.6 [OUT] - unused
-					//   1 - P6.7 [OUT] - unused
-}
-
-void msp430_set_cpu_speed(uint32_t speed)
-{
-	dint();
-	__msp430_cpu_speed = speed;
-	msp430_init_dco();
-	uint16_t br;
-    UCTL1 = SWRST | CHAR;		// 8-bit character
-    UTCTL1 |= SSEL1 | URXSE;	// UCLK = MCLK
-    // activate
-    U1ME |= UTXE1 | URXE1;		// Enable USART1 TXD/RXD
-	br = (uint16_t)(__msp430_cpu_speed / 115200uL);
-	UBR01  = br;				// set baudrate
-	UBR11  = br>>8;
-	UMCTL1 = calc_umctl(br);	// set modulation
-
-	UCTL1 &= ~SWRST;
-	//clock_init();
-	eint();
-}
-
-/*---------------------------------------------------------------------------*/
-void
-msp430_init_dco()
-{
-  #if MSP430_HAS_EXTERNAL_CRYSTAL
-  /*------------------ use external oszillator -----------------------*/
-  uint16_t i;
-
-  // Stop watchdog
-  WDTCTL = WDTPW + WDTHOLD;
-
-  //Init crystal for mclk
-  //XT2 = HF XTAL
-  BCSCTL1 = RSEL2;
-
-  // Wait for xtal to stabilize
-  do {
-	IFG1 &= ~OFIFG;				// Clear oscillator fault flag
-	for (i = 0xFF; i > 0; i--); // Time for flag to set
-  }
-  while ((IFG1 & OFIFG) != 0);	// Oscillator fault flag still set?
-  BCSCTL2 = SELM_2 + SELS;		// MCLK und SMCLK = XT2 (safe)
-  #else
-  /* Thdeltais code taken from the FU Berlin sources and reformatted. */
-  int delta = __msp430_cpu_speed >> 12;
-  //#define DELTA    600
-
-  unsigned int compare, oldcapture = 0;
-  unsigned int i;
-
-
-  BCSCTL1 = 0xa4; /* ACLK is devided by 4. RSEL=6 no division for MCLK
-		     and SSMCLK. XT2 is off. */
-
-  // Init FLL to desired frequency using the 32762Hz crystal
-  #if MSP430_HAS_DCOR
-  BCSCTL2 = 0x01;
-  #else
-  BCSCTL2 = 0x00;
-  #endif
-
-  WDTCTL = WDTPW + WDTHOLD;             /* Stop WDT */
-  BCSCTL1 |= DIVA1 + DIVA0;             /* ACLK = LFXT1CLK/8 */
-  for(i = 0xffff; i > 0; i--);          /* Delay for XTAL to settle */
-
-  CCTL2 = CCIS0 + CM0 + CAP;            // Define CCR2, CAP, ACLK
-  TACTL = TASSEL1 + TACLR + MC1;        // SMCLK, continous mode
-
-
-  while(1) {
-
-    while((CCTL2 & CCIFG) != CCIFG);    /* Wait until capture occured! */
-    CCTL2 &= ~CCIFG;                    /* Capture occured, clear flag */
-    compare = CCR2;                     /* Get current captured SMCLK */
-    compare = compare - oldcapture;     /* SMCLK difference */
-    oldcapture = CCR2;                  /* Save current captured SMCLK */
-
-    if(delta == compare) {
-      break;                            /* if equal, leave "while(1)" */
-    } else if(delta < compare) {        /* DCO is too fast, slow it down */
-      DCOCTL--;
-      if(DCOCTL == 0xFF) {              /* Did DCO role under? */
-	BCSCTL1--;
-      }
-    } else {                            /* -> Select next lower RSEL */
-      DCOCTL++;
-      if(DCOCTL == 0x00) {              /* Did DCO role over? */
-	BCSCTL1++;
-      }
-                                        /* -> Select next higher RSEL  */
-    }
-  }
-
-  CCTL2 = 0;                            /* Stop CCR2 function */
-  TACTL = 0;                            /* Stop Timer_A */
-
-  BCSCTL1 &= ~(DIVA1 + DIVA0);          /* remove /8 divisor from ACLK again */
-  #endif
-}
-
-void board_init() {
-    msp430_cpu_init();
-    msb_ports_init();
-    
-    LED_RED_ON;
-   
-    msp430_set_cpu_speed(7372800uL);
-}
diff --git a/board/msb-430-common/drivers/include/sht11-board.h b/board/msb-430-common/drivers/include/sht11-board.h
deleted file mode 100644
index a4debd44739a4736a8d29dd56f2c434ed4b1ed2e..0000000000000000000000000000000000000000
--- a/board/msb-430-common/drivers/include/sht11-board.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/******************************************************************************
-Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-#ifndef SHT11BOARD_H_
-#define SHT11BOARD_H_
-
-/**
- * @ingroup	    msb_430h
- * @{
- */
-
-/**
- * @file
- * @brief		SHT11 Device Driver Configuration For MSB-430 Platform
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, µkleos
- * @version     $Revision$
- *
- * @note		$Id$
- */
-#include <msp430x16x.h>
-#include <bitarithm.h>
-
-/* SCK  = P3B5
- * DATA = P3B4
- */
-
-#define SHT11_SCK_LOW	P3OUT &= ~(BIT5);     /**< serial clock line low */
-#define SHT11_SCK_HIGH	P3OUT |= BIT5;      /**< serial clock line high */
-#define SHT11_DATA		(P3IN & BIT5)      /**< read serial I/O */
-#define SHT11_DATA_LOW	P3OUT &= ~(BIT5); 	/**< serial I/O line low */
-#define SHT11_DATA_HIGH	P3OUT |= BIT5;      /**< serial I/O line high */
-#define SHT11_DATA_IN	P3DIR &= ~(BIT5);      /**< serial I/O as input */
-#define SHT11_DATA_OUT	P3DIR |= BIT5;      /**< serial I/O as output */
-#define SHT11_INIT		P3DIR |= BIT5;      /* FIO1DIR |= BIT25; PINSEL3 &= ~(BIT14|BIT15 | BIT16|BIT17); */
-
-/** @} */
-#endif /* SHT11BOARD_H_ */
diff --git a/board/msb-430-common/include/board-conf.h b/board/msb-430-common/include/board-conf.h
deleted file mode 100644
index e85c3128f26d3d8f2911e54d2947ec66569904f9..0000000000000000000000000000000000000000
--- a/board/msb-430-common/include/board-conf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef BOARD_CONF_H
-#define BOARD_CONF_H 
-
-#define INFOMEM     (0x1000)
-
-#endif /* BOARD-CONF_H */
diff --git a/board/msb-430-common/putchar.c b/board/msb-430-common/putchar.c
deleted file mode 100644
index 4193c0db42734d0bcfc6766d385fdd082ae7ce07..0000000000000000000000000000000000000000
--- a/board/msb-430-common/putchar.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <stdio.h>
-
-void (_putchar(int)) = uart1_putchar;
-
-void putchar(int c) {
-    _putchar(c);
-}
diff --git a/board/msb-430-common/uart1.c b/board/msb-430-common/uart1.c
deleted file mode 100644
index 7abad1d4e3a8b65e6df443e1a50cb24873b50b49..0000000000000000000000000000000000000000
--- a/board/msb-430-common/uart1.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "board.h"
-
-#define   UART1_TX                        TXBUF1
-#define UART1_WAIT_TXDONE()       while( (UTCTL1 & TXEPT) == 0 ) { _NOP(); }
-
-#include <stdio.h>
-
-int putchar(int c)
-{
-    UART1_TX = c;
-    UART1_WAIT_TXDONE();
-    
-    if (c == 10) {
-        UART1_TX = 13;
-        UART1_WAIT_TXDONE();
-    }
-
-    return c;
-}
-
-
diff --git a/board/msb-430/Jamfile b/board/msb-430/Jamfile
deleted file mode 100644
index f2592c24cfe7b8c8064c880cce0c669d94fb351d..0000000000000000000000000000000000000000
--- a/board/msb-430/Jamfile
+++ /dev/null
@@ -1,32 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-SubDir TOP board msb-430 ;
-
-SubInclude TOP board msb-430-common ;
-SubInclude TOP cpu $(CPU) ;
-
diff --git a/board/msb-430/Jamrules.msb-430 b/board/msb-430/Jamrules.msb-430
deleted file mode 100644
index ae1d28b4443b324a6dba95e573140fd4e5c9f365..0000000000000000000000000000000000000000
--- a/board/msb-430/Jamrules.msb-430
+++ /dev/null
@@ -1,3 +0,0 @@
-BOARD = msb-430 ;
-
-include $(TOP)/board/msb-430-common/Jamrules.msb-430-common ; 
diff --git a/board/msb-430/include/board.h b/board/msb-430/include/board.h
deleted file mode 100644
index 56c24a54617f846b3308bcb4fb28fc2f69f4776b..0000000000000000000000000000000000000000
--- a/board/msb-430/include/board.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/******************************************************************************
-Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-#ifndef _MSB_BOARD_H
-#define _MSB_BOARD_H
-
-/**
- * @defgroup	msb_430h		ScatterWeb MSB-430H
- * @ingroup		msp430
- *
-<h2>Compontents</h2>
-\li MSP430
-\li CC1100
-
-* @{
-*/
-
-/**
- * @file
- * @brief		MSB-430H Board
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @version     $Revision$
- *
- * @note		$Id$
- */
-
-//MSB430 core
-#define MSP430_INITIAL_CPU_SPEED 2457600uL
-#define MSP430_HAS_DCOR             1
-#define MSP430_HAS_EXTERNAL_CRYSTAL 0
-
-/* LEDs ports MSB430 */
-#define LEDS_PxDIR P5DIR
-#define LEDS_PxOUT P5OUT
-#define LEDS_CONF_RED		0x80
-#define LEDS_CONF_GREEN		0x00
-#define LEDS_CONF_YELLOW	0x00
-
-#define LED_RED_ON      LEDS_PxOUT &=~LEDS_CONF_RED
-#define LED_RED_OFF     LEDS_PxOUT |= LEDS_CONF_RED
-#define LED_RED_TOGGLE     LEDS_PxOUT ^= LEDS_CONF_RED
-
-#include <msp430x16x.h>
-
-/** @} */
-#endif // _MSB_BOARD_H
diff --git a/board/msb-430h/Jamfile b/board/msb-430h/Jamfile
deleted file mode 100644
index 9f9ee47bf37f2f4fab6f07d1fdb6839dc76f203d..0000000000000000000000000000000000000000
--- a/board/msb-430h/Jamfile
+++ /dev/null
@@ -1,33 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-SubDir TOP board msb-430h ;
-
-Module board_cc110x : driver_cc110x.c : cc110x_spi ;
-
-SubInclude TOP board msb-430-common ;
-SubInclude TOP cpu $(CPU) ;
diff --git a/board/msb-430h/Jamrules.msb-430h b/board/msb-430h/Jamrules.msb-430h
deleted file mode 100644
index d1913ed5426532fc75cb3f19264f618a971b9104..0000000000000000000000000000000000000000
--- a/board/msb-430h/Jamrules.msb-430h
+++ /dev/null
@@ -1,3 +0,0 @@
-BOARD = msb-430h ;
-
-include $(TOP)/board/msb-430-common/Jamrules.msb-430-common ; 
diff --git a/board/msb-430h/driver_cc110x.c b/board/msb-430h/driver_cc110x.c
deleted file mode 100644
index 9316e8bf564f22ab373af045aa295a972d730076..0000000000000000000000000000000000000000
--- a/board/msb-430h/driver_cc110x.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/* Copyright (C) 2005, 2006, 2007, 2008 by Thomas Hillebrandt and Heiko Will
-
-This file is part of the Micro-mesh SensorWeb Firmware.
-
-Micro-Mesh is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-Micro-Mesh 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
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Micro-Mesh; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#include <stdio.h>
-
-#include <board.h>
-#include <cpu.h>
-#include <irq.h>
-
-#include <cc110x_ng.h>
-#include <cc110x-arch.h>
-
-#define CC1100_GDO0         (P2IN & 0x02)   // read serial I/O (GDO0)
-#define CC1100_GDO1         (P3IN & 0x04)   // read serial I/O (GDO1)
-#define CC1100_GDO2         (P2IN & 0x01)   // read serial I/O (GDO2)
-
-#define CC1100_CS_LOW       (P3OUT &= ~0x01)
-#define CC1100_CS_HIGH      (P3OUT |= 0x01)
-
-#define CC1100_GDO1_LOW_COUNT            (2700)          // loop count (timeout ~ 500 us) to wait
-#define CC1100_GDO1_LOW_RETRY             (100)          // max. retries for GDO1 to go low
-
-volatile int abort_count;
-volatile int retry_count = 0;
-
-void cc110x_gdo0_enable(void)
-{
-	P2IFG &= ~0x02;     /* Clear IFG for GDO0 */
-	P2IE |= 0x02;       /* Enable interrupt for GDO0 */ 
-}
-
-void cc110x_gdo0_disable(void)
-{
-	P2IE &= ~0x02;      /* Disable interrupt for GDO0 */
-	P2IFG &= ~0x02;     /* Clear IFG for GDO0 */
-}
-
-void cc110x_gdo2_enable(void)
-{
-	P2IFG &= ~0x01;     /* Clear IFG for GDO2 */
-	P2IE |= 0x01;       /* Enable interrupt for GDO2 */ 
-}
-
-void cc110x_gdo2_disable(void)
-{
-	P2IE &= ~0x01;      /* Disable interrupt for GDO2 */
-	P2IFG &= ~0x01;     /* Clear IFG for GDO2 */
-}
-
-void cc110x_before_send(void)
-{
-	// Disable GDO2 interrupt before sending packet
-	cc110x_gdo2_disable();
-}
-
-void cc110x_after_send(void)
-{
-	// Enable GDO2 interrupt after sending packet
-	cc110x_gdo2_enable();
-}
-
-
-int cc110x_get_gdo0(void) {
-        return  CC1100_GDO0;
-}
-
-int cc110x_get_gdo1(void) {
-        return  CC1100_GDO1;
-}
-
-int cc110x_get_gdo2(void) {
-        return  CC1100_GDO2;
-}
-
-void cc110x_spi_cs(void)
-{
-    CC1100_CS_LOW;
-}
-
-uint8_t cc110x_txrx(uint8_t data)
-{
-	/* Ensure TX Buf is empty */
-	long c = 0;
-	IFG1 &= ~UTXIFG0;
-	IFG1 &= ~URXIFG0;
-	TXBUF0 = data;
-	while(!(IFG1 & UTXIFG0))
-	{
-		if (c++ == 1000000) 
-			puts("cc110x_txrx alarm()");	
-	}
-	/* Wait for Byte received */
-	c = 0;
-	while(!(IFG1 & URXIFG0))
-	{
-		if (c++ == 1000000) 
-			puts("cc110x_txrx alarm()");	
-	}
-	return RXBUF0;
-}
-
-
-void cc110x_spi_select(void)
-{
-	// Switch to GDO mode
-	P3SEL &= ~0x04;
-	P3DIR &= ~0x04;
-	cs_low:
-	// CS to low
-	abort_count = 0;
-	CC1100_CS_LOW;
-	// Wait for SO to go low (voltage regulator
-	// has stabilized and the crystal is running)
-	loop:
-//	asm volatile ("nop");
-	if (CC1100_GDO1) {
-		abort_count++;
-		if (abort_count > CC1100_GDO1_LOW_COUNT) {
-			retry_count++;
-			if (retry_count > CC1100_GDO1_LOW_RETRY) {
-				puts("[CC1100 SPI] fatal error\n");
-				goto final;
-			}
-			CC1100_CS_HIGH;
-            goto cs_low;		// try again
-		}
-		goto loop;
-	}
-	final:
-	/* Switch to SPI mode */
-	P3SEL |= 0x04;
-}
-
-void cc110x_spi_unselect(void) {
-    CC1100_CS_HIGH;
-}
-
-void cc110x_init_interrupts(void)
-{
-	unsigned int state = disableIRQ(); /* Disable all interrupts */
-	P2SEL = 0x00;       /* must be <> 1 to use interrupts */
-	P2IES |= 0x01;      /* Enables external interrupt on low edge (for GDO2) */
-    P2IE |= 0x01;       /* Enable interrupt */
-    P2IFG &= ~0x01;     /* Clears the interrupt flag */
-	P2IE &= ~0x02;      /* Disable interrupt for GDO0 */
-	P2IFG &= ~0x02;     /* Clear IFG for GDO0 */
-	restoreIRQ(state);  /* Enable all interrupts */
-}
-
-void cc110x_spi_init(uint8_t clockrate)
-{
-    // Switch off async UART
-    while(!(UTCTL0 & TXEPT));   // Wait for empty UxTXBUF register
-    IE1 &= ~(URXIE0 + UTXIE0);  // Disable USART0 receive&transmit interrupt
-    ME1 &= ~(UTXE0 + URXE0);
-    P3SEL |= 0x0E;              // Set pin as SPI
-
-    // Keep peripheral in reset state
-    UCTL0  = SWRST;
-
-    // 8-bit SPI Master 3-pin mode, with SMCLK as clock source
-    // CKPL works also, but not CKPH+CKPL or none of them!!
-    UCTL0 |= CHAR + SYNC + MM;
-    UTCTL0 = CKPH + SSEL1 + SSEL0 + STC;
-    
-    // Ignore clockrate argument for now, just use clock source/2
-    // SMCLK = 7,3728 MHz
-    UBR00 = 0x02;  // Ensure baud rate >= 2
-    UBR10 = 0x00;
-    UMCTL0 = 0x00; // No modulation
-    URCTL0 = 0x00; // Reset Receive Control Register
-   
-    // Enable SPI mode
-    ME1 |= USPIE0;
-
-    // Release for operation
-    UCTL0  &= ~SWRST;
-}
-
-
-// #include <msp430x16x.h> 
-// #include <signal.h>
-// #include "type.h"
-// #include "cc110x_defines.h"
-// #include "driver_cc110x.h"
-// #include "driver_system.h"
-// #include "spi0.h"
-// 
-// static callback_t _paket_cb; 
-// static callback_t _cs_cb;
-// 
-// //-------------------------------------------------------------------------------------------------------
-// // Public CC1100 communication functions (SPI)
-// //-------------------------------------------------------------------------------------------------------
-// 
-// //-------------------------------------------------------------------------------------------------------
-// //  void spiInitTrx(void)
-// //
-// //  DESCRIPTION:
-// //		This function puts the cc110x into spi mode. You have to call this bevore every spi transaction.
-// //  
-// //-------------------------------------------------------------------------------------------------------
-// 
-// 
-// void drivercc110x_spiwriteburstreg(uint8_t addr, unsigned char *buffer, uint8_t count)
-// {
-// 	uint8_t i;
-// 	long c;
-// 	drivercc110x_spiinittrx();
-// 	drivercc110x_trxspi(addr | CC1100_WRITE_BURST);
-// 	for (i = 0; i < count; i++)
-// 	{
-// 		c = 0;
-// 		IFG1 &= ~UTXIFG0;
-// 		IFG1 &= ~URXIFG0;
-// 		TXBUF0 = buffer[i];
-// 		/* Wait for TX to finish */
-// 		while(!(IFG1 & UTXIFG0))
-// 		{
-// 			if (c++ == 1000000) 
-// 				alarm();
-// 		}
-// 	}
-// 	/* Wait for Byte received */
-// 	c = 0;
-// 	while(!(IFG1 & URXIFG0))
-// 	{
-// 		if (c++ == 1000000) 
-// 			alarm();
-// 	}
-// 	CC1100_CS_HIGH;
-// }
-// 
-// void drivercc110x_spireadburstreg(uint8_t addr, char *buffer, uint8_t count)
-// {
-// 	uint8_t i;
-// 	drivercc110x_spiinittrx();
-// 	drivercc110x_trxspi(addr | CC1100_READ_BURST);
-// 	for (i = 0; i < count; i++)
-// 	{
-// 		long c = 0;
-// 		IFG1 &= ~UTXIFG0;
-// 		IFG1 &= ~URXIFG0;
-// 		TXBUF0 = NOBYTE;
-// 		while(!(IFG1 & UTXIFG0))
-// 		{
-// 			if (c++ == 1000000) 
-// 				alarm();
-// 		}
-// 		/* Wait for Byte received */
-// 		c = 0;
-// 		while(!(IFG1 & URXIFG0))
-// 		{
-// 			if (c++ == 1000000) 
-// 				alarm();
-// 		}
-// 		buffer[i] = RXBUF0;
-// 	}
-// 	CC1100_CS_HIGH;
-// }
-// 
-// void drivercc110x_load(callback_t cs_cb,callback_t paket_cb)
-// {
-// 	_paket_cb = paket_cb;
-// 	_cs_cb = cs_cb;
-// 	spi0_init(0);	
-// }
-// 
-// void drivercc110x_aftersend(void)
-// {
-//     CLEAR(P2IFG, 0x01);	
-// 	SET(P2IE, 0x01); /* Enable interrupts on port 2 pin 0 */
-// 	CLEAR(P4OUT, 0x08); /* Turn off Sending Led*/
-// }
-// 
-// void drivercc110x_initinterrupts(void)
-// {
-// 	_DINT(); /* Disable all interrupts */
-// 	P2SEL = 0x00; /* must be <> 1 to use interrupts */
-// 	SET(P2IES, 0x01); /* Enables external interrupt on low edge (for GDO2) */
-// 	SET(P2IE, 0x01); /* Enable interrupt */
-//     CLEAR(P2IFG, 0x01); /* Clears the interrupt flag */
-// 	CLEAR(P2IE, 0x02); /* Disable interrupt for GDO0 */
-// 	CLEAR(P2IFG, 0x02); /* Clear IFG for GDO0 */
-// 	_EINT(); /* Enable all interrupts */
-// }
-// 
-// void drivercc110x_beforesend(void)
-// {
-// 	/* Turn on Led while sending paket for debug reasons */
-// 	SET(P4OUT, 0x08);
-// 	/* Disable interrupts on port 2 pin 0 */
-// 	CLEAR(P2IE, 0x01);
-// }
-// 
-// 
-// /*
-//  * Private functions
-//  */
-// 
-// 
-
-/*
- * CC1100 receive interrupt
- */
-interrupt (PORT2_VECTOR) __attribute__ ((naked)) cc110x_isr(void){
-    __enter_isr();
-puts("cc110x_isr()");
-//	if (system_state.POWERDOWN) SPI_INIT; /* Initialize SPI after wakeup */
- 	/* Check IFG */
-	if ((P2IFG & 0x01) != 0) {
-		P2IFG &= ~0x01;
-		cc110x_gdo2_irq();
-	}
-	else if ((P2IFG & 0x02) != 0) {
-        cc110x_gdo0_irq();
-		P2IE &= ~0x02;	            // Disable interrupt for GDO0
-   		P2IFG &= ~0x02;	            // Clear IFG for GDO0
-	} else {
-        puts("cc110x_isr(): unexpected IFG!");
-		/* Should not occur - only Port 2 Pin 0 interrupts are enabled */
-//		CLEAR(P2IFG, 0xFF);	/* Clear all flags */
-	}
-//	if (system_state.POWERDOWN != 0) END_LPM3;
-	__exit_isr();
-}
diff --git a/board/msb-430h/include/board.h b/board/msb-430h/include/board.h
deleted file mode 100644
index d9634d6b4d465ec5762ec214f9500d8c2f18dd6c..0000000000000000000000000000000000000000
--- a/board/msb-430h/include/board.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/******************************************************************************
-Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-#ifndef _MSB_BOARD_H
-#define _MSB_BOARD_H
-
-/**
- * @defgroup	msb_430h		ScatterWeb MSB-430H
- * @ingroup		msp430
- *
-<h2>Compontents</h2>
-\li MSP430
-\li CC1100
-
-* @{
-*/
-
-/**
- * @file
- * @brief		MSB-430H Board
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @version     $Revision$
- *
- * @note		$Id$
- */
-
-//MSB430 core
-#define MSP430_INITIAL_CPU_SPEED    7372800uL
-#define MSP430_HAS_DCOR             1
-#define MSP430_HAS_EXTERNAL_CRYSTAL 1
-
-/* LEDs ports MSB430 */
-#define LEDS_PxDIR P5DIR
-#define LEDS_PxOUT P5OUT
-#define LEDS_CONF_RED		0x80
-#define LEDS_CONF_GREEN		0x00
-#define LEDS_CONF_YELLOW	0x00
-
-#define LED_RED_ON      LEDS_PxOUT &=~LEDS_CONF_RED
-#define LED_RED_OFF     LEDS_PxOUT |= LEDS_CONF_RED
-#define LED_RED_TOGGLE     LEDS_PxOUT ^= LEDS_CONF_RED
-
-#include <msp430x16x.h>
-
-/** @} */
-#endif // _MSB_BOARD_H
diff --git a/board/msba2-common/Jamfile b/board/msba2-common/Jamfile
deleted file mode 100644
index ff9a8ccd4ce251cbc13064d97036ecc47c0ebb61..0000000000000000000000000000000000000000
--- a/board/msba2-common/Jamfile
+++ /dev/null
@@ -1,7 +0,0 @@
-SubDir TOP board msba2-common ;
-
-Module board_common : board_common_init.c ;
-Module board_config : board_config.c ;
-
-SubInclude TOP board msba2-common drivers ;
-
diff --git a/board/msba2-common/Jamfile.msba2 b/board/msba2-common/Jamfile.msba2
deleted file mode 100644
index e9e291c906e00d647fce3a728d2754405227f558..0000000000000000000000000000000000000000
--- a/board/msba2-common/Jamfile.msba2
+++ /dev/null
@@ -1,30 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-Module msba2_common : board_init.c ;
-
-include [ FPath $(TOP) cpu arm_common Jamfile.arm_common ] ;
diff --git a/board/msba2-common/Jamrules.msba2 b/board/msba2-common/Jamrules.msba2
deleted file mode 100644
index 1bce8075c4459b589937e1274379e1e2eb6276b9..0000000000000000000000000000000000000000
--- a/board/msba2-common/Jamrules.msba2
+++ /dev/null
@@ -1,34 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-CPU = lpc2387 ;
-
-HDRS += [ FPath $(TOP) board msba2-common include ] ;
-HDRS += [ FPath $(TOP) board msba2-common drivers include ] ;
-
-FLASHER ?= $(POSIXSHELL) lpc2k_pgm ;
-FLASHFLAGS ?= "$(PORT)" ;
diff --git a/board/msba2-common/board_common_init.c b/board/msba2-common/board_common_init.c
deleted file mode 100644
index 8d7c35962512919adbf237b54bc140df161e0aba..0000000000000000000000000000000000000000
--- a/board/msba2-common/board_common_init.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/******************************************************************************
-Copyright 2008-2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-    http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-    scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-/**
- * @ingroup msba2
- * @{
- */
-
-/**
- * @file
- * @brief       MSB-A2 board initialization
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @author      Heiko Will
- * @author      Kaspar Schleiser
- * @author      Michael Baar <baar@inf.fu-berlin.de>
- *
- * @note        $Id$
- */
-#include <board.h>
-#include <lpc23xx.h>
-#include <VIC.h>
-#include <cpu.h>
-#include <config.h>
-#include <string.h>
-#include <flashrom.h>
-
-#define PCRTC         BIT9
-#define CL_CPU_DIV    4
-
-/*---------------------------------------------------------------------------*/
-/**
- * @brief   Enabling MAM and setting number of clocks used for Flash memory fetch
- * @internal
- */
-static void
-init_mam(void)
-{
-    MAMCR  = 0x0000;
-    MAMTIM = 0x0003;
-    MAMCR  = 0x0002;
-}
-/*---------------------------------------------------------------------------*/
-static inline void
-pllfeed(void)
-{
-    PLLFEED = 0xAA;
-    PLLFEED = 0x55;
-}
-/*---------------------------------------------------------------------------*/
-void init_clks1(void)
-{
-    // Disconnect PLL
-    PLLCON &= ~0x0002;
-    pllfeed();
-
-    // Disable PLL
-    PLLCON &= ~0x0001;
-    pllfeed();
-
-    SCS |= 0x20;                        // Enable main OSC
-    while( !(SCS & 0x40) );             // Wait until main OSC is usable
-
-    /* select main OSC, 16MHz, as the PLL clock source */
-    CLKSRCSEL = 0x0001;
-
-    // Setting Multiplier and Divider values
-    PLLCFG = 0x0008;                    // M=9 N=1 Fcco = 288 MHz
-    pllfeed();
-
-    // Enabling the PLL */
-    PLLCON = 0x0001;
-    pllfeed();
-
-    /* Set clock divider to 4 (value+1) */
-    CCLKCFG = CL_CPU_DIV - 1;           // Fcpu = 72 MHz
-
-#if USE_USB
-    USBCLKCFG = USBCLKDivValue;     /* usbclk = 288 MHz/6 = 48 MHz */
-#endif
-}
-
-void init_clks2(void){
-    // Wait for the PLL to lock to set frequency
-    while(!(PLLSTAT & BIT26));
-
-    // Connect the PLL as the clock source
-    PLLCON = 0x0003;
-    pllfeed();
-
-    /* Check connect bit status */
-    while (!(PLLSTAT & BIT25));
-}
-
-void bl_init_clks(void)
-{
-    PCONP = PCRTC;          // switch off everything except RTC
-    init_clks1();
-    init_clks2();
-    init_mam();
-}
-
diff --git a/board/msba2-common/board_config.c b/board/msba2-common/board_config.c
deleted file mode 100644
index 496a07796173cd46f5f8d37adf42861c1b219149..0000000000000000000000000000000000000000
--- a/board/msba2-common/board_config.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <stdint.h>
-#include <string.h>
-#include <config.h>
-#include <flashrom.h>
-
-void config_load(void) {
-    extern char configmem[];
-    /* cast it here for strict-aliasing */
-    uint16_t* tmp = (uint16_t*) configmem;
-    if (*tmp ==  CONFIG_KEY) {
-        memcpy(&sysconfig, (configmem + sizeof(CONFIG_KEY)), sizeof(sysconfig));
-    }
-    else {
-        config_save();
-    }
-}
-
-uint8_t config_save(void) {
-    configmem_t mem = { CONFIG_KEY, sysconfig  };
-    return (flashrom_erase((uint8_t*) &configmem) && flashrom_write((uint8_t*) &configmem, (char*) &mem, sizeof(mem)));
-}
diff --git a/board/msba2-common/drivers/Jamfile b/board/msba2-common/drivers/Jamfile
deleted file mode 100644
index ed8e73498ac75e5b2080a79139c5d224b55fd2db..0000000000000000000000000000000000000000
--- a/board/msba2-common/drivers/Jamfile
+++ /dev/null
@@ -1,6 +0,0 @@
-SubDir TOP board msba2-common drivers ;
-
-Module board_cc110x : msba2-cc110x.c : cc110x_spi gpioint ;
-Module board_ltc4150 : msba2-ltc4150.c : gpioint ;
-Module board_uart : msba2-uart0.c : chardev_thread ringbuffer ;
-
diff --git a/board/msba2-common/drivers/include/sht11-board.h b/board/msba2-common/drivers/include/sht11-board.h
deleted file mode 100644
index c35fb00788bde78fde1a15b5c1cd99255cdbda7b..0000000000000000000000000000000000000000
--- a/board/msba2-common/drivers/include/sht11-board.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/******************************************************************************
-Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-#ifndef SHT11BOARD_H_
-#define SHT11BOARD_H_
-
-/**
- * @ingroup		lpc2387
- * @{
- */
-
-/**
- * @file
- * @brief		LPC2387 SHT11 Device Driver
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @version     $Revision$
- *
- * @note		$Id$
- */
-
-#include <lpc23xx.h>
-#include <board.h>
-
-#define SHT11_SCK_LOW	FIO1CLR = BIT25;	// serial clock line low
-#define SHT11_SCK_HIGH	FIO1SET = BIT25;    // serial clock line high
-#define SHT11_DATA		((FIO1PIN & BIT26) != 0)				// read serial I/O
-#define SHT11_DATA_LOW	(FIO1CLR = BIT26); 	// serial I/O line low
-#define SHT11_DATA_HIGH	(FIO1SET = BIT26);  // serial I/O line high
-#define SHT11_DATA_IN	(FIO1DIR &= ~BIT26)						// serial I/O as input
-#define SHT11_DATA_OUT	(FIO1DIR |= BIT26)						// serial I/O as output
-#define SHT11_INIT		FIO1DIR |= BIT25; PINSEL3 &= ~(BIT14|BIT15 | BIT16|BIT17);
-
-/** @} */
-#endif /* SHT11BOARD_H_ */
diff --git a/board/msba2-common/drivers/include/uart0.h b/board/msba2-common/drivers/include/uart0.h
deleted file mode 100644
index 0c580becc23d9c09da4ac9d830d7ce4e2298658e..0000000000000000000000000000000000000000
--- a/board/msba2-common/drivers/include/uart0.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __UART0_H
-#define __UART0_H 
-
-#define UART0_BUFSIZE 32
-
-extern int uart0_handler_pid;
-
-#endif /* __UART0_H */
diff --git a/board/msba2-common/drivers/msba2-cc110x.c b/board/msba2-common/drivers/msba2-cc110x.c
deleted file mode 100644
index b0a58544464e0e5c0df2361d01bfbefd5b73d2c5..0000000000000000000000000000000000000000
--- a/board/msba2-common/drivers/msba2-cc110x.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/******************************************************************************
-Copyright 2008, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-/**
- * @file
- * @ingroup		LPC2387
- * @brief		CC1100 LPC2387 dependend functions
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @author		Heiko Will <hwill@inf.fu-berlin.de>
- * @author		Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
- * @version     $Revision: 1781 $
- *
- * @note    	$Id: msba2-cc110x.c 1781 2010-01-26 13:39:36Z hillebra $
- */
-
-#include <stdio.h>
-#include <stddef.h>
-// core
-#include <cpu.h>
-#include <irq.h>
-// sys
-#include <cc110x_ng.h>
-#include <cc110x-arch.h>
-#include <cc110x_spi.h>
-#include <gpioint.h>
-
-#define CC1100_GDO0         (FIO0PIN & BIT27)	// read serial I/O (GDO0)
-#define CC1100_GDO1         (FIO1PIN & BIT23)	// read serial I/O (GDO1)
-#define CC1100_GDO2         (FIO0PIN & BIT28)	// read serial I/O (GDO2)
-
-#define SPI_TX_EMPTY				(SSP0SR & SSPSR_TFE)
-#define SPI_BUSY					(SSP0SR & SSPSR_BSY)
-#define SPI_RX_AVAIL				(SSP0SR & SSPSR_RNE)
-
-#define CC1100_GDO1_LOW_RETRY		 (100)		// max. retries for GDO1 to go low
-#define CC1100_GDO1_LOW_COUNT		(2700)		// loop count (timeout ~ 500 us) to wait
-												// for GDO1 to go low when CS low
-
-//#define DEBUG
-#ifdef DEBUG
-
-#include "stdio.h"
-
-static unsigned long time_value;
-
-static void set_time(void) {
-	time_value = 0;
-}
-
-static int test_time(int code) {
-	time_value++;
-	if (time_value > 10000000) {
-		printf("CC1100 SPI alarm: %u!\n", code);
-		time_value = 0;
-		return 1;
-	}
-	return 0;
-}
-#endif
-
-int cc110x_get_gdo0(void) {
-	return 	CC1100_GDO0;
-}
-
-int cc110x_get_gdo1(void) {
-	return 	CC1100_GDO1;
-}
-
-int cc110x_get_gdo2(void) {
-	return 	CC1100_GDO2;
-}
-
-void cc110x_spi_init(void)
-{
-	// configure chip-select
-	FIO1DIR |= BIT21;
-	FIO1SET = BIT21;
-
-	// Power
-	PCONP |= PCSSP0;								// Enable power for SSP0 (default is on)
-
-	// PIN Setup
-	PINSEL3 |= BIT8 + BIT9; 						// Set CLK function to SPI
-	PINSEL3 |= BIT14 + BIT15;						// Set MISO function to SPI
-	PINSEL3 |= BIT16 + BIT17; 						// Set MOSI function to SPI
-
-	// Interface Setup
-	SSP0CR0 = 7;
-
-	// Clock Setup
-	uint32_t pclksel;
-	uint32_t cpsr;
-	lpc2387_pclk_scale(F_CPU/1000, 6000, &pclksel, &cpsr);
-	PCLKSEL1 &= ~(BIT10|BIT11);						// CCLK to PCLK divider
-	PCLKSEL1 |= pclksel << 10;
-	SSP0CPSR = cpsr;
-
-	// Enable
-	SSP0CR1 |= BIT1; 								// SSP-Enable
-	int dummy;
-	// Clear RxFIFO:
-	while( SPI_RX_AVAIL ) {						// while RNE (Receive FIFO Not Empty)...
-		dummy = SSP0DR;							// read data
-	}
-    /* to suppress unused-but-set-variable */
-    (void) dummy;
-}
-
-uint8_t cc110x_txrx(uint8_t c) {
-	uint8_t result;
-	SSP0DR = c;
-#ifdef DEBUG
-	set_time();
-#endif
-	while (!SPI_TX_EMPTY) {
-#ifdef DEBUG
-		test_time(0);
-#endif
-	}
-#ifdef DEBUG
-	set_time();
-#endif
-	while (SPI_BUSY) {
-#ifdef DEBUG
-		test_time(1);
-#endif
-	}
-#ifdef DEBUG
-	set_time();
-#endif
-	while (!SPI_RX_AVAIL) {
-#ifdef DEBUG
-		test_time(2);
-#endif
-	}
-	result = (uint8_t)SSP0DR;
-	return result;
-}
-
-void cc110x_spi_cs(void)
-{
-	FIO1CLR = BIT21;
-}
-
-void
-cc110x_spi_select(void)
-{
-	volatile int retry_count = 0;
-	volatile int abort_count;
-	// Switch to GDO mode input
-	PINSEL3 &= ~(BIT14 + BIT15);// Set MISO function to GPIO
-	FIO1DIR &= ~BIT23;
-	cs_low:
-	// CS to low
-	abort_count = 0;
-	FIO1CLR = BIT21;
-	// Wait for SO to go low (voltage regulator
-	// has stabilized and the crystal is running)
-	loop:
-	asm volatile ("nop");
-	if (CC1100_GDO1) {
-		abort_count++;
-		if (abort_count > CC1100_GDO1_LOW_COUNT) {
-			retry_count++;
-			if (retry_count > CC1100_GDO1_LOW_RETRY) {
-				puts("[CC1100 SPI] fatal error\n");
-				goto final;
-			}
-			FIO1SET = BIT21;	// CS to high
-			goto cs_low;		// try again
-		}
-		goto loop;
-	}
-	final:
-	// Switch to SPI mode
-	PINSEL3 |= (BIT14 + BIT15);	// Set MISO function to SPI
-}
-
-void
-cc110x_spi_unselect(void)
-{
-	FIO1SET = BIT21;
-}
-
-void cc110x_before_send(void)
-{
-	// Disable GDO2 interrupt before sending packet
-	cc110x_gdo2_disable();
-}
-
-void cc110x_after_send(void)
-{
-	// Enable GDO2 interrupt after sending packet
-	cc110x_gdo2_enable();
-}
-
-void cc110x_gdo0_enable(void) {
-    gpioint_set(0, BIT27, GPIOINT_RISING_EDGE, &cc110x_gdo0_irq);
-}
-
-void cc110x_gdo0_disable(void) {
-	gpioint_set(0, BIT27, GPIOINT_DISABLE, NULL);
-}
-
-void cc110x_gdo2_disable(void) {
-	gpioint_set(0, BIT28, GPIOINT_DISABLE, NULL);
-}
-
-void cc110x_gdo2_enable(void) {
-	gpioint_set(0, BIT28, GPIOINT_FALLING_EDGE, &cc110x_gdo2_irq);
-}
-
-void cc110x_init_interrupts(void)
-{
-    // Enable external interrupt on low edge (for GDO2)
-	FIO0DIR &= ~BIT28;
-	cc110x_gdo2_enable();
-	// Enable external interrupt on low edge (for GDO0)
-	FIO0DIR &= ~BIT27;
-}
diff --git a/board/msba2-common/drivers/msba2-ltc4150.c b/board/msba2-common/drivers/msba2-ltc4150.c
deleted file mode 100644
index 4e6534c02230f74a1b3e08e91315c72c4734c2ee..0000000000000000000000000000000000000000
--- a/board/msba2-common/drivers/msba2-ltc4150.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/******************************************************************************
-Copyright 2008-2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-/**
- * @ingroup		msba2
- * @ingroup		ltc4150
- * @{
- */
-
-/**
- * @file
- * @brief		LTC4150 MSB-A2 specific implemetation
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @author		Heiko Will
- * @author		Michael Baar
- * @author      Kaspar Schleiser <kaspar.schleiser@fu-berlin.de>
- */
-
-#include <stdio.h>
-#include "lpc2387.h"
-#include "ltc4150_arch.h"
-#include "gpioint.h"
-
-void __attribute__((__no_instrument_function__)) ltc4150_disable_int(void) {
-	gpioint_set(0, BIT4, GPIOINT_DISABLE, NULL);
-}
-
-void __attribute__((__no_instrument_function__)) ltc4150_enable_int(void) {
-	gpioint_set(0, BIT4, GPIOINT_FALLING_EDGE, &ltc4150_interrupt);
-}
-
-void __attribute__((__no_instrument_function__)) ltc4150_sync_blocking(void) {
-	while(!(FIO0PIN & BIT4)) {};
-}
-
-void __attribute__((__no_instrument_function__)) ltc4150_arch_init() {
-    FIO0DIR |= BIT5;
-	FIO0SET = BIT5;
-}
-
-/** @} */
diff --git a/board/msba2-common/drivers/msba2-uart0.c b/board/msba2-common/drivers/msba2-uart0.c
deleted file mode 100644
index ccfc6d8e04cb534c66fef83f5fa16612ab7c9b62..0000000000000000000000000000000000000000
--- a/board/msba2-common/drivers/msba2-uart0.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/******************************************************************************
-Copyright 2008-2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-    http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-    scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-/*
- * debug_uart.c: provides initial serial debug output
- *
- * Copyright (C) 2008, 2009  Kaspar Schleiser <kaspar@schleiser.de>
- *                           Heiko Will <hwill@inf.fu-berlin.de>
- */
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include "lpc23xx.h"
-#include "VIC.h"
-#include <kernel.h>
-
-#include <board_uart0.h>
-
-/**
- * @file
- * @ingroup     lpc2387
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @version     $Revision$
- *
- * @note    $Id$
- */
-
-typedef struct toprint_t {
-    unsigned int len;
-    char content[];
-}toprint_t;
-
-#define QUEUESIZE 255
-static volatile toprint_t* queue[QUEUESIZE];
-static volatile unsigned char queue_head = 0;
-static volatile unsigned char queue_tail = 0;
-static volatile unsigned char queue_items = 0;
-
-static volatile unsigned int actual_pos = 0;
-static volatile unsigned int running = 0;
-static volatile unsigned int fifo = 0;
-
-static volatile toprint_t* actual = NULL;
-
-static inline void enqueue(void) {
-    queue_items++;
-    queue_tail++;
-}
-
-static inline void dequeue(void) {
-    actual = (queue[queue_head]);
-    queue_items--;
-    queue_head++;
-}
-
-static void  push_queue(void) {
-    running = 1;
-	lpm_prevent_sleep |= LPM_PREVENT_SLEEP_UART;
-start:
-    if (!actual) {
-        if (queue_items) {
-            dequeue();
-        } else {
-            running = 0;
-            lpm_prevent_sleep &= ~LPM_PREVENT_SLEEP_UART;
-            if (!fifo)
-                while(!(U0LSR & BIT6)){};
-            return;
-        }
-    }
-    while ((actual_pos < actual->len)  && (fifo++ < 16)){
-        U0THR = actual->content[actual_pos++];
-    }
-    if (actual_pos == actual->len) {
-        free((void*)actual);
-        actual = NULL;
-        actual_pos = 0;
-        goto start;
-    }
-}
-
-int uart_active(void){
-    return (running || fifo);
-}
-
-void stdio_flush(void)
-{
-    U0IER &= ~BIT1;                             // disable THRE interrupt
-    while(running) {
-        while(!(U0LSR & (BIT5|BIT6))){};        // transmit fifo
-        fifo=0;
-        push_queue();                           // dequeue to fifo
-    }
-    U0IER |= BIT1;                              // enable THRE interrupt
-}
-
-void UART0_IRQHandler(void) __attribute__((interrupt("IRQ")));
-void UART0_IRQHandler(void)
-{
-    int iir;
-    iir = U0IIR;
-
-    switch(iir & UIIR_ID_MASK) {
-        case UIIR_THRE_INT:               // Transmit Holding Register Empty
-            fifo=0;
-            push_queue();
-            break;
-
-        case UIIR_CTI_INT:                // Character Timeout Indicator
-        case UIIR_RDA_INT:                // Receive Data Available
-#ifdef MODULE_UART0
-            if (uart0_handler_pid) {
-                do {
-                    int c = U0RBR;
-                    uart0_handle_incoming(c);
-                } while (U0LSR & ULSR_RDR);
-                uart0_notify_thread();
-            }
-#endif
-            break;
-        default:
-            U0LSR;
-            U0RBR;
-            break;
-    } // switch
-    VICVectAddr = 0;                    // Acknowledge Interrupt
-}
-
-static inline int uart0_puts(char *astring,int length)
-{
-/*    while (queue_items == (QUEUESIZE-1)) {} ;
-    U0IER = 0;
-    queue[queue_tail] = malloc(length+sizeof(unsigned int));
-    queue[queue_tail]->len = length;
-    memcpy(&queue[queue_tail]->content,astring,length);
-    enqueue();
-    if (!running)
-        push_queue();
-    U0IER |= BIT0 | BIT1;       // enable RX irq
-*/
-    /* alternative without queue:*/
-    int i;
-    for (i=0;i<length;i++) {
-            while (!(U0LSR & BIT5));
-            U0THR = astring[i];
-    }
-/*    */
-
-    return length;
-}
-
-int fw_puts(char *astring,int length)
-{
-    return uart0_puts(astring, length);
-}
-
-int
-bl_uart_init(void)
-{
-    PCONP |= PCUART0;                               // power on
-
-    // UART0 clock divider is CCLK/8
-    PCLKSEL0 |= BIT6 + BIT7;
-
-    U0LCR = 0x83;                                   // 8 bits, no Parity, 1 Stop bit
-
-    // TODO: UART Baudrate calculation using uart->config->speed
-    /*
-     * Baudrate calculation
-     * BR = PCLK (9 MHz) / (16 x 256 x DLM + DLL) x (1/(DIVADDVAL/MULVAL))
-     */
-    U0FDR = 0x92;       // DIVADDVAL = 0010 = 2, MULVAL = 1001 = 9
-    U0DLM = 0x00;
-    U0DLL = 0x04;
-
-    U0LCR = 0x03;       // DLAB = 0
-    U0FCR = 0x07;       // Enable and reset TX and RX FIFO
-
-    /* irq */
-    install_irq(UART0_INT, UART0_IRQHandler, 6);
-    U0IER |= BIT0;       // enable only RX irq
-    return 1;
-}
-
diff --git a/board/msba2-common/include/msba2_common.h b/board/msba2-common/include/msba2_common.h
deleted file mode 100644
index fff12f965d0e95c0d75af51a08d7dfd4ca31be30..0000000000000000000000000000000000000000
--- a/board/msba2-common/include/msba2_common.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/******************************************************************************
-Copyright 2008, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-#ifndef __MSBA2_COMMON_H
-#define __MSBA2_COMMON_H
-
-/**
- * @ingroup		msb_a2
- * @{
- */
-
-/**
- * @file
- * @brief		MSB-A2 Common Board Definitions
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @author		Kaspar Schleiser <kaspar@schleiser.de>
- * @version     $Revision$
- *
- * @note		$Id$
- */
-
-#include <lpc2387.h>
-
-#define VICIntEnClear VICIntEnClr
-
-/** @} */
-#endif // __MSBA2_COMMON_H
diff --git a/board/msba2-common/lpc2387-timer3.c b/board/msba2-common/lpc2387-timer3.c
deleted file mode 100644
index 8978390e9a9c7e4cdd30385684943b903fd475f0..0000000000000000000000000000000000000000
--- a/board/msba2-common/lpc2387-timer3.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * lpc2387_timer0.c
- *
- *  Created on: 13.01.2009
- *      Author: heiko
- */
-
-#include <stdint.h>
-#include <stdio.h>
-#include "lpc2387.h"
-#include "benchmark.h"
-
-void  benchmark_init(void)
-{
-	PCLKSEL1 = (PCLKSEL1 & ~(BIT14|BIT15)) | (1 << 14);	// CCLK to PCLK divider
-	PCONP |= PCTIM3;
-	T3TCR = 0;											// disable timer
-	T3MCR = 0;											// disable interrupt
-	T3CCR = 0;											// capture is disabled.
-	T3EMR = 0;											// no external match output.
-	T3PR = 0;											// set prescaler
-	T3TC = 0;											// reset counter
-}
-
-void  benchmark_reset_start(void)
-{
-	T3TCR = 0;												// disable timer
-	T3TC = 0;												// reset counter
-	T3TCR = BIT0;
-}
-
-unsigned int  benchmark_read_stop(void)
-{
-	T3TCR = 0;												// disable timer
-	return T3TC;
-}
-
diff --git a/board/msba2-common/tools/CHANGES b/board/msba2-common/tools/CHANGES
deleted file mode 100644
index dd9e6ec1eaa9f1d0143daf3c7df207124aa1931b..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/CHANGES
+++ /dev/null
@@ -1,23 +0,0 @@
-(heavily hacked by Heiko Will & Kaspar Schleiser since then)
-
-1.05 (9-Apr-2007)
------------------
-Added boot jump code specific to 2378 (and similar chips) to
-disable the PLL before jumping to the user's code.
-
-1.04 (19-Dec-2006)
-------------------
-Added 2364, 2366, 2368, 2378 & 2468 to list.  Untested.
-
-1.03 (2-Jun-2006)
------------------
-Added 2103 chip to chip list.  ID numbers for 2101 and 2102 unknown
-
-1.02 (31-Jul-2005)
-------------------
-Added support for other chips
-Added soft boot code
-Added user configurable crystal value (for baud sync protocol)
-
-
-
diff --git a/board/msba2-common/tools/COPYING b/board/msba2-common/tools/COPYING
deleted file mode 100644
index a43ea2126fb6b114bff5f8e003ee118e045dacf1..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                          675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	Appendix: How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    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
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/board/msba2-common/tools/Makefile b/board/msba2-common/tools/Makefile
deleted file mode 100644
index 5d4d6b9222e357d7e4cf2cb6f8b04bbeeb771f06..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-CFLAGS = -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)"
-CC = gcc
-
-all: lpc2k_pgm pseudoterm
-
-SRC  = lpc2k_pgm.c download.c uuencode.c ihex.c serial.c chipinfo.c boot_2xxx.c boot_23xx.c control_2xxx.c
-OBJS = ${addprefix obj/,${patsubst %.c,%.o,$(SRC)}}
-
-PSEUDOTERM_SRC = pseudoterm.c serial.c control_2xxx.c
-PSEUDOTERM_OBJS = ${addprefix obj/,${patsubst %.c,%.o,$(PSEUDOTERM_SRC)}}
-
-TARGETDIR = bin
-
-lpc2k_pgm: $(OBJS)
-	mkdir -p $(TARGETDIR)
-	$(CC) -o $(TARGETDIR)/lpc2k_pgm $(OBJS)
-
-pseudoterm: $(PSEUDOTERM_OBJS)
-	mkdir -p $(TARGETDIR)
-	$(CC) -o $(TARGETDIR)/pseudoterm $(PSEUDOTERM_OBJS) -lpthread 
-
-chipinfo.o: boot_2xxx.h boot_23xx.h
-
-static: $(OBJS) mkstaticlist
-	$(CC) -o $(TARGETDIR)/lpc2k_pgm $(OBJS) `./mkstaticlist`
-
-obj/%.o : src/%.c
-	$(CC) $(CFLAGS) -c $< -o $@
-
-cksum_test: cksum_test.c uuencode.o cksum_test.o
-	$(CC) $(CFLAGS) -o $(TARGETDIR)/cksum_test obj/cksum_test.o obj/uuencode.o
-
-boot_2xxx.c boot_2xxx.h: boot_2xxx.armasm mkbootc
-	arm-elf-as -o boot_2xxx.armobj boot_2xxx.armasm
-	arm-elf-objdump -d boot_2xxx.armobj | ./mkbootc boot_2xxx
-
-boot_23xx.c boot_23xx.h: src/boot_23xx.armasm mkbootc
-	arm-elf-as -o obj/boot_23xx.armobj src/boot_23xx.armasm
-	arm-elf-objdump -d obj/boot_23xx.armobj | ./mkbootc boot_23xx
-
-clean:
-	rm -f bin/lpc2k_pgm cksum_test obj/*.o core core.* obj/*.armobj bin/pseudoterm
-
-obj/gui.o: src/gui.c
-	$(CC) $(CFLAGS) `gtk-config --cflags` -c src/gui.c -o obj/gui.o
diff --git a/board/msba2-common/tools/README.txt b/board/msba2-common/tools/README.txt
deleted file mode 100644
index 8fd6adb012b8ac424c295edecf5a8200c1c8f09f..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/README.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-This utility downloads code to Philip LPC 2000 series chips, using the
-bootloader communication protocol documented in the LPC2106/2105/2104
-User Manual, Sept 2003 revision, pages 177 to 192.  This code has also
-been tested with LPC2131 and LPC2138 chips (thanks to New Micros for
-providing eval boards).  It may work with other Philips ARM LPC parts.
-
-
-
-Usage:
------
-
-When you start the program, it's small control window appears, and a
-xterm terminal window is launched.  The Xterm window allows you to
-simply leave lpc2k_pgm running and interface with the LPC uart using
-that window.  Most people configure "printf" on in their code to print
-to UART0, which will appear in this window.
-
-This program has 4 settings:
-
-Firmware:  The intel-hex file with your LPC firmware to program.
-Port:      Which serial device to use.
-Baud:      The baud rate to communicate.
-Crystal:   The speed of the crystal on your LPC board.
-
-Once you have set up these values, simply press the "Program Now"
-button to write your firmware to the LPC flash memory, and automatically
-run it.  If your firmware communicates on UART0, its messages will appear
-in the xterm window, and anything you type in that window will be
-transmitted to your board.
-
-The "Reboot" button may be used to reboot your code (assuming you have
-connected DTR appropriately).  The "Bootloader" button may be used to
-stop your code by rebooting into the bootloader, rather than your program.
-
-
-
-Hardware Requirements:
----------------------
-
-You must have a compatible Philips LPC chip with its UART0 interfaced
-to a serial port on your PC.
-
-You must be able to reset the chip and cause it to enter bootloader mode.
-Normally, this is done by connecting the (TTL level translated) DTR signal
-to the LPC reset, so that when DTR is high (the TTL version is low), the
-Philips chip is in reset mode.  Alternately, a pushbutton may be used,
-but you will need to manually press the button every time you want to get
-back into bootloader mode (while this program attempts to sync baud rates),
-rather than letting DTR do it automatically.  A few minutes spent wiring
-up your circuit so DTR can reset the board will save you much trouble as
-you develop code.
-
-P0.14 must be connected low shortly after reset.  Normally, this pin
-is just shorted to ground using a jumper.  Starting with version 1.02,
-you can simply leave this shorted to ground.  If your design needs to
-use this pin, you may also build a simple circuit that forces this pin
-to ground when RTS is high.
-
-
-
-Software Requirements:
----------------------
-
-You must have a Linux-based system running X Windows.  This code has
-been tested with Linux kernel 2.4.20 and 2.6.8, and should work with
-almost any linux system.
-
-You must have the "xterm" program installed.  Nearly all linux
-distrubtions provide this, and it is often installed by default.  If
-you do not have it, simply install from your linux distribution.
-
-Your serial port device file (usually /dev/ttyS0 or /dev/ttyS1) must
-allow permission for you to use the serial port.
-
-GTK 1.2 is used for the GUI.  Many newer systems only have GTK version
-2 (or higher).  If you have one of these systems, perhaps you can
-install GTK 1.2 (including the development libraries) to allow you to
-compile this code.  Alternately, you may be able to use the semi-static
-build, which includes a copy of this code built into the program.
-
-
-
-Building and Installation:
--------------------------
-
-This software is only provided semi-static binary and source code form.
-
-To use the semi-static binary, simply copy it to a location where you
-can run it, and change the permissions if necessary:
-
-	cp lpc2k_pgm /usr/local/bin
-	chmod 755 /usr/local/bin/lpc2k_pgm
-
-The semi-static binary has all of the GTK and X11 libraries statically
-linked into it, for maximum compatibility with all linux distributions.
-The only disadvantage is, of course, that this uses an extra 1.4 megs
-of RAM, with (might) otherwise be shared with other programs.  If you
-simply want to run this program with minimal work, using the semi-static
-binary may be the easiest way.
-
-If you compile from the source code, the result should be a small
-binary that is optimal for your system.
-
-To build from source, you must have GTK+ 1.2 development libraries
-and GCC properly installed.  Nearly all linux distributions provide
-these as packages, but you may need to install them before you can
-compile the code.
-
-TODO: specific instructions for Debian stable
-TODO: specific instructions for Debian testing/unstable
-TODO: specific instructions for Fedora
-TODO: specific instructions for Suse
-
-Simply type "make" to build the code.  The resulting "lpc2k_pgm"
-program can be run from any location.  Simply copy to /usr/local/bin,
-or where ever you like.
-
-
-
-Contact Info:
-------------
-
-Paul Stoffregen
-paul@pjrc.com
-http://www.pjrc.com/arm/lpc2k_pgm
-
-If you discover a bug, you want to request a new feature, or you have
-a new Philips LPC chip which is not recognized, please attempt to
-provide COMPLETE information in your message.
-
-If you have problems building from source, please contact me with ALL
-of the following:
-
-1: Complete copy of all messages during the build.
-2: Output of "gtk-config --version"
-3: Output of "gtk-config --libs"
-4: Output of "gtk-config --cflags"
-5: Output of "uname -a"
-6: Other info... which linux distribution, version, other software
-
-If you get "Command not found" when trying to run "gtk-config", this
-is a sure sign that you do not have GTK+ 1.2 installed.
-
-
diff --git a/board/msba2-common/tools/armtools.txt b/board/msba2-common/tools/armtools.txt
deleted file mode 100644
index c91a4853f753bc115887817bc3e57fae63c0d3b2..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/armtools.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-This directory contains flash & terminal-utilities for use with 
-the msb_av2 platform used by the FeuerWhere-Project.
-
-Usage:
-Running "./pseudoterm /dev/ttyUSB1" will start the terminal-emulator,
-open the specified port and reset the connected msb_av2-board.
-If it receives a SIGUSR2, the terminal closes the port an waits.
-On reception of a SIGUSR1, it reopens the port and resets the ARM.
-
-"./lpc2k_pgm /dev/ttyUSB1 /path/to/firmware.ihex" will do what you
-expect, but it will additionally run "killall -SIGUSR2 pseudoterm" before
-anѕ "killall -SIGUSR1 pseudoterm" after flashing.
-
-Together, the tools enable you to have a terminal connected to the board
-at all times, but let you flash whenever you feel like.
diff --git a/board/msba2-common/tools/flash.cmd b/board/msba2-common/tools/flash.cmd
deleted file mode 100755
index e957ca2b654438739ca6903b097ac6a0502449e0..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/flash.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-fm.exe "COM(%1, 230400) DEVICE(LPC2387, 16.000000) HARDWARE(BOOTEXEC, 50, 100) HIGHSPEED(0, 230400) ERASEUSED(%2, PROTECTISP) HEXFILE(%2, NOCHECKSUMS, NOFILL, PROTECTISP) RESET"
-sleep 2
diff --git a/board/msba2-common/tools/flashutil.sh b/board/msba2-common/tools/flashutil.sh
deleted file mode 100755
index c97d7c9a6322223137e3e687e546c55f5563f737..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/flashutil.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#/bin/bash
-
-linux_checkid() {
-    udevinfo -a -n ${1} | grep -q "ATTRS{product}==\"${2}\""
-}
-
-windows_flash_fm() {
-	echo "Checking FTDI device on COM${1}"
-	PORTINFO=`${BASEDIR}/../../../tools/windows/ftdiinfo/bin/Debug/ftdiinfo.exe /l COM${1}`
-	PORTCHECK=`echo ${PORTINFO} | awk '{ print $1 }'`
-	BOARDCHECK=`echo ${PORTINFO} | awk '{ print $3 }'`
-	SERIAL=`echo ${PORTINFO} | awk '{ print $2 }'`
-	if [ "${PORTCHECK}" != "COM${1}" ]; then
-		echo "  port mismatch / ftdiinfo failed"
-		exit 1
-	fi
-	if [ "${BOARDCHECK}" != "\"${FTDI_ID}\"" ]; then
-		echo "  target mismatch: target board is \"${FTDI_ID}\", connected is ${BOARDCHECK}"
-		exit 1
-	fi
-	
-	echo "Flashing ${HEXFILE} to COM${1} (${BOARDCHECK} serial ${SERIAL})"
-	# Using FlashMagic on Windows (in separate window)
-	cmd /C start "FlashMagic ${HEXFILE} to ${BOARDCHECK} on COM${1}" fm.exe "COM(${1}, 230400) DEVICE(LPC2387, 16.000000) HARDWARE(BOOTEXEC, 50, 100) HIGHSPEED(0, 230400) ERASEUSED(${HEXFILE}, PROTECTISP) HEXFILE(${HEXFILE}, NOCHECKSUMS, NOFILL, PROTECTISP) RESET"
-}
-
-windows_flash_openocd() {
-	echo "Flashing ${HEXFILE} through JTAG"
-	# Using OpenOcd on Windows
-	#cmd /C start "OpenOCD ${HEXFILE} to ${BOARDCHECK}"
-	bash -x ${OPENOCD} ${OPENOCD_IF} "mt_flash ${HEXFILE}; reset run; shutdown"
-}
-
-TEMP=`getopt -a -o b:i:p:f:: --long basedir:,id:,ports:,file:,openocd:,openocd-if:,xxx:: \
-     -n 'flashutil.sh' -- "$@"`
-
-if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
-	echo $1: $2
-	case "$1" in
-		-b|--basedir)	BASEDIR=$2 ; shift 2 ;;
-		-i|--id)		FTDI_ID=$2; shift 2 ;;
-		-p|--ports)		PORTS=`echo $2 | sed -e 's:,: :g'`; shift 2 ;;
-		--openocd)		OPENOCD=$2; shift 2 ;;
-		--openocd-if)	OPENOCD_IF=$2; shift 2 ;;
-
-		--) HEXFILE=$2 ; shift ; break ;;
-		*) echo "Internal error!" ; exit 1 ;;
-	esac
-done
-
-if [ "${OS}" = "Windows_NT" ]; then
-	WINDOWS=1
-fi
-
-FLASHUTIL_SHELL=${FLASHUTIL_SHELL:-"xterm -e"}
-
-if [ "x${WINDOWS}x" = "xx" ]; then
-	echo Pausing terminal
-	${BASEDIR}/termctrl.sh pause
-else
-	HEXFILE=`echo ${HEXFILE} | sed -e 's:/:\\\\:g'`
-	BASEDIRWIN=`echo ${BASEDIR} | sed -e 's:/:\\\\:g'`
-fi
-
-pids=""
-
-#
-# for OpenOCD let the user verify, that the correct board is connected
-#
-if [ ${PORTS} = "openocd" ]; then
-	[ "$OPENOCD" != "" ] || exit 1
-	[ "$OPENOCD_IF" != "" ] || exit 1
-#    echo -n "Is the board connected to the JTAG a '${FTDI_ID}' (y/n)? " 
-#	read REPLY
-#	[ "$REPLY" = "y" ] || exit 1
-fi
-#
-# start a flasher for each port
-#
-for PORT in $PORTS; do
-	if [ "x${WINDOWS}x" != "xx" ]; then
-		if [ "${PORT}" = "openocd" ]; then
-			windows_flash_openocd
-		else
-			windows_flash_fm ${PORT}
-		fi
-	else
-		if [ "${PORT}" = "openocd" ]; then
-			${OPENOCD} ${OPENOCD_IF} "mt_flash ${HEXFILE}; reset run; shutdown"
-		else
-		echo Flashing ${HEXFILE} to ${PORT}
-		# using homemade lpc2k_pgm else
-	    	${FLASHUTIL_SHELL} "${BASEDIR}/bin/lpc2k_pgm ${PORT} ${HEXFILE}; sleep 2" &
-		    pids="${pids} $!"
-        fi
-	fi
-done
-
-### wait for all flasher processes to finish
-echo Waiting until all devices have been programmed...
-for pid in "${pids}"; do
-	wait ${pid}
-done
-
-if [ "x${WINDOWS}x" = "xx" ]; then
-	echo Resuming terminal
-	${BASEDIR}/termctrl.sh continue
-fi
diff --git a/board/msba2-common/tools/mkbootc b/board/msba2-common/tools/mkbootc
deleted file mode 100644
index 4c0d9554dcd7432137a8ac14535b7eb5ac4ecec8..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/mkbootc
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /usr/bin/perl
-
-$h = '[0-9A-Fa-f]';
-$n = 1;
-while (<stdin>) {
-	next unless /^\s*$h+:\s+($h{8})/;
-	$data[$n++] = "0x$1";
-}
-$data[0] = $n;
-#$size = $ARGV[0];
-#$size =~ tr/a-z/A-Z/;
-#$size .= '_SIZE';
-
-open H, ">$ARGV[0].h" or die "unable to write boot.h\n";
-print H "/* automatically generated from $ARGV[0].armasm */\n";
-#print H "#define $size $n\n";
-print H "extern const unsigned int ${ARGV[0]}[];\n";
-close H;
-
-open C, ">$ARGV[0].c" or die "unable to write boot.c\n";
-print C "/* automatically generated from $ARGV[0].armasm */\n";
-print C "#include \"$ARGV[0].h\"\n";
-print C "const unsigned int ${ARGV[0]}[] = {\n";
-print C "\t", join(', ', @data), "\n";
-print C "};\n";
-close C;
-
-
diff --git a/board/msba2-common/tools/mkstaticlist b/board/msba2-common/tools/mkstaticlist
deleted file mode 100644
index 4ad31030ca512d89bce250f5fe29d162c0207e90..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/mkstaticlist
+++ /dev/null
@@ -1,47 +0,0 @@
-#! /usr/bin/perl
-
-@arg = split(/\s+/, `gtk-config --libs`);
-
-%liblist = (
-	'libgtk.a',	'/usr/lib/libgtk.a',
-	'libgdk.a',	'/usr/lib/libgdk.a',
-	'libgmodule.a',	'/usr/lib/libgmodule.a',
-	'libglib.a',	'/usr/lib/libglib.a',
-	'libXi.a',	'/usr/X11R6/lib/libXi.a',
-	'libXext.a',	'/usr/X11R6/lib/libXext.a',
-	'libX11.a',	'/usr/X11R6/lib/libX11.a'
-);
-
-
-for ($i=0; $i<@arg; $i++) {
-	$a = $arg[$i];
-	next if $a eq '-rdynamic';  # always delete -rdynamic
-	if (($a eq '-lm') || ($a eq '-ldl') || ($a =~ /^-L/)) {
-		# a few things we never change
-		print "$a ";
-		next;
-	}
-	if ($a =~ /^-l/) {
-		$lib = $';
-		$lib = 'lib' . $lib . '.a';
-		# first check if it's in the known location
-		if (-f $liblist{$lib}) {
-			print $liblist{$lib}, " ";
-			next;
-		}
-		# resort to trying whereis to find it
-		@source = split(/\s+/, `whereis $lib`);
-		undef($static);
-		for ($j=0; $j<@source; $j++) {
-			$static = $source[$j] if $source[$j] =~ /$lib$/;
-		}
-		# if we found a static lib, use it.
-		if ($static) {
-			print $static, " ";
-		} else {
-			print $a, " ";
-		}
-	}
-}
-print "\n";
-
diff --git a/board/msba2-common/tools/obj/boot_23xx.d b/board/msba2-common/tools/obj/boot_23xx.d
deleted file mode 100644
index e45338d65153e3ecd27597cd6542c67892c1f20d..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/boot_23xx.d
+++ /dev/null
@@ -1,3 +0,0 @@
-obj/boot_23xx.d: src/boot_23xx.c src/boot_23xx.h
-
-src/boot_23xx.h:
diff --git a/board/msba2-common/tools/obj/boot_2xxx.d b/board/msba2-common/tools/obj/boot_2xxx.d
deleted file mode 100644
index e0e9fb40daa6b77ad8f6c2edceaf4021f75c215c..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/boot_2xxx.d
+++ /dev/null
@@ -1,3 +0,0 @@
-obj/boot_2xxx.d: src/boot_2xxx.c src/boot_2xxx.h
-
-src/boot_2xxx.h:
diff --git a/board/msba2-common/tools/obj/chipinfo.d b/board/msba2-common/tools/obj/chipinfo.d
deleted file mode 100644
index b695e68c42cb59fc53d0b13b869d502e02d3c61c..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/chipinfo.d
+++ /dev/null
@@ -1,8 +0,0 @@
-obj/chipinfo.d: src/chipinfo.c src/chipinfo.h src/boot_2xxx.h \
- src/boot_23xx.h
-
-src/chipinfo.h:
-
-src/boot_2xxx.h:
-
-src/boot_23xx.h:
diff --git a/board/msba2-common/tools/obj/control_2xxx.d b/board/msba2-common/tools/obj/control_2xxx.d
deleted file mode 100644
index e9ed3f7b1b4b5d054c5ea2d80ff4aa51524fbeda..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/control_2xxx.d
+++ /dev/null
@@ -1,5 +0,0 @@
-obj/control_2xxx.d: src/control_2xxx.c src/control_2xxx.h src/serial.h
-
-src/control_2xxx.h:
-
-src/serial.h:
diff --git a/board/msba2-common/tools/obj/download.d b/board/msba2-common/tools/obj/download.d
deleted file mode 100644
index 94c10a80c529331fc0a35967d2fcc120455409ce..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/download.d
+++ /dev/null
@@ -1,19 +0,0 @@
-obj/download.d: src/download.c src/lpc2k_pgm.h src/download.h \
- src/serial.h src/ihex.h src/uuencode.h src/chipinfo.h src/boot.h \
- src/control_2xxx.h
-
-src/lpc2k_pgm.h:
-
-src/download.h:
-
-src/serial.h:
-
-src/ihex.h:
-
-src/uuencode.h:
-
-src/chipinfo.h:
-
-src/boot.h:
-
-src/control_2xxx.h:
diff --git a/board/msba2-common/tools/obj/ihex.d b/board/msba2-common/tools/obj/ihex.d
deleted file mode 100644
index 89b506056afdb04e30550417a430123f3c29f242..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/ihex.d
+++ /dev/null
@@ -1,3 +0,0 @@
-obj/ihex.d: src/ihex.c src/ihex.h
-
-src/ihex.h:
diff --git a/board/msba2-common/tools/obj/lpc2k_pgm.d b/board/msba2-common/tools/obj/lpc2k_pgm.d
deleted file mode 100644
index 98c82eb3289a938a95f3048440da70f9243513b1..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/lpc2k_pgm.d
+++ /dev/null
@@ -1,8 +0,0 @@
-obj/lpc2k_pgm.d: src/lpc2k_pgm.c src/lpc2k_pgm.h src/serial.h \
- src/download.h
-
-src/lpc2k_pgm.h:
-
-src/serial.h:
-
-src/download.h:
diff --git a/board/msba2-common/tools/obj/pseudoterm.d b/board/msba2-common/tools/obj/pseudoterm.d
deleted file mode 100644
index 858fa2cba7843132f6ad70eb183404b11fc7e27e..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/pseudoterm.d
+++ /dev/null
@@ -1,5 +0,0 @@
-obj/pseudoterm.d: src/pseudoterm.c src/serial.h src/download.h
-
-src/serial.h:
-
-src/download.h:
diff --git a/board/msba2-common/tools/obj/serial.d b/board/msba2-common/tools/obj/serial.d
deleted file mode 100644
index ebabf01ecfb88fdf130d46a2803e5a06c7c11957..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/serial.d
+++ /dev/null
@@ -1,3 +0,0 @@
-obj/serial.d: src/serial.c src/serial.h
-
-src/serial.h:
diff --git a/board/msba2-common/tools/obj/uuencode.d b/board/msba2-common/tools/obj/uuencode.d
deleted file mode 100644
index 548a00f642204f08ba47be798af4e35dcde63c14..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/obj/uuencode.d
+++ /dev/null
@@ -1,3 +0,0 @@
-obj/uuencode.d: src/uuencode.c src/uuencode.h
-
-src/uuencode.h:
diff --git a/board/msba2-common/tools/src/Jamfile b/board/msba2-common/tools/src/Jamfile
deleted file mode 100644
index 43ead81f93abe27b9b98848afa009a85737cbc8c..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/Jamfile
+++ /dev/null
@@ -1,9 +0,0 @@
-Library liblpc2k : download.c uuencode.c ihex.c serial.c chipinfo.c boot_2xxx.c boot_23xx.c control_2xxx.c ;
-
-LinkLibraries lpc2k_pgm : liblpc2k ;
-
-LinkLibraries pseudoterm : liblpc2k ;
-LINKFLAGS on pseudoterm = -lrt ;
-
-Main lpc2k_pgm : lpc2k_pgm.c ;
-Main pseudoterm : pseudoterm.c ;
diff --git a/board/msba2-common/tools/src/boot.h b/board/msba2-common/tools/src/boot.h
deleted file mode 100644
index 1560f1038044a0b3afd8be4efac0688c5fa969b0..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/boot.h
+++ /dev/null
@@ -1,9 +0,0 @@
-
-typedef struct {
-	int size;
-	const int *prog;
-} boot_t;
-
-
-
-
diff --git a/board/msba2-common/tools/src/boot_23xx.armasm b/board/msba2-common/tools/src/boot_23xx.armasm
deleted file mode 100644
index 50e29957ff41a27b43daf1273cce9e61fc009bb9..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/boot_23xx.armasm
+++ /dev/null
@@ -1,32 +0,0 @@
-	/* ARM code to run user code */
-	/* on the LPC23xx chips, the bootloader defaults to using the RC */
-	/* osciallator and it activates the PLL to create 14.78 MHz, even */
-	/* if there is no crystal.  However, when we use try to jump to */
-	/* the user's code, their startup routine may (incorrectly) assume */
-	/* the PLL is not enabled and crash if it is.  So in addition to */
-	/* remapping the reset vector to flash, we have to shut off the */
-	/* PLL so the user's startup code sees the same conditions as it */
-	/* would following a hard reset */
-begin:
-	adr	r0, const
-	ldr	r1, [r0]	/* r1 points to MEMMAP register */
-	ldr	r2, [r0,#4]	/* r2 points to PLLCON */
-	ldr	r3, [r0,#8]	/* r3 points to PLLFEED */
-	mov	r0, #1
-	str	r0, [r1]	/* remap interrupt vectors to flash */
-	mov	r4, #0xAA
-	mov	r5, #0x55
-	str	r0, [r2]	/* disconnect the PLL, PLLCON = 1 */
-	str	r4, [r3]
-	str	r5, [r3]
-	mov	r0, #0
-	str	r0, [r2]	/* disable the PLL, PLLCON = 0 */
-	str	r4, [r3]
-	str	r5, [r3]
-	mov	pc, #0		/* and then jump to the user's code */
-const:
-	.int	0xE01FC040	/* MEMMAP register */
-	.int	0xE01FC080	/* PLLCON */
-	.int	0xE01FC08C	/* PLLFEED */
-
-
diff --git a/board/msba2-common/tools/src/boot_23xx.c b/board/msba2-common/tools/src/boot_23xx.c
deleted file mode 100644
index 9901171cc0bda49cbd51a0f5d05eb9044940e3c3..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/boot_23xx.c
+++ /dev/null
@@ -1,5 +0,0 @@
-/* automatically generated from boot_23xx.armasm */
-#include "boot_23xx.h"
-const unsigned int boot_23xx[] = {
-	20, 0xe28f0038, 0xe5901000, 0xe5902004, 0xe5903008, 0xe3a00001, 0xe5810000, 0xe3a040aa, 0xe3a05055, 0xe5820000, 0xe5834000, 0xe5835000, 0xe3a00000, 0xe5820000, 0xe5834000, 0xe5835000, 0xe3a0f000, 0xe01fc040, 0xe01fc080, 0xe01fc08c
-};
diff --git a/board/msba2-common/tools/src/boot_23xx.h b/board/msba2-common/tools/src/boot_23xx.h
deleted file mode 100644
index 0696a2931223ddbce61cb8f59a01d454b3652eaa..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/boot_23xx.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* automatically generated from boot_23xx.armasm */
-extern const unsigned int boot_23xx[];
diff --git a/board/msba2-common/tools/src/boot_2xxx.armasm b/board/msba2-common/tools/src/boot_2xxx.armasm
deleted file mode 100644
index 38e171520acd6bd40619fa4e790a5ee8758fd3a6..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/boot_2xxx.armasm
+++ /dev/null
@@ -1,15 +0,0 @@
-	/* ARM code to run user code */
-	/* This allows us to jump to the user's code in flash.  We have */
-	/* to remap the flash before jumping. */
-begin:
-	adr	r0, const
-	ldr	r1, [r0]	/* r1 points to MEMMAP register */
-	mov	r0, #1
-	str	r0, [r1]	/* remap interrupt vectors to flash */
-	mov	pc, #0		/* and then jump to the user's code */
-const:
-	.int	0xE01FC040	/* MEMMAP register */
-
-
-
-
diff --git a/board/msba2-common/tools/src/boot_2xxx.c b/board/msba2-common/tools/src/boot_2xxx.c
deleted file mode 100644
index 4d9b367ebe5fdbcbe0c4b76d4471db8214639313..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/boot_2xxx.c
+++ /dev/null
@@ -1,5 +0,0 @@
-/* automatically generated from boot_2xxx.armasm */
-#include "boot_2xxx.h"
-const unsigned int boot_2xxx[] = {
-	7, 0xe28f000c, 0xe5901000, 0xe3a00001, 0xe5810000, 0xe3a0f000, 0xe01fc040
-};
diff --git a/board/msba2-common/tools/src/boot_2xxx.h b/board/msba2-common/tools/src/boot_2xxx.h
deleted file mode 100644
index 333188def24e98fd38565ba64b59c176caae802a..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/boot_2xxx.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* automatically generated from boot_2xxx.armasm */
-extern const unsigned int boot_2xxx[];
diff --git a/board/msba2-common/tools/src/chipinfo.c b/board/msba2-common/tools/src/chipinfo.c
deleted file mode 100644
index 4f3f1a9d7e5b4631a320c6c5c07c99588c016630..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/chipinfo.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-#include <stdio.h>
-#include "chipinfo.h"
-#include "boot_2xxx.h"
-#include "boot_23xx.h"
-
-
-struct sector_info_struct lpc2106_layout[] = {
-	{0x00000000, 0x2000},
-	{0x00002000, 0x2000},
-	{0x00004000, 0x2000},
-	{0x00006000, 0x2000},
-	{0x00008000, 0x2000},
-	{0x0000A000, 0x2000},
-	{0x0000C000, 0x2000},
-	{0x0000E000, 0x2000},
-	{0x00010000, 0x2000},
-	{0x00012000, 0x2000},
-	{0x00014000, 0x2000},
-	{0x00016000, 0x2000},
-	{0x00018000, 0x2000},
-	{0x0001A000, 0x2000},
-	{0x0001C000, 0x2000}
-};
-
-struct sector_info_struct lpc2214_layout[] = {
-	{0x00000000, 0x2000},
-	{0x00002000, 0x2000},
-	{0x00004000, 0x2000},
-	{0x00006000, 0x2000},
-	{0x00008000, 0x2000},
-	{0x0000A000, 0x2000},
-	{0x0000C000, 0x2000},
-	{0x0000E000, 0x2000},
-	{0x00010000, 0x10000},
-	{0x00020000, 0x10000},
-	{0x00030000, 0x2000},
-	{0x00032000, 0x2000},
-	{0x00034000, 0x2000},
-	{0x00036000, 0x2000},
-	{0x00038000, 0x2000},
-	{0x0003A000, 0x2000},
-	{0x0003C000, 0x2000}
-};
-
-struct sector_info_struct lpc2138_layout[] = {
-	{0x00000000, 0x1000},
-	{0x00001000, 0x1000},
-	{0x00002000, 0x1000},
-	{0x00003000, 0x1000},
-	{0x00004000, 0x1000},
-	{0x00005000, 0x1000},
-	{0x00006000, 0x1000},
-	{0x00007000, 0x1000},
-	{0x00008000, 0x8000},
-	{0x00010000, 0x8000},
-	{0x00018000, 0x8000},
-	{0x00020000, 0x8000},
-	{0x00028000, 0x8000},
-	{0x00030000, 0x8000},
-	{0x00038000, 0x8000},
-	{0x00040000, 0x8000},
-	{0x00048000, 0x8000},
-	{0x00050000, 0x8000},
-	{0x00058000, 0x8000},
-	{0x00060000, 0x8000},
-	{0x00068000, 0x8000},
-	{0x00070000, 0x8000},
-	{0x00078000, 0x1000},
-	{0x00079000, 0x1000},
-	{0x0007A000, 0x1000},
-	{0x0007B000, 0x1000},
-	{0x0007C000, 0x1000}
-};
-
-
-
-// chunk_size is the number of bytes that will be sent with each
-// "C" (Copy RAM to Flash) command.  This must be one of the sizes
-// supported by that command.  Beware that different chips support
-// different sets of sizes, so check the user manual specific to
-// the chip.  You must choose a chunk_size which is an an integer
-// multiple of all the sector sizes, and it must be able to fit
-// entirely within the RAM (allowing for the bootloader memory and
-// stack usage).  Currently, all available chunk sizes meet these
-// requirements, but who knows what Philips will do in the future?
-//
-// ram_addr is the location in RAM where the chunks are sent by the
-// "W" (Write to RAM) command.
-
-
-struct chip_info_struct chip_info[] = {
-//                                           chunk   num
-//part_number      id_string     ram_addr    _size   sec  sector layout  boot code
-{"LPC2104 (120k)", "4293984018", 0x40000200, 0x2000, 15, lpc2106_layout, boot_2xxx},
-{"LPC2105 (120k)", "4293984034", 0x40000200, 0x2000, 15, lpc2106_layout, boot_2xxx},
-{"LPC2106 (120k)", "4293984050", 0x40000200, 0x2000, 15, lpc2106_layout, boot_2xxx},
-{"LPC2114 (120k)", "16908050",	 0x40000200, 0x2000, 15, lpc2106_layout, boot_2xxx},
-{"LPC2119 (120k)", "33685266",	 0x40000200, 0x2000, 15, lpc2106_layout, boot_2xxx},
-{"LPC2124 (120k)", "16908051",	 0x40000200, 0x2000, 15, lpc2106_layout, boot_2xxx},
-{"LPC2129 (248k)", "33685267",	 0x40000200, 0x2000, 17, lpc2214_layout, boot_2xxx},
-{"LPC2131 (32k)",  "196353",	 0x40000200, 0x1000,  8, lpc2138_layout, boot_2xxx},
-{"LPC2132 (64k)",  "196369",	 0x40000200, 0x1000,  9, lpc2138_layout, boot_2xxx},
-{"LPC2134 (128k)", "196370",	 0x40000200, 0x1000, 11, lpc2138_layout, boot_2xxx},
-{"LPC2136 (256k)", "196387",	 0x40000200, 0x1000, 15, lpc2138_layout, boot_2xxx},
-{"LPC2138 (500k)", "196389",	 0x40000200, 0x1000, 27, lpc2138_layout, boot_2xxx},
-{"LPC2141 (32k)",  "67305217",	 0x40000200, 0x1000,  8, lpc2138_layout, boot_2xxx},
-{"LPC2142 (64k)",  "67305233",	 0x40000200, 0x1000,  9, lpc2138_layout, boot_2xxx},
-{"LPC2144 (128k)", "67305234",	 0x40000200, 0x1000, 11, lpc2138_layout, boot_2xxx},
-{"LPC2146 (256k)", "67305251",	 0x40000200, 0x1000, 15, lpc2138_layout, boot_2xxx},
-{"LPC2148 (500k)", "67305253",	 0x40000200, 0x1000, 27, lpc2138_layout, boot_2xxx},
-{"LPC2194 (248k)", "50462483",	 0x40000200, 0x2000, 17, lpc2214_layout, boot_2xxx},
-{"LPC2212 (248k)", "67239698",	 0x40000200, 0x2000, 17, lpc2214_layout, boot_2xxx},
-{"LPC2214 (248k)", "100794131",	 0x40000200, 0x2000, 17, lpc2214_layout, boot_2xxx},
-{"LPC2292 (248k)", "67239699",	 0x40000200, 0x2000, 17, lpc2214_layout, boot_2xxx},
-{"LPC2294 (248k)", "84016915",	 0x40000200, 0x2000, 17, lpc2214_layout, boot_2xxx},
-//{"LPC2101 (8k)",   "??????",	 0x40000200, 0x1000,  2, lpc2138_layout, boot_2xxx},
-//{"LPC2102 (16k)",  "??????",	 0x40000200, 0x1000,  4, lpc2138_layout, boot_2xxx},
-{"LPC2103 (32k)",  "327441",	 0x40000200, 0x1000,  8, lpc2138_layout, boot_2xxx},
-{"LPC2364 (128k)", "100924162",	 0x40000200, 0x1000, 11, lpc2138_layout, boot_23xx},
-{"LPC2366 (256k)", "100924195",	 0x40000200, 0x1000, 15, lpc2138_layout, boot_23xx},
-{"LPC2368 (500k)", "100924197",	 0x40000200, 0x1000, 27, lpc2138_layout, boot_23xx},
-{"LPC2378 (500k)", "117702437",	 0x40000200, 0x1000, 27, lpc2138_layout, boot_23xx},
-{"LPC2387 (500k)", "402716981",	 0x40000200, 0x1000, 27, lpc2138_layout, boot_23xx},
-{"LPC2387 (500k)", "385941301",	 0x40000200, 0x1000, 27, lpc2138_layout, boot_23xx},
-{"LPC2468 (500k)", "100925237",	 0x40000200, 0x1000, 27, lpc2138_layout, boot_23xx},
-{NULL, NULL, 0, 0, 0, NULL}
-};
-
-
-
-char *lpc_return_strings[] = {
-	"CMD_SUCCESS", "INVALID_COMMAND", "SRC_ADDR_ERROR", "DST_ADDR_ERROR",
-	"SRC_ADDR_NOT_MAPPED", "DST_ADDR_NOT_MAPPED", "COUNT_ERROR", "INVALID_SECTOR",
-	"SECTOR_NOT_BLANK", "SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION", "COMPARE_ERROR",
-	"BUSY", "PARAM_ERROR", "ADDR_ERROR", "ADDR_NOT_MAPPED", "CMD_LOCKED",
-	"INVALID_CODE", "INVALID_BAUD_RATE", "INVALID_STOP_BIT",
-	"CODE_READ_PROTECTION_ENABLED"
-};
-
diff --git a/board/msba2-common/tools/src/chipinfo.h b/board/msba2-common/tools/src/chipinfo.h
deleted file mode 100644
index 1b12bb366632982a5b59b89c1ad3fba634b5c471..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/chipinfo.h
+++ /dev/null
@@ -1,20 +0,0 @@
-extern char *lpc_return_strings[];
-
-struct sector_info_struct {	// an array of
-	int address;		// where each sector is located
-	int size;		// and how big it is
-};
-
-struct chip_info_struct {
-	char *part_number;	// human readable part number
-	char *id_string;	// id string sent by "J" command
-	unsigned int ram_addr;	// where to download into RAM
-	int chunk_size;		// download to ram chunk size
-	int num_sector;		// number of flash sectors
-	struct sector_info_struct *layout;  // layout of sectors
-	const unsigned int *bootprog;	// code that boots into user program (NULL = DTR/RTS only)
-};
-
-extern struct chip_info_struct chip_info[];
-
-
diff --git a/board/msba2-common/tools/src/cksum_test.c b/board/msba2-common/tools/src/cksum_test.c
deleted file mode 100644
index 8cff9b55e2fc7f05c5505a679f67d93488f63424..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/cksum_test.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- * 
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "uuencode.h"
-
-
-unsigned int sum=0;
-
-
-
-void cksum(const char *str)
-{
-	int num, i;
-	unsigned char data[256];
-
-	if (str == NULL) return;
-	num = uudecode(str, data, sizeof(data));
-	for (i=0; i<num; i++) {
-		sum += data[i];
-	}
-
-}
-
-
-int main()
-{
-	char buf[4096];
-
-	while (!feof(stdin)) {
-		fgets(buf, sizeof(buf), stdin);
-		if (strcmp(buf, "\n") == 0) break;
-		cksum(buf);
-	}
-	printf("sum = %u\n", sum);
-
-	return 0;
-}
-
-
-
-
-
diff --git a/board/msba2-common/tools/src/control_2xxx.c b/board/msba2-common/tools/src/control_2xxx.c
deleted file mode 100644
index ac0c8ca9759fc441df8ad69a1970fe9d7b8bba57..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/control_2xxx.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "control_2xxx.h"
-
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-
-#include "serial.h"
-
-void hard_reset_to_bootloader(void)
-{
-/*	Use this lines for flashing a node with interrupted DTR line */
-    /*	printf("Press Reset - confirm with anykey\n");
-    getchar();
-    */
-    printf("Reset CPU (into bootloader)\r\n");
-	set_rts(0);		// RTS (ttl level) connects to P0.14
-    /* the next two lines should be commented for the prepared node */
-	set_dtr(1);		// DTR (ttl level) connects to RST
-	send_break_signal();	// or break detect circuit to RST
-	usleep(75000);
-    /*	Use this lines for flashing a node with interrupted DTR line */
-    /* printf("Release Reset - confirm with anykey\n");
-    getchar();
-    */
-	set_dtr(0);		// allow the CPU to run:
-	set_baud(baud_rate);
-	set_rts(0);		// set RTS again (as it has been reset by set_baudrate) 
-	usleep(40000);
-}
-
-void hard_reset_to_user_code(void)
-{
-	printf("Reset CPU (into user code)\r\n");
-	set_rts(1);		// RTS (ttl level) connects to P0.14
-	set_dtr(1);		// DTR (ttl level) connects to RST
-	send_break_signal();	// or break detect circuit to RST
-	usleep(75000);
-	set_dtr(0);		// allow the CPU to run
-	usleep(40000);
-}
diff --git a/board/msba2-common/tools/src/control_2xxx.h b/board/msba2-common/tools/src/control_2xxx.h
deleted file mode 100644
index e37e2e29d506b8ee4303ff6b391467b94d973130..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/control_2xxx.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONTROL_2XXXX_H
-#define CONTROL_2XXXX_H
-
-void hard_reset_to_bootloader(void);
-void hard_reset_to_user_code(void);
-
-#endif // ..._H
-
diff --git a/board/msba2-common/tools/src/download.c b/board/msba2-common/tools/src/download.c
deleted file mode 100644
index 5494661dfd55b2cb6c08c9e24fff67a48bc04d91..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/download.c
+++ /dev/null
@@ -1,972 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- * 
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <unistd.h>
-
-#include "lpc2k_pgm.h"
-#include "download.h"
-#include "serial.h"
-#include "ihex.h"
-#include "uuencode.h"
-//#include "gui.h"
-#include "chipinfo.h"
-#include "boot.h"
-#include "control_2xxx.h"
-
-
-// This will cause all bytes send and received to be printed as hex.
-// It's a LOT of extra output, but useful for difficult debugging
-// of what's _really_ being sent and received.
-//#define PRINT_TX_RX_BYTES
-
-
-static void download_main(int event);
-static void xmit_cmd(const char *cmd, int max_time);
-static void mk_valid_code_vector(void);
-static unsigned int sum(unsigned char *data, int num);
-
-
-static int state=0;
-static int reboot_only=0;
-static char expected_echo_buf[4096];
-static char *expected_echo_ptr=NULL;
-static char parsed_response_buf[4096];
-static char *parsed_response_ptr=NULL;
-static int response_timer=0;
-
-extern int programming_done;
-extern int done_program(int);
-
-
-char* port_name = "/dev/ttyUSB1";
-char* file_name = "";
-char* crystal = "16";
-
-/****************************************************************/
-/*								*/
-/*		     Main Download Section			*/
-/*								*/
-/****************************************************************/
-
-// possible states
-#define SYNC_1			1
-#define SYNC_2			2
-#define SYNC_3			3
-#define CHIP_ID			4
-#define UNLOCK			5
-#define BLANK_CHECK_SECTOR	6
-#define ERASE_PREPARE		7
-#define ERASE_SECTOR		8
-#define DOWNLOAD_CODE		9
-#define XMIT_DATA		10
-#define XMIT_CKSUM		11
-#define WRITE_PREPARE		12
-#define WRITE_SECTOR		13
-#define BOOT_HARD		14
-#define BOOT_SOFT		15
-#define BOOT_XMIT_DATA		16
-#define BOOT_XMIT_CKSUM		17
-#define BOOT_RUN_CODE		18
-
-
-// possible input values for "event"
-#define BEGIN 1
-#define RESPONSE 2
-#define TIMEOUT 3
-#define RETRY 4
-
-
-
-
-int download_begin(char* file)
-{
-	int r;
-
-    file_name = file;
-
-	printf("\r\nEntering Bootloader Mode\r\n");
-	hard_reset_to_bootloader();
-	printf("Read \"%s\"", file_name);
-	r = read_intel_hex(file_name);
-	if (r < 0) {
-        /* abort on ioerror */
-        return 0;
-	}
-	printf(": %d bytes\r\n", r);
-	mk_valid_code_vector();
-	state = SYNC_1;
-	reboot_only = 0;
-	download_main(BEGIN);
-    return 1;
-}
-
-
-void soft_reboot_begin(void)
-{
-	printf("\r\nEntering Bootloader Mode\r\n");
-	hard_reset_to_bootloader();
-	state = SYNC_1;
-	reboot_only = 1;
-	download_main(BEGIN);
-}
-
-static void mk_valid_code_vector(void)
-{
-	unsigned char b[4];
-	unsigned int sum=0;
-	int addr;
-
-	for (addr=0; addr<0x20; addr+=4) {
-		if (addr != 0x14) {
-			get_ihex_data(addr, 4, b);
-			sum += (b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24));
-		}
-	}
-	sum ^= 0xFFFFFFFF;
-	sum++;
-	b[0] = (sum >> 0) & 255;
-	b[1] = (sum >> 8) & 255;
-	b[2] = (sum >> 16) & 255;
-	b[3] = (sum >> 24) & 255;
-	put_ihex_data(0x14, 4, b);
-}
-
-
-static unsigned int sum(unsigned char *data, int num)
-{
-	unsigned int sum=0;
-
-	while (num > 0) {
-		sum += *data++;
-		num--;
-	}
-	return sum;
-}
-
-
-static int num_lines(const char *buf)
-{
-	const char *p;
-	int count=0;
-
-	p = buf;
-	while (p != NULL) {
-		p = strstr(p, "\r\n");
-		if (p != NULL) {
-			count++;
-			p += 2;
-		}
-	}
-	return count;
-}
-
-void trim_crlf(char *str)
-{
-	char *p;
-	p = strstr(str, "\r\n");
-	if (p != NULL) *p = '\0';
-}
-
-void copy_boot_code_to_memory(struct chip_info_struct *chip)
-{
-	int i;
-	unsigned char c[4];
-
-	for (i=0; i < chip->bootprog[0]; i++) {
-		c[3] = (chip->bootprog[i+1] >> 24) & 255;
-		c[2] = (chip->bootprog[i+1] >> 16) & 255;
-		c[1] = (chip->bootprog[i+1] >> 8) & 255;
-		c[0] = (chip->bootprog[i+1]) & 255;
-		put_ihex_data(i * 4, 4, c);
-	}
-}
-
-
-#define NO_SYNC_ERR "\r\n\
-ERROR: Unable to sync to baud rate.\r\n\
-This probably means the LPC2xxx chip is not connected\r\n\
-or it is not being reset, or P0.14 is not low after\r\n\
-reset to cause it to enter the bootloader mode.\r\n\r\n\
-Please check the serial port connection, make sure\r\n\
-pin P0.14 is low (or tied to RTS via RS-232 level\r\n\
-translator), and the chip has been reset (or reset\r\n\
-is tied to DTR via RS-232 level translator).\r\n"
-
-#define UNKNOWN_CHIP_ERROR "\r\n\
-Unknown chip ID: \"%s\".\r\n\r\n\
-Perhaps you have a new Philips LPC chip which does not\r\n\
-have its ID string and sector map defined in this program?\r\n\
-Please contact paul@pjrc.com.  Please include an exact copy\r\n\
-of this message and any info about the chip and other\r\n\
-hardware you may be using.  Thanks :-)\r\n"
-
-
-static void download_main(int event)
-{
-	char buf[4096];
-	unsigned char bytes[256];
-	double xtal;
-	int n;
-	static unsigned int cksum;
-	static int retry=0;
-	static int sector;		// current sector we're doing
-	static int sector_offset;
-	static struct chip_info_struct *chip;	// which chip
-	static int current_addr, num_to_xmit, linecount;
-
-
-    while (1) {
-	switch (state) {
-	  case SYNC_1:
-		switch (event) {
-		  case BEGIN:
-			printf("Attempting baud sync");
-			retry = 0;
-		  case RETRY:
-			printf(".");
-			fflush(stdout);
-			xmit_cmd("?", 2);
-			return;
-		  case RESPONSE:
-			if (strcmp(parsed_response_buf, "Synchronized\r\n") == 0) {
-				//printf("response: sync'd\n");
-				state = SYNC_2;
-				event = BEGIN;
-				break;
-			}
-			if (strcmp(parsed_response_buf, "?") == 0) {
-				//printf("response: echo only\n");
-				retry++;
-				if (retry > 150) {
-					download_cancel(NO_SYNC_ERR); return;
-				}
-				event = RETRY;
-				usleep(30000);
-				break;
-			}
-			snprintf(buf, sizeof(buf), "Unexpected response to sync, \"%s\"",
-				parsed_response_buf);
-			download_cancel(buf); return;
-		  case TIMEOUT:
-			if (retry < 100) {
-				retry++;
-				event = RETRY;
-				break;
-			}
-			download_cancel(NO_SYNC_ERR);
-			return;
-		}
-		break;
-
-
-	  case SYNC_2:
-		switch(event) {
-		  case BEGIN:
-			xmit_cmd("Synchronized\r\n", 3);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "OK\r\n") == 0) {
-				state = SYNC_3;
-				event = BEGIN;
-				break;
-			} else {
-				snprintf(buf, sizeof(buf), "Unable to complete baud sync, %s",
-					parsed_response_buf);
-				download_cancel(buf); return;
-			}
-			return;
-		  case TIMEOUT:
-			download_cancel("No response to complete baud sync"); return;
-		}
-		break;
-
-
-	  case SYNC_3:
-		switch(event) {
-		  case BEGIN:
-			if (sscanf(crystal, "%lf", &xtal) != 1) {
-				printf("\r\n");
-				download_cancel("Crystal frequency is required for 3rd step of baud rate sync");
-				return;
-			}
-			if (xtal < 10.0 || xtal > 25.0) {
-				printf("\r\n");
-				printf("Warning: crystal frequency out of range (10.0 to 25.0), continuing anyway! (hope you know what you're doing)\r\n");
-			}
-			snprintf(buf, sizeof(buf), "%d\r\n", (int)(xtal * 1000.0 + 0.5));
-			xmit_cmd(buf, 3);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "OK\r\n") == 0) {
-				printf("Baud sync sucessful\r\n");
-				state = CHIP_ID;
-				event = BEGIN;
-				break;
-			} else {
-				snprintf(buf, sizeof(buf), "wrong response to crystal: %s",
-					parsed_response_buf);
-				download_cancel(buf); return;
-			}
-			return;
-		  case TIMEOUT:
-			download_cancel("No response to crystal speed"); return;
-		}
-		break;
-
-
-	  case CHIP_ID:
-		switch(event) {
-		  case BEGIN:
-			xmit_cmd("J\r\n", 3);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) < 2) return;
-			if (strncmp(parsed_response_buf, "0\r\n", 3) == 0) {
-				trim_crlf(parsed_response_buf+3);
-				for (chip=chip_info; chip->part_number != NULL; chip++) {
-					if (strcmp(parsed_response_buf+3, chip->id_string) == 0)
-						break;
-				}
-				if (chip->part_number == NULL) {
-					snprintf(buf, sizeof(buf), UNKNOWN_CHIP_ERROR,
-						parsed_response_buf+3);
-					download_cancel(buf);
-					break;
-				}
-				printf("Found chip: \"%s\"\r\n", chip->part_number);
-				  //download_cancel("stop here, remove this later");
-				state = UNLOCK;
-				event = BEGIN;
-				break;
-			} else {
-				snprintf(buf, sizeof(buf), "wrong response to ID: %s",
-					parsed_response_buf);
-				download_cancel(buf); return;
-			}
-			return;
-		  case TIMEOUT:
-			download_cancel("No response to unlock command"); return;
-		}
-		break;
-
-
-	  case UNLOCK:
-		switch(event) {
-		  case BEGIN:
-			xmit_cmd("U 23130\r\n", 3);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				printf("Device Unlocked\r\n");
-				if (reboot_only) {
-					state = BOOT_SOFT;
-				} else {
-					state = BLANK_CHECK_SECTOR;
-					printf("Erasing....\r\n");
-					sector = 0;
-				}
-				event = BEGIN;
-				break;
-			} else {
-				snprintf(buf, sizeof(buf), "wrong response unlock: %s",
-					parsed_response_buf);
-				download_cancel(buf); return;
-			}
-			return;
-		  case TIMEOUT:
-			download_cancel("No response to unlock command"); return;
-		}
-		break;
-
-	
-	  case BLANK_CHECK_SECTOR:
-		switch(event) {
-		  case BEGIN:
-			if (sector >= chip->num_sector) {
-				printf("Programming....\r\n");
-				state = DOWNLOAD_CODE;
-				sector = sector_offset = 0;
-				event = BEGIN;
-				break;
-			}
-			printf("  Sector %2d: ", sector);
-			fflush(stdout);
-			if (!bytes_within_range(chip->layout[sector].address, 
-			   chip->layout[sector].address + chip->layout[sector].size - 1)) {
-				printf("not used\r\n");
-				sector++;
-				break;
-			}
-			if (sector == 0) {
-				// can't blank check sector 0, so always erase it
-				state = ERASE_PREPARE;
-				break;
-			}
-			snprintf(buf, sizeof(buf), "I %d %d\r\n", sector, sector);
-			xmit_cmd(buf, 5);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) == 1 &&
-			  strcmp(parsed_response_buf, "0\r\n") == 0) {
-				printf("already blank\r\n");
-				sector++;
-				event = BEGIN;
-				break;
-			} else {
-				if (num_lines(parsed_response_buf) < 3) return;
-				state = ERASE_PREPARE;
-				event = BEGIN;
-				break;
-			}
-		  case TIMEOUT:
-			download_cancel("No response to blank check"); return;
-		}
-		break;
-
-
-
-	  case ERASE_PREPARE:
-		switch(event) {
-		  case BEGIN:
-			printf("prep, ");
-			fflush(stdout);
-			snprintf(buf, sizeof(buf), "P %d %d\r\n", sector, sector);
-			xmit_cmd(buf, 8);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				state = ERASE_SECTOR;
-				event = BEGIN;
-				break;
-			} else {
-				download_cancel("Unable to prep for write"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-
-	  case ERASE_SECTOR:
-		switch(event) {
-		  case BEGIN:
-			printf("erase... ");
-			fflush(stdout);
-			snprintf(buf, sizeof(buf), "E %d %d\r\n", sector, sector);
-			xmit_cmd(buf, 25);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) < 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				printf("Ok\r\n");
-				sector++;
-				state = BLANK_CHECK_SECTOR;
-				event = BEGIN;
-				break;
-			} else {
-				printf("Error\r\n");
-				download_cancel("Unable to erase flash"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-
-	  case DOWNLOAD_CODE:
-		switch(event) {
-		  case BEGIN:
-			if (sector >= chip->num_sector) {
-				state = BOOT_HARD;
-				sector = 0;
-				event = BEGIN;
-				break;
-			}
-			printf("  Sector %2d (0x%08X-0x%08X): ", sector,
-				chip->layout[sector].address + sector_offset,
-				chip->layout[sector].address + sector_offset + chip->chunk_size - 1);
-			fflush(stdout);
-			if (!bytes_within_range(chip->layout[sector].address + sector_offset, 
-			   chip->layout[sector].address + sector_offset + chip->chunk_size - 1)) {
-				printf("not used\r\n");
-				sector_offset += chip->chunk_size;
-				if (sector_offset >= chip->layout[sector].size) {
-					sector_offset = 0;
-					sector++;
-				}
-				break;
-			}
-			snprintf(buf, sizeof(buf), "W %d %d\r\n", chip->ram_addr, chip->chunk_size);
-			xmit_cmd(buf, 4);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				state = XMIT_DATA;
-				printf("xmit");
-				current_addr = chip->layout[sector].address + sector_offset;
-				num_to_xmit = chip->chunk_size;
-				linecount = 0;
-				cksum = 0;
-				event = BEGIN;
-				break;
-			} else {
-				download_cancel("can't xmit to ram"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case XMIT_DATA:
-		switch(event) {
-		  case BEGIN:
-			n = num_to_xmit;
-			if (n > 45) n = 45;
-			get_ihex_data(current_addr, n, bytes);
-			cksum += sum(bytes, n);
-			uuencode(buf, bytes, n);
-			current_addr += n;
-			num_to_xmit -= n;
-			linecount++;
-			xmit_cmd(buf, 5);
-			write_serial_port("\r\n", 2);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "\r\n") == 0) {
-				if (linecount >= 20 || num_to_xmit <= 0) {
-					state = XMIT_CKSUM;
-				}
-				event = BEGIN;
-				break;
-			} else {
-				download_cancel("data xmit did not echo"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case XMIT_CKSUM:
-		switch(event) {
-		  case BEGIN:
-			snprintf(buf, sizeof(buf), "%d\r\n", cksum);
-			xmit_cmd(buf, 3);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "OK\r\n") == 0) {
-				if (num_to_xmit > 0) {
-					printf(".");
-					fflush(stdout);
-					state = XMIT_DATA;
-					event = BEGIN;
-					linecount = 0;
-					cksum = 0;
-					break;
-				}
-				state = WRITE_PREPARE;
-				event = BEGIN;
-				break;
-			} else {
-				download_cancel("bad checksum"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case WRITE_PREPARE:
-		switch(event) {
-		  case BEGIN:
-			printf("prep, ");
-			fflush(stdout);
-			snprintf(buf, sizeof(buf), "P %d %d\r\n", sector, sector);
-			xmit_cmd(buf, 5);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				state = WRITE_SECTOR;
-				event = BEGIN;
-				break;
-			} else {
-				download_cancel("Unable to prep for write"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case WRITE_SECTOR:
-		switch(event) {
-		  case BEGIN:
-			printf("write, ");
-			fflush(stdout);
-			snprintf(buf, sizeof(buf), "C %d %d %d\r\n",
-				chip->layout[sector].address + sector_offset,
-				chip->ram_addr, chip->chunk_size);
-			xmit_cmd(buf, 5);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				printf("Ok\r\n");
-				sector_offset += chip->chunk_size;
-				if (sector_offset >= chip->layout[sector].size) {
-					sector_offset = 0;
-					sector++;
-				}
-				state = DOWNLOAD_CODE;
-				event = BEGIN;
-			} else {
-				download_cancel("Unable to prep for write"); return;
-			}
-			break;
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case BOOT_HARD:
-	//	if (chip->bootprog) {
-	//		state = BOOT_SOFT;
-	//		break;
-	//	} else {
-			printf("Booting (hardware reset)...\r\n\r\n");
-			hard_reset_to_user_code();
-			done_program(0);
-			return;
-	//	}
-
-	  case BOOT_SOFT:
-		switch(event) {
-		  case BEGIN:
-			printf("Booting (soft jump)...\r\n");
-			printf("loading jump code\r\n");
-			// would be nice if we could simply jump to the user's code, but
-			// Philips didn't think of that.  The interrupt vector table stays
-			// mapped to the bootloader, so jumping to zero only runs the
-			// bootloader again.  Intead, we need to download a tiny ARM
-			// program that reconfigures the hardware and then jumps to zero.
-			//snprintf(buf, sizeof(buf), "G %d A\r\n", 0);
-			snprintf(buf, sizeof(buf), "W %d %d\r\n", chip->ram_addr, chip->bootprog[0] * 4);
-			xmit_cmd(buf, 4);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) < 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				current_addr = 0;
-				num_to_xmit = chip->bootprog[0] * 4;
-				copy_boot_code_to_memory(chip);
-				linecount = 0;
-				cksum = 0;
-				state = BOOT_XMIT_DATA;
-				event = BEGIN;
-			} else {
-				download_cancel("can't xmit to ram"); return;
-			}
-			break;
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case BOOT_XMIT_DATA:
-		switch(event) {
-		  case BEGIN:
-			n = num_to_xmit;
-			if (n > 45) n = 45;
-			get_ihex_data(current_addr, n, bytes);
-			cksum += sum(bytes, n);
-			uuencode(buf, bytes, n);
-			current_addr += n;
-			num_to_xmit -= n;
-			linecount++;
-			//printf("send: %s\r\n", buf);
-			xmit_cmd(buf, 5);
-			write_serial_port("\r\n", 2);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "\r\n") == 0) {
-				if (linecount >= 20 || num_to_xmit <= 0) {
-					state = BOOT_XMIT_CKSUM;
-				}
-				event = BEGIN;
-				break;
-			} else {
-				download_cancel("data xmit did not echo"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case BOOT_XMIT_CKSUM:
-		switch(event) {
-		  case BEGIN:
-			snprintf(buf, sizeof(buf), "%d\r\n", cksum);
-			//printf("send: %s", buf);
-			xmit_cmd(buf, 3);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) != 1) return;
-			if (strcmp(parsed_response_buf, "OK\r\n") == 0) {
-				if (num_to_xmit > 0) {
-					printf(".");
-					fflush(stdout);
-					state = BOOT_XMIT_DATA;
-					event = BEGIN;
-					linecount = 0;
-					cksum = 0;
-					break;
-				}
-				state = BOOT_RUN_CODE;
-				event = BEGIN;
-				break;
-			} else {
-				download_cancel("bad checksum"); return;
-			}
-		  case TIMEOUT:
-			download_cancel("No response"); return;
-		}
-		break;
-
-
-	  case BOOT_RUN_CODE:
-		switch(event) {
-		  case BEGIN:
-			printf("jumping now!\r\n");
-			snprintf(buf, sizeof(buf), "G %d A\r\n", chip->ram_addr);
-			xmit_cmd(buf, 4);
-			return;
-		  case RESPONSE:
-			if (num_lines(parsed_response_buf) < 1) return;
-			if (strcmp(parsed_response_buf, "0\r\n") == 0) {
-				done_program(0);
-				return;
-			} else {
-				printf("response = %s", parsed_response_buf);
-				download_cancel("couldn't run program"); return;
-			}
-			break;
-		  case TIMEOUT:
-			done_program(0);
-			return;
-			// Philips user name says it responds, but it does not.
-			// It seems to just immediately jump to the code without
-			// any "0" response.
-			//download_cancel("No response"); return;
-		}
-		break;
-
-
-
-	  default:
-		  snprintf(buf, sizeof(buf), "unknown state %d\r\n", state);
-		  download_cancel(buf);
-		  return;
-	}
-    }
-}
-
-
-void download_cancel(const char *mesg)
-{
-	printf("\r\nDownload Canceled");
-	if (mesg && *mesg) printf(": %s", mesg);
-	printf("\r\n");
-	// need to do some cleanup for various states???
-	done_program(1);
-}
-
-
-/****************************************************************/
-/*								*/
-/*		Transmit Commands to Bootloader			*/
-/*								*/
-/****************************************************************/
-
-
-
-static void xmit_cmd(const char *cmd, int max_time)
-{
-	int len;
-
-	if (cmd == NULL || *cmd == '\0') return;
-	len = strlen(cmd);
-
-#ifdef PRINT_TX_RX_BYTES
-	printf("tx %d bytes: %s\n", len, cmd);
-#endif
-
-	input_flush_serial_port();
-
-	write_serial_port(cmd, len);
-
-	snprintf(expected_echo_buf, sizeof(expected_echo_buf), "%s", cmd);
-	if (state == SYNC_1) {
-		// special case, baud sync doesn't echo
-		expected_echo_buf[0] = '\0';
-	}
-	expected_echo_ptr = expected_echo_buf;
-	parsed_response_ptr = parsed_response_buf;
-
-	response_timer = max_time;
-}
-
-
-
-/****************************************************************/
-/*								*/
-/*		Handlers that respond to input			*/
-/*								*/
-/****************************************************************/
-
-
-/*
-Whenever the main gtk event loop detects more input has arrived from the
-serial port, and we're in the process of a download, it calls here to
-hand off the data.  We're supposed to match it up to the echo buffer,
-and then store it into the parsed response buffer and if it looks like
-this might be a complete response, call download_main with a response
-event.
-*/
-void download_rx_port(const unsigned char *buf, int num)
-{
-	int i=0;
-
-	if (num <= 0) return;
-
-	// echo the data
-	//write(term_fd, buf, num);
-
-#ifdef PRINT_TX_RX_BYTES
-	printf("rx %d bytes:", num);
-	for (i=0; i<num; i++) {
-		printf(" %02X", *(buf + i));
-	}
-	printf("\r\n");
-#endif
-
-	// ignore extra incoming garbage we didn't expect
-	if (expected_echo_ptr == NULL) return;
-
-	// special case, echo of '?' during unsuccessful sync
-	if (state == SYNC_1 && num == 1 && buf[0] == '?') {
-		*parsed_response_ptr++ = '?';
-		*parsed_response_ptr = '\0';
-		response_timer = 0;
-		download_main(RESPONSE);
-		return;
-	}
-
-	// parse it
-	for (i=0; i<num; i++) {
-		// if we're still expecting the echo, gobble it up
-		if (*expected_echo_ptr) {
-			if (buf[i] != *expected_echo_ptr) {
-#ifdef PRINT_TX_RX_BYTES
-				printf("  <echo_err>  ");
-#endif
-				// ignore incorrect echo (will timeout)
-				expected_echo_ptr = NULL;
-				return;
-			}
-			expected_echo_ptr++;
-			continue;
-		}
-		// store this into a parsed response buffer
-		*parsed_response_ptr++ = buf[i];
-	}
-
-	// if the last two characters of the response are "\r\n",
-	// then it's likely we've got a complete response.
-	*parsed_response_ptr = '\0';
-	if (parsed_response_ptr > parsed_response_buf + 1
-	   && *(parsed_response_ptr - 2) == '\r'
-	   && *(parsed_response_ptr - 1) == '\n') {
-		//response_timer = 0;
-		download_main(RESPONSE);
-	}
-}
-
-
-
-/*
-During a download, this is supposed to get called at 100 Hz.  Whenever
-something is transmitted and we expect a response, the response_timer
-is initialized to the maximum time we will wait.
-*/
-void download_timer(void)
-{
-	if (response_timer > 0) {
-		response_timer--;
-		if (response_timer == 0) {
-			expected_echo_ptr = NULL;
-			download_main(TIMEOUT);
-		}
-	}
-}
-
-/*
-During a download, all input the user types into the terminal is sent
-to this function, instead of passing it to xterm for display
-*/
-void download_rx_term(const unsigned char *buf, int num)
-{
-	// discard anything the user types into the terminal
-	// while we are in the middle of downloading.  Maybe
-	// we should look for CTRL-C and abort??
-}
-
-
diff --git a/board/msba2-common/tools/src/download.h b/board/msba2-common/tools/src/download.h
deleted file mode 100644
index 4d57bfa5d05f91dc859947237ed2a344ed49b6df..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/download.h
+++ /dev/null
@@ -1,8 +0,0 @@
-extern int download_begin(char* file);
-extern void soft_reboot_begin(void);
-extern void hard_reset_to_bootloader(void);
-extern void hard_reset_to_user_code(void);
-extern void download_cancel(const char *mesg);
-extern void download_rx_term(const unsigned char *buf, int num);
-extern void download_rx_port(const unsigned char *buf, int num);
-extern void download_timer(void);
diff --git a/board/msba2-common/tools/src/gui.c b/board/msba2-common/tools/src/gui.c
deleted file mode 100644
index ce6d13c96e68d11d9a6222d10a9e4f74d64d2c19..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/gui.c
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- * 
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <gtk/gtk.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "gui.h"
-#include "settings.h"
-#include "serial.h"
-#include "lpc2k_pgm.h"
-#include "download.h"
-
-
-static GtkWidget *firmware_label, *firmware_entry, *program_button;
-static GtkWidget *port_label, *port_entry, *baud_label, *baud_combo;
-static GtkWidget *crystal_label, *crystal_entry, *mhz_label;
-static GtkWidget *reboot_button, *bootloader_button, *quit_button;
-static GtkWidget *line1_hbox, *line2_hbox, *line3_hbox, *line4_hbox;
-static GtkWidget *main_vbox, *main_window;
-
-static int port_timeout=0;
-static int baud_timeout=0;
-static int download_in_progress=0;
-
-gint do_quit(GtkWidget *widget, gpointer *data)
-{
-	gtk_main_quit();
-	return FALSE;
-}
-
-gint do_program(GtkWidget *widget, gpointer *data)
-{
-	if (download_in_progress) {
-		// error... not supposed to get here
-		gtk_widget_set_sensitive(program_button, FALSE);
-		return FALSE;
-	}
-	download_in_progress = 1;
-	gtk_widget_set_sensitive(program_button, FALSE);
-	gtk_widget_set_sensitive(reboot_button, FALSE);
-	gtk_widget_set_sensitive(bootloader_button, TRUE);
-	download_begin();
-	return FALSE;
-}
-
-int file_exists(const char *filename)
-{
-	struct stat file_stats;
-	int r;
-
-	r = stat(filename, &file_stats);
-	if (r != 0) return 0;
-	if (!S_ISREG(file_stats.st_mode)) return 0;
-	return 1;
-}
-
-void done_program(int still_in_bootloader)
-{
-	download_in_progress = 0;
-
-	if (file_exists(gtk_entry_get_text(GTK_ENTRY(firmware_entry)))) {
-		gtk_widget_set_sensitive(program_button, TRUE);
-	} else {
-		gtk_widget_set_sensitive(program_button, FALSE);
-	}
-	gtk_widget_set_sensitive(bootloader_button, TRUE);
-	gtk_widget_set_sensitive(reboot_button, TRUE);
-}
-
-gint do_reboot(GtkWidget *widget, gpointer *data)
-{
-	if (download_in_progress) {
-		download_cancel(NULL);
-		gtk_widget_set_sensitive(program_button, FALSE);
-		gtk_widget_set_sensitive(reboot_button, FALSE);
-		gtk_widget_set_sensitive(bootloader_button, FALSE);
-	}
-	gtk_widget_set_sensitive(program_button, FALSE);
-	gtk_widget_set_sensitive(reboot_button, FALSE);
-	gtk_widget_set_sensitive(bootloader_button, FALSE);
-
-	hard_reset_to_user_code();
-
-#if 0
-	download_in_progress = 1;
-	soft_reboot_begin();
-#endif
-	if (file_exists(gtk_entry_get_text(GTK_ENTRY(firmware_entry)))) {
-		gtk_widget_set_sensitive(program_button, TRUE);
-	} else {
-		gtk_widget_set_sensitive(program_button, FALSE);
-	}
-	gtk_widget_set_sensitive(bootloader_button, TRUE);
-	return FALSE;
-}
-
-gint do_bootloader(GtkWidget *widget, gpointer *data)
-{
-	if (download_in_progress) {
-		download_cancel(NULL);
-		gtk_widget_set_sensitive(program_button, FALSE);
-		gtk_widget_set_sensitive(reboot_button, FALSE);
-		gtk_widget_set_sensitive(bootloader_button, FALSE);
-	}
-
-	hard_reset_to_bootloader();
-
-	if (file_exists(gtk_entry_get_text(GTK_ENTRY(firmware_entry)))) {
-		gtk_widget_set_sensitive(program_button, TRUE);
-	} else {
-		gtk_widget_set_sensitive(program_button, FALSE);
-	}
-	gtk_widget_set_sensitive(reboot_button, TRUE);
-	gtk_widget_set_sensitive(bootloader_button, TRUE);
-	return FALSE;
-}
-
-gint do_new_port(GtkWidget *widget, gpointer *data)
-{
-	port_timeout = 12;
-	return FALSE;
-}
-
-gint do_new_baud(GtkWidget *widget, gpointer *data)
-{
-	baud_timeout = 7;
-	return FALSE;
-}
-
-gint do_new_file(GtkWidget *widget, gpointer *data)
-{
-	const char *filename;
-
-	filename = gtk_entry_get_text(GTK_ENTRY(firmware_entry));
-	if (file_exists(filename)) {
-		new_file_setting(filename);
-		if (download_in_progress) {
-			gtk_widget_set_sensitive(program_button, FALSE);
-		} else {
-			gtk_widget_set_sensitive(program_button, TRUE);
-		}
-	} else {
-		gtk_widget_set_sensitive(program_button, FALSE);
-	}
-	return FALSE;
-}
-
-gint do_new_crystal(GtkWidget *widget, gpointer *data)
-{
-	const char *xtal;
-
-	xtal = gtk_entry_get_text(GTK_ENTRY(crystal_entry));
-	new_crystal_setting(xtal);
-	return FALSE;
-}
-
-
-gint do_timer(gpointer data)
-{
-	if (port_timeout && --port_timeout == 0) {
-		open_serial_port(gtk_entry_get_text(GTK_ENTRY(port_entry)));
-	}
-	if (baud_timeout && --baud_timeout == 0) {
-		change_baud(gtk_entry_get_text(GTK_ENTRY(
-			GTK_COMBO(baud_combo)->entry)));
-	}
-	if (download_in_progress) {
-		download_timer();
-	}
-	return TRUE;
-}
-
-void do_term_input(gpointer data, int fd, GdkInputCondition cond)
-{
-	char buf[256];
-	int num, flags;
-
-	flags = fcntl(term_fd, F_GETFL);
-	fcntl(term_fd, F_SETFL, flags | O_NONBLOCK);
-	num = read(term_fd, buf, sizeof(buf));
-	fcntl(term_fd, F_SETFL, flags);
-	if (num > 0) {
-		if (download_in_progress) {
-			download_rx_term(buf, num);
-		} else {
-			write_serial_port(buf, num);
-		}
-	}
-}
-
-void do_port_input(gpointer data, int fd, GdkInputCondition cond)
-{
-	char buf[256];
-	int num;
-
-	num = read_serial_port_nb((unsigned char *)buf, sizeof(buf));
-	if (num > 0) {
-		if (download_in_progress) {
-			download_rx_port(buf, num);
-		} else {
-			write(term_fd, buf, num);
-		}
-	}
-}
-
-
-void run_gui(void)
-{
-	gtk_signal_connect(GTK_OBJECT(main_window), "delete_event",
-		GTK_SIGNAL_FUNC(do_quit), NULL);
-	gtk_signal_connect(GTK_OBJECT(quit_button), "pressed",
-		GTK_SIGNAL_FUNC(do_quit), NULL);
-	gtk_signal_connect(GTK_OBJECT(port_entry), "changed",
-		GTK_SIGNAL_FUNC(do_new_port), NULL);
-	gtk_signal_connect(GTK_OBJECT(GTK_COMBO(baud_combo)->entry), "changed",
-		GTK_SIGNAL_FUNC(do_new_baud), NULL);
-	gtk_signal_connect(GTK_OBJECT(firmware_entry), "changed",
-		GTK_SIGNAL_FUNC(do_new_file), NULL);
-	gtk_signal_connect(GTK_OBJECT(crystal_entry), "changed",
-		GTK_SIGNAL_FUNC(do_new_crystal), NULL);
-	gtk_signal_connect(GTK_OBJECT(program_button), "pressed",
-		GTK_SIGNAL_FUNC(do_program), NULL);
-	gtk_signal_connect(GTK_OBJECT(reboot_button), "pressed",
-		GTK_SIGNAL_FUNC(do_reboot), NULL);
-	gtk_signal_connect(GTK_OBJECT(bootloader_button), "pressed",
-		GTK_SIGNAL_FUNC(do_bootloader), NULL);
-
-	gtk_timeout_add(100, do_timer, NULL);
-	gdk_input_add(term_fd, GDK_INPUT_READ, do_term_input, NULL);
-	gdk_input_add(serial_port_fd(), GDK_INPUT_READ, do_port_input, NULL);
-
-	gtk_main();
-}
-
-
-void create_window(int *argc, char ***argv)
-{
-	GList *gtk_baud_list=NULL;
-	int i;
-
-	gtk_init(argc, argv);
-
-	firmware_label = gtk_label_new("Firmware:");
-	gtk_label_set_justify(GTK_LABEL(firmware_label), GTK_JUSTIFY_RIGHT);
-	gtk_widget_show(firmware_label);
-
-	firmware_entry = gtk_entry_new();
-	gtk_widget_set_usize(firmware_entry, 110, 0);
-	gtk_entry_set_text(GTK_ENTRY(firmware_entry), file_setting());
-	gtk_widget_show(firmware_entry);
-
-	program_button = gtk_button_new_with_label("Program Now");
-	if (file_exists(file_setting())) {
-		gtk_widget_set_sensitive(program_button, TRUE);
-	} else {
-		gtk_widget_set_sensitive(program_button, FALSE);
-	}
-	gtk_widget_show(program_button);
-
-	line1_hbox = gtk_hbox_new(FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(line1_hbox), firmware_label, FALSE, FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(line1_hbox), firmware_entry, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(line1_hbox), program_button, FALSE, FALSE, 2);
-	gtk_widget_show(line1_hbox);
-
-
-	port_label = gtk_label_new("Port:");
-	gtk_label_set_justify(GTK_LABEL(port_label), GTK_JUSTIFY_RIGHT);
-	gtk_widget_show(port_label);
-
-	port_entry = gtk_entry_new();
-	gtk_widget_set_usize(port_entry, 80, 0);
-	gtk_entry_set_text(GTK_ENTRY(port_entry), port_setting());
-	open_serial_port(port_setting());
-	gtk_widget_show(port_entry);
-
-	baud_label = gtk_label_new("Baud:");
-	gtk_label_set_justify(GTK_LABEL(baud_label), GTK_JUSTIFY_RIGHT);
-	gtk_widget_show(baud_label);
-	
-	baud_combo = gtk_combo_new();
-	for (i=0; baud_list[i] != NULL; i++) {
-		gtk_baud_list = g_list_append(gtk_baud_list, baud_list[i]);
-	}
-	gtk_combo_set_popdown_strings(GTK_COMBO(baud_combo), gtk_baud_list);
-	gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(baud_combo)->entry), FALSE);
-	gtk_widget_set_usize(baud_combo, 75, 0);
-	for (i=0; baud_list[i] != NULL; i++) {
-		if (strcmp(baud_list[i], baud_setting()) == 0) {
-			gtk_list_select_item(GTK_LIST(GTK_COMBO(baud_combo)->list), i);
-			break;
-		}
-	}
-	gtk_widget_show(baud_combo);
-
-	line2_hbox = gtk_hbox_new(FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(line2_hbox), port_label, FALSE, FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(line2_hbox), port_entry, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(line2_hbox), baud_label, FALSE, FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(line2_hbox), baud_combo, FALSE, FALSE, 2);
-	gtk_widget_show(line2_hbox);
-
-
-	crystal_label = gtk_label_new("Crystal:");
-	gtk_label_set_justify(GTK_LABEL(crystal_label), GTK_JUSTIFY_RIGHT);
-	gtk_widget_show(crystal_label);
-
-	crystal_entry = gtk_entry_new();
-	gtk_widget_set_usize(crystal_entry, 80, 0);
-	gtk_entry_set_text(GTK_ENTRY(crystal_entry), crystal_setting());
-	gtk_widget_show(crystal_entry);
-
-	mhz_label = gtk_label_new("(MHz)");
-	gtk_label_set_justify(GTK_LABEL(mhz_label), GTK_JUSTIFY_LEFT);
-	gtk_widget_show(mhz_label);
-
-	line3_hbox = gtk_hbox_new(FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(line3_hbox), crystal_label, FALSE, FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(line3_hbox), crystal_entry, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(line3_hbox), mhz_label, FALSE, FALSE, 2);
-	gtk_widget_show(line3_hbox);
-
-
-	reboot_button = gtk_button_new_with_label("Reboot");
-	gtk_widget_set_sensitive(reboot_button, TRUE);
-	gtk_widget_show(reboot_button);
-
-	bootloader_button = gtk_button_new_with_label("Booloader");
-	gtk_widget_show(bootloader_button);
-
-	quit_button = gtk_button_new_with_label("Quit");
-	gtk_widget_show(quit_button);
-
-	line4_hbox = gtk_hbox_new(TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(line4_hbox), reboot_button, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(line4_hbox), bootloader_button, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(line4_hbox), quit_button, TRUE, TRUE, 2);
-	gtk_widget_show(line4_hbox);
-
-	main_vbox = gtk_vbox_new(FALSE, 2);
-	gtk_box_pack_start(GTK_BOX(main_vbox), line1_hbox, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(main_vbox), line2_hbox, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(main_vbox), line3_hbox, TRUE, TRUE, 2);
-	gtk_box_pack_start(GTK_BOX(main_vbox), line4_hbox, TRUE, TRUE, 2);
-	gtk_widget_show(main_vbox);
-
-	main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_container_add(GTK_CONTAINER(main_window), main_vbox);
-	gtk_widget_show(main_window);
-}
diff --git a/board/msba2-common/tools/src/gui.h b/board/msba2-common/tools/src/gui.h
deleted file mode 100644
index fadde6db6d99bfa9cde2b8f9aabf8ab31d68d67a..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/gui.h
+++ /dev/null
@@ -1,3 +0,0 @@
-extern void create_window(int *argc, char ***argv);
-extern void run_gui(void);
-extern void done_program(int still_in_bootloader);
diff --git a/board/msba2-common/tools/src/ihex.c b/board/msba2-common/tools/src/ihex.c
deleted file mode 100644
index cda37af66cfdeb558b05c500f9f6d2c5cc05057d..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/ihex.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- * 
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-#include <stdio.h>
-#include <string.h>
-
-
-// the maximum flash image size we can support
-// chips with larger memory may be used, but only this
-// much intel-hex data can be loaded into memory!
-#define MAX_MEMORY_SIZE 0x80000
-
-
-#include "ihex.h"
-
-
-static unsigned char firmware_image[MAX_MEMORY_SIZE];
-static unsigned char firmware_mask[MAX_MEMORY_SIZE];
-static int end_record_seen=0;
-static int byte_count;
-static unsigned int extended_addr = 0;
-
-
-static int parse_hex_line(char *line);
-
-
-/****************************************************************/
-/*								*/
-/*		      Read Intel Hex File			*/
-/*								*/
-/****************************************************************/
-
-
-
-int read_intel_hex(const char *filename)
-{
-	FILE *fp;
-	int i, lineno=0;
-	char buf[1024];
-
-	byte_count = 0;
-	end_record_seen = 0;
-	for (i=0; i<MAX_MEMORY_SIZE; i++) {
-		firmware_image[i] = 0xFF;
-		firmware_mask[i] = 0;
-	}
-	extended_addr = 0;
-
-	fp = fopen(filename, "r");
-	if (fp == NULL) {
-		printf("Unable to read file %s\n", filename);
-		return -1;
-	}
-	while (!feof(fp)) {
-		*buf = '\0';
-		fgets(buf, sizeof(buf), fp);
-		lineno++;
-		if (*buf) {
-			if (parse_hex_line(buf) == 0) {
-				printf("Warning, parse error line %d\n", lineno);
-				return -2;
-			}
-		}
-		if (end_record_seen) break;
-		if (feof(stdin)) break;
-	}
-	fclose(fp);
-	return byte_count;
-}
-
-
-/* from ihex.c, at http://www.pjrc.com/tech/8051/pm2_docs/intel-hex.html */
-
-/* parses a line of intel hex code, stores the data in bytes[] */
-/* and the beginning address in addr, and returns a 1 if the */
-/* line was valid, or a 0 if an error occured.  The variable */
-/* num gets the number of bytes that were stored into bytes[] */
-
-
-int
-parse_hex_line(char *line)
-{
-	int addr, code, num;
-        int sum, len, cksum, i;
-        char *ptr;
-        
-        num = 0;
-        if (line[0] != ':') return 0;
-        if (strlen(line) < 11) return 0;
-        ptr = line+1;
-        if (!sscanf(ptr, "%02x", &len)) return 0;
-        ptr += 2;
-        if (strlen(line) < (11 + (len * 2)) ) return 0;
-        if (!sscanf(ptr, "%04x", &addr)) return 0;
-        ptr += 4;
-          /* printf("Line: length=%d Addr=%d\n", len, addr); */
-        if (!sscanf(ptr, "%02x", &code)) return 0;
-	if (addr + extended_addr + len >= MAX_MEMORY_SIZE) return 0;
-        ptr += 2;
-        sum = (len & 255) + ((addr >> 8) & 255) + (addr & 255) + (code & 255);
-	if (code != 0) {
-		if (code == 1) {
-			end_record_seen = 1;
-			return 1;
-		}
-		if (code == 2 && len == 2) {
-			if (!sscanf(ptr, "%04x", &i)) return 1;
-			ptr += 4;
-			sum += ((i >> 8) & 255) + (i & 255);
-        		if (!sscanf(ptr, "%02x", &cksum)) return 1;
-			if (((sum & 255) + (cksum & 255)) & 255) return 1;
-			extended_addr = i << 4;
-			//printf("ext addr = %05X\n", extended_addr);
-		}
-		if (code == 4 && len == 2) {
-			if (!sscanf(ptr, "%04x", &i)) return 1;
-			ptr += 4;
-			sum += ((i >> 8) & 255) + (i & 255);
-        		if (!sscanf(ptr, "%02x", &cksum)) return 1;
-			if (((sum & 255) + (cksum & 255)) & 255) return 1;
-			extended_addr = i << 16;
-			//printf("ext addr = %08X\n", extended_addr);
-		}
-		return 1;	// non-data line
-	}
-	byte_count += len;
-        while (num != len) {
-                if (sscanf(ptr, "%02x", &i) != 1) return 0;
-		i &= 255;
-		firmware_image[addr + extended_addr + num] = i;
-		firmware_mask[addr + extended_addr + num] = 1;
-                ptr += 2;
-                sum += i;
-                (num)++;
-                if (num >= 256) return 0;
-        }
-        if (!sscanf(ptr, "%02x", &cksum)) return 0;
-        if (((sum & 255) + (cksum & 255)) & 255) return 0; /* checksum error */
-        return 1;
-}
-
-
-int bytes_within_range(int begin, int end)
-{
-	int i;
-
-	if (begin < 0 || begin >= MAX_MEMORY_SIZE ||
-	   end < 0 || end >= MAX_MEMORY_SIZE) {
-		return 0;
-	}
-	for (i=begin; i<=end; i++) {
-		if (firmware_mask[i]) return 1;
-	}
-	return 0;
-}
-
-void get_ihex_data(int addr, int len, unsigned char *bytes)
-{
-	int i;
-
-	if (addr < 0 || len < 0 || addr + len >= MAX_MEMORY_SIZE) {
-		for (i=0; i<len; i++) {
-			bytes[i] = 255;
-		}
-		return;
-	}
-	for (i=0; i<len; i++) {
-		if (firmware_mask[addr]) {
-			bytes[i] = firmware_image[addr];
-		} else {
-			bytes[i] = 255;
-		}
-		addr++;
-	}
-}
-
-void put_ihex_data(int addr, int len, const unsigned char *bytes)
-{
-	int i;
-
-	if (addr < 0 || len < 0 || addr + len >= MAX_MEMORY_SIZE) {
-		return;
-	}
-	for (i=0; i<len; i++) {
-		firmware_image[addr] = bytes[i];
-		firmware_mask[addr] = 1;
-		addr++;
-	}
-}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/board/msba2-common/tools/src/ihex.h b/board/msba2-common/tools/src/ihex.h
deleted file mode 100644
index f6892381f519ffa44d5c439c3afc65243d02fd2c..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/ihex.h
+++ /dev/null
@@ -1,7 +0,0 @@
-extern int read_intel_hex(const char *filename);
-extern int bytes_within_range(int begin, int end);
-extern void get_ihex_data(int addr, int len, unsigned char *bytes);
-extern void put_ihex_data(int addr, int len, const unsigned char *bytes);
-
-
-
diff --git a/board/msba2-common/tools/src/lpc2k_pgm.c b/board/msba2-common/tools/src/lpc2k_pgm.c
deleted file mode 100644
index 4891c55946b02e40e21fbaa485076749f0b18ce0..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/lpc2k_pgm.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- * 
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-
-#include "lpc2k_pgm.h"
-#include "serial.h"
-#include "download.h"
-
-int programming_done = 0;
-
-int done_program(int i) {
-	printf("Programming done.\n");
-	programming_done = 1;
-	return 0;
-}
-
-void handle_port_input() {
-	unsigned char buf[256];
-	int num;
-
-	num = read_serial_port(buf, sizeof(buf));
-	if (num > 0) {
-			download_rx_port(buf, num);
-	}
-}
-
-void usage() {
-    printf("usage: lpc2k_pgm <port> <ihex-file>\n");
-}
-
-int main(int argc, char **argv)
-{
-	if (argc < 3 ) {
-		usage();
-		exit(1);
-	}
-
-    char* port_name = argv[1];
-	char* file_name = argv[2];
-
-    if (open_serial_port(port_name) < 0) {
-        return(1);
-    }
-
-	if (!download_begin(file_name)) {
-        return 1;
-    }
-	while (!programming_done) {
-		handle_port_input();
-	}
-	
-    close_serial_port();
-
-	return 0;
-}
-
diff --git a/board/msba2-common/tools/src/lpc2k_pgm.h b/board/msba2-common/tools/src/lpc2k_pgm.h
deleted file mode 100644
index 0a5f5a7eebc3032eba5b1e74bf0a6118b25690b1..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/lpc2k_pgm.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef LPC2K_PGM
-#define LPC2K_PGM
-
-/* gets a name like "115200", sets baudrate accordingly. */
-void change_baud(const char *baud_name);
-
-/* called before/after using serial device, used to have terminal
- * close the device.
-*/
-void signal_terminal();
-
-#endif // LPC2K_PGM
diff --git a/board/msba2-common/tools/src/pseudoterm.c b/board/msba2-common/tools/src/pseudoterm.c
deleted file mode 100644
index cf17d99703aed4b110ae2f0faa6b616d91537d60..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/pseudoterm.c
+++ /dev/null
@@ -1,156 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-#include <signal.h>
-
-#include "serial.h"
-#include "pthread.h"
-#include "download.h"
-
-int tty_fd;
-int stopped = 0;
-char* port_name = "/dev/ttyUSB1";
-pthread_t serial_reader;
-
-void* serial_reader_func(void* arg) {
-    unsigned char buf[255];
-    while(1) {
-        int n = read_serial_port(buf, sizeof(buf));
-        if (n > 0) {
-            write(tty_fd, buf, n);
-        }
-    }
-}
-
-int init() {
-    int result = open_serial_port(port_name);
-    pthread_create(&serial_reader, NULL, serial_reader_func, NULL);
-    hard_reset_to_user_code();
-    return result;
-}
-
-struct termios old_term_setting;
-
-void close_tty() {
-	tcsetattr(tty_fd, TCSANOW, &old_term_setting);
-}
-
-void sig_handler(int signal) {
-    if (signal == SIGUSR1) {
-        if (stopped) {
-            stopped = 0;
-            printf("\nSignal received, opening port.\r\n");
-            if (init() < 0) {
-                printf("Cannot open port.\r\n");
-                close_tty();
-                exit(1);
-            }
-        }
-    } else if (signal == SIGUSR2) {
-        if (!stopped) {
-            stopped = 1;
-            printf("\nSignal received, closing port. \r\n");
-            pthread_cancel(serial_reader);
-            close_serial_port();
-        }
-    } else if (signal == SIGINT) {
-        printf("SIGINT received, exiting...\n");
-        pthread_cancel(serial_reader);
-        close_serial_port();
-        close_tty();
-        exit(0);
-    }
-}
-
-int open_tty(void)
-{
-	int r, fd;
-    struct termios term_setting;
-
-	fd = open("/dev/tty", O_RDWR);
-	if (fd < 0) return -1;
-	r = tcgetattr(fd, &term_setting);
-	if (r != 0) return -2;
-
-    old_term_setting = term_setting;
-
-	term_setting.c_oflag |= ( ONLRET );
-	term_setting.c_iflag |= (/*IGNBRK |*/ BRKINT | IGNPAR);
-	term_setting.c_iflag &= ~(ISTRIP);
-	term_setting.c_lflag &= ~(ICANON |/* ISIG |*/ ECHO);
-	term_setting.c_lflag |= ( ISIG );
-	term_setting.c_cflag |= CREAD;
-	term_setting.c_cc[VMIN] = 1;
-	term_setting.c_cc[VTIME] = 1;
-	r = tcsetattr(fd, TCSANOW, &term_setting);
-	if (r != 0) return -3;
-	return fd;
-}
-
-void install_sighandler() {
-    struct sigaction action;
-    sigemptyset (&action.sa_mask);
-    sigaddset( &action.sa_mask, SIGINT );
-    sigaddset( &action.sa_mask, SIGUSR1 );
-    sigaddset( &action.sa_mask, SIGUSR2 );
-    action.sa_flags = 0;
-    action.sa_handler = sig_handler;
-    sigaction(SIGINT, &action, NULL);
-    sigaction(SIGUSR1, &action, NULL);
-    sigaction(SIGUSR2, &action, NULL);
-}
-
-int main(int argc, char** argv) {
-    if (argc == 2) {
-        port_name = argv[1];
-    }
-
-    printf("Using %s as serial device.\n", port_name);
-
-    char ttybuf[255];
-    tty_fd = open_tty();
-    if (tty_fd < 0) {
-        printf("Error opening terminal.\n");
-        return(1);
-    }
-
-    install_sighandler();
-
-    if (init() < 0) {
-        printf("Cannot open port.\r\n");
-        exit(1);
-    }
-
-    while (1) {
-        int n = read(tty_fd, ttybuf, sizeof(ttybuf));
-        int i;
-
-        /* check for 0x3 (ctrl-c), clean exit */
-        for (i = 0; i < n; i++) {
-            if (ttybuf[i] == 0x3) {
-                if (i > 0) {
-                    write_serial_port(ttybuf, i);
-                }
-                close_serial_port();
-                close_tty();
-                system("tset -c");
-                return 0;
-            }
-
-        }
-        write_serial_port(ttybuf,n);
-    }
-
-    close_tty();
-    close_serial_port();
-    return 0;
-}
-
-
diff --git a/board/msba2-common/tools/src/serial.c b/board/msba2-common/tools/src/serial.c
deleted file mode 100644
index cd51e1cc5c790a05251e84c03f77dd548311561f..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/serial.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- *
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#include <pwd.h>
-#include <grp.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-#ifdef LINUX
-#include <linux/serial.h>
-#endif
-
-#include "serial.h"
-
-static int port_fd=-1;
-
-static tcflag_t baud_name_to_flags(const char *baud_name);
-static void report_open_error(const char *filename, int err);
-
-char* baud_rate = "115200";
-
-int open_serial_port(const char *port_name)
-{
-	int r;
-
-	if (port_fd >= 0) {
-		close(port_fd);
-	}
-	port_fd = open(port_name, O_RDWR);
-	if (port_fd < 0) {
-		report_open_error(port_name, errno);
-		return -1;
-	}
-	r = set_baud(baud_rate);
-	if (r == 0) {
-		printf("Port \"%s\" opened at %s baud\r\n",
-			port_name, baud_rate);
-	} else {
-		printf("Port \"%s\" opened, unable to set baud to %s\r\n",
-			port_name, baud_rate);
-	}
-	#ifdef LINUX
-	{
-		struct serial_struct kernel_serial_settings;
-		/* attempt to set low latency mode, but don't worry if we can't */
-		r = ioctl(port_fd, TIOCGSERIAL, &kernel_serial_settings);
-		if (r < 0) return 0;
-		kernel_serial_settings.flags |= ASYNC_LOW_LATENCY;
-		ioctl(port_fd, TIOCSSERIAL, &kernel_serial_settings);
-	}
-	#endif
-    return 0;
-}
-
-
-/* if the port can't be opened, try to print as much info as
- * possible, so the problem can be resolved (usually permissions)
- */
-static void report_open_error(const char *filename, int err)
-{
-	struct stat info;
-	uid_t my_uid;
-	gid_t my_gid;
-	char my_uname[64], my_gname[64], file_uname[64], file_gname[64];
-	struct passwd *p;
-	struct group *g;
-	mode_t perm;
-	int r, perm_ok=0;
-
-	printf("\r\n");
-	printf("Unable to open \"%s\"\r\n", filename);
-	if (err == EACCES) {
-		printf("You don't have permission to access %s\r\n", filename);
-	}
-	//printf("Attemping to find more information about %s....\r\n", filename);
-	r = stat(filename, &info);
-	if (r < 0) {
-		if (errno == ENOENT) {
-			printf("file %s does not exist\r\n", filename);
-		} else if (errno == ELOOP) {
-			printf("too many symbolic links\r\n");
-		} else if (errno == EACCES) {
-			printf("permission denied to get file status\r\n");
-		} else {
-			printf("Unable to get file status, err%d\r\n", errno);
-		}
-		return;
-	}
-	my_uid = getuid();
-	my_gid = getgid();
-
-	p = getpwuid(my_uid);
-	if (p) {
-		snprintf(my_uname, sizeof(my_uname),
-			"\"%s\" (gid=%d)", p->pw_name, (int)my_uid);
-	} else {
-		snprintf(my_uname, sizeof(my_uname),
-			"(gid=%d)", (int)my_uid);
-	}
-
-	p = getpwuid(info.st_uid);
-	if (p) {
-		snprintf(file_uname, sizeof(file_uname),
-			"\"%s\" (uid=%d)", p->pw_name, (int)info.st_uid);
-	} else {
-		snprintf(file_uname, sizeof(file_uname),
-			"(uid=%d)", (int)info.st_uid);
-	}
-
-	g = getgrgid(my_gid);
-	if (g) {
-		snprintf(my_gname, sizeof(my_gname),
-			"\"%s\" (gid=%d)", g->gr_name, (int)my_gid);
-	} else {
-		snprintf(my_gname, sizeof(my_gname),
-			"(gid=%d)", (int)my_gid);
-	}
-
-	g = getgrgid(info.st_gid);
-	if (g) {
-		snprintf(file_gname, sizeof(file_gname),
-			"\"%s\" (uid=%d)", g->gr_name, (int)info.st_gid);
-	} else {
-		snprintf(file_gname, sizeof(file_gname),
-			"(uid=%d)", (int)info.st_gid);
-	}
-
-	/* printf("%s is owned by: user %s, group %s\r\n",
-		filename, file_uname, file_gname); */
-
-	perm = info.st_mode;
-
-	if ((perm & S_IROTH) && (perm & S_IWOTH)) {
-		printf("%s has read/write permission for everybody\r\n",
-			filename);
-	} else {
-		printf("%s is not read/write for everybody, so\r\n", filename);
-		printf("  you must match either user or group permission\r\n");
-		if ((perm & S_IRUSR) && (perm & S_IWUSR)) {
-			printf("%s has read/write permission for user %s\r\n",
-				filename, file_uname);
-			perm_ok = 1;
-		}
-		if ((perm & S_IRGRP) && (perm & S_IWGRP)) {
-			printf("%s has read/write permission for group %s\r\n",
-				filename, file_gname);
-			perm_ok = 1;
-		}
-		if (perm_ok == 0) {
-			printf("%s does not read/write permission for user or group!\r\n",
-				filename);
-		} else {
-			printf("Your access privs: user %s, group %s\r\n",
-				my_uname, my_gname);
-		}
-	}
-	printf("\r\n");
-}
-
-
-
-int write_serial_port(const void *buf, int num)
-{
-	return(write(port_fd, buf, num));
-}
-
-
-void input_flush_serial_port(void)
-{
-	tcflush(port_fd, TCIFLUSH);
-}
-
-
-int read_serial_port_nb(unsigned char *buf, int bufsize)
-{
-	int num, flags;
-
-        flags = fcntl(port_fd, F_GETFL);
-        fcntl(port_fd, F_SETFL, flags | O_NONBLOCK);
-        num = read(port_fd, buf, bufsize);
-        fcntl(port_fd, F_SETFL, flags);
-	return num;
-}
-
-int read_serial_port(unsigned char *buf, int bufsize)
-{
-	int num;
-
-        num = read(port_fd, buf, bufsize);
-
-	return num;
-}
-
-
-void send_break_signal(void)
-{
-	tcsendbreak(port_fd, 0);
-}
-
-
-void close_serial_port(void)
-{
-	if (port_fd >= 0) {
-		close(port_fd);
-		port_fd = -1;
-	}
-}
-
-
-tcflag_t baud_name_to_flags(const char *baud_name)
-{
-	if (strcmp(baud_name, "230400") == 0) return B230400;
-	if (strcmp(baud_name, "115200") == 0) return B115200;
-	if (strcmp(baud_name, "57600") == 0) return B57600;
-	if (strcmp(baud_name, "38400") == 0) return B38400;
-	if (strcmp(baud_name, "19200") == 0) return B19200;
-	if (strcmp(baud_name, "9600") == 0) return B9600;
-	if (strcmp(baud_name, "4800") == 0) return B4800;
-	if (strcmp(baud_name, "2400") == 0) return B2400;
-	if (strcmp(baud_name, "1200") == 0) return B1200;
-	if (strcmp(baud_name, "300") == 0) return B300;
-	return B0;
-}
-
-
-int set_baud(const char *baud_name)
-{
-	struct termios port_setting;
-	tcflag_t baud;
-	int r;
-
-	if (port_fd < 0) return -1;
-	baud = baud_name_to_flags(baud_name);
-	if (baud == B0) return -2;
-	r = tcgetattr(port_fd, &port_setting);
-	if (r != 0) return -3;
-	//port_setting.c_iflag = IGNBRK | IGNPAR | IXANY | IXON;
-	port_setting.c_iflag = IGNBRK | IGNPAR;
-	port_setting.c_cflag = baud | CS8 | CREAD | HUPCL | CLOCAL;
-	port_setting.c_oflag = 0;
-	port_setting.c_lflag = 0;
-	r = tcsetattr(port_fd, TCSAFLUSH, &port_setting);
-	if (r != 0) return -4;
-	return 0;
-}
-
-
-// Normally this should never be used... except to pass the port
-// file descriptor to the GTK event monitoring loop.  All other
-// use of the serial port is supposed to happen in the file.
-int serial_port_fd(void)
-{
-	return port_fd;
-}
-
-
-
-void set_rts(int val)
-{
-	int flags;
-	int result;
-
-	result = ioctl(port_fd, TIOCMGET, &flags);
-	if( result == -1 ) {
-		printf("Error %i while reading port io flags\n", errno);
-		return;
-	}
-
-	if (val) {
-		flags |= TIOCM_RTS;
-	} else {
-		flags &= ~(TIOCM_RTS);
-	}
-
-	result = ioctl(port_fd, TIOCMSET, &flags);
-	if( result == -1 )
-		printf("Error %i while setting port io flags\n", errno);
-}
-
-
-
-
-
-
-
-void set_dtr(int val)
-{
-	int flags;
-	int result;
-
-	result = ioctl(port_fd, TIOCMGET, &flags);
-	if( result == -1 ) {
-		printf("Error %i while reading port io flags\n", errno);
-		return;
-	}
-
-	if (val) {
-		flags |= TIOCM_DTR;
-	} else {
-		flags &= ~(TIOCM_DTR);
-	}
-
-	result = ioctl(port_fd, TIOCMSET, &flags);
-	if( result == -1 )
-		printf("Error %i while setting port io flags\n", errno);
-}
-
-
-
-
-
-
diff --git a/board/msba2-common/tools/src/serial.h b/board/msba2-common/tools/src/serial.h
deleted file mode 100644
index 4ef9a82e5bc151404d3f0ed23785ccadc4032bc3..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/serial.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef SERIAL_H
-#define SERIAL_H
-
-extern char* baud_rate;
-
-int open_serial_port(const char *port_name);
-int write_serial_port(const void *buf, int num);
-void input_flush_serial_port(void);
-int read_serial_port_nb(unsigned char *buf, int bufsize);
-int read_serial_port(unsigned char *buf, int bufsize);
-void close_serial_port(void);
-void send_break_signal(void);
-int set_baud(const char *baud_name);
-int serial_port_fd(void);
-void set_rts(int val);
-void set_dtr(int val);
-void change_baud(const char *baud_name);
-
-#endif // SERIAL_H
diff --git a/board/msba2-common/tools/src/settings.c b/board/msba2-common/tools/src/settings.c
deleted file mode 100644
index d52e24a03f5ccfba5a2b682e5062aa218ed916c2..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/settings.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- * 
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "settings.h"
-
-#define DEFAULT_FILE ""
-#define DEFAULT_PORT "/dev/ttyS0"
-#define DEFAULT_BAUD "115200"
-#define DEFAULT_CRYSTAL "16"
-
-char *baud_list[]={"115200", "57600", "38400",
-       "19200", "9600", "4800", "2400", "1200", "300", NULL};
-
-static char file[128]={DEFAULT_FILE};
-static char port[64]={DEFAULT_PORT};
-static char baud[64]={DEFAULT_BAUD};
-static char crystal[64]={DEFAULT_CRYSTAL};
-
-static char settings_file[256]={'\0'};
-
-
-void init_settings(void)
-{
-	const char *home_dir;
-	FILE *fp;
-	char buf[1024], *p, *q;
-
-	home_dir = getenv("HOME");
-	if (home_dir && *home_dir) {
-		snprintf(settings_file, sizeof(settings_file),
-			"%s/.lpc2k_pgm", home_dir);
-		fp = fopen(settings_file, "r");
-		if (fp == NULL) return;
-		while (!feof(fp)) {
-			buf[0] = '\0';
-			fgets(buf, sizeof(buf), fp);
-			if (strncmp(buf, "file:", 5) == 0) {
-				for (p=buf+5; isspace(*p); p++) ;
-				q = rindex(p, '\n'); if (q) *q = '\0';
-				q = rindex(p, '\r'); if (q) *q = '\0';
-				snprintf(file, sizeof(file), "%s", p);
-			}
-			if (strncmp(buf, "port:", 5) == 0) {
-				for (p=buf+5; isspace(*p); p++) ;
-				q = rindex(p, '\n'); if (q) *q = '\0';
-				q = rindex(p, '\r'); if (q) *q = '\0';
-				snprintf(port, sizeof(port), "%s", p);
-			}
-			if (strncmp(buf, "baud:", 5) == 0) {
-				for (p=buf+5; isspace(*p); p++) ;
-				q = rindex(p, '\n'); if (q) *q = '\0';
-				q = rindex(p, '\r'); if (q) *q = '\0';
-				snprintf(baud, sizeof(baud), "%s", p);
-			}
-			if (strncmp(buf, "xtal:", 5) == 0) {
-				for (p=buf+5; isspace(*p); p++) ;
-				q = rindex(p, '\n'); if (q) *q = '\0';
-				q = rindex(p, '\r'); if (q) *q = '\0';
-				snprintf(crystal, sizeof(crystal), "%s", p);
-			}
-		}
-		fclose(fp);
-	}
-}
-
-void write_settings_file(void)
-{
-	FILE *fp;
-
-	if (settings_file[0] == '\0') return;
-	fp = fopen(settings_file, "w");
-	if (fp == NULL) return;
-	fprintf(fp, "file: %s\n", file);
-	fprintf(fp, "port: %s\n", port);
-	fprintf(fp, "baud: %s\n", baud);
-	fprintf(fp, "xtal: %s\n", crystal);
-	fflush(fp);
-	fclose(fp);
-}
-
-const char * file_setting(void)
-{
-	return file;
-}
-
-const char * port_setting(void)
-{
-	return port;
-}
-
-const char * baud_setting(void)
-{
-	return baud;
-}
-
-const char * crystal_setting(void)
-{
-	return crystal;
-}
-
-void new_file_setting(const char *new_file)
-{
-	if (strcmp(file, new_file)) {
-		snprintf(file, sizeof(file), "%s", new_file);
-		write_settings_file();
-	}
-}
-
-void new_port_setting(const char *new_port)
-{
-	if (strcmp(port, new_port)) {
-		snprintf(port, sizeof(port), "%s", new_port);
-		write_settings_file();
-	}
-}
-
-void new_baud_setting(const char *new_baud)
-{
-	if (strcmp(baud, new_baud)) {
-		snprintf(baud, sizeof(baud), "%s", new_baud);
-		write_settings_file();
-	}
-}
-
-void new_crystal_setting(const char *new_xtal)
-{
-	if (strcmp(crystal, new_xtal)) {
-		snprintf(crystal, sizeof(crystal), "%s", new_xtal);
-		write_settings_file();
-	}
-}
-
-
-
-
-
-
diff --git a/board/msba2-common/tools/src/settings.h b/board/msba2-common/tools/src/settings.h
deleted file mode 100644
index 20686821a4bc69bbc7e55124c1c39b31a93f3cf0..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/settings.h
+++ /dev/null
@@ -1,12 +0,0 @@
-
-extern void init_settings(void);
-extern const char * file_setting(void);
-extern const char * port_setting(void);
-extern const char * baud_setting(void);
-extern const char * crystal_setting(void);
-extern void new_file_setting(const char *new_file);
-extern void new_port_setting(const char *new_port);
-extern void new_baud_setting(const char *new_baud);
-extern void new_crystal_setting(const char *new_xtal);
-
-extern char *baud_list[];
diff --git a/board/msba2-common/tools/src/uuencode.c b/board/msba2-common/tools/src/uuencode.c
deleted file mode 100644
index 5cc76e796c6ece3203030aaa9dca1506b532a370..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/uuencode.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * LPC 2000 Loader, http://www.pjrc.com/arm/lpc2k_pgm
- * Copyright (c) 2004, PJRC.COM, LLC, <paul@pjrc.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License.
- *
- * 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
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- */
-
-/* If this code fails to build, please provide at least the following
- * information when requesting (free) technical support.
- * 
- * 1: Complete copy of all messages during the build.
- * 2: Output of "gtk-config --version"
- * 3: Output of "gtk-config --libs"
- * 4: Output of "gtk-config --cflags"
- * 5: Output of "uname -a"
- * 6: Version of GTK installed... eg, type: ls -l /lib/libgtk*
- * 7: Other info... which linux distribution, version, other software
- */
-
-#include "uuencode.h"
-
-static char uuchar(unsigned int val);
-
-
-void uuencode(char *str, const unsigned char *data, int num)
-{
-	int i, n;
-	unsigned int val;
-
-	*str++ = uuchar(num);
-
-	n = (num + 2) / 3;
-	for (i=0; i<n; i++) {
-		val = ((data[0] & 0xFF) << 16)
-		   |  ((data[1] & 0xFF) << 8)
-		   |  ((data[2] & 0xFF) << 0);
-		*str++ = uuchar(val >> 18);
-		*str++ = uuchar(val >> 12);
-		*str++ = uuchar(val >>  6);
-		*str++ = uuchar(val >>  0);
-		data += 3;
-	}
-	*str = '\0';
-}
-
-int uudecode(const char *str, unsigned char *data, int max)
-{
-	int num=0;
-	int i, n;
-	unsigned int val;
-
-	if (*str == '\0') return 0;
-
-	num = *str++ - 32;
-	if (num < 1 || num > 45) return 0;
-
-	n = (num + 2) / 3;
-	for (i=0; i<n; i++) {
-		if (str[0] < 32 || str[0] > 96) return 0;
-		if (str[1] < 32 || str[1] > 96) return 0;
-		if (str[2] < 32 || str[2] > 96) return 0;
-		if (str[3] < 32 || str[3] > 96) return 0;
-		val = (((str[0] - 32) & 0x3F) << 18)
-		   |  (((str[1] - 32) & 0x3F) << 12)
-		   |  (((str[2] - 32) & 0x3F) << 6)
-		   |  (((str[3] - 32) & 0x3F) << 0);
-		*data++ = (val >> 16) & 0xFF;
-		*data++ = (val >> 8) & 0xFF;
-		*data++ = (val >> 0) & 0xFF;
-		str += 4;
-	}
-	return num;
-}
-
-
-static char uuchar(unsigned int val)
-{
-	val &= 0x3F;
-	val += 0x20;
-	if (val == 0x20) val = 0x60;
-	return val;
-}
-
-
-
diff --git a/board/msba2-common/tools/src/uuencode.h b/board/msba2-common/tools/src/uuencode.h
deleted file mode 100644
index 92fecb7d33c3f391f9e9724436396cf89ff2c5ad..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/src/uuencode.h
+++ /dev/null
@@ -1,3 +0,0 @@
-extern void uuencode(char *str, const unsigned char *data, int num);
-extern int uudecode(const char *str, unsigned char *data, int max);
-
diff --git a/board/msba2-common/tools/termctrl.sh b/board/msba2-common/tools/termctrl.sh
deleted file mode 100755
index 75e87ab21e336d0562e7dd4aaa8caa9abf0bce43..0000000000000000000000000000000000000000
--- a/board/msba2-common/tools/termctrl.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-pid=`pgrep pseudoterm`
-
-if test "$pid" = "" ; then
-
-	echo "   Pseudoterm not running."
-
-else
-
-	if test "$1" = "continue" ; then
-		kill -s USR1 $pid;
-	elif test "$1" = "pause" ; then
-		kill -s USR2 $pid ;
-	elif test "$1" = "stop" ; then
-		kill $pid ;
-	else
-		echo "Usage:";
-		echo "termctrl.sh continue/pause/stop";
-	fi
-	
-fi
diff --git a/board/msba2/Jamfile b/board/msba2/Jamfile
deleted file mode 100644
index 6e74471b63f0400046225682f171d15e53095a31..0000000000000000000000000000000000000000
--- a/board/msba2/Jamfile
+++ /dev/null
@@ -1,34 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-SubDir TOP board $(BOARD) ;
-
-Module board : board_init.c : board_common board_uart ;
-UseModule board ;
-
-SubInclude TOP board $(BOARD)-common ;
-SubInclude TOP cpu $(CPU) ;
diff --git a/board/msba2/Jamrules.msba2 b/board/msba2/Jamrules.msba2
deleted file mode 100644
index 22c8a880606d8fc47e6b251f7ceef4038698ce32..0000000000000000000000000000000000000000
--- a/board/msba2/Jamrules.msba2
+++ /dev/null
@@ -1 +0,0 @@
-include board/msba2-common/Jamrules.msba2 ;
diff --git a/board/msba2/board_init.c b/board/msba2/board_init.c
deleted file mode 100644
index f250109c088efa568b75cce74b31d1d18fa55797..0000000000000000000000000000000000000000
--- a/board/msba2/board_init.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <board.h>
-#include <cpu.h>
-
-void loop_delay(void) {
-    volatile uint16_t i, j;
-    for (i = 1; i < 30; i++) {
-        for (j = 1; j != 0; j++) {
-            asm volatile (" nop ");
-        }
-    }
-}
-
-void bl_blink(void) {
-    LED_RED_ON;
-    LED_GREEN_ON;
-    
-    loop_delay();
-
-    LED_RED_OFF;
-    LED_GREEN_OFF;
-}
-
-void bl_init_ports(void)
-{
-    SCS |= BIT0;                                            // Set IO Ports to fast switching mode
-
-    /* UART0 */
-    PINSEL0 |= BIT4 + BIT6;                                 // RxD0 and TxD0
-    PINSEL0 &= ~(BIT5 + BIT7);
-
-    /* LEDS */
-    FIO3DIR |= LED_RED_PIN;
-    FIO3DIR |= LED_GREEN_PIN;
-    LED_RED_OFF;
-    LED_GREEN_OFF;
-    
-    /* short blinking of both of the LEDs on startup */
-    bl_blink();
-}
-
diff --git a/board/msba2/include/board.h b/board/msba2/include/board.h
deleted file mode 100644
index 2b1f28fd2a622c4fdcb8ae9619b8e1bbf6aebbc2..0000000000000000000000000000000000000000
--- a/board/msba2/include/board.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __BOARD_H
-#define __BOARD_H 
-
-#include <msba2_common.h>
-#include <bitarithm.h>
-
-#define LED_RED_PIN (BIT25)
-#define LED_GREEN_PIN (BIT26)
-
-#define LED_GREEN_OFF (FIO3SET = LED_GREEN_PIN)
-#define LED_GREEN_ON (FIO3CLR = LED_GREEN_PIN)
-#define LED_GREEN_TOGGLE (FIO3PIN ^= LED_GREEN_PIN)
-
-#define LED_RED_OFF (FIO3SET = LED_RED_PIN)
-#define LED_RED_ON (FIO3CLR = LED_RED_PIN)
-#define LED_RED_TOGGLE (FIO3PIN ^= LED_RED_PIN)
-
-#endif /* __BOARD_H */
diff --git a/board/olimex_lpc2148/Jamfile b/board/olimex_lpc2148/Jamfile
deleted file mode 100644
index 43ad7d1baf54452c25c51814b2477498fc632a05..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/Jamfile
+++ /dev/null
@@ -1,10 +0,0 @@
-SubDir TOP board olimex_lpc2148 ;
-
-CPU = lpc214x ;
-
-HDRS += $(TOP)/board/olimex_lpc2148/include ;
-
-Module board : board_init.c debug_uart.c rs232.c ;
-UseModule board ;
-
-SubInclude TOP cpu lpc214x ;
diff --git a/board/olimex_lpc2148/Jamfile.olimex_lpc2148 b/board/olimex_lpc2148/Jamfile.olimex_lpc2148
deleted file mode 100644
index 057aa7b322832092346e463e6d23659a30bb7877..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/Jamfile.olimex_lpc2148
+++ /dev/null
@@ -1,4 +0,0 @@
-##################
-
-include $(TOP)/Jamfile.arm_common ;
-
diff --git a/board/olimex_lpc2148/Jamrules.olimex_lpc2148 b/board/olimex_lpc2148/Jamrules.olimex_lpc2148
deleted file mode 100644
index 7a7086d5bca4e07e7acaceecf243325b5cacfff2..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/Jamrules.olimex_lpc2148
+++ /dev/null
@@ -1,9 +0,0 @@
-############################
-
-BOARD = olimex_lpc2148 ;
-CPU = lpc214x ;
-
-GDB = arm-elf-gdb ;
-GDBFLAGS = -x board/olimex_lpc2148/tools/lpc2148_flash.gdb ;
-
-include $(TOP)/Jamrules.arm_common ;
diff --git a/board/olimex_lpc2148/board_init.c b/board/olimex_lpc2148/board_init.c
deleted file mode 100644
index 874feb88120a0da24985d99c951bbf5d487f5da8..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/board_init.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * bl_board_init.c
- *
- *  Created on: 19.08.2008
- *      Author: heiko, kaspar
- */
-
-#include "cpu.h"
-#include "bits.h"
-#include "VIC.h"
-
-#define PLOCK 0x400
-
-static void feed(void)
-{
-	PLL0FEED = 0xAA;
-	PLL0FEED = 0x55;
-}
-
-void bl_init_clks(void)
-{
-
-	// 				Setting the Phased Lock Loop (PLL)
-	//               ----------------------------------
-	//
-	// Olimex LPC-P2148 has a 12.0000 mhz crystal
-	//
-	// We'd like the LPC2148 to run at 60 mhz (has to be an even multiple of crystal)
-	//
-	// According to the Philips LPC2148 manual:   M = cclk / Fosc	where:	M    = PLL multiplier (bits 0-4 of PLLCFG)
-	//																		cclk = 60000000 hz
-	//																		Fosc = 12000000 hz
-	//
-	// Solving:	M = 60000000 / 12000000 = 5
-	//
-	//			Note: M - 1 must be entered into bits 0-4 of PLLCFG (assign 4 to these bits)
-	//
-	//
-	// The Current Controlled Oscilator (CCO) must operate in the range 156 mhz to 320 mhz
-	//
-	// According to the Philips LPC2148 manual:	Fcco = cclk * 2 * P    where:	Fcco = CCO frequency
-	//																			cclk = 60000000 hz
-	//																			P = PLL divisor (bits 5-6 of PLLCFG)
-	//
-	// Solving:	Fcco = 60000000 * 2 * P
-	//			P = 2  (trial value)
-	//			Fcco = 60000000 * 2 * 2
-	//			Fcc0 = 240000000 hz    (good choice for P since it's within the 156 mhz to 320 mhz range)
-	//
-	// From Table 22 (page 34) of Philips LPC2148 manual    P = 2, PLLCFG bits 5-6 = 1  (assign 1 to these bits)
-	//
-	// Finally:      PLLCFG = 0  01  00100  =  0x24
-	//
-	// Final note: to load PLLCFG register, we must use the 0xAA followed 0x55 write sequence to the PLLFEED register
-	//             this is done in the short function feed() below
-	//
-
-	// Setting Multiplier and Divider values
-  	PLL0CFG = 0x24;
-  	feed();
-
-	// Enabling the PLL */
-	PLL0CON = 0x1;
-	feed();
-
-	// Wait for the PLL to lock to set frequency
-	while(!(PLL0STAT & PLOCK)) ;
-
-	// Connect the PLL as the clock source
-	PLL0CON = 0x3;
-	feed();
-
-	// Enabling MAM and setting number of clocks used for Flash memory fetch
-	MAMTIM = 0x3;
-	MAMCR = 0x2;
-
-	// Setting peripheral Clock (pclk) to 1/2 System Clock (cclk)
-	VPBDIV = PCLK_DIV;
-}
-
-
-
-
-void bl_init_ports(void)
-{
-
-}
-
diff --git a/board/olimex_lpc2148/debug_uart.c b/board/olimex_lpc2148/debug_uart.c
deleted file mode 100644
index 90f5144dfefb70e413c15967157d0027b69eea94..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/debug_uart.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "lpc214x.h"
-#include "bits.h"
-
-#include "rs232.h"
-
-void debug_putchar(int character)
-{
-    UART1WriteChar(character);
-}
-
-void bl_uart_init(void)
-{
-    UART1Initialize(115200U);
-}
diff --git a/board/olimex_lpc2148/include/board.h b/board/olimex_lpc2148/include/board.h
deleted file mode 100644
index eaf536b005b495c6135ff2f66538d7c169023f5d..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/include/board.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <lpc2148.h>
diff --git a/board/olimex_lpc2148/include/rs232.h b/board/olimex_lpc2148/include/rs232.h
deleted file mode 100644
index 9fe0bf2c872b85df85d0587f0bb8d4025e8fb1cd..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/include/rs232.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//rs232.h
-//#include <iolpc2138.h>
-
-#include "lpc214x.h"
-
-//#define OSCILLATOR_CLOCK_FREQUENCY  14745600      //in MHz
-#define OSCILLATOR_CLOCK_FREQUENCY  12000000      //in MHz
-
-//get real processor clock frequency
-unsigned int processorClockFrequency(void);
-//get peripheral clock frequency
-unsigned int peripheralClockFrequency(void);
-
-/**** UART0 ****/
-//initialize UART0 interface
-void UART0Initialize(unsigned int baud);
-//write char to UART0 (RS232);
-void UART0WriteChar(int ch0);
-//read char from RS232
-unsigned char UART0ReadChar(void);
-
-//this function read/write char from RS232,
-//but they not wait to read/write
-unsigned char UART0ReadChar_nostop(void);
-void UART0WriteChar_nostop(unsigned char ch0);
-
-
-/**** UART1 ****/
-//initialize UART0 interface
-void UART1Initialize(unsigned int baud);
-//write char to UART0 (RS232);
-void UART1WriteChar(int ch0);
-//read char from RS232
-unsigned char UART0ReadChar(void);
-
-//this function read/write char from RS232,
-//but they not wait to read/write
-unsigned char UART1ReadChar_nostop(void);
-void UART1WriteChar_nostop(unsigned char ch0);
-
diff --git a/board/olimex_lpc2148/rs232.c b/board/olimex_lpc2148/rs232.c
deleted file mode 100644
index 43e70a00f21cf76d20e530490b663615087d0e5b..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/rs232.c
+++ /dev/null
@@ -1,65 +0,0 @@
-//rs232.c
-#include "rs232.h"
-
-unsigned int processorClockFrequency(void)
-{
-  //return real processor clock speed
-  return OSCILLATOR_CLOCK_FREQUENCY * (PLL0CON & 1 ? (PLL0CFG & 0xF) + 1 : 1);
-}
-
-unsigned int peripheralClockFrequency(void)
-{
-  //VPBDIV - determines the relationship between the processor clock (cclk)
-  //and the clock used by peripheral devices (pclk).
-  unsigned int divider = 0;
-  switch (VPBDIV & 3)
-  {
-    case 0: divider = 4;  break;
-    case 1: divider = 1;  break;
-    case 2: divider = 2;  break;
-  }
-  return processorClockFrequency() / divider;
-}
-
-/**** UART0 ****/
-void UART1Initialize(unsigned int baud)
-{
-  unsigned int divisor = peripheralClockFrequency() / (16 * baud);
-
-  //set Line Control Register (8 bit, 1 stop bit, no parity, enable DLAB)
-//  U0LCR_bit.WLS   = 0x3;    //8 bit
-//  U0LCR_bit.SBS   = 0x0;    //1 stop bit
-//  U0LCR_bit.PE    = 0x0;    //no parity
-//  U0LCR_bit.DLAB  = 0x1;    //enable DLAB
-  //with one row
-    U1LCR = 0x83;
-
-
-  //devisor
-  U1DLL = divisor & 0xFF;
-  U1DLM = (divisor >> 8) & 0xFF;
-  U1LCR &= ~0x80;
-
-  //set functionalite to pins:  port0.0 -> TX0,  port0.1 -> RXD0
-//  PINSEL0_bit.P0_0 = 0x1;
-//  PINSEL0_bit.P0_1 = 0x1;
-  //with one row
-  PINSEL0 |= BIT16;
-  PINSEL0 &= ~BIT17;
-
-}
-
-void UART1WriteChar(int ch0)
-{
-  while (!(U1LSR & BIT5));
-  U1THR = ch0;
-}
-
-unsigned char UART0ReadChar(void)
-{
-  //when U0LSR_bit.DR is 1 - U0RBR contains valid data
-//  while (U0LSR_bit.DR == 0);
-  return U0RBR;
-}
-
-
diff --git a/board/olimex_lpc2148/tick.c b/board/olimex_lpc2148/tick.c
deleted file mode 100644
index 4b8912607b4c3f7514e72cc4e979296f42291269..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/tick.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2005, 2006, 2007, 2008 by Thomas Hillebrandt and Heiko Will
-
-This file is part of the Micro-mesh SensorWeb Firmware.
-
-Micro-Mesh is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-Micro-Mesh 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
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Micro-Mesh; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#include "lpc214x.h"
-#include "bits.h"
-//#include "tick.h"
-#include "minimal_dbg_console.h"
-#include "VIC.h"
-
-void Timer0_IRQHandler (void) __attribute__((interrupt("IRQ")));
-
-extern void eINT();
-extern void dINT();
-
-
-void driver_timer_load(void)
-{
-    T0TCR = 0;                  // Disable timer 0.
-    T0PR  = 3000;               // Prescaler is set to relevant pclk , counter is incremented every T0PR tact.
-    T0CCR = 0;                  // Capture is disabled.
-    T0EMR = 0;                  // No external match output.
-    T0TC= 0;
-    T0MR0= 1000;
-    T0MCR|= BIT0 + BIT1;
-    T0TCR = BIT0;               // Enable timer 0.
-
-    dINT();                      // Disable all interrupts
-    VICIntEnable = BIT4;          // Enable Interrupthandling for Timer0
-    VICVectCntl3 = 4 + BIT5;      // Assign Timer0 to IRQ Slot 3
-    VICVectAddr3 = (unsigned int)Timer0_IRQHandler;    // Assign Isr Address
-    eINT();
-}
-
-int counter = 0;
-
-void Timer0_IRQHandler (void)
-{
-    extern unsigned int sched_context_switch_request;
-    counter++;
-	T0IR |= 0xff;											// reset timer1 interrupt flag
-	sl_printf("#");
-
-    sched_context_switch_request = 1;
-
-	VICVectAddr = 0;										// acknowledge interrupt (if using VIC IRQ)
-}
-
diff --git a/board/olimex_lpc2148/tools/lpc2148_flash.gdb b/board/olimex_lpc2148/tools/lpc2148_flash.gdb
deleted file mode 100644
index cb308752aecedf4af6232dd52bb479692fd9eddd..0000000000000000000000000000000000000000
--- a/board/olimex_lpc2148/tools/lpc2148_flash.gdb
+++ /dev/null
@@ -1,22 +0,0 @@
-#winheight regs 11
-set history save on
-set history size 1000
-target remote localhost:3333
-monitor reset
-monitor sleep 100
-monitor halt
-monitor poll
-#monitor arm7_9 sw_bkpts disable
-#monitor arm7_9 force_hw_bkpts enable
-monitor mww 0xE01FC040 0x0001
-monitor mdw 0xE01FC040
-monitor flash erase_sector 0 0 14
-#monitor flash auto_erase on
-monitor flash erase_check 0
-#monitor flash write_image /home/kaspar/FeuerWhere/src/x/bin/arm.elf
-set remote hardware-watchpoint-limit 2
-load
-break bootloader
-mon soft_reset_halt
-continue
-d b 1
diff --git a/board/pttu/Jamfile b/board/pttu/Jamfile
deleted file mode 100644
index 11b4a77e7e4217978b7438105473ec2264009cb5..0000000000000000000000000000000000000000
--- a/board/pttu/Jamfile
+++ /dev/null
@@ -1,34 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id$
-
-SubDir TOP board $(BOARD) ;
-
-Module board : board_init.c : board_common board_uart ;
-UseModule board ;
-
-SubInclude TOP board msba2-common ;
-SubInclude TOP cpu $(CPU) ;
diff --git a/board/pttu/Jamfile.pttu b/board/pttu/Jamfile.pttu
deleted file mode 100644
index 1bce8934fe48dfe1ffb3ee3ab74444741dbab18a..0000000000000000000000000000000000000000
--- a/board/pttu/Jamfile.pttu
+++ /dev/null
@@ -1,28 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id: Jamfile.msba2 832 2009-03-13 16:45:41Z kaspar $
-
-include [ FPath $(TOP) cpu arm_common Jamfile.arm_common ] ;
diff --git a/board/pttu/Jamrules.pttu b/board/pttu/Jamrules.pttu
deleted file mode 100644
index 53e71c71f17f23c4c4adb56684bb2a640d702680..0000000000000000000000000000000000000000
--- a/board/pttu/Jamrules.pttu
+++ /dev/null
@@ -1,34 +0,0 @@
-# ******************************************************************************
-# Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
-# 
-# These sources were developed at the Freie Universitaet Berlin, Computer
-# Systems and Telematics group (http://cst.mi.fu-berlin.de).
-# ------------------------------------------------------------------------------
-# This file is part of FeuerWare.
-# 
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 3 of the License, or (at your option) any later
-# version.
-# 
-# FeuerWare 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 GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with
-# this program.  If not, see http://www.gnu.org/licenses/ .
-# ------------------------------------------------------------------------------
-# For further information and questions please use the web site
-# 	http://scatterweb.mi.fu-berlin.de
-# and the mailinglist (subscription via web site)
-# 	scatterweb@lists.spline.inf.fu-berlin.de
-# ******************************************************************************
-# $Id: Jamrules.msba2 881 2009-03-20 12:24:58Z kaspar $
-
-include board/msba2-common/Jamrules.msba2 ;
-
-HDRS += [ FPath $(TOP) board $(BOARD) drivers include ] ;
-
-GDB = arm-elf-gdb ;
-GDBFLAGS = -x board/pttu/tools/pttu_debug.gdb ;
-
diff --git a/board/pttu/board_init.c b/board/pttu/board_init.c
deleted file mode 100644
index b5b78bde252621393a597df4613276d10e07d6b3..0000000000000000000000000000000000000000
--- a/board/pttu/board_init.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/******************************************************************************
-Copyright 2008-2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-/**
- * @ingroup	pttu
- * @{
- */
-
-/**
- * @file
- * @brief 		PTTU board initialization
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @author		Heiko Will
- * @author		Kaspar Schleiser
- *
- */
-#include <board.h>
-#include <VIC.h>
-#include <cpu.h>
-
-#define PCRTC         BIT9
-#define CL_CPU_DIV    4
-
-void bl_init_ports(void)
-{
-	SCS |= BIT0;											// Set IO Ports to fast switching mode
-
-	/* UART0 */
-	PINSEL0 |= BIT4 + BIT6;									// RxD0 and TxD0
-	PINSEL0 &= ~(BIT5 + BIT7);
-
-	/*Turn Board on*/
-	PINMODE0 |= BIT1;
-	FIO0DIR |= BIT27;
-	FIO0CLR = BIT27;
-
-	/* 5V*/
-	FIO1DIR |= BIT28; // Synch
-	FIO1SET = BIT28;  // No Powersave
-
-	FIO1DIR |= BIT27; // 5V off
-	FIO1CLR = BIT27;
-
-	/* Disable Resistors on Buttons */
-	PINMODE4 |= BIT9 + BIT11;
-
-	/* Disable Resistors on LED - and Ports to output*/
-	PINMODE7 |= BIT19 + BIT21;
-	PINMODE2 |= BIT1;
-	FIO1DIR |= BIT0;
-	FIO3DIR |= BIT25 + BIT26;
-	FIO1SET = BIT0;
-	FIO3SET = BIT25 + BIT26;
-
-	// Config and Disable PA
-	FIO1DIR |= BIT25 + BIT26 + BIT22;
-	FIO1SET = BIT26;
-	FIO1CLR = BIT25;
-	FIO1CLR = BIT22; // PA /Shutdown
-	FIO0DIR |= BIT26; // **  // Important: First put this Port as DA 2.0V and then turn on PA!!
-	FIO0SET = BIT26; // **
-
-	// Configure GPS
-	PINMODE3 |= BIT3 + BIT7; // No Pullup on 1.17 & 1.19
-	PINMODE9 |= BIT27 + BIT25; // No Pullup for Uart
-	FIO1DIR |= BIT17;
-	FIO1CLR = BIT17; // Turn off GPS
-	FIO1DIR |= BIT19;
-	FIO1CLR = BIT19; // Hold in Reset
-	PINSEL9 |= BIT24 + BIT25 + BIT26 + BIT27; //4.28 & 4.29 as Uart3
-
-	// Nanotron
-	FIO2DIR &= ~BIT8;	// nanotron uC IRQ as input
-	FIO1DIR |= BIT15;	// nanotron power on reset
-	FIO1DIR &= ~BIT14;	// nanotron uC RESET as input
-	FIO1DIR &= ~BIT10;	// nanotron uC Vcc as input
-	FIO1DIR |= BIT9;	// nanotron ENABLE as output
-	FIO1DIR &= ~BIT4;	// nanotron Rx/Tx as input
-
-	FIO1CLR = BIT15;
-	FIO1CLR = BIT9;		// Enable power
-
-	PINMODE1 |= BIT1;   // No Pullup for CS
-	FIO0DIR |= BIT16;   // CS as output
-	FIO0SET = BIT16;	// drive cs inactive
-	FIO0DIR |= BIT18 + BIT15;   // SPi Output
-
-	// RFID
-	FIO1DIR |= BIT1;    // RFID Power
-	FIO1CLR = BIT1;		//
-
-	FIO0DIR |= BIT1;    // RFID Reset
-	FIO0SET = BIT1;     // Hold in Reset
-
-	FIO0DIR &= ~BIT10;  // LED as INPUT
-	FIO0DIR &= ~BIT11;  // DATA as INPUT
-	PINMODE0 |= BIT19 + BIT21; // No Pullups
-
-	// LTC4150 ARM
-	FIO0DIR |= BIT5;
-	FIO0CLR = BIT5;
-
-	// LTC4150 System
-	FIO0DIR |= BIT24;
-	FIO0CLR = BIT24;
-
-	// Battery Voltage (AD)
-	PINMODE1 |= BIT19;
-	PINSEL1 &= ~BIT19;
-	PINSEL1 |= BIT18;
-
-	//cc1100
-	FIO0DIR |= BIT6 + BIT7 + BIT9;
-	FIO0SET = BIT6;
-	FIO0SET = BIT7 + BIT9;
-
-	//SD
-	FIO2DIR |= BIT12 + BIT13 + BIT11;
-	FIO0DIR |= BIT20 + BIT22 + BIT21;
-
-	//Tetra
-	FIO2DIR |= BIT0 + BIT7;
-
-
-	// No Pullups on any port
-	int nopullup = BIT1 + BIT3 + BIT5 + BIT7 + BIT9 + BIT11 + BIT13 + BIT15 + BIT17 + BIT19 + BIT21 + BIT23 + BIT25 + BIT27 + BIT29 + BIT31;
-	PINMODE0 = nopullup - BIT13 - BIT15 - BIT17 - BIT19;
-	PINMODE1 = BIT1 + BIT3 + BIT5 + BIT7 + BIT9 + BIT11 + BIT13 + BIT15 + BIT17 + BIT19 + BIT21;
-	PINMODE2 = nopullup;
-	PINMODE3 = nopullup;
-	PINMODE4 = nopullup;
-	PINMODE5 = nopullup;
-	PINMODE6 = nopullup;
-	PINMODE7 = nopullup;
-	PINMODE8 = nopullup;
-	PINMODE9 = nopullup;
-}
-
-/** @} */
diff --git a/board/pttu/drivers/Jamfile b/board/pttu/drivers/Jamfile
deleted file mode 100644
index 31d6db1d6d3a69cf8445801ae5163f957599adcc..0000000000000000000000000000000000000000
--- a/board/pttu/drivers/Jamfile
+++ /dev/null
@@ -1,2 +0,0 @@
-SubDir TOP board pttu drivers ;
-
diff --git a/board/pttu/include/board.h b/board/pttu/include/board.h
deleted file mode 100644
index 850f8d1d1766c7863cb199c631bedfce8223b061..0000000000000000000000000000000000000000
--- a/board/pttu/include/board.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/******************************************************************************
-Copyright 2008-2009, Freie Universitaet Berlin (FUB). All rights reserved.
-
-These sources were developed at the Freie Universitaet Berlin, Computer Systems
-and Telematics group (http://cst.mi.fu-berlin.de).
--------------------------------------------------------------------------------
-This file is part of FeuerWare.
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any later
-version.
-
-FeuerWare 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 GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see http://www.gnu.org/licenses/ .
---------------------------------------------------------------------------------
-For further information and questions please use the web site
-	http://scatterweb.mi.fu-berlin.de
-and the mailinglist (subscription via web site)
-	scatterweb@lists.spline.inf.fu-berlin.de
-*******************************************************************************/
-
-#ifndef __BOARD_H
-#define __BOARD_H
-
-/**
- * @ingroup		pttu
- * @{
- */
-
-/**
- * @file
- * @brief		PTTU Board
- *
- * @author      Freie Universität Berlin, Computer Systems & Telematics, FeuerWhere project
- * @author		Kaspar Schleiser <kaspar@schleiser.de>
- * @version     $Revision$
- *
- * @note		$Id: board.h 664 2009-02-19 10:54:44Z baar $
- */
-
-#include <lpc2387.h>
-#include <cpu-conf.h>
-
-#define VICIntEnClear VICIntEnClr
-
-void init_clks1(void);
-void init_clks2(void);
-void bl_init_clks(void);
-
-/** @} */
-#endif // __BOARD_H
diff --git a/board/pttu/tools/jtag.txt b/board/pttu/tools/jtag.txt
deleted file mode 100644
index 586eea6745c66fdf7719e9e782ad8f84553b897d..0000000000000000000000000000000000000000
--- a/board/pttu/tools/jtag.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-compile openocd release v0.1:
-[extract to somewhere]
-./configure --prefix=CHANGEMEtowhatever --enable-ft2232_libftdi
-make
-make install
-
-to flash run from within board/pttu/tools:
-./openocd-pttu.sh olimex-usb-jtag-tiny-a "mt_flash CHANGEME/absolute/path/to/hexfile/pttu.hex;shutdown"
-
-
-to debug, first start the following from within board/pttu/tools:
-./openocd-pttu.sh olimex-usb-jtag-tiny-a
-
-then just run "jam debug". this will flash bin/pttu.hex, run it and stop at the bootloader.
diff --git a/board/pttu/tools/olimex-arm-usb-ocd.cfg b/board/pttu/tools/olimex-arm-usb-ocd.cfg
deleted file mode 100644
index 0aaba1d2bb57975b7f58b40d5ee1923282d06e6b..0000000000000000000000000000000000000000
--- a/board/pttu/tools/olimex-arm-usb-ocd.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-# 
-set CPUTAPID 0x4f1f0f0f
-
-jtag_speed 100
-
-source [find interface/olimex-arm-usb-ocd.cfg]
-#source [find target/lpc2148.cfg]
-source lpc2378.cfg
-
diff --git a/board/pttu/tools/openocd-pttu.cfg b/board/pttu/tools/openocd-pttu.cfg
deleted file mode 100644
index b58392f1ee7ee95bad83af8e4ac2549d0d1d4125..0000000000000000000000000000000000000000
--- a/board/pttu/tools/openocd-pttu.cfg
+++ /dev/null
@@ -1,75 +0,0 @@
-######
-# parts taken from Martin Thomas
-# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/openocd_intro/index.html
-#
-
-set CPUTAPID 0x4f1f0f0f
-jtag_speed 100
-
-source [find cpu/lpc2387/tools/openocd-lpc2387.cfg]
-
-fast disable
-
-#
-# scipts/macros/user commands - this is TCL (variant JIM):
-#
-proc mt_internal_rc {} {
-     jtag_khz 100
-     reset run
-     sleep 100
-     reset
-     halt
-     wait_halt 2
-     # PLL disconnect PLLCON
-     mww 0xE01FC080 0x01 
-     mww 0xE01FC08C 0xAA 
-     mww 0xE01FC08C 0x55 
-     # PLL disable PLLCON
-     mww 0xE01FC080 0x00 
-     mww 0xE01FC08C 0xAA 
-     mww 0xE01FC08C 0x55 
-     # no prescaler CCLKCFG
-     mww 0xE01FC104 0x00
-     #  internal RC CLKSRCSEL
-     mww 0xE01FC10C 0x00 
-     #### main oscil. CLKSRCSEL
-     #### mww 0xE01FC10C 0x01
-     # remap to internal flash
-     mww 0xE01FC040 0x01 
-     sleep 100 
-     jtag_khz 500
-     flash probe 0 
-}
-
-proc mt_flash_bin {IMGFILE OFFSET} {
-     mt_internal_rc
-     flash write_image erase $IMGFILE $OFFSET
-     sleep 100 
-     verify_image $IMGFILE $OFFSET
-     sleep 100 
-}
-
-proc mt_flash_v {IMGFILE} {
-     mt_internal_rc
-     flash write_image erase $IMGFILE
-     sleep 100 
-     verify_image $IMGFILE
-     sleep 100
-}
-
-proc mt_flash {IMGFILE} {
-     mt_internal_rc
-     flash write_image erase $IMGFILE
-}
-
-flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 4000 calc_checksum
-
-arm7_9 dcc_downloads enable 
-
-gdb_flash_program enable
-
-init
-
-fast enable
-jtag_khz 500
-debug_level 1
diff --git a/board/pttu/tools/openocd-pttu.sh b/board/pttu/tools/openocd-pttu.sh
deleted file mode 100755
index 95f11fa14818e62fde70a3c5d78c9ff601224817..0000000000000000000000000000000000000000
--- a/board/pttu/tools/openocd-pttu.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#/bin/bash
-
-if [ $# -le 0 ]; then
-	echo "usage: $0 [openocd interface name] [openocd args]" >&2
-	echo "	common interfaces: olimex-arm-usb-ocd olimex-jtag-tiny olimex-jtag-tiny-a"
-	echo ""
-	echo "using default olimex-jtag-tiny-a"
-	INTERFACE=olimex-jtag-tiny-a
-else
-	INTERFACE=$1
-	shift
-fi
-
-if [ $# -ge 1 ]; then
-	COMMAND=$@
-else
-	COMMAND="debug_level 1"
-fi
-
-if [ "${OS}" = "Windows_NT" ]; then
-	WINDOWS=1
-fi
-
-if [ "x${WINDOWS}x" = "xx" ]; then
-	xterm -e "openocd -s ../../.. -f interface/${INTERFACE}.cfg -f board/pttu/tools/openocd-pttu.cfg -c \"${COMMAND}\"|| read" &
-else
-	echo ${COMMAND}
-	#cmd /C start "OpenOCD PTTU using ${INTERFACE}"
-	openocd-ftd2xx.exe -s ../../.. -f interface/${INTERFACE}.cfg -f board/pttu/tools/openocd-pttu.cfg -c "${COMMAND}"
-fi
diff --git a/board/pttu/tools/pttu_debug.gdb b/board/pttu/tools/pttu_debug.gdb
deleted file mode 100644
index 2c8ec0df14c97ddb740387d196037cdb66ce7242..0000000000000000000000000000000000000000
--- a/board/pttu/tools/pttu_debug.gdb
+++ /dev/null
@@ -1,15 +0,0 @@
-#winheight regs 11
-set history save on
-set history size 1000
-target remote localhost:3333 
-monitor mt_internal_rc
-load
-compare-sections
-monitor soft_reset_halt
-set mem inaccessible-by-default off
-monitor debug_level 0
-
-break bootloader
-continue
-d b 1
-