From df078ea0139ad405b02ef6bcabd7890d0e87c023 Mon Sep 17 00:00:00 2001 From: zhang sanshan Date: Tue, 28 Jul 2015 18:40:53 +0800 Subject: MA-6928 Bootargs cannot be set The bootargs is not set correctly. The final bootargs consist of uboot's bootargs and bootimg's bootargs. This patch set bootimg's bootargs as final bootargs if uboot's bootargs is not set. And take uboot's bootargs as final bootargs if uboot's bootargs is set. Signed-off-by: zhang sanshan --- common/image-android.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'common') diff --git a/common/image-android.c b/common/image-android.c index eb1582b698..5cd3a8c6ed 100644 --- a/common/image-android.c +++ b/common/image-android.c @@ -9,6 +9,7 @@ #include #include #include +#include static char andr_tmp_str[ANDR_BOOT_ARGS_SIZE + 1]; @@ -62,12 +63,22 @@ int android_image_get_kernel(const struct andr_img_hdr *hdr, int verify, if (bootargs) { strcpy(newbootargs, bootargs); - strcat(newbootargs, " "); - } - if (*hdr->cmdline) + } else if (*hdr->cmdline) { strcat(newbootargs, hdr->cmdline); - - setenv("bootargs", newbootargs); + } +#ifdef CONFIG_SERIAL_TAG + struct tag_serialnr serialnr; + char commandline[ANDR_BOOT_ARGS_SIZE]; + get_board_serial(&serialnr); + + sprintf(commandline, + "%s androidboot.serialno=%08x%08x", + newbootargs, + serialnr.high, + serialnr.low); +#endif + + setenv("bootargs", commandline); if (os_data) { *os_data = (ulong)hdr; -- cgit v1.2.3