Commit graph

920 commits

Author SHA1 Message Date
Furquan Shaikh
045811048c UPSTREAM: drivers/spi/tpm: Add tis.c and tpm.c to ramstage and romstage
These files are required to support recovery MRC cache hash
save/restore in romtage/ramstage.

BUG=b:35583330

Change-Id: I60177f7080075c74c8eaa63b83178d67cea49cad
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 580e0c584f
Original-Change-Id: Idd0a4ee1c5f8f861caf40d841053b83a9d7aaef8
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/19092
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-on: https://chromium-review.googlesource.com/471454
2017-04-07 07:03:35 -07:00
Aaron Durbin
c3b79b5e4b UPSTREAM: drivers/i2c/tpm: remove 1260 byte buffer from stack
The tis.c module is needlessly copying data to/from a 1260 byte
buffer on the stack. Each device's transport implementation (cr50.c
or tpm.c) maintains its own buffer, if needed, for framing purposes.
Therefore, remove the duplicated buffer.

BUG=b:36598499

Change-Id: I091309f0fd45943b974d5244ae79c01eed618f16
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 92190198b0
Original-Change-Id: I478fb57cb65509b5d74bdd871f1a231f8080bc2f
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/19061
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Original-Tested-by: build bot (Jenkins)
Reviewed-on: https://chromium-review.googlesource.com/466056
2017-04-03 11:48:59 -07:00
Aaron Durbin
7f0374f11d UPSTREAM: drivers/i2c/tpm: remove unused variable in tpm_transmit()
The 'ordinal' variable is not used. Remove it.

BUG=b:36598499

Change-Id: I1f0fa8ba4f3106d63e831effd1b6c828c50337a3
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 9b8784475c
Original-Change-Id: I015a6633c0951980658b3c879e48bc84d604d62e
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/19060
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Philippe Mathieu-Daud <philippe.mathieu.daude@gmail.com>
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-on: https://chromium-review.googlesource.com/466055
2017-04-03 11:48:58 -07:00
Aaron Durbin
153ddbbbf8 UPSTREAM: drivers/i2c/tpm: remove unused types from tpm.h
There are unused structures/types in the tpm.h header file.
Remove them.

BUG=b:36598499

Change-Id: I1fd44626e1de4937321b30ee0a64521ebc5c8e51
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: bf254dd3bc
Original-Change-Id: Iddc147640dcec70e80791846eb46298de1070672
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/19059
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Original-Tested-by: build bot (Jenkins)
Reviewed-on: https://chromium-review.googlesource.com/466054
2017-04-03 11:48:58 -07:00
Aaron Durbin
3ddeae3899 UPSTREAM: drivers/spi/tpm: honor tis_sendrecv() API
The spi tis_sendrecv() implementation was always returning success
for all transactions. Correct this by returning -1 on error when
tpm2_process_command() returns 0 since that's its current failure
return code.

BUG=b:36598499

Change-Id: I614d05e76f8f09e071405b1acdc68db6ab989976
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 6ef52cd751
Original-Change-Id: I8bfb5a09198ae4c293330e770271773a185d5061
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/19058
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Original-Tested-by: build bot (Jenkins)
Reviewed-on: https://chromium-review.googlesource.com/466053
2017-04-03 11:48:57 -07:00
Aaron Durbin
c0514e440c UPSTREAM: drivers/spi/tpm: make tpm_info object local to compilation unit
The tpm_info object is a global, but its symbol does not need to
be exposed to the world as its only used within tpm.c.

BUG=b:36598499

Change-Id: I10d2d75641ed3ce9d3fda27c382348c9c90542aa
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 445c13fb5d
Original-Change-Id: Idded3dad8d0d1c3535bddfb359009210d3439703
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/19057
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Original-Tested-by: build bot (Jenkins)
Reviewed-on: https://chromium-review.googlesource.com/466052
2017-04-03 11:48:57 -07:00
Aaron Durbin
fc257c0970 UPSTREAM: drivers/spi/tpm: de-assert chip select on transaction error
In the case of start_transaction() failing the chip select is never
deasserted. Correct that by deasserting the chip select when
start_transaction() fails.

BUG=b:36598499

Change-Id: I91866a30fca8c9efae15a900722eb0fc3bebbfc3
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 5cf1fadeca
Original-Change-Id: I2c5200085eb357259edab39c1a0fa7b1d81ba7b2
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/19056
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/466051
2017-04-03 11:48:57 -07:00
Patrick Rudolph
23b6fa43fe UPSTREAM: nb/intel: Deduplicate vbt header
Move header and delete duplicates.

BUG=none
BRANCH=none
TEST=none

Change-Id: Id37925c750ace32dd41591f926614229c2b65f30
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 45a0dbc95c
Original-Change-Id: I0e1f5d9082626062f95afe718f6ec62a68f0d828
Original-Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Original-Reviewed-on: https://review.coreboot.org/18903
Original-Tested-by: build bot (Jenkins)
Original-Tested-by: coreboot org <coreboot.org@gmail.com>
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/466050
2017-04-03 11:48:56 -07:00
Nico Huber
aff8b6018f UPSTREAM: drivers/intel/gma: Guard GFX_GMA_* configs
It's confusing to have these Kconfig symbols for non-Intel boards.

BUG=none
BRANCH=none
TEST=none

Change-Id: I60b497afabb92666bda34a166c6884d6018c3b76
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 1e0543541e
Original-Change-Id: I4903c816258e5d2b8ed8704295b777aee175e8bc
Original-Signed-off-by: Nico Huber <nico.h@gmx.de>
Original-Reviewed-on: https://review.coreboot.org/18795
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Kysti Mlkki <kyosti.malkki@gmail.com>
Reviewed-on: https://chromium-review.googlesource.com/466047
2017-04-03 11:48:55 -07:00
Subrata Banik
622114ffac UPSTREAM: soc/intel/common/block: Add cache as ram init and teardown code
Create sample model for common car init and teardown programming.

TEST=Booted Reef, KCRD/EVE, GLKRVP with CAR_CQOS, CAR_NEM_ENHANCED
and CAR_NEM configs till post code 0x2a.

Change-Id: I77457b06542cce1d5aa547a0fd9120e6966982ae
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 03e971cd23
Original-Change-Id: Iffd0c3e3ca81a3d283d5f1da115222a222e6b157
Original-Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18381
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://chromium-review.googlesource.com/462948
2017-03-30 05:30:02 -07:00
Julius Werner
b136f18772 UPSTREAM: Remove libverstage as separate library and source file class
In builds without CONFIG_VBOOT_SEPARATE_VERSTAGE, verstage files are
linked directly into the bootblock or the romstage. However, they're
still compiled with a separate "libverstage" source file class, linked
into an intermediate library and then linked into the final destination
stage.

There is no obvious benefit to doing it this way and it's unclear why it
was chosen in the first place... there are, however, obvious
disadvantages: it can result in code that is used by both libverstage
and the host stage to occur twice in the output binary. It also means
that libverstage files have their separate compiler flags that are not
necessarily aligned with the host stage, which can lead to weird effects
like <rules.h> macros not being set the way you would expect. In fact,
VBOOT_STARTS_IN_ROMSTAGE configurations are currently broken on x86
because their libverstage code that gets compiled into the romstage sets
ENV_VERSTAGE, but CAR migration code expects all ENV_VERSTAGE code to
run pre-migration.

This patch resolves these problems by removing the separate library.
There is no more difference between the 'verstage' and 'libverstage'
classes, and the source files added to them are just treated the same
way a bootblock or romstage source files in configurations where the
verstage is linked into either of these respective stages (allowing for
the normal object code deduplication and causing those files to be
compiled with the same flags as the host stage's files).

Tested this whole series by booting a Kevin, an Elm (both with and
without SEPARATE_VERSTAGE) and a Falco in normal and recovery mode.

Change-Id: I48be3be92c154c5c93e7696e39d1d65773fc6c5f
Original-Change-Id: I6bb84a9bf1cd54f2e02ca1f665740a9c88d88df4
Original-Reviewed-on: https://review.coreboot.org/18302
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Commit-Id: e91d170d21
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462015
2017-03-29 13:43:09 -07:00
Arthur Heymans
9905ad23e1 UPSTREAM: nb/i945/gma.c: Refactor panel setup
This reuses some of gm45 code to set up the panel.

Panel start and stop delays and pwm frequency can now be set in
devicetree.

Linux does not make the difference between 945gm and gm45
for panel delays, so it is safe to assume the semantics of those
registers are the same.

The core display clock is computed according to "Mobile Intel 945
Express Chipset Family" Datasheet.

This selects Legacy backlight mode since most targets have some smm
code that rely on this.

This sets the same backlight frequency as vendor bios on Thinkpad X60
and T60.

A default of 180Hz is selected for the PWM frequency if it is not
defined in the devicetree, this might be annoying for displays that
are LED backlit, but is a safe value for CCFL backlit displays.

BUG=none
BRANCH=none
TEST=none

Change-Id: I86445ab53cb83bc5183fb998ca03e00b4746a33f
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 8e079000dc
Original-Change-Id: I1c47b68eecc19624ee534598c22da183bc89425d
Original-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Original-Reviewed-on: https://review.coreboot.org/18141
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://chromium-review.googlesource.com/457362
2017-03-20 10:33:11 -07:00
Lee Leahy
a3e3d5479e UPSTREAM: drivers/intel/fsp1_1: Fix issues detected by checkpatch
Fix the following error and warnings detected by checkpatch.pl:

ERROR: "foo * bar" should be "foo *bar"
WARNING: line over 80 characters
WARNING: else is not generally useful after a break or return
WARNING: braces {} are not necessary for single statement blocks
WARNING: suspect code indent for conditional statements (16, 32)
WARNING: Comparisons should place the constant on the right side of the test

TEST=Build and run on Galileo Gen2

Change-Id: I9468d58e4f996d77825f6cd9b99081bc240d109e
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 216712ae01
Original-Change-Id: I9f56c0b0e3baf84989411e4a4b98f935725c013f
Original-Signed-off-by: Lee Leahy <Leroy.P.Leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18886
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-by: Philippe Mathieu-Daud <philippe.mathieu.daude@gmail.com>
Reviewed-on: https://chromium-review.googlesource.com/457361
2017-03-20 10:33:11 -07:00
Duncan Laurie
329ca9695e UPSTREAM: i2c/generic: Add support for GPIO IRQ
Add support for using GPIO IRQ instead of PIRQ with an I2C device.

This allows a device to use an edge triggered interrupt that will
trigger on both high and low transitions.

The _DSD method for describing these GPIOs has a field for 'active
low' which is supposed to be 1 if the pin is active low, otherwise
is zero.  The value in here doesn't mean too much for GpioInt() as
those will end up using the value from GpioInt() when it actually
requests the interrupt.

BUG=b:35581264
BRANCH=none
TEST=test on Eve board that codec IRQ can be delcared as GPIO IRQ

Change-Id: Ic8366500fb869f2d0390aa08d94bdb58ed0133d5
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: b94e93531f
Original-Change-Id: I02c64c7fc28dc2d608ad40db889c7242892f16db
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18835
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/456304
2017-03-17 11:06:52 -07:00
Lee Leahy
072bcd7894 UPSTREAM: drivers/i2c/tpm: Add support for Atmel TPM (AT97SC3204)
The I2C interface for the Atmel AT97SC3204 TPM varies greatly from the
existing I2C TPM support.  The Atmel part just passes the commands and
responses from the TIS layer across the I2C interface.

TEST=Build and run on Galileo Gen2 with Crypto Shield and vboot enabled

Change-Id: Ia98801459d48f33d8ec1c3f616b533e4589aafd1
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 1b39f176a9
Original-Change-Id: Ib2ef0ffdfc12b2fc11fe4c55b6414924d4b676dd
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18800
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/455853
2017-03-16 11:25:39 -07:00
Lee Leahy
5e1c621301 UPSTREAM: drivers/i2c/tpm: Add TPM (TIS) debugging support
Add debugging support for the TIS transactions for the I2C TPM chips.

TEST=Build and run on reef

Change-Id: I908d0e64230f861230bd3bfe3d3c0459b894a6c6
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: e0668e4e1f
Original-Change-Id: Ibc7e26fca781316d625f4da080f34749f18e4f9b
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18799
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Tested-by: build bot (Jenkins)
Reviewed-on: https://chromium-review.googlesource.com/455852
2017-03-16 11:25:39 -07:00
Lee Leahy
48008aeec8 UPSTREAM: drivers/i2c/tpm: Fix issues detected by checkpatch
Fix the following warnings detected by checkpatch.pl:

WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
WARNING: braces {} are not necessary for single statement blocks
WARNING: Unnecessary parentheses - maybe == should be = ?
WARNING: line over 80 characters
WARNING: missing space after return type

TEST=Build and run on Galileo Gen2

Change-Id: I2e1797473a821b9fc9a20c6c433c50945bf60eae
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 52ab30b13b
Original-Change-Id: I56f915f6c1975cce123fd38043bad2638717d88c
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18832
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/455851
2017-03-16 11:25:38 -07:00
Lee Leahy
98ea8588be UPSTREAM: drivers/intel/fsp1_1: Only display MMCONF address if supported
Disable the display of the MMCONF_BASE_ADDRESS if it is not supported.

TEST=Build and run on Galileo Gen2

Change-Id: Ib5096ea1d53d56792b88bfb2d5c5ba0b22e9f89a
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: c253a92299
Original-Change-Id: Ie4f0fbf264662b5bc12ca923f25395e5e91defea
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18801
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Tested-by: Martin Roth <martinroth@google.com>
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/455820
2017-03-16 00:11:37 -07:00
Julius Werner
94e01f5e6d tpm: spi: Fix compile-time bug with pointer arguments
CL:452283 (tpm: spi: cr50: try to wake cr50 if it is asleep) introduced
a compile-time error by passing an argument the wrong way (probably due
to cherry-picking from an older branch and not testing it again). Due to
a misconfiguration this slipped by our continuous integration testing.
Fix it.

Jeffy, please re-test with this patch on ToT when you have time so we
can make sure the code actually works as intended now, too.

BRANCH=None?
BUG=None
TEST=Compiled GRU_HAS_TPM2 board.

Change-Id: I3210cd53014a206f5d36abcfe607a9710a8253fa
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/454921
Reviewed-by: Douglas Anderson <dianders@chromium.org>
2017-03-14 19:52:49 +00:00
Jeffy Chen
abe212ffb0 tpm: spi: cr50: using tpm irq to sync tpm transaction
BUG=b:35647967
TEST=boot from bob

Change-Id: Ib64107b17fb6e93dbe626ce92f3bc9da8b84784e
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/452284
Commit-Ready: Caesar Wang <wxt@rock-chips.com>
Tested-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2017-03-14 00:40:05 -07:00
Jeffy Chen
9407c1fbc0 tpm: spi: cr50: try to wake cr50 if it is asleep
BUG=b:35775002
TEST=boot from bob

Change-Id: I6324f3c02da55a8527f085ba463cbb1f4fb5dc2e
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/452283
Commit-Ready: Caesar Wang <wxt@rock-chips.com>
Tested-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2017-03-13 22:40:02 -07:00
Lee Leahy
137b9ae242 UPSTREAM: drivers/intel/fsp2_0: Switch from binary to decimal
Fix the following warning detected by checkpatch.pl:

WARNING: Avoid gcc v4.3+ binary constant extension:

TEST=Build and run on Galileo Gen2

Change-Id: Icf867673b99f74be331ab81a2b41313d2beaca61
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: ce46c5b6a1
Original-Change-Id: Ied50b94ecae4d3bde5812f6b54bbe2421fd48588
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18747
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453367
2017-03-11 17:04:36 -08:00
Lee Leahy
205b3a6fb1 UPSTREAM: drivers/intel/fsp2_0: Wrap lines at 80 columns
Fix the following warning detected by checkpatch.pl:

WARNING: line over 80 characters

TEST=Build and run on Galileo Gen2

Change-Id: I2e29e1b9ca4dd35a3b269dd6b2be1d2161d58ef5
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 7732b35fb7
Original-Change-Id: I0e5acef53d558948b7713cfe608cd346ddc5e9fe
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18746
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453366
2017-03-11 17:04:35 -08:00
Lee Leahy
ac3e815e96 UPSTREAM: drivers/intel/fsp2_0: Remove braces for single statements
Fix the following warning detected by checkpatch.pl:

WARNING: braces {} are not necessary for single statement blocks

TEST=Build and run on Galileo Gen2

Change-Id: I4f22414276b8e296fca20a2ba262e818ed004d0d
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: e686ee8bf7
Original-Change-Id: Ibd351703e60acebbacd6ae5b1a2fa1cb34fd3ff9
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18745
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453365
2017-03-11 17:04:35 -08:00
Lee Leahy
5de927158e UPSTREAM: drivers/intel/fsp2_0: Fix spacing issues
Fix the following errors detected by checkpatch.pl:

ERROR: space prohibited before that close parenthesis ')'
ERROR: space required before the open parenthesis '('
ERROR: space prohibited before open square bracket '['
ERROR: spaces required around that ':' (ctx:VxE)

TEST=Build and run on Galileo Gen2

Change-Id: I1227c8970dcbba982e6e51b4028174343daa5988
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: b2b97a5db2
Original-Change-Id: I085aaaa9e276c60eded6edf3be0325ed2402702a
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18744
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453364
2017-03-11 17:04:34 -08:00
Lee Leahy
ceeb67af66 UPSTREAM: drivers/intel/fsp2_0: Add space before *
Fix the following error detected by checkpatch.pl:

ERROR: "(foo*)" should be "(foo *)"

False positives are generated by checkpatch for the following condition
which is not properly detecting the variable type:
ERROR: need consistent spacing around '*' (ctx:WxV)
The false positives are found in debug.h and upd_display.c

TEST=Build and run on Galileo Gen2

Change-Id: Ia1a03a6f4df599f8742790d558d400668a8d8fca
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 27de768112
Original-Change-Id: I0e871d64544ebf5eacbae46466cf7aefbfa701eb
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18743
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453363
2017-03-11 17:04:34 -08:00
Lee Leahy
f96a2cd575 UPSTREAM: drivers/intel/fsp2_0: Use tabs for indent
Fix the following warning detected by checkpatch.pl:

WARNING: please, no spaces at the start of a line

TEST=Build and run on Galileo Gen2

Change-Id: I1c318762b99d0a14520c2caa0e5a4a4cce28dd81
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 30bdb52e4c
Original-Change-Id: I7cb35c8b5d7ff97849e666ce7f75d4e4763bb2a7
Original-Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Original-Reviewed-on: https://review.coreboot.org/18742
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453362
2017-03-11 17:04:33 -08:00
Aaron Durbin
058d66dd91 UPSTREAM: drivers/spi/tpm: provide Kconfig to indicate CR50 usage
Going forward it's important to note when a CR50 is expected
to be present in the system. Additionally, this Kconfig addition
provides symmetry with the equivalent i2c Kconfig option.

BUG=b:35775104

Change-Id: I0c52abdf30620cd54be7f213eb41c1622f533743
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 1b9fc9e801
Original-Change-Id: Ifbd42b8a22f407534b23459713558c77cde6935d
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18680
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Original-Tested-by: build bot (Jenkins)
Reviewed-on: https://chromium-review.googlesource.com/452887
2017-03-10 10:54:45 -08:00
Furquan Shaikh
00e8380740 UPSTREAM: acpi: Add ACPI_ prefix to IRQ enum and struct names
This is done to avoid any conflicts with same IRQ enums defined by other
drivers.

BUG=None
BRANCH=None
TEST=Compiles successfully

Change-Id: I54701329455709ce023bf363bdacdadf4f7d2639
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 5b9b593f2f
Original-Change-Id: I539831d853286ca45f6c36c3812a6fa9602df24c
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18444
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/446382
2017-02-24 11:30:26 -08:00
Furquan Shaikh
cdf025ffc6 UPSTREAM: drivers/intel/{fsp1_1,fsp2_0}: Provide separate function for fsp load
Add a function to allow FSP component loading separately from silicon
initialization. This enables SoCs that might not have stage cache
available during silicon initialization to load/save components from/to
stage cache before it is relocated or destroyed.

BUG=chrome-os-partner:63114
BRANCH=None
TEST=Compiles successfully.

Change-Id: I593b27934b3f2093e3d1d0a36106471d2b5f10e4
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Id: f4b20af9d7
Original-Change-Id: Iae77e20568418c29df9f69bd54aa571e153740c9
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18413
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/445862
2017-02-22 00:35:23 -08:00
Furquan Shaikh
35083f7301 UPSTREAM: drivers/i2c: Use I2C HID driver for wacom devices
Wacom I2C driver does the same thing as I2C HID driver, other than
defining macros for Wacom HID. Instead of maintaining two separate
drivers providing the same functionality, update all wacom devices to
use generic I2C HID driver.

BUG=None
BRANCH=None
TEST=Verified that ACPI nodes for wacom devices are unchanged.

Change-Id: I40316a2bc0a1210661becf0bf392d259310adbc5
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 5360c7ef94
Original-Change-Id: Ibb3226d1f3934f5c3c5d98b939756775d11b792c
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18401
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/445638
2017-02-21 06:44:35 -08:00
Duncan Laurie
4c16e88957 UPSTREAM: drivers/spi/acpi: Add additional generic ACPI support
Add support for more ACPI features in the generic SPI ACPI
driver so it can be flexible enough to support more devices,
or devices in different configurations.

- add a wake pin
- add support for using IRQ GPIO instead of PIRQ
- add power resource support with enable and reset gpios

BUG=chrome-os-partner:61233
TEST=ensure existing SSDT generation is unchanged,
and test that new features generate expected code

Change-Id: Ib4dcba5b0d57539030eb380a9ec38db9f7aea9a7
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: c9db384ea4
Original-Change-Id: Ibe37cc87e488004baa2c08a369f73c86e6cd6dce
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18393
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/445132
2017-02-21 06:44:31 -08:00
Duncan Laurie
0fac519d53 UPSTREAM: acpi_device: Move power resource function to generic code
Move the function that adds a power resource block from
i2c/generic to the acpi device code at src/arch/x86/acpi_device.c
so it can be used by more drivers.

BUG=chrome-os-partner:61233
TEST=verify SSDT table generation is unchanged

Change-Id: I20371b7a7f4e270cd1c61a3e8b9b58b10cafc8ed
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: bd73dbbc38
Original-Change-Id: I0ffb61a4f46028cbe912e85c0124d9f5200b9c76
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18391
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/445130
2017-02-21 06:44:30 -08:00
Martin Roth
ed5d162c37 UPSTREAM: src/drivers/pc80: Update vga_font_8x16.c to be non-binary
Previously, the file -i command identified vga_font_8x16.c as
application/octet-stream; charset=binary

Now it identifies as:
text/x-c; charset=us-ascii

- Remove non-ascii characters

BUG=none
BRANCH=none
TEST=none

Change-Id: I9ef13a37ce18c42bdf4cf0daf6f796861028eb50
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 98641b92e7
Original-Change-Id: I6b513e6457a31828a6e94c954a7e2e7ee18fd4d6
Original-Signed-off-by: Martin Roth <martinroth@google.com>
Original-Reviewed-on: https://review.coreboot.org/18372
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Jonathan Neuschfer <j.neuschaefer@gmx.net>
Reviewed-on: https://chromium-review.googlesource.com/445148
2017-02-21 06:44:26 -08:00
Rizwan Qureshi
d9aa8dd735 UPSTREAM: driver/i2c/max98927: add i2c driver for Maxim 98927 codec
Maxim 98927 kernel driver requires entries in the ACPI SSDT table,
add a SSDT generator as part of this driver.

BUG=chrome-os-partner:62051
BRANCH=None
TEST=After boot, dump and verify that the generated SSDT ACPI table has the
required entries.

Change-Id: I9043f9f0b66b45d04e8b8cbe8c99b77686fd5666
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 4979d7610e
Original-Change-Id: Ic2d4d8449288bc00d085852220b2e1e7a208e9ef
Original-Signed-off-by: Naresh G Solanki <naresh.solanki@intel.com>
Original-Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
Original-Signed-off-by: M Naveen <naveen.m@intel.com>
Original-Signed-off-by: Dylan Reid <dgreid@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18211
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/445127
2017-02-20 14:28:02 -08:00
Furquan Shaikh
c777b9c1cf UPSTREAM: drivers/spi: Add support for generating SPI device in SSDT
Similar to I2C driver, add support for generating SPI device and
required properties in SSDT for ACPI.

BUG=chrome-os-partner:59832
BRANCH=None
TEST=Compiles succesfully. Verified SPI device generated in SSDT on
poppy.

Change-Id: I963cfeb38cfb5da095f89cb67f1c4f6724768b81
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Id: 20a91c9830
Original-Change-Id: Ic4da79c823131d54d9eb3652b86f6e40fe643ab5
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18342
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/444811
2017-02-18 03:10:56 -08:00
Furquan Shaikh
6c31bd60ae UPSTREAM: spi: Add function callback to get configuration of SPI bus
Add a new callback to spi_ctrlr structure - get_config - to obtain
configuration of SPI bus from the controller driver. Also, move common
config definitions from acpi_device.h to spi-generic.h

BUG=chrome-os-partner:59832
BRANCH=None
TEST=Compiles successfully

Change-Id: I65605a03c4368f1bb4cea38d5b88e0aa4f600249
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Id: 3e01b633d6
Original-Change-Id: I412c8c70167d18058a32041c2310bc1c884043ce
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18337
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/444805
2017-02-18 03:10:54 -08:00
Tobias Diedrich
ac8261ce3b UPSTREAM: drivers/pc80/tpm: Update default acpi path
The existing default path of PCI0.LPCB is missing the \_SB prefix and prevents Linux from detecting the TPM.
This is assuming that normally the LPCB device is most commonly on \_SB.PCI0.LPCB.

SSDT excerpt without the patch:
"""
DefinitionBlock ("", "SSDT", 2, "CORE  ", "COREBOOT", 0x0000002A)
{
    External (_SB_.PCI0.GFX0, DeviceObj)
[...]
    External (_SB_.PCI0.SATA, DeviceObj)
    External (PCI0.LPCB, DeviceObj)
[...]
    Scope (PCI0.LPCB)
    {
        Device (TPM)
[...]
    Scope (\_SB.PCI0.GFX0)
    {
        Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
[...]
"""

SSDT excerpt with the patch:
"""
DefinitionBlock ("", "SSDT", 2, "CORE  ", "COREBOOT", 0x0000002A)
{
    External (_SB_.PCI0.GFX0, DeviceObj)
[...]
    External (_SB_.PCI0.LPCB, DeviceObj)
[...]
    External (_SB_.PCI0.SATA, DeviceObj)
[...]
    Scope (\_SB.PCI0.LPCB)
    {
        Device (TPM)
[...]
    Scope (\_SB.PCI0.GFX0)
    {
        Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
[...]
"""

After the patch the TPM shows up in /sys/bus/acpi/devices/PNP0C31:00.
Previously it was missing and not detected by the kernel.

BUG=none
BRANCH=none
TEST=none

Change-Id: I239b934fb5ec1f320cc02cafa20f8756e4c6bf68
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Id: 36537f113c
Original-Change-Id: I615b4873ca829a859211403c84234d43d60f2243
Original-Signed-off-by: Tobias Diedrich <ranma+coreboot@tdiedrich.de>
Original-Reviewed-on: https://review.coreboot.org/18315
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Nicola Corna <nicola@corna.info>
Original-Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Original-Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/443680
2017-02-17 04:09:20 -08:00
Nico Huber
d342ea573d UPSTREAM: drivers/intel/gma/vbt: Add Kconfig symbol for SSC ref
The selection of the SSC reference frequency for LVDS was based on a
completely unrelated clock.

The `ssc_freq` flag should be set when the SSC reference runs at a
different frequency than the general display reference clock (DREF).
For most platforms, there is no choice, i.e. for i945 and gm45 the SSC
reference always differs from the display reference clock (i945: 66Mhz
SSC vs. 48MHz DREF; gm45: 100MHz SSC vs. 96Mhz DREF), for Nehalem and
newer, it's the same frequency for SSC/non-SSC (120MHz).  The only,
currently supported platform with a choice seems to be Pineview, where
the alternative is 100MHz vs. the default 96MHz.

BUG=none
BRANCH=none
TEST=none

Change-Id: I869be7519523453cd776fdc8c4cdc4dc0db03ad2
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 561bebfbaa
Original-Change-Id: I7791754bd366c9fe6832c32eccef4657ba5f309b
Original-Signed-off-by: Nico Huber <nico.huber@secunet.com>
Original-Reviewed-on: https://review.coreboot.org/18186
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://chromium-review.googlesource.com/438055
2017-02-06 10:37:41 -08:00
Patrick Georgi
ae20cc56cc various cleanups from upstream
These were done during upstreaming (ie. to the commits directly), so
there's no correspondence as individual CLs for these.
The "Reviewed-on" list below is a catch-all to help gerrit-rebase ignore
changes that were handled one way or another but aren't tracked.

BUG=none
BRANCH=none
TEST=with various up/downstreaming CLs merged,
$ git diff --stat cros/chromeos-2016.05 origin/master # has only a very
small set of remaining changes (COMMIT-QUEUE.ini etc, git submodules)

Change-Id: I9c2cee7fbadbc1393ca0fb1c3b4f7a1ddb48341b
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Ignore-CL-Reviewed-on: https://review.coreboot.org/15122
Ignore-CL-Reviewed-on: https://review.coreboot.org/15604
Ignore-CL-Reviewed-on: https://review.coreboot.org/15919
Ignore-CL-Reviewed-on: https://review.coreboot.org/16021
Ignore-CL-Reviewed-on: https://review.coreboot.org/16055
Ignore-CL-Reviewed-on: https://review.coreboot.org/16253
Ignore-CL-Reviewed-on: https://review.coreboot.org/17061
Ignore-CL-Reviewed-on: https://review.coreboot.org/17179
Ignore-CL-Reviewed-on: https://review.coreboot.org/17185
Ignore-CL-Reviewed-on: https://review.coreboot.org/17340
Ignore-CL-Reviewed-on: https://review.coreboot.org/17366
Ignore-CL-Reviewed-on: https://review.coreboot.org/17775
Ignore-CL-Reviewed-on: https://review.coreboot.org/17872
Ignore-CL-Reviewed-on: https://review.coreboot.org/17875
Ignore-CL-Reviewed-on: https://review.coreboot.org/17962
Ignore-CL-Reviewed-on: https://review.coreboot.org/18023
Ignore-CL-Reviewed-on: https://review.coreboot.org/18158
Ignore-CL-Reviewed-on: https://review.coreboot.org/18170
Ignore-CL-Reviewed-on: https://review.coreboot.org/18171
Ignore-CL-Reviewed-on: https://review.coreboot.org/18172
Ignore-CL-Reviewed-on: https://review.coreboot.org/18205
Reviewed-on: https://chromium-review.googlesource.com/427824
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
2017-02-06 05:03:19 -08:00
Furquan Shaikh
3028c26bc4 UPSTREAM: i2c/generic: Allow GPIOs to be put in _CRS and PowerResource in ACPI
Linux kernel expects that power management with ACPI should always be
handled using PowerResource. However, some kernel drivers (e.g. ELAN
touchscreen) check to see if reset gpio is passed in by the BIOS to
decide whether the device loses power in suspend. Thus, until the kernel
has a better way for drivers to query if device lost power in suspend,
we need to allow passing in of GPIOs via _CRS as well as exporting
PowerResource to control power to the device.

Update mainboards to export reset GPIO as well as PowerResource for
ELAN touchscreen device.

BUG=chrome-os-partner:62311,chrome-os-partner:60194
BRANCH=reef
TEST=Verified that touchscreen works on power-on as well as after
suspend-resume.

Change-Id: Ice3b1040d4cda0e5ac6d2a1f211dc8c8d78668cc
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 71d830fddc
Original-Change-Id: I3409689cf56bfddd321402ad5dda3fc8762e6bc6
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18238
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/434479
2017-01-30 10:20:30 -08:00
Martin Roth
aafaff5d06 UPSTREAM: drivers/pc80/rtc: Check cmos checksum BEFORE reading cmos value
If cmos is invalid, it doesn't make sense to read the value before
finding that out.

BUG=none
BRANCH=none
TEST=none

Change-Id: I99768c9fee002d965c8e98e36f5d385f9e9cd861
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 0e7a93fa65
Original-Change-Id: Ieb4661aad7e4d640772325c3c6b184de1947edc3
Original-Signed-off-by: Martin Roth <martinroth@google.com>
Original-Reviewed-on: https://review.coreboot.org/18236
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-on: https://chromium-review.googlesource.com/433882
2017-01-28 04:11:03 -08:00
Arthur Heymans
199aa7bfe9 UPSTREAM: drivers/net/rt8168: Add a macaddress cbfsfile using Kconfig
The default macaddress in rt8168.c can be changed with a cbfsfile
called macaddress. This patch makes it possible to add such a file
using Kconfig at build time.

This also changes the name of the cbfsfile from "macaddress" to
"rt8168-macaddress" to avoid confusion.

BUG=none
BRANCH=none
TEST=none

Change-Id: Ib9c2286a9a382131cb1d1302202846b62c508f49
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: ec74f45e72
Original-Change-Id: I24674d8df11845167b837b79344427ce0c67f4fb
Original-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Original-Reviewed-on: https://review.coreboot.org/18088
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://chromium-review.googlesource.com/433881
2017-01-28 04:11:03 -08:00
Nico Huber
873a48562f UPSTREAM: drivers/intel/gma/vbt: Fix style and minor issues
o Fix indentation and other whitespace issues,

o Use `const` where applicable,

o Avoid retyping the same constant literals,

o Actually read PCI revision from the device (instead of using the
  lowest class byte).

BUG=none
BRANCH=none
TEST=none

Change-Id: I74c9feb687e8e8b42aeeb4ed7265547f289fd427
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: d37fa8d84d
Original-Change-Id: I2c64153c61a51a6a87848360d22f981225812a3b
Original-Signed-off-by: Nico Huber <nico.huber@secunet.com>
Original-Reviewed-on: https://review.coreboot.org/18185
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://chromium-review.googlesource.com/431979
2017-01-25 10:50:56 -08:00
Teo Boon Tiong
b21a7cf217 UPSTREAM: driver/intel/fsp1_1: Fix boot failure for non-verstage case
Currently car_stage_entry is defined only in romstage_after_verstage and
as a result when SEPARATE_VERSTAGE is not selected, there is no
entry point into romstage and romstage will not be started at all.

The solution is move out romstage_after_verstage.S from fsp1.1 driver
to skylake/romstage. And add CONFIG_PLATFORM_USES_FSP1_1 to fix the
build and boot issue with this change.

Besides that, rename the romstage_after_verstage to romstage_c_entry
in more appropriate naming convention after this fix.

Tested on SkyLake Saddle Brook (FSP 1.1) and KabyLake Rvp11 (FSP 2.0),
romstage can be started successfully.

BUG=none
BRANCH=none
TEST=none

Change-Id: I95a45a090b4a335fa8655c89fbede13d011bb321
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: d8e34b2c44
Original-Change-Id: I1cd2cf5655fdff6e23b7b76c3974e7dfd3835efd
Original-Signed-off-by: Teo Boon Tiong <boon.tiong.teo@intel.com>
Original-Reviewed-on: https://review.coreboot.org/17976
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Tested-by: build bot (Jenkins)
Reviewed-on: https://chromium-review.googlesource.com/430735
2017-01-19 15:14:48 -08:00
Robbie Zhang
fac370b47f UPSTREAM: intel/wifi: Create ACPI objects for wifi SAR configuration
To support intel wifi SAR configuration, it is required coreboot
to publish two ACPI objects (WRDS and EWRD) to supply SAR limit
data sets. VPD entry "wifi_sar" is required to supply the raw SAR
limit data.

BUG=chrome-os-partner:60821
TEST=Enable USE_SAR, boot reef to OS, create the VPD entry, reboot,
check the SSDT dump and verify WRDS and EWRD structures.

Change-Id: I3dc4219676f1b4cfb108d15ec25f4c992e0367e0
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 3dea69a487
Original-Change-Id: I6be345735292d0ca46f2f7e7ea61924990d338a8
Original-Signed-off-by: Robbie Zhang <robbie.zhang@intel.com>
Original-Reviewed-on: https://review.coreboot.org/17959
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/428260
Commit-Ready: Aaron Durbin <adurbin@chromium.org>
2017-01-13 18:41:36 -08:00
Kyösti Mälkki
0bf36055be UPSTREAM: SPI: Fix command-response behavior
Fix SPI flash ops regressions after commit:
   c2973d1 spi: Get rid of SPI_ATOMIC_SEQUENCING

When spi_flash_cmd() is called with argument response==NULL,
only send out command without reading back the response.

BUG=none
BRANCH=none
TEST=none

Change-Id: I618a26349ff21649cc908562d19d8e367f2e24bd
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 85b2b27e33
Original-Change-Id: I28a94f208b4a1983d45d69d46db41391e267891d
Original-Signed-off-by: Kysti Mlkki <kyosti.malkki@gmail.com>
Original-Reviewed-on: https://review.coreboot.org/18082
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Timothy Pearson <tpearson@raptorengineering.com>
Original-Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-on: https://chromium-review.googlesource.com/428242
Commit-Ready: Aaron Durbin <adurbin@chromium.org>
2017-01-13 18:40:53 -08:00
Martin Roth
7821d0697b UPSTREAM: drivers/uart/oxpcie_early.c: remove uart_fill_lb()
uart_fill_lb() was added to drivers/uart/uart8250mem.c, so when the
Oxford OXPCIe952 Kconfig option is enabled, we were getting an error.
"multiple definition of `uart_fill_lb'"

The new version of uart_fill_lb sets the regwidth depending on the
Kconfig symbol DRIVERS_UART_8250MEM_32, so if that's selected, don't
give DRIVERS_UART_OXPCIE as a choice.

BUG=None
BRANCH=None
TEST=None

Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/17966
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

Change-Id: Ife24ab390553b10b2266809595c2e06463de708c
Reviewed-on: https://chromium-review.googlesource.com/425267
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2017-01-05 11:00:42 -08:00
Furquan Shaikh
22e7b86790 UPSTREAM: spi: Get rid of SPI_ATOMIC_SEQUENCING
SPI_ATOMIC_SEQUENCING was added to accomodate spi flash controllers with
the ability to perform tx and rx of flash command and response at the
same time. Instead of introducing this notion at SPI flash driver layer,
clean up the interface to SPI used by flash.

Flash uses a command-response kind of communication. Thus, even though
SPI is duplex, flash command needs to be sent out on SPI bus and then
flash response should be received on the bus. Some specialized x86
flash controllers are capable of handling command and response in a
single transaction.

In order to support all the varied cases:
1. Add spi_xfer_vector that takes as input a vector of SPI operations
and calls back into SPI controller driver to process these operations.
2. In order to accomodate flash command-response model, use two vectors
while calling into spi_xfer_vector -- one with dout set to
non-NULL(command) and other with din set to non-NULL(response).
3. For specialized SPI flash controllers combine two successive vectors
if the transactions look like a command-response pair.
4. Provide helper functions for common cases like supporting only 2
vectors at a time, supporting n vectors at a time, default vector
operation to cycle through all SPI op vectors one by one.

BUG=chrome-os-partner:59832
BRANCH=None
TEST=Compiles successfully

Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/17681
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

Change-Id: I4c9e78c585ad95c40c0d5af078ff8251da286236
Reviewed-on: https://chromium-review.googlesource.com/424871
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2017-01-05 11:00:04 -08:00
Brenton Dong
d4471b5705 UPSTREAM: drivers/intel/fsp2_0: add FSP TempRamInit & TempRamExit API support
FSP v2.0 Specification adds APIs TempRamInit & TempRamExit for
Cache-As-Ram initialization and teardown.  Add fsp2_0 driver
support for TempRamInit & TempRamExit APIs.

Verified on Intel Leaf Hill CRB and confirmed that Cache-As-Ram
is correctly set up and torn down using the FSP v2.0 APIs
without coreboot implementation of CAR init/teardown.

BUG=None
BRANCH=None
TEST=None

Signed-off-by: Brenton Dong <brenton.m.dong@intel.com>
Reviewed-on: https://review.coreboot.org/17062
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

Change-Id: I482ff580e1b5251a8214fe2e3d2d38bd5f3e3ed2
Reviewed-on: https://chromium-review.googlesource.com/422955
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2016-12-21 03:13:25 -08:00