diff --git a/alarm/uboot-olinuxino/alarm.patch b/alarm/uboot-olinuxino/alarm.patch
new file mode 100644
index 000000000..77512df48
--- /dev/null
+++ b/alarm/uboot-olinuxino/alarm.patch
@@ -0,0 +1,64 @@
+diff -urN a/include/configs/mx23_olinuxino.h b/include/configs/mx23_olinuxino.h
+--- a/include/configs/mx23_olinuxino.h	2014-01-08 12:04:21.787377202 -0700
++++ b/include/configs/mx23_olinuxino.h	2014-01-08 12:40:13.973893123 -0700
+@@ -80,6 +80,8 @@
+ #define CONFIG_LOADADDR		0x42000000
+ #define CONFIG_SYS_LOAD_ADDR	CONFIG_LOADADDR
+ 
++#define CONFIG_IDENT_STRING " Arch Linux ARM"
++
+ /* Extra Environment */
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+ 	"update_sd_firmware_filename=u-boot.sd\0" \
+@@ -102,26 +104,27 @@
+ 	"video=\0" \
+ 	"mmcdev=0\0" \
+ 	"mmcpart=2\0" \
+-	"mmcroot=/dev/mmcblk0p2 ro\0" \
+-	"mmcrootfstype=ext4 rootwait fixrtc\0" \
++	"mmcroot=/dev/mmcblk0p2 rw rootwait fixrtc\0" \
+ 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
+ 		"${optargs} " \
+ 		"root=${mmcroot} " \
+-		"rootfstype=${mmcrootfstype} " \
+ 		"video=${video}\0" \
+ 	"loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/uEnv.txt\0" \
+ 	"importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \
+ 		"env import -t ${loadaddr} ${filesize}\0" \
+ 	"loadbootscript="  \
+-		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
++		"load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+ 	"bootscript=echo Running bootscript from mmc ...; "	\
+ 		"source\0" \
+-	"loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
++	"loaduimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/${uimage}\0" \
+ 	"loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/zImage\0" \
+ 	"loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+-	"mmcboot=echo Booting from mmc ...; " \
++	"mmcbootz=echo Booting from mmc ...; " \
+ 		"run mmcargs; " \
+ 		"bootz ${loadaddr} - ${fdt_addr}\0" \
++	"mmcbootm=echo Booting from mmc ...; " \
++		"run mmcargs; " \
++		"bootm ${loadaddr} - ${fdt_addr}\0" \
+ 	"mmcdefault=echo Booting from mmc ...; " \
+ 		"run mmcargs; " \
+ 		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+@@ -175,10 +178,15 @@
+ 			"echo Running uenvcmd ...;" \
+ 			"run uenvcmd;" \
+ 		"fi;" \
+-		"echo Running default loadzimage ...;" \
++		"echo Running loaduimage ...;" \
++		"if run loaduimage; then " \
++			"run loadfdt;" \
++			"run mmcbootm;" \
++		"fi;" \
++		"echo Running loadzimage ...;" \
+ 		"if run loadzimage; then " \
+ 			"run loadfdt;" \
+-			"run mmcboot;" \
++			"run mmcbootz;" \
+ 		"fi;" \
+ 	"fi;"
+ 
diff --git a/alarm/uboot-olinuxino/uEnv.txt b/alarm/uboot-olinuxino/uEnv.txt
new file mode 100644
index 000000000..cb6931cca
--- /dev/null
+++ b/alarm/uboot-olinuxino/uEnv.txt
@@ -0,0 +1,6 @@
+#These are the default settings for some useful u-boot variables:
+#fdt_file=/boot/dtbs/imx23-olinuxino.dtb
+ 
+#optargs=
+#video=
+#mmcroot=/dev/mmcblk0p2 rw rootwait fixrtc