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;
+}