Meera Ravindranath has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/56168 )
Change subject: drivers/intel/gma: Define structure for Opregion version ......................................................................
drivers/intel/gma: Define structure for Opregion version
Align Opregion version fields to spec.
BUG=b:190019970 BRANCH=None
Signed-off-by: Meera Ravindranath meera.ravindranath@intel.com Change-Id: I93a9f2df186002a4e38caa910f867bce0b97ac2b --- M src/drivers/intel/gma/opregion.c M src/drivers/intel/gma/opregion.h 2 files changed, 8 insertions(+), 23 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/68/56168/1
diff --git a/src/drivers/intel/gma/opregion.c b/src/drivers/intel/gma/opregion.c index 799c7fd..0815500 100644 --- a/src/drivers/intel/gma/opregion.c +++ b/src/drivers/intel/gma/opregion.c @@ -336,26 +336,6 @@ /* 8kb */ opregion->header.size = sizeof(igd_opregion_t) / 1024;
- /* - * Left-shift version field to accommodate Intel Windows driver quirk - * when not using a VBIOS. - * Required for Legacy boot + NGI, UEFI + NGI, and UEFI + GOP driver. - * - * Tested on: (platform, GPU, windows driver version) - * samsung/stumpy (SNB, GT2, 9.17.10.4459) - * google/link (IVB, GT2, 15.33.4653) - * google/wolf (HSW, GT1, 15.40.36.4703) - * google/panther (HSW, GT2, 15.40.36.4703) - * google/rikku (BDW, GT1, 15.40.36.4703) - * google/lulu (BDW, GT2, 15.40.36.4703) - * google/chell (SKL-Y, GT2, 15.45.21.4821) - * google/sentry (SKL-U, GT1, 15.45.21.4821) - * purism/librem13v2 (SKL-U, GT2, 15.45.21.4821) - * - * No adverse effects when using VBIOS or booting Linux. - */ - opregion->header.version = IGD_OPREGION_VERSION << 24; - // FIXME We just assume we're mobile for now opregion->header.mailboxes = MAILBOXES_MOBILE;
diff --git a/src/drivers/intel/gma/opregion.h b/src/drivers/intel/gma/opregion.h index 879017b..4288e06 100644 --- a/src/drivers/intel/gma/opregion.h +++ b/src/drivers/intel/gma/opregion.h @@ -17,7 +17,12 @@ typedef struct { u8 signature[16]; /* Offset 0 OpRegion signature */ u32 size; /* Offset 16 OpRegion size */ - u32 version; /* Offset 20 OpRegion structure version */ + struct { + u8 rsvd; + u8 revision; + u8 minor; + u8 major; + } __packed over; /* Offset 20 OpRegion version structure */ u8 sbios_version[32]; /* Offset 24 System BIOS build version */ u8 vbios_version[16]; /* Offset 56 Video BIOS build version */ u8 driver_version[16]; /* Offset 72 Graphic drvr build version */ @@ -143,8 +148,8 @@ u32 fdss; /* Offset 178 FFS Display Size */ u32 stat; /* Offset 182 State Indicator */ u64 rvda; /* Offset 186 (Igd opregion offset 0x3BAh) - * Physical address of Raw VBT data - */ + * Physical (2.0) or relative from opregion (2.1+) + * address of raw VBT data. */ u32 rvds; /* Offset 194 (Igd opregion offset 0x3C2h) * Size of Raw VBT data */