coreboot/src/mainboard
Ronald G. Minnich 0d4a0f2c69 fox_wtm2: First step support for coreboot-based graphics startup
This code is the initial version of FUI for haswell and wtm2.

The code is simplified from before in many ways. I've gotten rid of
the opcode table, because it obscured meaning and I don't think it is
needed any more. Register sets, mainly used for reset, are just lines
of code -- not many of them. There are a bunch of not-yet-documented
registers here; the VBIOS seemed to think they were necessary and
testing shows they seem to be right.

As a bit of added paranoia, we always include the VBIOS code as our
emergency recovery path. You have to run it now anyways, so this is no
regression from our current situation; and, if all goes well, in a
week (or so), you'll never have to run it again, but like the Force
and nose hair, it will be with you always.

The code can return in three ways. The first, best way is success:
panel is up and the VBIOS need not run. The second mode is that we
tried to light up the panel but could not, for some reason, but will
return with the panel partly up. In this case, it's ok not to power
cycle the panel. The third, worst case, which will NEVER happen, ha
ha, is that we have to turn the panel off and wait the required 600ms
for it to cycle. Life sucks sometimes. This failure mode is in the
'hang on we're going to fix it' category now that we have ramstage in
RW.

The Big Goal here is to create something other coreboot ports can use
as well. The guys doing the x60 report that the link FUI works,
without too many mods, on that chipset, so it seems Intel is keeping
things from changing too much over time.

Also, again, please note: this and the next 3 versions will ALWAYS fail.
The goal is to verify the correctness of the recovery path.

The bizarre tab-space formatting in drm_dp_helper.h is from the original,
as in i915_reg.h

BUG=None
TEST=build and boot wtm2 and see that FUI failed in a way that VBIOS can
recover from
BRANCH=NONE

Change-Id: I6dfed46500b80c69967aa253a8f24556a5281dfc
Signed-off-by: Ronald G. Minnich <rminnich@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/48848
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Commit-Queue: Ronald G. Minnich <rminnich@chromium.org>
Tested-by: Ronald G. Minnich <rminnich@chromium.org>
2013-04-23 15:50:48 -07:00
..
a-trend x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
aaeon GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
abit x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
advansus x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
advantech x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
amd Partially revert "AMD Inagua: broadcom.c: Add missing prototype for broadcom_init()" 2013-04-03 19:29:30 +02:00
aopen x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
arima x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
artecgroup x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
asi x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
asrock ASRock E350M1: Kconfig: Remove WARNINGS_ARE_ERRORS to treat warnings as errors 2013-04-03 17:20:03 +02:00
asus AMD Hudson boards: Use hudson.h for pm_ioread and delete pmio.h 2013-03-30 14:18:27 +01:00
avalue x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
axus x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
azza x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
bachmann OT200: reset MFGTP7 (backlight pwm) 2013-03-14 16:32:45 +01:00
bcom x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
bifferos x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
biostar x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
broadcom x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
compaq x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
digitallogic x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
eaglelion x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
ecs GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
emulation x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
getac x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
gigabyte x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
google Fix VGA option rom INT15 handler 2013-04-23 15:50:47 -07:00
hp x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
ibase x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
ibm x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
iei x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
intel fox_wtm2: First step support for coreboot-based graphics startup 2013-04-23 15:50:48 -07:00
iwave x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
iwill x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
jetway x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
kontron x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
lanner x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
lenovo x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
lippert FrontRunner/Toucan-AF: Use SPD read code from F14 wrapper 2013-03-22 01:05:46 +01:00
mitac GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
msi x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
nec GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
newisys x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
nokia x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
nvidia x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
pcengines x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
rca x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
roda x86: Drop BOARD_HAS_FADT 2013-03-30 19:33:49 +01:00
samsung Unify coreboot table generation 2013-03-22 00:17:55 +01:00
siemens x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
soyo x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
sunw x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
supermicro x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
technexion x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
technologic x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
televideo x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
thomson x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
traverse GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
tyan x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
via x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
winent GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
wyse GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
Kconfig Add minimal mainboard support for snow 2012-12-12 06:01:26 +01:00