Board:lenovo/w520: Difference between revisions
Nicorikken (talk | contribs) m (Add a license) |
Nicorikken (talk | contribs) (Update with latest state of display output) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Specification == | == Specification == | ||
The W520 comes in 4 quad-core configurations, and 1 dual-core configuration. The quad-core configurations support RAM up to 32GB. | The W520 comes in 4 quad-core configurations, and 1 dual-core configuration. The quad-core configurations support RAM up to 32GB. | ||
It is similar to the T520 model but supports more powerful CPU's and GPU's and has 4 RAM slots (32GB total). | |||
Compared to the superseding W530 model it notably features the conventional keyboard, an eSATA port, and full-size DisplayPort connector. | Compared to the superseding W530 model it notably features the conventional keyboard, an eSATA port, and full-size DisplayPort connector. | ||
It is noteworthy that the graphics output (VGA and DisplayPort) are connected to the NVIDIA GPU, so this GPU needs to be controlled in order to have video output. | |||
For more detailed specifications, please refer to the [http://www.thinkwiki.org/wiki/Category:W520 ThinkWiki] | |||
== Status == | |||
The W520 is implemented as a variant of the [[Board:lenovo/t520]] and so it shares much of the same status. | |||
{{Status| | |||
|CPU_status = OK | |||
|CPU_comments = Support both Sandy Bridge and Ivy Bridge | |||
|CPU_L1_status = OK | |||
|CPU_L1_comments = Always on | |||
|CPU_L2_status = OK | |||
|CPU_L2_comments = Always on | |||
|CPU_L3_status = N/A | |||
|CPU_multiple_status = N/A | |||
|CPU_multicore_status = OK | |||
|CPU_virt_status = OK | |||
|RAM_EDO_status = N/A | |||
|RAM_SDRAM_status = N/A | |||
|RAM_SODIMM_status = N/A | |||
|RAM_DDR_status = N/A | |||
|RAM_DDR2_status = N/A | |||
|RAM_DDR3_status = OK | |||
|RAM_DDR3_comments = Native | |||
|RAM_dualchannel_status = OK | |||
|RAM_ecc_status = N/A | |||
|IDE_status = N/A | |||
|IDE_CF_status = N/A | |||
|IDE_25_status = N/A | |||
|CDROM_DVD_status = N/A | |||
|SATA_status = OK | |||
|SATA_comments = | |||
|Onboard_SCSI_status = N/A | |||
|USB_status = OK | |||
|USB_comments = | |||
|Onboard_VGA_status = Patches available [https://review.coreboot.org/c/coreboot/+/25999/ 25999] [https://review.coreboot.org/c/coreboot/+/26114 26114] | |||
|Onboard_VGA_comments = Same for DisplayPort. Requires ACPI call for GPU switch | |||
|Onboard_ethernet_status = OK | |||
|Onboard_audio_status = OK | |||
|Onboard_audio_comments = integrated speakers, integrated mic, external headphones, external mic | |||
|Onboard_modem_status = N/A | |||
|Onboard_firewire_status = Untested | |||
|Smartcard_status = Untested | |||
|Onboard_CF_status = N/A | |||
|Onboard_PCMCIA_status = OK | |||
|Onboard_Wifi_status = OK | |||
|Onboard_Bluetooth_status = OK | |||
|Onboard_SD_status = OK | |||
|ISA_cards_status = N/A | |||
|AMR_cards_status = N/A | |||
|Mini_PCI_cards_status = N/A | |||
|Mini_PCI_cards_comments = | |||
|PCIX_cards_status = N/A | |||
|AGP_cards_status = N/A | |||
|PCI_cards_status = N/A | |||
|PCIE_x1_status = N/A | |||
|PCIE_x1_comments = | |||
|PCIE_x2_status = N/A | |||
|PCIE_x4_status = N/A | |||
|PCIE_x8_status = N/A | |||
|PCIE_x16_status = OK | |||
|PCIE_x32_status = N/A | |||
|HTX_status = N/A | |||
|Floppy_status = N/A | |||
|COM1_status = N/A | |||
|COM2_status = N/A | |||
|PP_status = N/A | |||
|PS2_keyboard_status = N/A | |||
|PS2_mouse_status = N/A | |||
|Game_port_status = N/A | |||
|IR_status = N/A | |||
|Speaker_status = OK | |||
|DiskOnChip_status = N/A | |||
|Trackpoint_status = OK | |||
|Touchpad_status = OK | |||
|FnHotkeys_status = OK | |||
|Fingerprint_status = Untested | |||
|Docking_VGA_status = Untested | |||
|Docking_LAN_status = Untested | |||
|Docking_USB_status = Untested | |||
|Docking_Audio_status = Untested | |||
|Docking_Displayport_status = Untested | |||
|Thinklight_status = OK | |||
|Webcam_status = OK | |||
|Sensors_status = OK | |||
|Watchdog_status = OK | |||
|Watchdog_comments = | |||
|SMBus_status = OK | |||
|CAN_bus_status = N/A | |||
|CPUfreq_status = OK | |||
|Powersave_status = N/A | |||
|ACPI_status = Untested | |||
|ACPI_comments = GPU switch missing for Optimus [https://review.coreboot.org/c/coreboot/+/23041/ WIP patch 23041] | |||
|Reboot_status = OK | |||
|Poweroff_status = OK | |||
|Suspend_status = OK | |||
|Suspend_comments = Suspend to RAM | |||
|Poweroff_comments = | |||
|LEDs_status = OK | |||
|HPET_status = Untested | |||
|RNG_status = Untested | |||
|WakeOnModem_status = N/A | |||
|WakeOnLAN_status = Untested | |||
|WakeOnKeyboard_status = Untested | |||
|WakeOnMouse_status = Untested | |||
|Flashrom_status = OK | |||
|Flashrom_comments = ST/numonyx M25PX64VG 8 MiB VDFPN8 package. | |||
}} | |||
== Patch history == | |||
In November 2016 Charlotte Plusplus has made an initial attempt ([https://www.mail-archive.com/search?l=coreboot@coreboot.org&q=from:%22Charlotte+Plusplus%22 mailinglist posts]) based on the T520 firmware, with added romstage additions for ram init. This patch was committed in full to the mailing list, but not as a diff to the Gerrit infrastructure. | |||
In February 2018 Nico Rikken again customized the T520 firmware, and delivered a working [https://review.coreboot.org/#/c/coreboot/+/23564/ patch set]. | |||
== Proprietary components status == | == Proprietary components status == | ||
Line 12: | Line 136: | ||
* EC(Embedded Controller) => you do not have to touch it (just leave it where it is) | * EC(Embedded Controller) => you do not have to touch it (just leave it where it is) | ||
== | == Known issues == | ||
* The 2 USB 3.0 slots on the side are not working for boot media, just the USB 2.0 slot on the back. | |||
* SD cards mount as read-only in Ubuntu 18.04 (unconfirmed report by Nico) | |||
=== MCE Hardware Error === | |||
Found and confirmed: | |||
kernel: mce: [Hardware Error]: Machine check events logged | |||
kernel: mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 7: ee2000000003110a | |||
kernel: mce: [Hardware Error]: TSC 0 ADDR feffff40 MISC 1040000086 | |||
kernel: mce: [Hardware Error]: PROCESSOR 0:206a7 TIME 1524512047 SOCKET 0 APIC 0 microcode 29 | |||
kernel: mce: [Hardware Error]: Machine check events logged | |||
kernel: mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 8: ee2000000003110a | |||
kernel: mce: [Hardware Error]: TSC 0 ADDR feffff00 MISC 1040000086 | |||
kernel: mce: [Hardware Error]: PROCESSOR 0:206a7 TIME 1524512047 SOCKET 0 APIC 0 microcode 29 | |||
=== Issues reported by Charlotte Plusplus === | |||
In 2016 some issues were reported. These need to be verified base on the most recent W520 patch. | |||
* Native VGA init is not working reliably ([https://www.mail-archive.com/coreboot@coreboot.org/msg47449.html discussion thread]). | * Native VGA init is not working reliably ([https://www.mail-archive.com/coreboot@coreboot.org/msg47449.html discussion thread]). | ||
* The coreboot configuration consumes more power than the vendor BIOS does ([https://www.mail-archive.com/coreboot@coreboot.org/msg47462.html discussion thread]). | * The coreboot configuration consumes more power than the vendor BIOS does, so some additional settings might be required. ([https://www.mail-archive.com/coreboot@coreboot.org/msg47462.html discussion thread]). | ||
* No ACPI event when (dis)connecting the bay. | |||
=== Works === | |||
* CPU (4 cores, 8 threads) | |||
* Suspend and resume | |||
* Ethernet port (GbE blob was put into place) | |||
* Speakers | |||
* Webcam (which is an internal USB-device) | |||
* 4 RAM-slots | |||
* Booting GNU Linux from USB using SeaBios | |||
* Speakers | |||
* PCIe Wifi | |||
* Fan | |||
* Touchpad, trackpoint and keyboard | |||
* Ethernet | |||
* Keyboard ACPI events | |||
* VGA and DisplayPort output using the patches below | |||
* Bluetooth | |||
== Building == | |||
Just run {{ic|make nconfig}}, and select the board Lenovo W520. Other configurations include: | |||
* Size of CBFS can be set up to 2M (0x200000), perhaps larger like the [[Board:lenovo/t420]] but this might depend on the chip. | |||
* You can select 'Use CMOS for configuration values'. | |||
* You can use native graphics initialization. | |||
To obtain ME, Intel Descriptor, GbE images you will need to read the BIOS off your T420. | |||
To use VGA option ROMs, you can manually add it to CBFS using cbfstool multiple times to support more GPUs on a single board. | |||
./build/cbfstool build/coreboot.rom add -f intel-vgabios.rom -n pci8086,0106.rom -t optionrom | |||
./build/cbfstool build/coreboot.rom add -f nvidia-vgabios-1.rom -n pci10de,0dda.rom -t optionrom | |||
./build/cbfstool build/coreboot.rom add -f nvidia-vgabios-2.rom -n pci10de,0dfa.rom -t optionrom | |||
./build/cbfstool build/coreboot.rom add -f nvidia-vgabios-3.rom -n pci10de,0dfe.rom -t optionrom | |||
Perhaps adding 1 rom for NVIDIA and using a link file might work as well. | |||
=== VGA / DisplayPort output === | |||
At the moment of writing two additional patches are required to enable VGA/DisplayPort output. Then output works out of the box with Ubuntu 18.04 (Nouveau driver) | |||
* {{ic|_ROM}} ACPI call enabling Nouveau to load the optionrom [https://review.coreboot.org/c/coreboot/+/25999/ patch] | |||
* 'Dual Graphics' CMOS option to enable the GPU [https://review.coreboot.org/c/coreboot/+/26114 patch] | |||
Then Dual Graphics mode can be activated using nvram: | |||
sudo ./util/nvramtool/nvramtool -w hybrid_graphics_mode="Dual Graphics" | |||
== Flashing == | == Flashing == | ||
The location of the chip is similar to the T520: | |||
[[File:J100.jpg|400px]] | |||
When flashing with a Raspberry Pi no external power is needed. The 3V source from the GPIO is sufficient. The pins WP and HOLD can be left floating. | |||
{{Cc-by-4.0}} | {{Cc-by-4.0}} |
Latest revision as of 10:22, 5 May 2018
Specification
The W520 comes in 4 quad-core configurations, and 1 dual-core configuration. The quad-core configurations support RAM up to 32GB.
It is similar to the T520 model but supports more powerful CPU's and GPU's and has 4 RAM slots (32GB total). Compared to the superseding W530 model it notably features the conventional keyboard, an eSATA port, and full-size DisplayPort connector.
It is noteworthy that the graphics output (VGA and DisplayPort) are connected to the NVIDIA GPU, so this GPU needs to be controlled in order to have video output.
For more detailed specifications, please refer to the ThinkWiki
Status
The W520 is implemented as a variant of the Board:lenovo/t520 and so it shares much of the same status.
Device/functionality | Status | Comments | ||||||
---|---|---|---|---|---|---|---|---|
CPU | ||||||||
CPU works | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Support both Sandy Bridge and Ivy Bridge | ||||||
L1 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Always on | ||||||
L2 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Always on | ||||||
L3 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Multiple CPU support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Multi-core support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Hardware virtualization | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
RAM | ||||||||
EDO | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
SDRAM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
SO-DIMM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
DDR | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
DDR2 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
DDR3 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Native | ||||||
Dual channel support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
ECC support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board Hardware | ||||||||
On-board IDE 3.5" | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board IDE 2.5" | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board SATA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board SCSI | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Patches available 25999 26114 | Same for DisplayPort. Requires ACPI call for GPU switch | ||||||
On-board Ethernet | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | integrated speakers, integrated mic, external headphones, external mic | ||||||
On-board Modem | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board FireWire | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
On-board Smartcard reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
On-board CompactFlash | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board PCMCIA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board Wifi | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board Bluetooth | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board SD card reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Add-on slots/cards | ||||||||
ISA add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Audio/Modem-Riser (AMR/CNR) cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Mini-PCI add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Mini-PCI-Express add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
PCI-X add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
AGP graphics cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x1 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x2 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x4 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x8 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x16 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
PCI Express x32 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
HTX add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Legacy / Super I/O | ||||||||
Floppy | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Serial port 1 (COM1) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Serial port 2 (COM2) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Parallel port | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PS/2 keyboard | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PS/2 mouse | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Game port | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Infrared | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PC speaker | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
DiskOnChip | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Input | ||||||||
Trackpoint | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Touchpad | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Fn Hotkeys | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Fingerprint Reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Laptop | ||||||||
Docking VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Docking LAN | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Docking USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Docking Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Docking Displayport | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Thinklight | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Webcam | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Miscellaneous | ||||||||
Sensors / fan control | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Hardware watchdog | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
SMBus | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
CAN bus | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
CPU frequency scaling | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Other powersaving features | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
ACPI | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | GPU switch missing for Optimus WIP patch 23041 | ||||||
Reboot | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Poweroff | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Suspend | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Suspend to RAM | ||||||
Nonstandard LEDs | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
High precision event timers (HPET) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Random number generator (RNG) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Wake on modem ring | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Wake on LAN | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Wake on keyboard | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Wake on mouse | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
TPM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
Flashrom | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | ST/numonyx M25PX64VG 8 MiB VDFPN8 package. |
Patch history
In November 2016 Charlotte Plusplus has made an initial attempt (mailinglist posts) based on the T520 firmware, with added romstage additions for ram init. This patch was committed in full to the mailing list, but not as a diff to the Gerrit infrastructure. In February 2018 Nico Rikken again customized the T520 firmware, and delivered a working patch set.
Proprietary components status
- CPU Microcode (optional)
- VGA Option ROM (optional): the native graphics initialization tested gave video artifacts in SeaBIOS. When using VGA Bios there were none.
- ME(Management Engine) => you do not have to touch it (just leave it where it is). Also the stripped down T420 version can be re-used.
- EC(Embedded Controller) => you do not have to touch it (just leave it where it is)
Known issues
- The 2 USB 3.0 slots on the side are not working for boot media, just the USB 2.0 slot on the back.
- SD cards mount as read-only in Ubuntu 18.04 (unconfirmed report by Nico)
MCE Hardware Error
Found and confirmed:
kernel: mce: [Hardware Error]: Machine check events logged kernel: mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 7: ee2000000003110a kernel: mce: [Hardware Error]: TSC 0 ADDR feffff40 MISC 1040000086 kernel: mce: [Hardware Error]: PROCESSOR 0:206a7 TIME 1524512047 SOCKET 0 APIC 0 microcode 29 kernel: mce: [Hardware Error]: Machine check events logged kernel: mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 8: ee2000000003110a kernel: mce: [Hardware Error]: TSC 0 ADDR feffff00 MISC 1040000086 kernel: mce: [Hardware Error]: PROCESSOR 0:206a7 TIME 1524512047 SOCKET 0 APIC 0 microcode 29
Issues reported by Charlotte Plusplus
In 2016 some issues were reported. These need to be verified base on the most recent W520 patch.
- Native VGA init is not working reliably (discussion thread).
- The coreboot configuration consumes more power than the vendor BIOS does, so some additional settings might be required. (discussion thread).
- No ACPI event when (dis)connecting the bay.
Works
- CPU (4 cores, 8 threads)
- Suspend and resume
- Ethernet port (GbE blob was put into place)
- Speakers
- Webcam (which is an internal USB-device)
- 4 RAM-slots
- Booting GNU Linux from USB using SeaBios
- Speakers
- PCIe Wifi
- Fan
- Touchpad, trackpoint and keyboard
- Ethernet
- Keyboard ACPI events
- VGA and DisplayPort output using the patches below
- Bluetooth
Building
Just run make nconfig
, and select the board Lenovo W520. Other configurations include:
- Size of CBFS can be set up to 2M (0x200000), perhaps larger like the Board:lenovo/t420 but this might depend on the chip.
- You can select 'Use CMOS for configuration values'.
- You can use native graphics initialization.
To obtain ME, Intel Descriptor, GbE images you will need to read the BIOS off your T420.
To use VGA option ROMs, you can manually add it to CBFS using cbfstool multiple times to support more GPUs on a single board.
./build/cbfstool build/coreboot.rom add -f intel-vgabios.rom -n pci8086,0106.rom -t optionrom ./build/cbfstool build/coreboot.rom add -f nvidia-vgabios-1.rom -n pci10de,0dda.rom -t optionrom ./build/cbfstool build/coreboot.rom add -f nvidia-vgabios-2.rom -n pci10de,0dfa.rom -t optionrom ./build/cbfstool build/coreboot.rom add -f nvidia-vgabios-3.rom -n pci10de,0dfe.rom -t optionrom
Perhaps adding 1 rom for NVIDIA and using a link file might work as well.
VGA / DisplayPort output
At the moment of writing two additional patches are required to enable VGA/DisplayPort output. Then output works out of the box with Ubuntu 18.04 (Nouveau driver)
_ROM
ACPI call enabling Nouveau to load the optionrom patch- 'Dual Graphics' CMOS option to enable the GPU patch
Then Dual Graphics mode can be activated using nvram:
sudo ./util/nvramtool/nvramtool -w hybrid_graphics_mode="Dual Graphics"
Flashing
The location of the chip is similar to the T520:
When flashing with a Raspberry Pi no external power is needed. The 3V source from the GPIO is sufficient. The pins WP and HOLD can be left floating.
This work is licensed under the Creative Commons Attribution 4.0 License. |