summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorSafae Ouajih <souajih@baylibre.com>2023-02-06 00:50:14 +0100
committerPraneeth Bajjuri <praneeth@ti.com>2023-04-05 11:39:41 -0500
commit01f7be0dbbce80750a22e8d975c017ad2bf6afe0 (patch)
tree57dfe4ec7bb285a755dfbbe1fcc68ac0b6b65375 /boot
parent50fada27e201d9651ca61e8d1ec2d99dc9a501b9 (diff)
android: boot: support extra command line
commit b36b227b6a37695ab39306341c3a977cf9b081b6 upstream. 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> Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Diffstat (limited to 'boot')
-rw-r--r--boot/image-android.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/boot/image-android.c b/boot/image-android.c
index 35243fd5b1..a944f0a31a 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) {