diff options
author | Safae Ouajih <souajih@baylibre.com> | 2023-02-06 00:50:14 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-04-04 14:50:47 -0400 |
commit | b36b227b6a37695ab39306341c3a977cf9b081b6 (patch) | |
tree | 58e3b82ef1ab9ebbfe8169febf4ccf01601e982d | |
parent | c79a2e6823d5a3a2813f66d03023c0a192c27e7e (diff) | |
download | u-boot-b36b227b6a37695ab39306341c3a977cf9b081b6.zip u-boot-b36b227b6a37695ab39306341c3a977cf9b081b6.tar.gz u-boot-b36b227b6a37695ab39306341c3a977cf9b081b6.tar.bz2 |
android: boot: support extra command line
In version 3 and 4 of boot image header, the vendor specific
command line are located in vendor boot image. Thus, use
extra command line to add those cmd to bootargs.
Signed-off-by: Safae Ouajih <souajih@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
-rw-r--r-- | boot/image-android.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/boot/image-android.c b/boot/image-android.c index 35243fd..a944f0a 100644 --- a/boot/image-android.c +++ b/boot/image-android.c @@ -55,6 +55,7 @@ static void android_vendor_boot_image_v3_v4_parse_hdr(const struct andr_vnd_boot * The header takes a full page, the remaining components are aligned * on page boundary. */ + data->kcmdline_extra = hdr->cmdline; data->tags_addr = hdr->tags_addr; data->image_name = hdr->name; data->kernel_addr = hdr->kernel_addr; @@ -233,6 +234,11 @@ int android_image_get_kernel(const struct andr_boot_img_hdr_v0 *hdr, len += strlen(img_data.kcmdline); } + if (img_data.kcmdline_extra) { + printf("Kernel extra command line: %s\n", img_data.kcmdline_extra); + len += strlen(img_data.kcmdline_extra); + } + char *bootargs = env_get("bootargs"); if (bootargs) len += strlen(bootargs); @@ -252,6 +258,11 @@ int android_image_get_kernel(const struct andr_boot_img_hdr_v0 *hdr, if (*img_data.kcmdline) strcat(newbootargs, img_data.kcmdline); + if (img_data.kcmdline_extra) { + strcat(newbootargs, " "); + strcat(newbootargs, img_data.kcmdline_extra); + } + env_set("bootargs", newbootargs); if (os_data) { |