vc/google/chromeos: Drop <acpi/vpd.asl>
This was used as a means to read the MAC address and dynamically return it to the ethernet driver via ACPI. The kernel team ended up going another direction so this became obsolete. Change-Id: I7065bea4b288c689b41cc969989ec6fd87c75f1f Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/49902 Reviewed-by: EricR Lai <ericr_lai@compal.corp-partner.google.com> Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
07bce4ba36
commit
dc15505795
4 changed files with 0 additions and 225 deletions
|
@ -30,9 +30,6 @@ DefinitionBlock(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* VPD support */
|
|
||||||
#include <vendorcode/google/chromeos/acpi/vpd.asl>
|
|
||||||
|
|
||||||
/* Chrome OS Embedded Controller */
|
/* Chrome OS Embedded Controller */
|
||||||
Scope (\_SB.PCI0.LPCB)
|
Scope (\_SB.PCI0.LPCB)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,11 +31,6 @@ DefinitionBlock(
|
||||||
#include <variant/acpi/mainboard.asl>
|
#include <variant/acpi/mainboard.asl>
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(CHROMEOS)
|
|
||||||
/* VPD support */
|
|
||||||
#include <vendorcode/google/chromeos/acpi/vpd.asl>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <southbridge/intel/common/acpi/sleepstates.asl>
|
#include <southbridge/intel/common/acpi/sleepstates.asl>
|
||||||
|
|
||||||
/* Chrome OS Embedded Controller */
|
/* Chrome OS Embedded Controller */
|
||||||
|
|
|
@ -31,11 +31,6 @@ DefinitionBlock(
|
||||||
#include <variant/acpi/mainboard.asl>
|
#include <variant/acpi/mainboard.asl>
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(CHROMEOS)
|
|
||||||
/* VPD support */
|
|
||||||
#include <vendorcode/google/chromeos/acpi/vpd.asl>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <southbridge/intel/common/acpi/sleepstates.asl>
|
#include <southbridge/intel/common/acpi/sleepstates.asl>
|
||||||
|
|
||||||
#if CONFIG(EC_GOOGLE_WILCO)
|
#if CONFIG(EC_GOOGLE_WILCO)
|
||||||
|
|
|
@ -1,212 +0,0 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This device provides an ACPI interface to read VPD keys from either
|
|
||||||
* the RO_VPD or RW_VPD region. For example:
|
|
||||||
*
|
|
||||||
* VPD.VPDF ("RO", "ro_key_name")
|
|
||||||
* VPD.VPDF ("RW", "rw_key_name")
|
|
||||||
*/
|
|
||||||
|
|
||||||
Device (VPD)
|
|
||||||
{
|
|
||||||
Name (_HID, "GOOG000F")
|
|
||||||
Name (_UID, 1)
|
|
||||||
Name (_STA, 0xf)
|
|
||||||
|
|
||||||
Name (VOFS, 0x600) /* Start of VPD header in VPD region */
|
|
||||||
Name (VIHL, 0x10) /* Length of VPD info header */
|
|
||||||
Name (VPET, 0x00) /* VPD Entry Type: Terminator */
|
|
||||||
Name (VPES, 0x01) /* VPD Entry Type: String */
|
|
||||||
Name (VPEI, 0xfe) /* VPD Entry Type: Info (header) */
|
|
||||||
Name (MORE, 0x80) /* Bit to indicate more length bytes */
|
|
||||||
|
|
||||||
Name (VPTR, Zero) /* Pointer to current byte in VPD for parser */
|
|
||||||
Name (VEND, Zero) /* End of VPD region */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* VLOC() - Return location and length of VPD region in memory.
|
|
||||||
* These values must be initialized in GNVS by coreboot.
|
|
||||||
*
|
|
||||||
* Returns: Package indicating start and length of region:
|
|
||||||
* [0] = Address of the start of VPD region.
|
|
||||||
* [1] = Length of the VPD region.
|
|
||||||
*/
|
|
||||||
Method (VLOC, 1, Serialized)
|
|
||||||
{
|
|
||||||
Switch (ToString (Arg0))
|
|
||||||
{
|
|
||||||
Case ("RO") {
|
|
||||||
Return (Package () { \ROVP, \ROVL })
|
|
||||||
}
|
|
||||||
Case ("RW") {
|
|
||||||
Return (Package () { \RWVP, \RWVL })
|
|
||||||
}
|
|
||||||
Default {
|
|
||||||
Return (Package () { Zero, Zero })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* VVPD() - Verify VPD info header.
|
|
||||||
* Arg0: VPD partition base address.
|
|
||||||
* Returns: VPD length or Zero if VPD header is not valid.
|
|
||||||
*/
|
|
||||||
Method (VVPD, 1, Serialized)
|
|
||||||
{
|
|
||||||
Local0 = Arg0 + ^VOFS
|
|
||||||
|
|
||||||
OperationRegion (VPDH, SystemMemory, Local0, ^VIHL)
|
|
||||||
Field (VPDH, DWordAcc, NoLock, Preserve)
|
|
||||||
{
|
|
||||||
TYPE, 8, /* VPD Header Tag (=0xfe) */
|
|
||||||
KLEN, 8, /* Key length (=9) */
|
|
||||||
IVER, 8, /* Info version (=1) */
|
|
||||||
SIGN, 64, /* Signature (="gVpdInfo") */
|
|
||||||
VLEN, 8, /* Value length (=4) */
|
|
||||||
SIZE, 32, /* VPD length */
|
|
||||||
}
|
|
||||||
|
|
||||||
If (TYPE != ^VPEI) {
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
If (KLEN != 9) {
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
If (IVER != 1) {
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
If (ToString (SIGN) != "gVpdInfo") {
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
If (VLEN != 4) {
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
|
|
||||||
Return (SIZE)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return next byte from VPD at pointer VPTR, and increment VPTR. */
|
|
||||||
Method (VPRB, 0, Serialized)
|
|
||||||
{
|
|
||||||
If (^VPTR > ^VEND) {
|
|
||||||
Printf ("Access beyond end of VPD region")
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
|
|
||||||
Local0 = ^VPTR
|
|
||||||
OperationRegion (VPDR, SystemMemory, Local0, One)
|
|
||||||
Field (VPDR, DWordAcc, NoLock, Preserve)
|
|
||||||
{
|
|
||||||
BYTE, 8,
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Increment address pointer */
|
|
||||||
^VPTR++
|
|
||||||
Return (BYTE)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Extract and return next string from VPD. */
|
|
||||||
Method (VPDE, 0, Serialized)
|
|
||||||
{
|
|
||||||
Local0 = One /* Indicates if there are more bytes */
|
|
||||||
Local1 = Zero /* Length */
|
|
||||||
|
|
||||||
/* Decode the string length */
|
|
||||||
While (Local0) {
|
|
||||||
/* Read the next byte at indicated address */
|
|
||||||
Local2 = ^VPRB ()
|
|
||||||
|
|
||||||
/* Update the more bit from the byte in Local2 */
|
|
||||||
Local0 = Local2 >> 7
|
|
||||||
|
|
||||||
/* Save the length bits from Local2 */
|
|
||||||
Local1 <<= 7
|
|
||||||
Local1 |= Local2 & 0x7f
|
|
||||||
}
|
|
||||||
If (Local1 == Zero) {
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Extract the string */
|
|
||||||
Local3 = Zero
|
|
||||||
Local4 = ""
|
|
||||||
While (Local3 < Local1) {
|
|
||||||
Concatenate (Local4, ToString (^VPRB ()), Local4)
|
|
||||||
Local3++
|
|
||||||
}
|
|
||||||
|
|
||||||
Return (Local4)
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* VPDS() - Find next VPD key and value.
|
|
||||||
* Returns: Package containing key and value:
|
|
||||||
* [0] = VPD key string
|
|
||||||
* [1] = VPD value string
|
|
||||||
*/
|
|
||||||
Method (VPDS, 0, Serialized)
|
|
||||||
{
|
|
||||||
Name (VPKV, Package () { "", "" })
|
|
||||||
|
|
||||||
/* Read the VPD type and ensure it is a string */
|
|
||||||
If (^VPRB () != ^VPES) {
|
|
||||||
Printf ("VPDS: Type is not a string")
|
|
||||||
Return (VPKV)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Extract the key string and value */
|
|
||||||
VPKV[0] = VPDE ()
|
|
||||||
VPKV[1] = VPDE ()
|
|
||||||
|
|
||||||
Return (VPKV)
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* VPDF() - Find VPD key with matching name.
|
|
||||||
* Arg0: VPD Partition, either "RO" or "RW".
|
|
||||||
* Arg1: VPD key name to search for.
|
|
||||||
* Returns: VPD string corresponding to VPD key, or Zero if not found.
|
|
||||||
*/
|
|
||||||
Method (VPDF, 2, Serialized)
|
|
||||||
{
|
|
||||||
Local0 = VLOC (Arg0)
|
|
||||||
|
|
||||||
/* Start of VPD region */
|
|
||||||
^VPTR = DerefOf (Local0[0])
|
|
||||||
|
|
||||||
/* End address of VPD region */
|
|
||||||
^VEND = ^VPTR + DerefOf (Local0[1])
|
|
||||||
|
|
||||||
If (^VPTR == Zero || ^VEND == Zero) {
|
|
||||||
Printf ("Unable to find VPD region")
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Verify VPD info header and save size */
|
|
||||||
Local0 = VVPD (^VPTR)
|
|
||||||
If (Local0 == Zero) {
|
|
||||||
Printf ("VPD region %o did not verify", Arg0)
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set VPD pointer to start of VPD entries */
|
|
||||||
^VPTR += ^VOFS + ^VIHL
|
|
||||||
|
|
||||||
/* Search through VPD entries until key is found */
|
|
||||||
Local1 = ""
|
|
||||||
While (Local1 != ToString (Arg1)) {
|
|
||||||
Local2 = VPDS ()
|
|
||||||
Local1 = DerefOf (Local2[0])
|
|
||||||
If (Local1 == "") {
|
|
||||||
Printf ("VPD KEY %o not found", Arg1)
|
|
||||||
Return (Zero)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Local3 = DerefOf (Local2[1])
|
|
||||||
|
|
||||||
Printf ("Found VPD KEY %o = %o", Local1, Local3)
|
|
||||||
Return (Local3)
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue