x86: ivybridge: Measure the MRC code execution time
This code takes about 450ms without the MRC cache and about 27ms with the cache. Add a debug timer so that this time can be displayed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
e9b3967c0c
commit
fd8f4729ac
|
@ -336,9 +336,11 @@ int sdram_initialise(struct pei_data *pei_data)
|
||||||
if (data) {
|
if (data) {
|
||||||
int rv;
|
int rv;
|
||||||
int (*func)(struct pei_data *);
|
int (*func)(struct pei_data *);
|
||||||
|
ulong start;
|
||||||
|
|
||||||
debug("Calling MRC at %p\n", data);
|
debug("Calling MRC at %p\n", data);
|
||||||
post_code(POST_PRE_MRC);
|
post_code(POST_PRE_MRC);
|
||||||
|
start = get_timer(0);
|
||||||
func = (int (*)(struct pei_data *))data;
|
func = (int (*)(struct pei_data *))data;
|
||||||
rv = func(pei_data);
|
rv = func(pei_data);
|
||||||
post_code(POST_MRC);
|
post_code(POST_MRC);
|
||||||
|
@ -356,6 +358,7 @@ int sdram_initialise(struct pei_data *pei_data)
|
||||||
printf("Nonzero MRC return value.\n");
|
printf("Nonzero MRC return value.\n");
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
debug("MRC execution time %lu ms\n", get_timer(start));
|
||||||
} else {
|
} else {
|
||||||
printf("UEFI PEI System Agent not found.\n");
|
printf("UEFI PEI System Agent not found.\n");
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
|
|
Loading…
Reference in New Issue