lk: Add eMMC boot support
diff --git a/target/msm7630_surf/init.c b/target/msm7630_surf/init.c
index 35332ca..8879282 100644
--- a/target/msm7630_surf/init.c
+++ b/target/msm7630_surf/init.c
@@ -90,6 +90,9 @@
void keypad_init(void);
+static int emmc_boot = -1; /* set to uninitialized */
+int target_is_emmc_boot(void);
+
void target_init(void)
{
unsigned offset;
@@ -101,6 +104,9 @@
keys_init();
keypad_init();
+ if (target_is_emmc_boot())
+ return;
+
ptable_init(&flash_ptable);
smem_ptable_init();
@@ -157,3 +163,25 @@
}
return LINUX_MACHTYPE_SURF;
}
+
+int target_is_emmc_boot(void)
+{
+ struct smem_board_info board_info;
+ unsigned int board_info_struct_len = sizeof(board_info);
+ unsigned smem_status;
+
+ if (emmc_boot != -1) return emmc_boot;
+
+ emmc_boot = 0;
+
+ smem_status = smem_read_alloc_entry(SMEM_BOARD_INFO_LOCATION,
+ &board_info, board_info_struct_len );
+ if(!smem_status)
+ {
+ /* Success retrieving build info */
+ if ('S' == *((char *)board_info.build_id + 13))
+ emmc_boot = 1;
+ }
+
+ return emmc_boot;
+}