diff -ruN imx-bootlets-10.05.02.orig/linux_prep/board/imx23_olinuxino_dev.c imx-bootlets-10.05.02/linux_prep/board/imx23_olinuxino_dev.c
--- imx-bootlets-10.05.02.orig/linux_prep/board/imx23_olinuxino_dev.c	1970-01-01 01:00:00.000000000 +0100
+++ imx-bootlets-10.05.02/linux_prep/board/imx23_olinuxino_dev.c	2013-05-19 00:11:40.000000000 +0200
@@ -0,0 +1,54 @@
+/*
+ * Platform specific data for the IMX23_OLINUXINO development board
+ *
+ * Fadil Berisha <fadil.r.berisha@gmail.com>
+ *
+ * Copyright 2008 SigmaTel, Inc
+ * Copyright 2008 Embedded Alley Solutions, Inc
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2. This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#include <setup.h>
+#include <keys.h>
+#include <lradc_buttons.h>
+
+/************************************************
+ * LRADC keyboard data *
+ ************************************************/
+int lradc_keypad_ch = LRADC_CH0;
+int lradc_vddio_ch = LRADC_CH6;
+
+struct lradc_keycode lradc_keycodes[] = {
+ { 100, KEY4 },
+ { 306, KEY5 },
+ { 601, KEY6 },
+ { 932, KEY7 },
+ { 1260, KEY8 },
+ { 1424, KEY9 },
+ { 1707, KEY10 },
+ { 2207, KEY11 },
+ { 2525, KEY12 },
+ { 2831, KEY13 },
+ { 3134, KEY14 },
+ { -1, 0 },
+};
+
+/************************************************
+ * Magic key combinations for Armadillo *
+ ************************************************/
+u32 magic_keys[MAGIC_KEY_NR] = {
+ [MAGIC_KEY1] = KEY4,
+ [MAGIC_KEY2] = KEY6,
+ [MAGIC_KEY3] = KEY10,
+};
+
+/************************************************
+ * Default command line *
+ ************************************************/
+char cmdline_def[] = "console=ttyAMA0,115200";
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/cmdlines/imx23_olinuxino_dev.txt imx-bootlets-10.05.02/linux_prep/cmdlines/imx23_olinuxino_dev.txt
--- imx-bootlets-10.05.02.orig/linux_prep/cmdlines/imx23_olinuxino_dev.txt	1970-01-01 01:00:00.000000000 +0100
+++ imx-bootlets-10.05.02/linux_prep/cmdlines/imx23_olinuxino_dev.txt	2013-05-19 00:12:56.000000000 +0200
@@ -0,0 +1 @@
+noinitrd console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait ssp1=mmc
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/core/setup.c imx-bootlets-10.05.02/linux_prep/core/setup.c
--- imx-bootlets-10.05.02.orig/linux_prep/core/setup.c	2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/linux_prep/core/setup.c	2013-05-19 00:11:40.000000000 +0200
@@ -84,6 +84,8 @@
 #include "../../mach-mx28/includes/registers/regsrtc.h"
 #elif defined(STMP378X)
 #include "../../mach-mx23/includes/registers/regsrtc.h"
+#elif defined(IMX23_OLINUXINO)
+#include "../../mach-mx23/includes/registers/regsrtc.h"
 #endif
 
 #define NAND_SECONDARY_BOOT          0x00000002
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/include/mx23/platform.h imx-bootlets-10.05.02/linux_prep/include/mx23/platform.h
--- imx-bootlets-10.05.02.orig/linux_prep/include/mx23/platform.h	2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/linux_prep/include/mx23/platform.h	2013-05-19 00:11:40.000000000 +0200
@@ -19,6 +19,10 @@
 
 #if defined (BOARD_STMP378X_DEV)
 #define	MACHINE_ID	0xa45
+
+#elif defined (BOARD_IMX23_OLINUXINO_DEV)
+#define MACHINE_ID 0x1009
+
 #else
 #error "Allocate a machine ID for your board"
 #endif
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/Makefile imx-bootlets-10.05.02/linux_prep/Makefile
--- imx-bootlets-10.05.02.orig/linux_prep/Makefile	2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/linux_prep/Makefile	2013-05-19 00:11:40.000000000 +0200
@@ -69,6 +69,11 @@
 HW_OBJS = $(LRADC_OBJS)
 CFLAGS += -DMX28 -DBOARD_MX28_EVK
 endif
+ifeq ($(BOARD), imx23_olinuxino_dev)
+ARCH = mx23
+HW_OBJS = $(LRADC_OBJS)
+CFLAGS += -DIMX23_OLINUXINO -DBOARD_IMX23_OLINUXINO_DEV
+endif
 
 # Generic code
 CORE_OBJS = entry.o resume.o cmdlines.o setup.o keys.o
diff -ruN imx-bootlets-10.05.02.orig/Makefile imx-bootlets-10.05.02/Makefile
--- imx-bootlets-10.05.02.orig/Makefile	2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/Makefile	2013-05-19 00:15:02.000000000 +0200
@@ -3,9 +3,9 @@
 export MEM_TYPE
 
 DFT_IMAGE=$(DEV_IMAGE)/boot/zImage
-DFT_UBOOT=$(DEV_IMAGE)/boot/u-boot
+DFT_UBOOT=../boot/u-boot
 
-BOARD ?= stmp378x_dev
+BOARD ?= imx23_olinuxino_dev
 
 ifeq ($(BOARD), stmp37xx_dev)
 ARCH = 37xx
@@ -16,6 +16,9 @@
 ifeq ($(BOARD), iMX28_EVK)
 ARCH = mx28
 endif
+ifeq ($(BOARD), imx23_olinuxino_dev)
+ARCH = mx23
+endif
 
 all: build_prep gen_bootstream
 
@@ -93,6 +96,8 @@
 clean:
 	-rm -rf *.sb
 	rm -f sd_mmc_bootstream.raw
+	rm -f linux_prep/board/*.o
+	rm -f power_prep/*.o
 	$(MAKE) -C linux_prep clean ARCH=$(ARCH)
 	$(MAKE) -C boot_prep clean ARCH=$(ARCH)
 	$(MAKE) -C power_prep clean ARCH=$(ARCH)
diff -ruN imx-bootlets-10.05.02.orig/uboot.db imx-bootlets-10.05.02/uboot.db
--- imx-bootlets-10.05.02.orig/uboot.db	2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/uboot.db	2013-05-19 00:11:40.000000000 +0200
@@ -3,7 +3,7 @@
 sources {
 	power_prep="./power_prep/power_prep";
 	sdram_prep="./boot_prep/boot_prep";
-	image="/home/b18647/repos/ltib_latest/rootfs/boot/u-boot";
+	image="../boot/u-boot";
 }
 
 section (0) {
