target: project: msm8996: Target specific command line

Add support to pass command line specific to a particular target, for
8996 pass command line argument to disable fpsimd settings based on the
hw id.

Change-Id: I8d0746f923b48b9964c2a12b2ef7737b4d45565e
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 892ec72..b134ec0 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -447,6 +447,14 @@
 		cmdline_len += strlen(warmboot_cmdline);
 	}
 
+#if TARGET_CMDLINE_SUPPORT
+	char *target_cmdline_buf = malloc(TARGET_MAX_CMDLNBUF);
+	int target_cmd_line_len;
+	ASSERT(target_cmdline_buf);
+	target_cmd_line_len = target_update_cmdline(target_cmdline_buf);
+	cmdline_len += target_cmd_line_len;
+#endif
+
 	if (cmdline_len > 0) {
 		const char *src;
 		unsigned char *dst;
@@ -626,6 +634,16 @@
 			while ((*dst++ = *src++));
 			free(target_boot_params);
 		}
+
+#if TARGET_CMDLINE_SUPPORT
+		if (target_cmdline_buf && target_cmd_line_len)
+		{
+			if (have_cmdline) --dst;
+			src = target_cmdline_buf;
+			while((*dst++ = *src++));
+			free(target_cmdline_buf);
+		}
+#endif
 	}
 
 
diff --git a/include/target.h b/include/target.h
index 17c0c0e..e0a0264 100644
--- a/include/target.h
+++ b/include/target.h
@@ -1,7 +1,7 @@
 /*
  * Copyright (c) 2008 Travis Geiselbrecht
  *
- * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files
@@ -26,6 +26,7 @@
 #define __TARGET_H
 #include <qmp_phy.h>
 
+#define TARGET_MAX_CMDLNBUF 64
 /* Target helper functions exposed to USB driver */
 typedef struct {
 	void (*mux_config) ();
@@ -104,4 +105,5 @@
 bool target_battery_soc_ok();
 bool target_battery_is_present();
 uint32_t target_get_pmic();
+int target_update_cmdline(char *cmdline);
 #endif
diff --git a/project/msm8996.mk b/project/msm8996.mk
index 50ec0b7..8278849 100644
--- a/project/msm8996.mk
+++ b/project/msm8996.mk
@@ -136,3 +136,5 @@
 ifeq ($(ENABLE_WDOG_SUPPORT),1)
 DEFINES += WDOG_SUPPORT=1
 endif
+# Target specific command line
+DEFINES += TARGET_CMDLINE_SUPPORT=1
diff --git a/target/msm8996/init.c b/target/msm8996/init.c
index 065bbfa..05397c5 100644
--- a/target/msm8996/init.c
+++ b/target/msm8996/init.c
@@ -607,3 +607,16 @@
 {
 	return PMIC_IS_PMI8996;
 }
+
+int target_update_cmdline(char *cmdline)
+{
+	uint32_t platform_id = board_platform_id();
+	int len = 0;
+	if (platform_id == APQ8096SG || platform_id == MSM8996SG)
+	{
+		strlcpy(cmdline, " fpsimd.fpsimd_settings=0", TARGET_MAX_CMDLNBUF);
+		len = strlen (cmdline);
+	}
+
+	return len;
+}