drivers/intel/fsp2_0: track end of firmware notifications
The end of firmware notification is currently not being tracked so it's hard to get good data on how long it takes. Update the code to provide timestamp data as well as post codes. BUG=chrome-os-partner:56656 Change-Id: I74c1043f2e72d9d85b23a99b8253ac465f62a7f2 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/17373 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Andrey Petrov <andrey.petrov@intel.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
This commit is contained in:
parent
bf696f5602
commit
96b3c6f937
|
@ -86,6 +86,8 @@ enum timestamp_id {
|
||||||
TS_FSP_AFTER_ENUMERATE = 957,
|
TS_FSP_AFTER_ENUMERATE = 957,
|
||||||
TS_FSP_BEFORE_FINALIZE = 958,
|
TS_FSP_BEFORE_FINALIZE = 958,
|
||||||
TS_FSP_AFTER_FINALIZE = 959,
|
TS_FSP_AFTER_FINALIZE = 959,
|
||||||
|
TS_FSP_BEFORE_END_OF_FIRMWARE = 960,
|
||||||
|
TS_FSP_AFTER_END_OF_FIRMWARE = 961,
|
||||||
|
|
||||||
/* 1000+ reserved for payloads (1000-1200: ChromeOS depthcharge) */
|
/* 1000+ reserved for payloads (1000-1200: ChromeOS depthcharge) */
|
||||||
|
|
||||||
|
@ -183,7 +185,10 @@ static const struct timestamp_id_to_name {
|
||||||
{ TS_FSP_AFTER_ENUMERATE,
|
{ TS_FSP_AFTER_ENUMERATE,
|
||||||
"returning from FspNotify(AfterPciEnumeration)" },
|
"returning from FspNotify(AfterPciEnumeration)" },
|
||||||
{ TS_FSP_BEFORE_FINALIZE, "calling FspNotify(ReadyToBoot)" },
|
{ TS_FSP_BEFORE_FINALIZE, "calling FspNotify(ReadyToBoot)" },
|
||||||
{ TS_FSP_AFTER_FINALIZE, "returning from FspNotify(ReadyToBoot)" }
|
{ TS_FSP_AFTER_FINALIZE, "returning from FspNotify(ReadyToBoot)" },
|
||||||
|
{ TS_FSP_BEFORE_END_OF_FIRMWARE, "calling FspNotify(EndOfFirmware)" },
|
||||||
|
{ TS_FSP_AFTER_END_OF_FIRMWARE,
|
||||||
|
"returning from FspNotify(EndOfFirmware)" },
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -37,6 +37,9 @@ static void fsp_notify(enum fsp_notify_phase phase)
|
||||||
} else if (phase == READY_TO_BOOT) {
|
} else if (phase == READY_TO_BOOT) {
|
||||||
timestamp_add_now(TS_FSP_BEFORE_FINALIZE);
|
timestamp_add_now(TS_FSP_BEFORE_FINALIZE);
|
||||||
post_code(POST_FSP_NOTIFY_BEFORE_FINALIZE);
|
post_code(POST_FSP_NOTIFY_BEFORE_FINALIZE);
|
||||||
|
} else if (phase == END_OF_FIRMWARE) {
|
||||||
|
timestamp_add_now(TS_FSP_BEFORE_END_OF_FIRMWARE);
|
||||||
|
post_code(POST_FSP_NOTIFY_BEFORE_END_OF_FIRMWARE);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = fspnotify(¬ify_params);
|
ret = fspnotify(¬ify_params);
|
||||||
|
@ -47,6 +50,9 @@ static void fsp_notify(enum fsp_notify_phase phase)
|
||||||
} else if (phase == READY_TO_BOOT) {
|
} else if (phase == READY_TO_BOOT) {
|
||||||
timestamp_add_now(TS_FSP_AFTER_FINALIZE);
|
timestamp_add_now(TS_FSP_AFTER_FINALIZE);
|
||||||
post_code(POST_FSP_NOTIFY_BEFORE_FINALIZE);
|
post_code(POST_FSP_NOTIFY_BEFORE_FINALIZE);
|
||||||
|
} else if (phase == END_OF_FIRMWARE) {
|
||||||
|
timestamp_add_now(TS_FSP_AFTER_END_OF_FIRMWARE);
|
||||||
|
post_code(POST_FSP_NOTIFY_AFTER_END_OF_FIRMWARE);
|
||||||
}
|
}
|
||||||
fsp_debug_after_notify(ret);
|
fsp_debug_after_notify(ret);
|
||||||
|
|
||||||
|
|
|
@ -202,6 +202,20 @@
|
||||||
*/
|
*/
|
||||||
#define POST_BS_PAYLOAD_BOOT 0x7b
|
#define POST_BS_PAYLOAD_BOOT 0x7b
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Before calling FSP Notify before End of Firmware
|
||||||
|
*
|
||||||
|
* Going to call into FSP binary for Notify phase
|
||||||
|
*/
|
||||||
|
#define POST_FSP_NOTIFY_BEFORE_END_OF_FIRMWARE 0x88
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Before calling FSP Notify after End of Firmware
|
||||||
|
*
|
||||||
|
* Going to call into FSP binary for Notify phase
|
||||||
|
*/
|
||||||
|
#define POST_FSP_NOTIFY_AFTER_END_OF_FIRMWARE 0x89
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Before calling FSP TempRamInit
|
* \brief Before calling FSP TempRamInit
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue