On 02/26/2011 11:16 PM, Peter Stuge wrote:
Alex G. wrote:
Moves the inclusion of the superio early code
from romstage.c in
the mainboard directory to Makefile.inc in the superio directory.
Will it work also for boards with more than one superio?
I'm very tempted (and sure) to say "no". That's why this is
largely a
proposal, and you are welcome to extend it. I can only do one superio at
a time, and I definitely cannot do it all by myself.
A:
One other solution I had considered was to put the include in the
board's Makefile.inc, but, as you might have imagined, proved too messy.
B:
A fuzzy extension of this option is to declare
superio_enable_early_serial() as weak, and have the board select which
superio to use for serial output.
C:
Or, besides SUPERIO_VENDOR_NAME we can also have a Kconfig option
SUPERIO_VENDOR_NAME_HAS_EARLY_SERIAL, and base our decision of including
the early serial code in romstage based on the latter.
======================================================================
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
[...]
select SUPERIO_FINTEK_F81865F
select SUPERIO_OTHERVENDOR_OTHERMODEL
select SUPERIO_FINTEK_F81865F_HAS_EARLY_SERIAL
[...]
======================================================================
romstage-$(CONFIG_SUPERIO_FINTEK_F81865F_HAS_EARLY_SERIAL) += early_serial.c
If the board has two identical superios, then the same file will get
included (only once). In this case, handling both superios will have to
be done in mainboard logic anyways.
D:
Just forget about it and never again worry about .c includes.
Alex