diff options
author | ji.luo <ji.luo@nxp.com> | 2017-10-10 18:22:02 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2017-11-03 02:37:28 +0800 |
commit | a89c0efcca55dc8bab4c8d7af806f261f92f39e8 (patch) | |
tree | c996c3620eb211a2f7d101c7047c4457dac787d0 /common | |
parent | 36a5dfa4d86c0a56fd91838f58cb7cd0dfce1c6e (diff) |
Pass bootloader metrics to kernel by kernel cmdline
Pass bootloader metrics (nBLL, nBLE, KD, KL, AVB, ODT, SW)
to kernel by kernel cmdline.
Change-Id: Ibabff6844be86d028548d1ad697d948ef20590f3
Signed-off-by: ji.luo <ji.luo@nxp.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/image-android.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/common/image-android.c b/common/image-android.c index d8407d4ed5..2d2526def6 100644 --- a/common/image-android.c +++ b/common/image-android.c @@ -57,6 +57,7 @@ static ulong android_image_get_kernel_addr(const struct andr_img_hdr *hdr) int android_image_get_kernel(const struct andr_img_hdr *hdr, int verify, ulong *os_data, ulong *os_len) { + extern boot_metric metrics; u32 kernel_addr = android_image_get_kernel_addr(hdr); /* @@ -73,7 +74,7 @@ int android_image_get_kernel(const struct andr_img_hdr *hdr, int verify, kernel_addr, DIV_ROUND_UP(hdr->kernel_size, 1024)); char newbootargs[512] = {0}; - char commandline[1024] = {0}; + char commandline[2048] = {0}; char *bootargs = getenv("bootargs"); if (bootargs) { @@ -122,6 +123,14 @@ int android_image_get_kernel(const struct andr_img_hdr *hdr, int verify, strcat(commandline, newbootargs); } + /* boot metric variables */ + metrics.ble_1 = get_timer(0); + sprintf(newbootargs, + " androidboot.boottime=1BLL:%d,1BLE:%d,KL:%d,KD:%d,AVB:%d,ODT:%d,SW:%d", + metrics.bll_1, metrics.ble_1, metrics.kl, metrics.kd, metrics.avb, + metrics.odt, metrics.sw); + strcat(commandline, newbootargs); + #ifdef CONFIG_AVB_SUPPORT /* secondary cmdline added by avb */ char *bootargs_sec = getenv("bootargs_sec"); |