util/ifdtool: Fix SPI frequency as per Gen11 SPI flash guide

BUG=b:153888802
TEST=Able to list correct SPI frequency as per TGL SPI flash guide

Without this CL :
Found Component Section
FLCOMP     0x093030f6
  Dual Output Fast Read Support:       not supported
  Read ID/Read Status Clock Frequency: 33MHz
  Write/Erase Clock Frequency:         33MHz
  Fast Read Clock Frequency:           33MHz
  Fast Read Support:                   supported
  Read Clock Frequency:                20MHz

With this CL :
Found Component Section
FLCOMP     0x093030f6
  Dual Output Fast Read Support:       not supported
  Read ID/Read Status Clock Frequency: 50MHz
  Write/Erase Clock Frequency:         50MHz
  Fast Read Clock Frequency:           50MHz
  Fast Read Support:                   supported
  Read Clock Frequency:                20MHz

Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Change-Id: Id0a0a0cbd948ef8334cf522c09e881b464e87f0e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/44819
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Subrata Banik 2020-08-26 15:53:00 +05:30 committed by Patrick Georgi
parent bd2da5a4b5
commit d16ef4d21e
2 changed files with 40 additions and 1 deletions

View File

@ -448,7 +448,7 @@ static void dump_frba_layout(const frba_t *frba, const char *layout_fname)
printf("Wrote layout to %s\n", layout_fname); printf("Wrote layout to %s\n", layout_fname);
} }
static void decode_spi_frequency(unsigned int freq) static void _decode_spi_frequency(unsigned int freq)
{ {
switch (freq) { switch (freq) {
case SPI_FREQUENCY_20MHZ: case SPI_FREQUENCY_20MHZ:
@ -478,6 +478,37 @@ static void decode_spi_frequency(unsigned int freq)
} }
} }
static void _decode_spi_frequency_500_series(unsigned int freq)
{
switch (freq) {
case SPI_FREQUENCY_100MHZ:
printf("100MHz");
break;
case SPI_FREQUENCY_50MHZ:
printf("50MHz");
break;
case SPI_FREQUENCY_500SERIES_33MHZ:
printf("33MHz");
break;
case SPI_FREQUENCY_25MHZ:
printf("25MHz");
break;
case SPI_FREQUENCY_14MHZ:
printf("14MHz");
break;
default:
printf("unknown<%x>MHz", freq);
}
}
static void decode_spi_frequency(unsigned int freq)
{
if (chipset == CHIPSET_500_SERIES_TIGER_POINT)
_decode_spi_frequency_500_series(freq);
else
_decode_spi_frequency(freq);
}
static void decode_component_density(unsigned int density) static void decode_component_density(unsigned int density)
{ {
switch (density) { switch (density) {

View File

@ -63,6 +63,14 @@ enum spi_frequency {
SPI_FREQUENCY_17MHZ = 6, SPI_FREQUENCY_17MHZ = 6,
}; };
enum spi_frequency_500_series {
SPI_FREQUENCY_100MHZ = 0,
SPI_FREQUENCY_50MHZ = 1,
SPI_FREQUENCY_500SERIES_33MHZ = 3,
SPI_FREQUENCY_25MHZ = 4,
SPI_FREQUENCY_14MHZ = 6,
};
enum component_density { enum component_density {
COMPONENT_DENSITY_512KB = 0, COMPONENT_DENSITY_512KB = 0,
COMPONENT_DENSITY_1MB = 1, COMPONENT_DENSITY_1MB = 1,