mb/google/fizz: Wait until display is ready

Fizz fails to show pictures on a type-c monitor because VBIOS runs
before DisplayPort link is ready.

With this patch, when firmware needs to display something, Fizz calls
google_chromeec_wait_for_display to make sure display is ready.

The penalty is up to 2 sec per boot in dev and rec boot. Normal boot
won't affected unless there is EC update.

BUG=b:72387533
BRANCH=none
TEST=Verify screens are displayed on Fizz as follows:
1. Put DUT in normal mode
2. Flash EC image to trigger EC sync (critical update)
3. Trigger manual recovery (insert)
4. Hit ctrl+d to switch to dev mode (to-dev)
5. Confirm to reboot (dev warning)
6. Warm reboot (dev warning)
7. Cold reboot (dev warning)
8. Flash EC image to trigger EC sync (critical update)
9. Trigger manual recovery (insert)

Change-Id: I90befe94f93e13904987acda50b2598d034b0031
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://review.coreboot.org/23746
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
Daisuke Nojiri 2018-01-26 17:36:44 -08:00 committed by Aaron Durbin
parent ebb86be9fc
commit c205ae0c6e
1 changed files with 5 additions and 0 deletions

View File

@ -13,11 +13,16 @@
* GNU General Public License for more details.
*/
#include <bootmode.h>
#include <ec/google/chromeec/ec.h>
#include <soc/ramstage.h>
#include "gpio.h"
void mainboard_silicon_init_params(FSP_SIL_UPD *params)
{
if (display_init_required())
/* This has to be done before FSP-S runs. */
google_chromeec_wait_for_display();
gpio_configure_pads(gpio_table, ARRAY_SIZE(gpio_table));
}