diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 9c525c8..b3778a3 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -63,6 +63,7 @@
 };
 
 void platform_uninit_timer(void);
+unsigned* target_atag_mem(unsigned* ptr);
 
 static void ptentry_to_tag(unsigned **ptr, struct ptentry *ptn)
 {
@@ -96,6 +97,8 @@
 		*ptr++ = ramdisk_size;
 	}
 
+	ptr = target_atag_mem(ptr);
+
 	if ((ptable = flash_get_ptable()) && (ptable->count != 0)) {
 		int i;
 		*ptr++ = 2 + (ptable->count * (sizeof(struct atag_ptbl_entry) /
diff --git a/target/msm7627_ffa/atags.c b/target/msm7627_ffa/atags.c
new file mode 100755
index 0000000..b079aa4
--- /dev/null
+++ b/target/msm7627_ffa/atags.c
@@ -0,0 +1,20 @@
+/* Copyright (c) 2009, Code Aurora Forum.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+unsigned* target_atag_mem(unsigned* ptr)
+{
+    return ptr;
+}
diff --git a/target/msm7627_ffa/rules.mk b/target/msm7627_ffa/rules.mk
index 67f7b00..b508347 100755
--- a/target/msm7627_ffa/rules.mk
+++ b/target/msm7627_ffa/rules.mk
@@ -7,7 +7,7 @@
 MEMBASE := 0x00000000 # SMI
 MEMSIZE := 0x00800000 # 8MB
 
-LINUX_MACHTYPE   := 1007014
+LINUX_MACHTYPE   := 1007015
 
 BASE_ADDR        := 0x00200000
 
@@ -36,4 +36,5 @@
 OBJS += \
 	$(LOCAL_DIR)/init.o \
 	$(LOCAL_DIR)/keypad.o \
+	$(LOCAL_DIR)/atags.o \
 	$(LOCAL_DIR)/panel.o
diff --git a/target/msm7627_surf/atags.c b/target/msm7627_surf/atags.c
new file mode 100755
index 0000000..b079aa4
--- /dev/null
+++ b/target/msm7627_surf/atags.c
@@ -0,0 +1,20 @@
+/* Copyright (c) 2009, Code Aurora Forum.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+unsigned* target_atag_mem(unsigned* ptr)
+{
+    return ptr;
+}
diff --git a/target/msm7627_surf/rules.mk b/target/msm7627_surf/rules.mk
index 67f7b00..4aa9beb 100755
--- a/target/msm7627_surf/rules.mk
+++ b/target/msm7627_surf/rules.mk
@@ -36,4 +36,5 @@
 OBJS += \
 	$(LOCAL_DIR)/init.o \
 	$(LOCAL_DIR)/keypad.o \
+	$(LOCAL_DIR)/atags.o \
 	$(LOCAL_DIR)/panel.o
diff --git a/target/msm7630_surf/atags.c b/target/msm7630_surf/atags.c
new file mode 100755
index 0000000..d2034f1
--- /dev/null
+++ b/target/msm7630_surf/atags.c
@@ -0,0 +1,31 @@
+/* Copyright (c) 2009, Code Aurora Forum.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <reg.h>
+
+#define EBI1_SIZE1   	0x0C300000 //195MB for 256 RAM
+#define EBI1_ADDR1    	0x00200000
+
+unsigned* target_atag_mem(unsigned* ptr)
+{
+	/* ATAG_MEM */
+	*ptr++ = 4;
+	*ptr++ = 0x54410002;
+	*ptr++ = EBI1_SIZE1;
+	*ptr++ = EBI1_ADDR1;
+
+	return ptr;
+}
diff --git a/target/msm7630_surf/rules.mk b/target/msm7630_surf/rules.mk
index 0c80de1..7d02fd6 100755
--- a/target/msm7630_surf/rules.mk
+++ b/target/msm7630_surf/rules.mk
@@ -36,4 +36,5 @@
 OBJS += \
 	$(LOCAL_DIR)/init.o \
 	$(LOCAL_DIR)/keypad.o \
+	$(LOCAL_DIR)/atags.o \
 	$(LOCAL_DIR)/panel.o
diff --git a/target/qsd8250_ffa/atags.c b/target/qsd8250_ffa/atags.c
new file mode 100755
index 0000000..61ca764
--- /dev/null
+++ b/target/qsd8250_ffa/atags.c
@@ -0,0 +1,70 @@
+/* Copyright (c) 2009, Code Aurora Forum.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <reg.h>
+
+#define EBI1_SIZE1   	0x0E800000 //232MB for 256/512/1024MB RAM
+#define EBI1_ADDR1    	0x20000000
+
+#define EBI1_SIZE2_512M 0x10000000 //256MB for 512MB RAM
+#define EBI1_SIZE2_1G   0x30000000 //768MB for 1GB RAM
+#define EBI1_ADDR2    	0x30000000
+
+static unsigned check_1gb_mem()
+{
+	// check for 1GB
+	unsigned adr1 = 0x57000000;
+	unsigned adr2 = 0x5F000000;
+	unsigned value1 = 0x55555555;
+	unsigned value2 = 0xAAAAAAAA;
+
+	writel(value1, adr1);
+	writel(value2, adr2);
+
+	return ((value1 == readl(adr1)) && (value2 == readl(adr2)));
+}
+
+
+unsigned* target_atag_mem(unsigned* ptr)
+{
+	unsigned size;
+
+	/* ATAG_MEM */
+	/* 1st segment */
+	*ptr++ = 4;
+	*ptr++ = 0x54410002;
+	*ptr++ = EBI1_SIZE1;
+	*ptr++ = EBI1_ADDR1;
+
+	/* 2nd segment */
+#ifdef USE_512M_RAM
+	size = EBT1_SIZE2_512M;
+#else
+	size = 0;
+#endif
+	if (check_1gb_mem()) {
+		size = EBI1_SIZE2_1G;
+	}
+
+	if (size > 0) {
+		*ptr++ = 4;
+		*ptr++ = 0x54410002;
+		*ptr++ = size;
+		*ptr++ = EBI1_ADDR2;
+	}
+
+	return ptr;
+}
diff --git a/target/qsd8250_ffa/rules.mk b/target/qsd8250_ffa/rules.mk
index 761eafc..cdbf632 100755
--- a/target/qsd8250_ffa/rules.mk
+++ b/target/qsd8250_ffa/rules.mk
@@ -7,7 +7,7 @@
 MEMBASE := 0x00000000 # SMI
 MEMSIZE := 0x00800000 # 8MB
 
-LINUX_MACHTYPE   := 1008000
+LINUX_MACHTYPE   := 1008002
 
 BASE_ADDR        := 0x20000000
 
@@ -33,4 +33,5 @@
 
 OBJS += \
 	$(LOCAL_DIR)/init.o \
+	$(LOCAL_DIR)/atags.o \
 	$(LOCAL_DIR)/keypad.o
diff --git a/target/qsd8250_surf/atags.c b/target/qsd8250_surf/atags.c
new file mode 100755
index 0000000..61ca764
--- /dev/null
+++ b/target/qsd8250_surf/atags.c
@@ -0,0 +1,70 @@
+/* Copyright (c) 2009, Code Aurora Forum.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <reg.h>
+
+#define EBI1_SIZE1   	0x0E800000 //232MB for 256/512/1024MB RAM
+#define EBI1_ADDR1    	0x20000000
+
+#define EBI1_SIZE2_512M 0x10000000 //256MB for 512MB RAM
+#define EBI1_SIZE2_1G   0x30000000 //768MB for 1GB RAM
+#define EBI1_ADDR2    	0x30000000
+
+static unsigned check_1gb_mem()
+{
+	// check for 1GB
+	unsigned adr1 = 0x57000000;
+	unsigned adr2 = 0x5F000000;
+	unsigned value1 = 0x55555555;
+	unsigned value2 = 0xAAAAAAAA;
+
+	writel(value1, adr1);
+	writel(value2, adr2);
+
+	return ((value1 == readl(adr1)) && (value2 == readl(adr2)));
+}
+
+
+unsigned* target_atag_mem(unsigned* ptr)
+{
+	unsigned size;
+
+	/* ATAG_MEM */
+	/* 1st segment */
+	*ptr++ = 4;
+	*ptr++ = 0x54410002;
+	*ptr++ = EBI1_SIZE1;
+	*ptr++ = EBI1_ADDR1;
+
+	/* 2nd segment */
+#ifdef USE_512M_RAM
+	size = EBT1_SIZE2_512M;
+#else
+	size = 0;
+#endif
+	if (check_1gb_mem()) {
+		size = EBI1_SIZE2_1G;
+	}
+
+	if (size > 0) {
+		*ptr++ = 4;
+		*ptr++ = 0x54410002;
+		*ptr++ = size;
+		*ptr++ = EBI1_ADDR2;
+	}
+
+	return ptr;
+}
diff --git a/target/qsd8250_surf/rules.mk b/target/qsd8250_surf/rules.mk
index 761eafc..48c566d 100755
--- a/target/qsd8250_surf/rules.mk
+++ b/target/qsd8250_surf/rules.mk
@@ -33,4 +33,5 @@
 
 OBJS += \
 	$(LOCAL_DIR)/init.o \
+	$(LOCAL_DIR)/atags.o \
 	$(LOCAL_DIR)/keypad.o
diff --git a/target/surf-msm7k/atags.c b/target/surf-msm7k/atags.c
new file mode 100755
index 0000000..f4e5474
--- /dev/null
+++ b/target/surf-msm7k/atags.c
@@ -0,0 +1,31 @@
+/* Copyright (c) 2009, Code Aurora Forum.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <reg.h>
+
+#define EBI1_SIZE1   	0x0CB00000 //203MB for 256 RAM
+#define EBI1_ADDR1    	0x00200000
+
+unsigned* target_atag_mem(unsigned* ptr)
+{
+	/* ATAG_MEM */
+	*ptr++ = 4;
+	*ptr++ = 0x54410002;
+	*ptr++ = EBI1_SIZE1;
+	*ptr++ = EBI1_ADDR1;
+
+	return ptr;
+}
diff --git a/target/surf-msm7k/rules.mk b/target/surf-msm7k/rules.mk
index b3d5155..e0ada36 100644
--- a/target/surf-msm7k/rules.mk
+++ b/target/surf-msm7k/rules.mk
@@ -36,4 +36,5 @@
 OBJS += \
 	$(LOCAL_DIR)/init.o \
 	$(LOCAL_DIR)/keypad.o \
+	$(LOCAL_DIR)/atags.o \
 	$(LOCAL_DIR)/panel.o
diff --git a/target/surf-qsd8k/atags.c b/target/surf-qsd8k/atags.c
new file mode 100755
index 0000000..158a47a
--- /dev/null
+++ b/target/surf-qsd8k/atags.c
@@ -0,0 +1,31 @@
+/* Copyright (c) 2009, Code Aurora Forum.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <reg.h>
+
+#define EBI1_SIZE1   	0x0E800000 //232MB for 256MB RAM
+#define EBI1_ADDR1    	0x20000000
+
+unsigned* target_atag_mem(unsigned* ptr)
+{
+	/* ATAG_MEM */
+	*ptr++ = 4;
+	*ptr++ = 0x54410002;
+	*ptr++ = EBI1_SIZE1;
+	*ptr++ = EBI1_ADDR1;
+
+	return ptr;
+}
diff --git a/target/surf-qsd8k/rules.mk b/target/surf-qsd8k/rules.mk
index 1fcce4e..46a413c 100644
--- a/target/surf-qsd8k/rules.mk
+++ b/target/surf-qsd8k/rules.mk
@@ -33,4 +33,5 @@
 
 OBJS += \
 	$(LOCAL_DIR)/init.o \
+	$(LOCAL_DIR)/atags.o \
 	$(LOCAL_DIR)/keypad.o
