mb/facebook/fbg1701: Add mainboard_read_pcb_version()

PCB version is determined using inb() in actual code.

Create function mainboard_read_pcb_version to read pcb version.

BUG=N/A
TEST=Boot and verified on Facebook FBG-1701

Change-Id: I7c16627f468d84ca4ad2aab8bf9fb555f50dc23c
Signed-off-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35741
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Frans Hendriks 2019-10-01 13:41:04 +02:00 committed by Felix Held
parent 22f009901d
commit 0b20b83b7d
3 changed files with 12 additions and 5 deletions

View File

@ -16,7 +16,10 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#include <arch/io.h>
#include <device/device.h> #include <device/device.h>
#include "mainboard.h"
#include "onboard.h"
/* /*
* Declare the resources we are using * Declare the resources we are using
@ -36,6 +39,13 @@ static void mainboard_reserve_resources(struct device *dev)
res->flags = IORESOURCE_IRQ | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; res->flags = IORESOURCE_IRQ | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
} }
/* Read PCB version */
unsigned int mainboard_read_pcb_version(void)
{
return ((inb(CPLD_PCB_VERSION_PORT) & CPLD_PCB_VERSION_MASK) >>
CPLD_PCB_VERSION_BIT);
}
/* /*
* mainboard_enable is executed as first thing after * mainboard_enable is executed as first thing after
* enumerate_buses(). * enumerate_buses().

View File

@ -16,6 +16,7 @@
#ifndef MAINBOARD_H #ifndef MAINBOARD_H
#define MAINBOARD_H #define MAINBOARD_H
unsigned int mainboard_read_pcb_version(void);
void *load_logo(size_t *logo_size); void *load_logo(size_t *logo_size);
#endif #endif

View File

@ -324,15 +324,11 @@ static const struct edp_data b101uan08_table[] = {
static void mainboard_configure_edp_bridge(void) static void mainboard_configure_edp_bridge(void)
{ {
u8 cpld_version;
const struct edp_data *edptable; const struct edp_data *edptable;
unsigned int loops; unsigned int loops;
int status; int status;
cpld_version = (inb(CPLD_PCB_VERSION_PORT) & CPLD_PCB_VERSION_MASK) >> if (mainboard_read_pcb_version() < 7)
CPLD_PCB_VERSION_BIT;
printk(BIOS_DEBUG, "CPLD version: %x\n", cpld_version);
if (cpld_version < 7)
edptable = b101uan01_table; edptable = b101uan01_table;
else else
edptable = b101uan08_table; edptable = b101uan08_table;