broadwell: Add romstage usbdebug support Reviewed-on: https://chromium-review.googlesource.com/199412 (cherry picked from commit 1050e7d3be6ec1e4fe5aa2df408f4bb6d33a42b5) broadwell: Add romstage code to configure PCH UART for console Reviewed-on: https://chromium-review.googlesource.com/199807 (cherry picked from commit ecebda4eb5d6fe58473d25c2898ba1a2eac0f39a) broadwell: Expand the PCI device convenience macros Reviewed-on: https://chromium-review.googlesource.com/199891 (cherry picked from commit f8c54c70f136cd2cb8f977bc25661974d7e529ad) broadwell: Add ramstage driver for ADSP Reviewed-on: https://chromium-review.googlesource.com/199892 (cherry picked from commit e8e986b0ba52bbfc9923d71009fbd31e749ca43f) broadwell: Update ACPI devices Reviewed-on: https://chromium-review.googlesource.com/201080 (cherry picked from commit 2446b35578eb36e0009415bec340059135751549) broadwell: Reserve DPR region Reviewed-on: https://chromium-review.googlesource.com/201081 (cherry picked from commit 8ecd9d2096db2bded6f27ef6ee9a9b39ce2dfec6) broadwell: Remove old pei_data and add cpu function for romstage Reviewed-on: https://chromium-review.googlesource.com/201690 (cherry picked from commit d206c9cdd69519d502a90bb0595f0e3a7cb50274) broadwell: Fixes for graphics without executing VBIOS Reviewed-on: https://chromium-review.googlesource.com/202356 (cherry picked from commit 0c031df1ce92c875e95ddfd3f026f649c342c7fa) broadwell: Fix compilation failure when loglevel is lowered Reviewed-on: https://chromium-review.googlesource.com/202357 (cherry picked from commit 708ce78b2bfae5664b1238e17b086c88cac55bdc) broadwell: Disable GPIO controller interrupt Reviewed-on: https://chromium-review.googlesource.com/203645 (cherry picked from commit 2d17e98eded5958258ba5c0abf600284d8d03af9) broadwell: Add support for E0 stepping Reviewed-on: https://chromium-review.googlesource.com/205160 (cherry picked from commit 802e9d371418cc7a7fc7af131d7e5dda0ae5b273) broadwell: misc updates for CPU driver Reviewed-on: https://chromium-review.googlesource.com/205161 (cherry picked from commit ea1d403817ee193648f2c119fd45894e32e57e97) broadwell: Read power state earlier and store in romstage params Reviewed-on: https://chromium-review.googlesource.com/208151 (cherry picked from commit b2198d71084ad3c1360a0bfedc46c8dd3825bd0e) broadwell: Add parameters to pei_data structure Reviewed-on: https://chromium-review.googlesource.com/208153 (cherry picked from commit 423fbf67e497a907fbc8e12caf2929d4951858af) broadwell: Move platform report output after power state is read Reviewed-on: https://chromium-review.googlesource.com/208213 (cherry picked from commit acedf4146bf9377133433046dae1fa9c8bc69d78) Squashed 15 commits for broadwell support. Change-Id: I87e320d3d5376b84dd9c146b0b833e5ce53244aa Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com> Reviewed-on: http://review.coreboot.org/6982 Tested-by: build bot (Jenkins) Reviewed-by: Marc Jones <marc.jones@se-eng.com>
143 lines
3.5 KiB
Plaintext
143 lines
3.5 KiB
Plaintext
/*
|
|
* This file is part of the coreboot project.
|
|
*
|
|
* Copyright (C) 2014 Google Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
Device (GPIO)
|
|
{
|
|
// GPIO Controller
|
|
Method (_HID)
|
|
{
|
|
If (\ISWP ()) {
|
|
// WildcatPoint
|
|
Return ("INT3437")
|
|
}
|
|
|
|
// LynxPoint-LP
|
|
Return ("INT33C7")
|
|
}
|
|
Name (_UID, 1)
|
|
|
|
Name (RBUF, ResourceTemplate()
|
|
{
|
|
DWordIo (ResourceProducer,
|
|
MinFixed, // IsMinFixed
|
|
MaxFixed, // IsMaxFixed
|
|
PosDecode, // Decode
|
|
EntireRange, // ISARanges
|
|
0x00000000, // AddressGranularity
|
|
0x00000000, // AddressMinimum
|
|
0x00000000, // AddressMaximum
|
|
0x00000000, // AddressTranslation
|
|
0x00000000, // RangeLength
|
|
, // ResourceSourceIndex
|
|
, // ResourceSource
|
|
BAR0)
|
|
// Disabled due to IRQ storm: http://crosbug.com/p/29548
|
|
//Interrupt (ResourceConsumer,
|
|
// Level, ActiveHigh, Shared, , , ) {14}
|
|
})
|
|
|
|
Method (_CRS, 0, NotSerialized)
|
|
{
|
|
CreateDwordField (^RBUF, ^BAR0._MIN, BMIN)
|
|
CreateDwordField (^RBUF, ^BAR0._MAX, BMAX)
|
|
CreateDwordField (^RBUF, ^BAR0._LEN, BLEN)
|
|
|
|
Store (GPIO_BASE_SIZE, BLEN)
|
|
Store (GPIO_BASE_ADDRESS, BMIN)
|
|
Store (Subtract (Add (GPIO_BASE_ADDRESS,
|
|
GPIO_BASE_SIZE), 1), BMAX)
|
|
|
|
Return (RBUF)
|
|
}
|
|
|
|
Method (_STA, 0, NotSerialized)
|
|
{
|
|
Return (0xF)
|
|
}
|
|
|
|
// GWAK: Setup GPIO as ACPI GPE for Wake
|
|
// Arg0: GPIO Number
|
|
Method (GWAK, 1, NotSerialized)
|
|
{
|
|
// Local0 = GPIO Base Address
|
|
Store (And (GPBS, Not(0x1)), Local0)
|
|
|
|
// Local1 = BANK, Local2 = OFFSET
|
|
Divide (Arg0, 32, Local2, Local1)
|
|
|
|
//
|
|
// Set OWNER to ACPI
|
|
//
|
|
|
|
// Local3 = GPIOBASE + GPIO_OWN(BANK)
|
|
Store (Add (Local0, Multiply (Local1, 0x4)), Local3)
|
|
|
|
// GPIO_OWN(BANK)
|
|
OperationRegion (IOWN, SystemIO, Local3, 4)
|
|
Field (IOWN, AnyAcc, NoLock, Preserve) {
|
|
GOWN, 32,
|
|
}
|
|
|
|
// GPIO_OWN[GPIO] = 0 (ACPI)
|
|
Store (And (GOWN, Not (ShiftLeft (0x1, Local2))), GOWN)
|
|
|
|
//
|
|
// Set ROUTE to SCI
|
|
//
|
|
|
|
// Local3 = GPIOBASE + GPIO_ROUTE(BANK)
|
|
Store (Add (Add (Local0, 0x30), Multiply (Local1, 0x4)), Local3)
|
|
|
|
// GPIO_ROUTE(BANK)
|
|
OperationRegion (IROU, SystemIO, Local3, 4)
|
|
Field (IROU, AnyAcc, NoLock, Preserve) {
|
|
GROU, 32,
|
|
}
|
|
|
|
// GPIO_ROUTE[GPIO] = 0 (SCI)
|
|
Store (And (GROU, Not (ShiftLeft (0x1, Local2))), GROU)
|
|
|
|
//
|
|
// Set GPnCONFIG to GPIO|INPUT|INVERT
|
|
//
|
|
|
|
// Local3 = GPIOBASE + GPnCONFIG0(GPIO)
|
|
Store (Add (Add (Local0, 0x100), Multiply (Arg0, 0x8)), Local3)
|
|
|
|
// GPnCONFIG(GPIO)
|
|
OperationRegion (GPNC, SystemIO, Local3, 8)
|
|
Field (GPNC, AnyAcc, NoLock, Preserve) {
|
|
GMOD, 1, // MODE: 0=NATIVE 1=GPIO
|
|
, 1,
|
|
GIOS, 1, // IO_SEL: 0=OUTPUT 1=INPUT
|
|
GINV, 1, // INVERT: 0=NORMAL 1=INVERT
|
|
GLES, 1, // LxEB: 0=EDGE 1=LEVEL
|
|
, 24,
|
|
ILVL, 1, // INPUT: 0=LOW 1=HIGH
|
|
OLVL, 1, // OUTPUT: 0=LOW 1=HIGH
|
|
GPWP, 2, // PULLUP: 00=NONE 01=DOWN 10=UP 11=INVALID
|
|
ISEN, 1, // SENSE: 0=ENABLE 1=DISABLE
|
|
}
|
|
|
|
Store (0x1, GMOD) // GPIO
|
|
Store (0x1, GIOS) // INPUT
|
|
Store (0x1, GINV) // INVERT
|
|
}
|
|
}
|