diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-12-22 23:42:04 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-12-22 23:42:04 +0000 |
commit | 4e27addf88b2111d9789bfb00fbae1d12ffa286d (patch) | |
tree | 78dd44d70ae4c3bd0a80fbb959499d06becaa42f /internal.c | |
parent | cdb502c3a03e54464fb29e49797bf5baf2242393 (diff) | |
download | flashrom-4e27addf88b2111d9789bfb00fbae1d12ffa286d.zip flashrom-4e27addf88b2111d9789bfb00fbae1d12ffa286d.tar.gz |
SuperI/O detection now happens unconditionally and before the chipset enable
We could run it after chipset enable, but it definitely has to happen before
board enable because the board enable usually accesses the SuperI/O. With this
patch, it is possible to add a struct superio to the board enable table for
more accurate matching in case subsystem IDs are ambiguous. This patch focuses
on the generic infrastructure aspect and on support for IT8712F/IT8716F.
Thanks go to Adrian Glaubitz and Ward Vandewege for testing.
Corresponding to flashrom svn r813.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Luc Verhaegen <libv@skynet.be>
Acked-by: Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Diffstat (limited to 'internal.c')
-rw-r--r-- | internal.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -125,6 +125,17 @@ void release_io_perms(void) } #if INTERNAL_SUPPORT == 1 +struct superio superio = {}; + +void probe_superio(void) +{ + superio = probe_superio_ite(); +#if 0 /* Winbond SuperI/O code is not yet available. */ + if (superio.vendor == SUPERIO_VENDOR_NONE) + superio = probe_superio_winbond(); +#endif +} + int internal_init(void) { int ret = 0; @@ -142,6 +153,9 @@ int internal_init(void) */ coreboot_init(); + /* Probe for the SuperI/O chip and fill global struct superio. */ + probe_superio(); + /* try to enable it. Failure IS an option, since not all motherboards * really need this to be done, etc., etc. */ |