Dave Frodin (dave.frodin@se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8255
-gerrit
commit fb06935fa06760f90d9e7e13a5138b2ed8d8aaf6 Author: Dave Frodin dave.frodin@se-eng.com Date: Mon Jan 19 13:33:12 2015 -0700
superio/fintek: Changes required so it can be used
The amd/lamar mainboard is the first mainboard to use the f81216h. These changes were needed to get it to build and function. - Wrong #include name - Removed global variable in romstage - Missing "case" in switch() - Changed function parameters to pass the unlock key
Change-Id: I1b2058a915b776664fba14e4341e8a410b50330f Signed-off-by: Dave Frodin dave.frodin@se-eng.com --- src/superio/fintek/f81216h/early_serial.c | 21 +++++++++++---------- src/superio/fintek/f81216h/f81216h.h | 13 ++++++------- 2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/src/superio/fintek/f81216h/early_serial.c b/src/superio/fintek/f81216h/early_serial.c index 6b667df..5978474 100644 --- a/src/superio/fintek/f81216h/early_serial.c +++ b/src/superio/fintek/f81216h/early_serial.c @@ -21,12 +21,11 @@ #include <arch/io.h> #include <device/pnp.h> #include <stdint.h> -#include "fintek.h" +#include "f81216h.h"
-static u8 f81216h_entry_key; #define FINTEK_EXIT_KEY 0xAA
-static void pnp_enter_conf_state(pnp_devfn_t dev) +static void pnp_enter_conf_state(pnp_devfn_t dev, u8 f81216h_entry_key) { u16 port = dev >> 8; outb(f81216h_entry_key, port); @@ -40,26 +39,28 @@ static void pnp_exit_conf_state(pnp_devfn_t dev) }
/* Bring up early serial debugging output before the RAM is initialized. */ -void f81216h_enable_serial(pnp_devfn_t dev, u16 iobase, enum mode_key k) +void f81216h_enable_serial(pnp_devfn_t dev, u16 iobase, u8 key) { - switch(k) { - MODE_6767: + u8 f81216h_entry_key; + + switch(key) { + case MODE_6767: f81216h_entry_key = 0x67; break; - MODE_7777: + case MODE_7777: f81216h_entry_key = 0x77; break; - MODE_8787: + case MODE_8787: f81216h_entry_key = 0x87; break; - MODE_A0A0: + case MODE_A0A0: f81216h_entry_key = 0xa0; break; default: f81216h_entry_key = 0x77; /* (safe to be hw default) */ }
- pnp_enter_conf_state(dev); + pnp_enter_conf_state(dev, f81216h_entry_key); pnp_set_logical_device(dev); pnp_set_enable(dev, 0); pnp_set_iobase(dev, PNP_IDX_IO0, iobase); diff --git a/src/superio/fintek/f81216h/f81216h.h b/src/superio/fintek/f81216h/f81216h.h index 37e7753..944c348 100644 --- a/src/superio/fintek/f81216h/f81216h.h +++ b/src/superio/fintek/f81216h/f81216h.h @@ -34,13 +34,12 @@ * the default key. * See page 17 of data sheet for details. */ -enum { - MODE_6767, - MODE_7777, - MODE_8787, - MODE_A0A0, -} mode_key;
-void f81216h_enable_serial(pnp_devfn_t dev, u16 iobase, enum mode_key k); +#define MODE_6767 0 +#define MODE_7777 1 +#define MODE_8787 2 +#define MODE_A0A0 3 + +void f81216h_enable_serial(pnp_devfn_t dev, u16 iobase, u8 key);
#endif /* SUPERIO_FINTEK_F81216H_H */