The wiki is being retired!
Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!
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
The W520 is implemented as a variant of the Board:lenovo/t520 and so it shares much of the same status.
|CPU works||OK||Support both Sandy Bridge and Ivy Bridge|
|L1 cache enabled||OK||Always on|
|L2 cache enabled||OK||Always on|
|L3 cache enabled||N/A|
|Multiple CPU support||N/A|
|Dual channel support||OK|
|On-board IDE 3.5"||N/A|
|On-board IDE 2.5"||N/A|
|On-board VGA||Patches available 25999 26114||Same for DisplayPort. Requires ACPI call for GPU switch|
|On-board Audio||OK||integrated speakers, integrated mic, external headphones, external mic|
|On-board Smartcard reader||Untested|
|On-board SD card reader||OK|
|ISA add-on cards||N/A|
|Audio/Modem-Riser (AMR/CNR) cards||N/A|
|PCI add-on cards||N/A|
|Mini-PCI add-on cards||N/A|
|Mini-PCI-Express add-on cards||Unknown|
|PCI-X add-on cards||N/A|
|AGP graphics cards||N/A|
|PCI Express x1 add-on cards||N/A|
|PCI Express x2 add-on cards||N/A|
|PCI Express x4 add-on cards||N/A|
|PCI Express x8 add-on cards||N/A|
|PCI Express x16 add-on cards||OK|
|PCI Express x32 add-on cards||N/A|
|HTX add-on cards||N/A|
|Legacy / Super I/O|
|Serial port 1 (COM1)||N/A|
|Serial port 2 (COM2)||N/A|
|Sensors / fan control||OK|
|CPU frequency scaling||OK|
|Other powersaving features||N/A|
|ACPI||Untested||GPU switch missing for Optimus WIP patch 23041|
|Suspend||OK||Suspend to RAM|
|High precision event timers (HPET)||Untested|
|Random number generator (RNG)||Untested|
|Wake on modem ring||N/A|
|Wake on LAN||Untested|
|Wake on keyboard||Untested|
|Wake on mouse||Untested|
|Flashrom||OK||ST/numonyx M25PX64VG 8 MiB VDFPN8 package.|
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)
- 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.
- CPU (4 cores, 8 threads)
- Suspend and resume
- Ethernet port (GbE blob was put into place)
- Webcam (which is an internal USB-device)
- 4 RAM-slots
- Booting GNU Linux from USB using SeaBios
- PCIe Wifi
- Touchpad, trackpoint and keyboard
- Keyboard ACPI events
- VGA and DisplayPort output using the patches below
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)
_ROMACPI 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"
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.|