mrchromebox / firmware Goto Github PK
View Code? Open in Web Editor NEWIssue tracker for firmware issues
Issue tracker for firmware issues
After sleep with graphics acceleration working, video playback breaks on OS X, resulting in hangs. QE/CI appears to continue to function normally otherwise. This seems to affect all BDW Chromebooks once graphics acceleration is working regardless of igd configuration. As of yet no precise cause has been determined. At this point, a firmware issue appears highly plausible.
Connected to this may be the need to sleep/wake some Broadwell Chromebooks in order to get video out on OS X when graphics acceleration is enabled. This does not affect the C740, however, limiting my ability to test this issue. The video playback issue reported here does, however, also affect the C740.
The DVMT (Dynamic Video Memory Technology) Preallocated Memory was already increased to 96 MB on BDW to allow the Broadwell Graphics Framebuffer kext on OS X to work without patching. This change also appeared to bring performance improvements on other OSes and might be good to bring to HSW, where it is not needed for OS X graphics. The HSW mrc.bin seems to be very different from the BDW one tho, so we will need more information, presumably from the Coreboot IRC, to figure out how to patch it.
I thought it was fixed but, unfortunately, it's not. The Chromebook (Falco) still boot sometimes when you plug the power adapter when the Chromebook is completely off.
I installed the RW_Legacy firmware on a Toshiba Chromebook 2 2014 (CB030 -B, Baytrail, SWANKY) and after that the hdmi port stopped working both in Chrome and Gallium OS. Hdmi worked fine before the firmware update but nothing now on either OS.
Stu
Duet is currently lacking a built-in UEFI shell and is missing filesystem drivers other than FAT32, NTFS, and EXT4 (most notably, HFS+ is missing). A UEFI shell would give users another way to get more information about their systems and would also provide a means of accessing filesystems if the system becomes unbootable (part of why including more drivers is important). Additionally, it would provide another method of finding and starting EFI binaries, especially bootloaders that are not automatically detected. Thanks!
HDMI Audio is broken on HSW/BDW on both Windows and OS X. On Windows, CS has found a workaround using a third party program to get the EDID data and then use that to start HDMI audio. This has to be done on a per-display basis.
Thanks!
For some reason, the Intel Backlight kext is resetting the backlight to 0 on the internal display on OS X on HSW. This has been noted by myself, CoolStar, and this person on /r/chrultrabook:
I suspect it might be some issue with the OpRegion backlight. HSW can't change the brightness w/o this kext but BDW can.
Boot Time could be reduced if a BGRT Table were added and if we could hook into the Recovery Mode Key System to open firmware settings. Would shorten and beautify the startup process as well as provide an intuitive way to access firmware settings.
Display Brightness is broken in Linux on BDW due to the addition of acpi_video0 to fix brightness controls on Windows. This issue is further described here:
GalliumOS/galliumos-distro#148
The best current workaround is to create the file /usr/share/X11/xorg.conf.d/20-intel.conf with the following content:
Section "Device"
Identifier "card0"
Driver "intel"
Option "Backlight" "intel_backlight"
BusID "PCI:0:2:0"
EndSection
As described here, this issue can affect other PC laptops as well.
https://ubuntuforums.org/showthread.php?t=2192471&p=12868623#post12868623
Finally, this does not affect OS X. Brightness controls work properly on OS X on BDW with the current firmwares. Thanks!
After the removal of the VBIOS, HDMI no longer works before OS load on BDW (C740 tested).
Display notes connection but no signal.
Warm reboot or hibernation from a working OS seems to fix this.
After the success with increasing the DVMT to 96 MB on HSW and BDW, we might want to try increasing it on IVB/SNB as well. IVB and SNB both use native RAM init, however, so it's been unclear how we might increase increase these values. They are currently 32 MB on both IVB and SNB (checked in dmesg with drm.debug=0x06, GTT Stolen Size).
I have an Acer C710 (parrot) which you now support, in part at least I think.
Just a couple of questions to clarify what I'm interpreting on the #bootmodes page on Mr.Chromebox.
Under: SeaBIOS: The Legacy Boot Payload
Note: If only one boot device is available -- either no USB/SD devices are attached, or they are not properly detected/initialized by SeaBIOS -- then the boot menu prompt ("Press ESC for boot menu") will not be shown, and the internal storage will be booted. In the case where ChromeOS is still installed/is the only OS installed, this can result in the screen showing text indicating a kernel panic, or simply a blank screen. If this happens, simply reboot and try using a different USB/SD device to install/boot from.
Does this mean that you can no longer boot ChromeOS at all on the internal disk, only external OSes?
Under: UEFI and the Future
As of 2016-09-06, the Firmware Utility Script now offers Full ROMs offering either Legacy Boot or UEFI Boot for all Haswell and Broadwell devices. UEFI (Unified Extensible Firmware Interface) is the successor to Legacy BIOS and is the firmware type used by virtually all Windows PC's (and Macs) shipped in the last 5+ years.
Can I still boot ChromeOS on the internal drive if I install this BIOS?
I would love to have the ability to run other OSes, both externally and in a dual-boot scenario but I don't want to do so at the expense of running ChromeOS natively.
Thanx for all of your efforts, this is cool stuff,
-DennisL
Now that we have OpRegion, it should be possible to actually fix _BCM, allowing ACPI backlight control to finally work. The broken _BCM method affects HSW, BDW, and BYT. Thx.
It is a strange issue I must say.
pacman -S --noconfirm gptfdisk syslinux
syslinux-install_update -iam
Card is recognized in the boot menu. Though when selecting SD card booting hangs on "Booting from Hard Drive".
There're several strange things:
PS: Is there any way to debug what is going on during this boot hang?
Now that we have the IGD OpRegion implemented, we can start working on transitioning over from DuetPkg to corebootPayloadPkg and getting rid of SeaBIOS altogether!
As it stands currently, without NVRAM support, systems running these firmwares are unable to boot some standard Linux distros after running the installer. This is because these distros do not install EFI GRUB to /EFI/BOOT/BOOTX64.EFI, the only place this firmware looks by default for a bootloader. Some distros (including Ubuntu) do this to avoid issues with Windows potentially overwriting that location, but it means that manual fixes are required to get these distro booting. :/
There seem to be two possible approaches to fixing this other than implementing some form of NVRAM: 1. Add additional path finding to Duet so that it can find Linux (and other) bootloaders. 2. Provide a Boot Management Utility, such as rEFInd in the firmware so that all installed Bootloaders will be automatically detected and displayed in simple GUI for users. Thanks!
Edit:
Link to my fix-it script for reference:
https://www.dropbox.com/s/cay7ni1cj3ec88l/UEFIFirmwareLinuxFixScript.sh?dl=0
This is to be run from a Linux Live USB after a Linux distro with this issue is installed to the hard drive.
Windows Update does not automatically find the driver for Realtek ALC283 audio, which is used on many Chromebooks. CoolStar has discussed changing the audio device id to one Windows Update would automatically recognize to resolve this. Many users on /r/chrultrabook are confused by Realtek's horrible website and the 32 vs. 64-bit drivers. Making this driver install automatically would simplify the setup process. Thanks! ^_^
Tryin go run a headless Ubuntu server on a Dell Chromebox 3010 (i7). I want to be able to reboot the server remotely and have it automatically boot into Ubuntu.
Issues I am having:
The Windows 8/8.1 installer does not work on Chromebook Internal Displays on the UEFI firmwares. All you get is a black screen. This appears to be due to a conflict between the Duet resolution setting (1366x768) and the VBIOS max VESA setting (1024x7680). Changing Duet to 1024x768 resolves the issue at the cost of forcing other things that do properly determine the resolution to use a lower than optimum resolution and look horrible. This is unlikely to be fixable unless a way to initialize the display before an OS loads without using the VBIOS is found.
Current workaround: Have users who want to install Windows 8.1 use an HDMI external display for the first step of the installation. After the actual installation to the disk, after which Windows requests a reboot, the internal display seems to work for the remainder of the install process. There is another possible workaround using rEFInd, which depends on users having a firmware with the 1040 VBIOS on HSW. Have rEFInd set the resolution to 1024x768 and then use it to start the Windows 8/8.1 installer. Because the resolution is properly set, the Windows 8/8.1 installer will appear on the internal display.
Edit: Issue limited to HSW and found to be due to the VBIOS. Effective workaround using rEFInd and default booting has been found. Issue closed for now as it is redundant with fixing Opregion.
If Opregion could be fixed, all need for the VBIOS would eliminated. Currently, the VBIOS is only needed by the Intel Driver on Windows. If Opregion could be properly implemented, there would no longer be a need for the VBIOS. This might allow us to move back to Coreboot TianoCore Payload instead of Duet since there would be no reason to keep SeaBIOS around to run the VBIOS.
Recent changes in the firmware broke the 3.5mm Audio jack on C740 (Auron_Paine) on Windows. The jack continues to function properly on Linux, and speakers are fine everywhere. It's odd. Sometimes the Windows driver software detects that something has been plugged into the jack (alert pops up), but sound is never switched to the device connected nor is there a way to switch it manually. :/
I suspect that it was this change here for Auron that broke the jack. I apologize for not testing more thoroughly before:
Hello,
As I say in the title, when the chromebook is in standby and you connect a usb device, the usb device light up whereas it should not.
Obviously not a very important bug but I just wanted to let you know :)
Thanks !
The Legacy SeaBIOS ROMs are buggy, untested, and unnecessary. They keep Linux users on out-of date firmwares, and they perpetuate the idea among Linux users that the UEFI firmwares are the "Windows" firmwares when this is not true. Linux works fine on the UEFI firmwares. The only limitation is that Debian/Ubuntu-based distros need a workaround after installation:
See here for the latest SeaBIOS ROM issues:
I have written a script to help Debian/Ubuntu-based distro users fix booting, and I am more than happy to write various guides to work around the installation issues on the UEFI firmwares. Since we have the firmware UEFI Shell in place now, it is actually possible to fix the installation issues from that shell by moving and creating the correct files and folders. Having Legacy SeaBIOS ROMs just to facilitate Linux installation is excessive and unwarranted. On Books, they have no purpose that justifies their existence. On Boxes, there is some purpose because of the issues with headless operation and detection failures on some displays, but even then they should not be generally available and we should actively be investigating fixes for the UEFI firmwares. Thx.
Neither HDMI nor VGA work on IVB/SNB C710 before OS load. They have never worked AFAIK on any ROM, nor do they work on Stock firmware for ChromeOS loads. They also do not work if you restart from the BMM or from an OS in which they do work. This is in contrast to the issue noted on the C740:
I am unsure if this is a very old firmware issue or simply a hardware limitation.
Maybe if we gutted the SNB gma.c, that would allow us to investigate this issue further . . .
Not 100% sure if this is an issue firmware can resolve or just something horribly misconfigured, but the ALC283 microphone is broken on OS X on both HSW/BDW and as of yet no solution has been found using any hackintosh drivers for it. The microphone is detected, but it cannot pick up any sound. :/
Edit: This seems to not affect Lulu. Only Auron/Peppy are confirmed broken so far.
The DVMT (graphics pre-allocated memory) is currently 64 MB on BYT. Increase to 96 MB to match SNB/IVB/HSW/BDW/SKL. This should be the last one we need to ask about since BSW will use the FSP. Thx.
ChromeOS device HWIDs will needed to be added in the firmware for proper ChromeOS support. Along with this, Auto-updating and Channel Switching still need to be fixed for UEFI booting.
Peppy and all other HSW books should use the Auron BDW HWID due to changes in their I2C.
HSW boxes should use the HWID of some BDW box that will get Android app support.
BDW books and boxes should use their respective native Stock firmware HWIDs.
IVB/SNB probably should use their native HWIDs for the hardware support.
More testing needed.
In Windows on HSW and BDW, two Unknown Devices, ACPI\VEN_CORE&DEV_0000 and ACPI\VEN_GOOG&DEV_0004, appear under Other Devices. These should be hidden to prevent user confusion. Thanks!
Since the move the CorebootPayloadPkg, headless operation of Chromebooks and Chromeboxes has been broken. Some display must be connected at startup in order for the firmware to start properly. Something we should resolve, as it is a regression for Chromeboxes . . .
Upon resume from S3, OpRegion is not restored properly, which breaks the Intel Driver in Windows if the driver is unloaded and/or updated following sleep/wake. Discovered by CoolStar and confirmed by me. Affects all supported devices currently using OpRegion. Thx.
This has been noted by others (ask Reddest) but never before on a wall-powered hub. Well, I found one. This one specifically: http://www.newegg.com/Product/Product.aspx?Item=0J2-008P-00003
It does not ship with a wallwart but I have plenty of 5V 2A power supplies.
Oddly, it started working at some point in the process of trying to unstick the HDMI which had quit when I flashed it.
All HDMI Audio on BDW is speed up and/or pitch-shifted ("chipmunked") in Windows. Linux is unaffected. OS X is TBD.
Bitstream Audio Passthrough (i.e, DD/DTS, etc) also doesn't work on BDW, while it does work on HSW. This is likely related to what is causing the Chipmunk effect.
Currently, this appears to be an issue with the HDA verbs. Further investigation is needed.
If HSW is started up running OS X with HDMI connected, graphics on HDMI display are corrupted until HDMI is unplugged and replugged. Internal display is fine. Doesn't occur on BDW. Tested with full graphics acceleration on both platforms. Likely some sort of framebuffer inheritance issue. Given the current issues with HDMI before OS load on BDW, that may be why the issue cannot be reproduced there:
Following Hibernation, battery drains excessively due to some issue with the power state. This affects all OSes. This appears to be related to the fact that the S4 power state is not really supported, only S3 and S5. Perhaps S4 could be fixed as Coreboot reports that it is supported. Otherwise, perhaps S4 should be disabled in Coreboot to avoid confusion. Thanks!
Bootup time has increased on SNB and BDW with these new firmwares (11/17). Appears to be because the incorrect delay in the edk2 payload was used. IVB and HSW are unaffected.
I have an EC firmware update ready and tested on HSW, BDW, and BYT that makes the keyboard on Chromebooks properly PS/2 compliant. This allows the stock Windows PS/2 keyboard driver along with any other keyboard drivers that are not aware of the . . . peculiarities (read: noncompliance) . . . of ChromeEC keyboards to work properly. With this, the keyboard will now work in the Windows installer and with basic functionality in Windows itself with only the stock driver (CoolStar's driver is needed for media key support).
I also have DSDT changes to facilitate stock keyboard functionality as well as support for CS's driver for SNB/IVB/HSW/BDW/BYT. The DSDT changes are fine w/o the EC firmware update, but HSW/BDW/BYT will not be able to use the stock Windows keyboard driver w/o my EC firmware fixes (HSW needs the cherry-picked retry fix + my fix; BDW/BYT only need my fix). The only missing piece is a mechanism for updating the EC firmware, be it in the firmware itself a la Software Sync or through some sort of menu option. Thx.
The Settings in Tiano do not save. :/
This could be fixed via NVRAM or perhaps, as proposed by CoolStar, by saving them in the CMOS.
Greetings,
i have a Dell 3120 (Candy) and i would like to see if windows works well on it 'cause its specs are good
Is it possible to add support to your script?
I have an ACPI error on windows installation.
Thanks in advance
Edit: Apologies if this is the wrong place - but https://github.com/MattDevo/coreboot does not have a tracker. Great work on getting lulu to be in a place where it can go upstream btw! ๐
I realise this is a bit like asking for unicorns (on a good day) but lulu does not build from source because of missing refcode blob:
3rdparty/blobs/mainboard/google/lulu/refcode.elf: No such file or directory
E: Couldn't read in file '3rdparty/blobs/mainboard/google/lulu/refcode.elf'.
Unfortunately I have not been able to find a good explanation of what the refcode blob is and where to get it from. (https://review.coreboot.org/#/c/4895/ explains very little). Of course it's available from reading the flash of the board itself but that does not say much about the origin and authenticity of its contents...
Any ideas on how getting the refcode blob can be automated/how it can be validated?
My Acer C910 (auron-yuna) was classified as an Acer C7xx (auron-maine?) by the UEFI rom bios installation.
The bios would come up on screen and navigation was possible, but boot would not activate. I was locked in the bios.
Used script to return to Legacy boot.
ROM and bios working beautifully. Thank you
Hi,
I have an HP Chromebook 11 G5 with a braswell Celeron N3050 cpu with Intel HD 400 graphics
board name: setzer
P/N X9U05UT#ABA
The script seems to identify it and succeeds in applying the RW_Legacy update, but when I go to reboot, the Developer mode boot screen comes up.. I type CTRL+L and it wipes the chrome bitmap screen down to a blank black screen and never produces a display.
I thought it was suppose to produce an ESC menu and detected options for boot.
I got this in November so I though the eMMC or USB devices might be so new they aren't properly identified. Do you have any suggestions, or is there any data I could collect and contribute to help solve the problem? Thanks
As the title says when you open the lid in S4/S5 the chromebook momentary power on, then off and you need to press the power button to power it on. Seems to happen only for Haswell Chromebooks.
Hello,
I was wondering if these power (battery) notification (more infos in the link) can be induced by the firmware.
https://bugzilla.gnome.org/show_bug.cgi?id=777611
I'm still on a legacy (up to date) version (I plan to update to an uefi one soon when I will reinstall my OS (Fedora))
Thanks !
Currently, the TPM is disabled in the firmwares. It would be great if we could get to the point of enabling it. AFAIK, it is on the roadmap for around the time when NVRAM is added, but there have been several requests about it. Thanks!
When using the full rom on a bay trail device, resuming from suspend results in a hard reboot.
Best workaround I have found is to disable suspend all together and so you shutting off the screen when the lid is closed. Not ideal, but it helps conserve a little battery.
Keyboard interrupts are broken on Parrot (C710) in Windows and Linux (OS X lacks native PS/2 support and was not tested). The keyboard currently only works in the Duet Boot Manager interface, Clover, rEFInd, and EFI GRUB. The keyboard was not working at all on SeaBIOS nor in BIOS GRUB.
See here for more info:
On BYT (tested on SQUAWKS), Windows does not scale properly over HDMI until 1360x768 is enabled and Maintain Aspect Ratio is set in the Intel Driver. This is odd because on other models, proper scaling occurs automatically. Still looking for confirmation on other BYT models . . .
Let's add support for the C710's sd card reader. This can be done by adding SdMmcPciHcDxe and SdDxe:
https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe
https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Bus/Sd/SdDxe
If there's space issues, we can remove the UFS2 and EXT4 filesystem drivers in that order, as they're not used by any boot media. (BSD doesn't even use UFS2 anymore, and Linux distros set up a FAT32 efi system partition, as per UEFI spec)
Using most recent 2016-11-27 UEFI firmware. It worked previously but stopped after the firmware update.
Steps I took:
I was on UEFI before updating. Noticed that the firmware script still recognized the Chromebox as PANTHER, so I rolled back to the stock TRICKY SeaBIOS firmware I had backed up, then ran the firmware script from ChromeOS to install the UEFI firmware again. Noticed the LED didn't light up after the firmware update.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.