From a590f4840b41430a8d2a457eac04e7050584ef48 Mon Sep 17 00:00:00 2001 From: Paul Kocialkowski Date: Mon, 15 Jan 2018 01:08:39 +0300 Subject: edi: Add dummy read to ensure proper detection of ENE chips ENE chips enable EDI by detecting a clock frequency between 1 MHz and 8 MHz. In many cases, the chip won't be able to both detect the clock signal and serve the associated request at the same time. Thus, a dummy read has to be added to ensure that EDI is enabled and operational starting from the next request. Change-Id: I69ee71674649cd8ba4fc635f889cb39a1cd204b9 Signed-off-by: Mike Banon Signed-off-by: Paul Kocialkowski Reviewed-on: https://review.coreboot.org/23260 Reviewed-by: Nico Huber Tested-by: build bot (Jenkins) --- edi.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'edi.c') diff --git a/edi.c b/edi.c index 0ca170428..9397a54eb 100644 --- a/edi.c +++ b/edi.c @@ -480,6 +480,18 @@ int edi_probe_kb9012(struct flashctx *flash) { int probe; int rc; + unsigned char hwversion; + + /* + * ENE chips enable EDI by detecting a clock frequency between 1 MHz and + * 8 MHz. In many cases, the chip won't be able to both detect the clock + * signal and serve the associated request at the same time. + * + * Thus, a dummy read has to be added to ensure that EDI is enabled and + * operational starting from the next request. This dummy read below + * draws the chip's attention and as result the chip enables its EDI. + */ + edi_read(flash, ENE_EC_HWVERSION, &hwversion); probe = edi_chip_probe(flash, &ene_kb9012); if (!probe) -- cgit v1.2.3