Board:lenovo/w520

From coreboot
Jump to: navigation, search

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!

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 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
Multi-core support OK
Hardware virtualization OK
RAM
EDO N/A
SDRAM N/A
SO-DIMM N/A
DDR N/A
DDR2 N/A
DDR3 OK Native
Dual channel support OK
ECC support N/A
On-board Hardware
On-board IDE 3.5" N/A
On-board IDE 2.5" N/A
On-board SATA OK
On-board SCSI N/A
On-board USB OK
On-board VGA Patches available 25999 26114 Same for DisplayPort. Requires ACPI call for GPU switch
On-board Ethernet OK
On-board Audio OK integrated speakers, integrated mic, external headphones, external mic
On-board Modem N/A
On-board FireWire Untested
On-board Smartcard reader Untested
On-board CompactFlash N/A
On-board PCMCIA OK
On-board Wifi OK
On-board Bluetooth OK
On-board SD card reader OK
Add-on slots/cards
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
Floppy N/A
Serial port 1 (COM1) N/A
Serial port 2 (COM2) N/A
Parallel port N/A
PS/2 keyboard N/A
PS/2 mouse N/A
Game port N/A
Infrared N/A
PC speaker OK
DiskOnChip N/A
Input
Trackpoint OK
Touchpad OK
Fn Hotkeys OK
Fingerprint Reader Untested
Laptop
Docking VGA Untested
Docking LAN Untested
Docking USB Untested
Docking Audio Untested
Docking Displayport Untested
Thinklight OK
Webcam OK
Miscellaneous
Sensors / fan control OK
Hardware watchdog OK
SMBus OK
CAN bus N/A
CPU frequency scaling OK
Other powersaving features N/A
ACPI Untested GPU switch missing for Optimus WIP patch 23041
Reboot OK
Poweroff OK
Suspend OK Suspend to RAM
Nonstandard LEDs OK
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
TPM Unknown
Flashrom 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:

J100.jpg

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.

Creative Commons License
Creative Commons Attribution icon
This work is licensed under the Creative Commons Attribution 4.0 License.