Hello!
I've been attempting to flash Coreboot to a recently acquired Acer Chromebook CP713-3W with the hope of eventually being able to boot from a USB drive and install some variety of linux.
Currently my system is only limitedly responsive when booting, so I acquired a flash programmer to try and program the rom chip directly. When attempting to do this (and also while building the rom from the google source code) I noticed a few things that seemed to complicate the flashing process.
The only chip I have identified so far as a rom chip is 1MB in size (Winbond W25Q80DVSNIG). I was unable to read the intel firmware descriptor or a layout file from it when attached with the usb programmer. When using the chromium coreboot sources, selecting the voxel mainboard also automatically selected the layout file associated with the volteer mainboards. Because this layout file was for a 32MB chip, I was unable to use it to build the chip, but because I didn't have a layout file, I didn't know what to set the size of the CBFS filesystem to be in the build config. I attempted several guessed sizes to just see if I could get a file to build, but no attempted size ended up being able to even produce a rom image.
I now have some questions.
1. Am I even looking at the right chip? Is there a different 32MB Rom that I should be flashing to? Does the chromebook firmware live on the harddrive somehow (I find this unlikely because the hard drive is replaceable, but I wanted to mention the possibility)? If it's not the bios chip, then what is it?
2. If this is the right chip, how do I reduce the size of the payload and/or determine the appropriate size of the CBFS filesystem in order to create a rom that I could flash? Is it feasible/would it be better to get a 32MB rom chip, flash it with the built image from chromium coreboot and the volteer layout file, and replace the current chip with it?
3. What sort of expectations should I have for the current status of coreboot on this mainboard (either from the coreboot or chromium repositories)? What additional work should I expect to have to do if I want to be able to e. g. boot from a linux flash drive?
Please let me know if there's more information I can provide that would be useful, if there's a better place for me to ask these questions, or if there are resources that can help guide me towards answering these questions for myself.
Matthew Kunjummen
Hello Matthew,
On 02.12.21 19:55, Matthew K wrote:
- Am I even looking at the right chip?
No.
Is there a different 32MB Rom that I should be flashing to?
Yes and no. There is another chip, but a current Chromebook shouldn't require you to access the chip directly. Generally, one should be able to restore the firmware and/or add a payload for legacy boot via soft- ware flashing. Also, the security chip should allow you to program the flash via a SuzyQ(uabble?) cable, AIUI. I'm not a Chromebook expert, but I'm sure that this is the direction to look into.
Does the chromebook firmware live on the harddrive somehow (I find this unlikely because the hard drive is replaceable, but I wanted to mention the possibility)? If it's not the bios chip, then what is it?
Could be firmware for the security chip, or maybe the EC. Or maybe both. It's not uncommon to find additional flash chips.
- What sort of expectations should I have for the current status of
coreboot on this mainboard (either from the coreboot or chromium repositories)? What additional work should I expect to have to do if I want to be able to e. g. boot from a linux flash drive?
If you can find the correct branch and config for the chromium version, the coreboot should work. No guarantee for the upstream version, but I would expect it to work too or be easy to fix.
Regarding booting from a Linux flash drive, you have choices to make :) You can either try one of the legacy boot methods, BIOS (SeaBIOS pay- load) or UEFI (TianoCore payload), or some generic boot-loader payload like GRUB or FILO. The latter need configuration, however, and it's only advisable to use them when one is used to configure the boot- loader manually. While all the mentioned payloads should run on any x86 machine, they sometimes lack compatible drivers.
Nico
Thank you for the suggestions, your time, and useful information; I'll look into getting a SuzyQ cable.
Matthew Kunjummen
1) no, that's not the main firmware chip (possibly the EC firmware). There's a 25Q256 chip for the main firmware somewhere, likely a WSON-8 package
2) N/A
3) You really need a Suzy-Q cable in order to reprogram the main firmware, and to get serial debug info out in order to diagnose the issue.
I've built test images of upstream coreboot+Tianocore for another VOXEL user, and the payload was crashing for them, despite it working on another volteer variant (DROBIT). I haven't had time to debug it, but you're not really going to be able to do anything without a Suzy-Q cable unfortunately
PS - you didn't mention what payload you built it with, that would be helpful to know. Also, your defconfig and what region(s) you flashed.
On Fri, Dec 3, 2021 at 3:19 AM Matthew K mkunjummen@gmail.com wrote:
Hello!
I've been attempting to flash Coreboot to a recently acquired Acer Chromebook CP713-3W with the hope of eventually being able to boot from a USB drive and install some variety of linux.
Currently my system is only limitedly responsive when booting, so I acquired a flash programmer to try and program the rom chip directly. When attempting to do this (and also while building the rom from the google source code) I noticed a few things that seemed to complicate the flashing process.
The only chip I have identified so far as a rom chip is 1MB in size (Winbond W25Q80DVSNIG). I was unable to read the intel firmware descriptor or a layout file from it when attached with the usb programmer. When using the chromium coreboot sources, selecting the voxel mainboard also automatically selected the layout file associated with the volteer mainboards. Because this layout file was for a 32MB chip, I was unable to use it to build the chip, but because I didn't have a layout file, I didn't know what to set the size of the CBFS filesystem to be in the build config. I attempted several guessed sizes to just see if I could get a file to build, but no attempted size ended up being able to even produce a rom image.
I now have some questions.
Am I even looking at the right chip? Is there a different 32MB Rom that I should be flashing to? Does the chromebook firmware live on the harddrive somehow (I find this unlikely because the hard drive is replaceable, but I wanted to mention the possibility)? If it's not the bios chip, then what is it?
If this is the right chip, how do I reduce the size of the payload and/or determine the appropriate size of the CBFS filesystem in order to create a rom that I could flash? Is it feasible/would it be better to get a 32MB rom chip, flash it with the built image from chromium coreboot and the volteer layout file, and replace the current chip with it?
What sort of expectations should I have for the current status of coreboot on this mainboard (either from the coreboot or chromium repositories)? What additional work should I expect to have to do if I want to be able to e. g. boot from a linux flash drive?
Please let me know if there's more information I can provide that would be useful, if there's a better place for me to ask these questions, or if there are resources that can help guide me towards answering these questions for myself.
Matthew Kunjummen _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org