Commit Graph

25370 Commits

Author SHA1 Message Date
Matt DeVillier
4f60b6a439 BdsPlatform: generate SMM events to put eMMC/SD in proper mode
For Baytrail devices, coreboot leaves the eMMC/SD in PCI mode to enable
detection by Tianocore, so put into ACPI mode before OS boots.
Fixes booting on Baytrail devices.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2020-03-01 13:25:59 -06:00
MrChromebox
64f7b0fdba Merge pull request #8 from PatrickRudolph/fix_smm_detect
MdeModulePkg/Universal/Variable/EmuRuntimeDxe: Check SMM store return…
2020-01-08 16:10:14 -06:00
Patrick Rudolph
359e78336d MdeModulePkg/Universal/Variable/EmuRuntimeDxe: Check SMM store return codes
Check SMM store return code and return on error.

Fixes significant boot delay in case no SMM store is present.
This can happend quite often if the tianocore payload is build standalone
and patched into a coreboot ROM.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2020-01-08 13:22:57 +01:00
Matt DeVillier
81f6f9c8e8 Frontpage: add entries for Stoneyridge Chromebooks
Add entries for Aleena, Barla, Careena, Kasumi, Liara.
Remove unused entry for Purism Librem 13v2 since not a
Google device.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-12-28 12:44:08 -06:00
Matt DeVillier
b98c44e412 MdeModulePkg/Usb/Keyboard: add SetIdle quirk handler
Some USB keyboards, like the Aspeed BMC HID keyboard,
require the SetIdle command to be issued before interrupt
transfers can be enabled. Add a quirk handler so any similar
devices can make use of same function by the addition of the
USB vendor/device IDs.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-12-17 22:57:51 -06:00
Matt DeVillier
f1d5f1091d MdeModulePkg/Usb/Keyboard.c: don't request protocol before setting
No need to check the interface protocol then conditionally setting,
just set it to BOOT_PROTOCOL and check for error.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-12-17 22:56:30 -06:00
Matt DeVillier
2719881a54 MdeModulePkg/Usb/Keyboard.c: remove Get/SetConfig calls
SetConfig is already called during device enumeration,
no need to do it again here.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-12-17 22:50:56 -06:00
Jeremy Soller
115ed8d16d Prioritize Udf and ElTorito partition types over Mbr to fix ISO boots 2019-12-16 16:24:41 -06:00
Matt DeVillier
8681de13a9 Frontpage: add entry for CAROLINE
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-12-13 16:00:50 -06:00
Matt DeVillier
1f726fc0cf MdeModulePkg/Usb/UsbMouse: Fix endpoint selection
The endpoint selected by the driver needs to not
only be an interrupt type, but have direction IN
as required to set up an asynchronous interrupt transfer.

Currently, the driver assumes that the first INT endpoint
will be of type IN, but that is not true of all devices,
and will silently fail on devices which have the OUT endpoint
before the IN. Adjust the endpoint selection loop to explictly
check for direction IN.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-12-12 13:40:46 -06:00
Matt DeVillier
6943792307 MdeModulePkg/Usb/EfiKey: Fix endpoint selection
The endpoint selected by the driver needs to not
only be an interrupt type, but have direction IN
as required to set up an asynchronous interrupt transfer.

Currently, the driver assumes that the first INT endpoint
will be of type IN, but that is not true of all devices,
and will silently fail on devices which have the OUT endpoint
before the IN. Adjust the endpoint selection loop to explictly
check for direction IN.

Test: detachable keyboard on Google Pixel Slate now works.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-12-12 13:40:35 -06:00
Matt DeVillier
b8fbf69c16 Frontpage: add entries for some more KBL Chromebooks
Add entries for ATLAS, BARD, EKKO, EVE, NAUTILUS, NOCTURNE,
RAMMUS, SONA, SYNDRA

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019.12.01
2019-12-01 10:43:24 -06:00
Matt DeVillier
ba13872223 Frontpage: fix max size used for GetDeviceNameFromProduct()
Fixes some device name strings not being copied due to
exceeding max size (but not size of buffer passed in)

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-11-25 00:27:53 -06:00
Jeremy Soller
eb1e7a0284 MdeModulePkg/NvmExpressDxe: Simplify NvmExpress name
Signed-off-by: Jeremy Soller <jeremy@system76.com>
2019-11-25 00:27:53 -06:00
Matt DeVillier
eba6c7c6ce BdsBoot: use better device descriptions
Query boot devices and obtain make/model info if
available. Prefix description with device type
for better identification.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-11-25 00:27:53 -06:00
Matt DeVillier
a5f556c37b GenericBdsLib: add BmBootDescription from UefiBootManagerLib
Copy BmBootDescription from MdeModulePkg/UefiBootManagerLib,
removing appending of serial # since it makes descriptions
unweildy.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-11-25 00:27:53 -06:00
Matt DeVillier
e9023ae655 IntelFrameworkModulePkg: rework Frontpage layout
- center device name; left-justify other info
- remove Language and Device Manager options
- rename 'Continue' to 'Default Boot'

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-11-25 00:27:53 -06:00
Matt DeVillier
cdd43b2533 IntelFrameworkModulePkg: rename/rework Boot Maintenance Manager
With Boot Manager now renamed, rename BMM as well.
Also clean up and simplify menu to eliminate unused/non-
functional items.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-11-25 00:27:53 -06:00
Matt DeVillier
d1a6917813 IntelFrameworkModulePkg: rename Boot Manager to Boot Menu
'Boot Menu' is much more intuitive for users

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-11-25 00:27:53 -06:00
Jeremy Soller
81e096bda1 Boot Maintenance Mrg: add missing 'save changes' option 2019-11-25 00:27:53 -06:00
Laszlo Ersek
42f99de779 MdeModulePkg: fix UninstallMultipleProtocolInterfaces() calls
Unlike the InstallMultipleProtocolInterfaces() boot service, which takes
an (EFI_HANDLE*) as first parameter, the
UninstallMultipleProtocolInterfaces() boot service takes an EFI_HANDLE as
first parameter.

These are actual bugs. They must have remained hidden until now because
they are on error paths. Fix the UninstallMultipleProtocolInterfaces()
calls.

Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2019-11-25 00:27:53 -06:00
Marcin Wojtas
a03327088a MdeModulePkg/UsbBusDxe: Return error when the device is not present
Until now, during the USB device enumeration when its PortState
USB_PORT_STAT_CONNECTION bit was not set, the stack was not informed
that the device is not present. Fix that by returning appropriate
error code.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2019-11-25 00:27:53 -06:00
Ashish Singhal
4ba839c5c8 MdeModulePkg/XhciPei: Fix Aligned Page Allocation
Add support for allocating aligned pages at an alignment higher
than 4K. The new function allocated memory taking into account
the padding required and then frees up unused pages before mapping
it.

Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2019-11-25 00:27:53 -06:00
Ashish Singhal
6bd9d60b41 MdeModulePkg/XhciDxe: Fix Aligned Page Allocation
While allocating pages aligned at an alignment higher than
4K, allocate memory taking into consideration the padding
required for that alignment. The calls to free pages takes
care of this already.

Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2019-11-25 00:27:53 -06:00
Matt DeVillier
964f80253a Revert "UsbMassBoot: treat all USB drives as removable"
This reverts commit de4592d59e16f91b1cf480478572533be6cc5f1b.
2019-11-25 00:27:53 -06:00
Patrick Rudolph
47794944e6 IntelFrameworkModulePkg/Universal/BdsDxe: Fix assertion
Fix an assertion that prevented the boot menu to show up when the coreboot
string is very long.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2019-11-22 14:08:20 -06:00
Matt DeVillier
8f008298cc Frontpage: add entry for AMD Chromebooks (grunt)
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-06-23 18:18:19 -05:00
Matt DeVillier
783f22ecc3 Frontpage: add entries for NAMI variants and SORAKA
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-06-23 18:18:19 -05:00
Star Zeng
81a93fb3a9 UefiCpuPkg/CpuCommonFeaturesLib: Aesni.c uses BIT0 and BIT1 reversedly
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1621

According to Intel SDM as below, the BIT0 should be treated as
lock bit, and BIT1 should be treated as disable(1)/enable(0) bit.

"11b: AES instructions are not available until next
RESET.
Otherwise, AES instructions are available.
If the configuration is not 01b, AES
instructions can be mis-configured if a privileged agent
unintentionally writes 11b"

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Chandana Kumar <chandana.c.kumar@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
2019-06-23 18:18:19 -05:00
James Ye
30dc65997f AddBGRT: match BGRT with boot logo postition
Don't hard-code the logo size, and use the Microsoft-recommended logo position.

Signed-off-by: James Ye <jye836@gmail.com>
2019-05-13 11:54:26 +10:00
James Ye
93f8c4a6d5 BdsConsole: use recommended boot logo position
Microsoft user experience specifications recommend the boot logo is drawn 38.2%
from the top of the screen. This is also where operating systems like Fedora
expect the logo to be drawn.

Signed-off-by: James Ye <jye836@gmail.com>
2019-05-13 11:40:56 +10:00
Matt DeVillier
51be9d0425 BdsConsole: fix up boot logo positioning
No reason to hardcode the image size into the
positon calculations. Keep shift to upper 2/3
of screen.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-21 20:21:18 -06:00
Matt DeVillier
31a4e13c19 BmpSupportLib: fix BMP validation
BMP files by tools other than MS paint can have a
variable number of padding bytes, which results in
the DataSize being less than (ImageSize - HeaderSize).
Fix the check to be less stringent.

Test: use BMP created by/saved by Photoshop

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-21 20:19:21 -06:00
Matt DeVillier
9d32ca34d2 MemoryTest: remove unused variable StrTotalMemory
fixes compiler warning->error

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-21 20:19:21 -06:00
Matt DeVillier
0f9b597012 Logo: use slightly larger logo
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
19e12d66fe BdsPlatform: increase timeout to 2s
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
9332332724 MemoryTest: replace test result with boot menu prompt
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
239e19e391 BdsBoot: add boot menu text for eMMC/SD, NVMe devices
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
c8a3cdb675 CorebootModulePkg: remove unused/deprecated SATA driver
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
40147bbf14 CorebootPayloadPkg: switch to MdeModulePkg SATA driver
CorebootModulePkg version is buggy and unmaintained, switching
to MdeModulePkg version fixes channel count / drive detection
issue on some KBL Chromeboxes

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
cf2bde63a1 Revert "MdeModulePkg/SdMmcPciHcDxe: Execute card detect only for RemovableSlot"
This reverts commit 4cd9d7fc6f.

card detect causes hangs on many devices with a directly-attached SD card reader
2019-02-20 17:29:26 -06:00
Matt DeVillier
f6f2ff4904 WIP: hook into emuvariable to sync data with coreboot smm store
changed: buffer size from 64k to 256k

Change-Id: I7f443b9f36612f79787e1b4b1075176a91107686
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
a26aad44d1 Frontpage: add device name for Lars, Cave, Fizz, others
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:26 -06:00
Alex James
3596140a69 CorebootPayloadPkg: Add SafeIntLib and BmpSupportLib to DSC files
Commit 2460ec2a8f added the new libraries
to DuetPkg to fix building. Do the same for CorebootPayloadPkg.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Alex James <theracermaster@gmail.com>
2019-02-20 17:29:26 -06:00
Matt DeVillier
9b7ce3b9a1 Frontpage: use SMBIOS data directly for non-Google devices
Since board names match the device, just print manufacturer
and device name without translation.

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:25 -06:00
ReddestDream
147c02d66e Disable Page Table Protection.
Effectively disables the PT protection created by: 2ac1730bf2, 147fd35c3e, and 41b4600c30.

This fixes macOS boot issues.
2019-02-20 17:29:25 -06:00
Matt DeVillier
768fe7365f EmmcDevice: fix detection on some models
From stepan:
"This enables eMMC booting when starting edk2
from depthcharge. Previously the driver would
bail out with an error while setting the eMMC
frequency, because depthcharge has already set
up the controller."

Also fixed detection on google/lars w/Core-i5
with upstream coreboot + Tianocore payload
2019-02-20 17:29:25 -06:00
ReddestDream
0f6978e314 CbSupportPei: prevent lower coreboot table from being overwritten
Exclude the bottom 4kb from being included in System Memory HoB

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
2019-02-20 17:29:25 -06:00
Matt DeVillier
0a8abc3c4d FSDrivers: update drivers from rEFInd 0.11.2 2019-02-20 17:29:25 -06:00
Matt DeVillier
54b26ae48f CorebootPayloadPkg: add NVMe support 2019-02-14 15:44:32 -06:00