Board:lenovo/g505s: Difference between revisions

From coreboot
Jump to navigation Jump to search
m (buyin advice)
 
(11 intermediate revisions by 2 users not shown)
Line 2: Line 2:


This page is a work in progress. ACPI is still being worked on, however due to the nature of ACPI it may take some time to get this right.
This page is a work in progress. ACPI is still being worked on, however due to the nature of ACPI it may take some time to get this right.
Taiidan note - I recommend getting the A10 quad core version of this laptop as the lesser dual core models are very slow.


== Known Issues ==
== Known Issues ==


* S3 Suspend/Resume - You will need a Console verbosity set to at least "BIOS_INFO" or greater for it to work! Coreboot is likely too fast for the Embedded Controller firmware on the S3 resume hot path.
* S3 Suspend/Resume - You will need a Console verbosity set to at least "BIOS_INFO" or greater for it to work! Coreboot is likely too fast for the Embedded Controller firmware on the S3 resume hot path.
* S3 Suspend/Resume - Nasty looking '''dmesg''' messages seen in Note 2. [https://lkml.org/lkml/2012/3/28/249 LKML] [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1152484 bug report] [http://lxr.free-electrons.com/source/arch/x86/kernel/cpu/perf_event_amd_ibs.c#L784 force_ibs_eilvt_setup()].
* "''AGP: Please enable the IOMMU option in the BIOS setup''" showing up in '''dmesg''' - Pass '''iommu=noaperture''' to the kernel boot args to ask the IOMMU not to touch the aperture for AGP.
* "'''Re-enabling disabled Topology Extensions Support'''" showing up in '''dmesg''' - See Note 1.
Note 1: Look in  '''src/vendorcode/amd/agesa/f15tn/Proc/CPU/Family/0x15/TN/F15TnMsrTables.c''' for
  if (PkgType == PACKAGE_TYPE_FM2) {
    CpuMsrData |= BIT54;
  }
this is the wrong package type for us. Fixed in [http://review.coreboot.org/#/c/7671/ 7671]
Note 2: Look in '''src/vendorcode/amd/agesa/f16kb/Proc/CPU/Family/0x16/KB/F16KbMsrTables.c''' and '''src/vendorcode/amd/agesa/f15tn/Proc/CPU/Family/0x15/TN/F15TnMsrTables.c'''.
Backport fixes that pertain to '''MSR 0x00000413''' and '''MSR 0xC0000408'''. The following in seen in '''dmesg''' on S3 resume:
[  396.828594] [Firmware Bug]: cpu 0, try to use APIC500 (LVT offset 0) for vector 0xf9, but the register is already in use for vector 0x400 on another cpu
[  396.828596] [Firmware Bug]: cpu 0, failed to setup threshold interrupt for bank 4, block 0 (MSR00000413=0xc000000001000000)
[  396.828597] [Firmware Bug]: cpu 0, try to use APIC500 (LVT offset 0) for vector 0xf9, but the register is already in use for vector 0x400 on another cpu
[  396.828599] [Firmware Bug]: cpu 0, failed to setup threshold interrupt for bank 4, block 1 (MSRC0000408=0xc000000001000000)


== Overview ==
== Overview ==
Line 36: Line 59:


== Status ==
== Status ==
Has an IOMMU with Interrupt Remapping and graphics support


{{Status|
{{Status|
Line 58: Line 83:
|RAM_DDR3_comments =
|RAM_DDR3_comments =
|RAM_dualchannel_status = N/A
|RAM_dualchannel_status = N/A
|RAM_ecc_status = ?
|RAM_ecc_status = N/A


|IDE_status = N/A
|IDE_status = N/A
|IDE_CF_status = N/A
|IDE_CF_status = N/A
|IDE_25_status = N/A
|IDE_25_status = N/A
|CDROM_DVD_status = N/A
|CDROM_DVD_status = OK
|SATA_status = OK
|SATA_status = OK
|SATA_comments =  
|SATA_comments =  
|Onboard_SCSI_status = N/A
|Onboard_SCSI_status = N/A
|USB_status = OK
|USB_status = OK
|USB_comments =  
|USB_comments = XHCI requires blob (so disabled by default)
|Onboard_VGA_status = OK
|Onboard_VGA_status = OK
|Onboard_VGA_comments = BIOS/console: works.
|Onboard_VGA_comments = 64KByte AtomBIOS blob needed
|Onboard_ethernet_status = OK
|Onboard_ethernet_status = OK
|Onboard_ethernet_comments = Qualcomm Atheros QCA8172 Fast Ethernet
|Onboard_audio_status = OK
|Onboard_audio_status = OK
|Onboard_audio_comments = Basic two channel audio works fine.
|Onboard_audio_comments = Basic two channel audio works fine.
Line 86: Line 112:
|PCIX_cards_status = N/A
|PCIX_cards_status = N/A
|AGP_cards_status = N/A
|AGP_cards_status = N/A
|PCI_cards_status = OK
|PCI_cards_status = N/A
|PCI_cards_comments =  
|PCI_cards_comments =  
|PCIE_x1_status = OK
|PCIE_x1_status = OK
|PCIE_x1_comments = miniPCIe slot works, mSATA/miniPCIe slot does not!?
|PCIE_x1_comments = miniPCIe (populated with Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter)
|PCIE_x2_status = N/A
|PCIE_x2_status = N/A
|PCIE_x4_status = N/A
|PCIE_x4_status = N/A
Line 98: Line 124:


|Floppy_status = N/A
|Floppy_status = N/A
|COM1_status = OK
|COM1_status = N/A
|COM2_status = N/A
|COM2_status = N/A
|PP_status = N/A
|PP_status = N/A
Line 104: Line 130:
|PS2_mouse_status = OK
|PS2_mouse_status = OK
|Game_port_status = N/A
|Game_port_status = N/A
|IR_status = Untested
|IR_status =
|IR_comments = CIR header currently turned off in devicetree.cb
|IR_comments =  
|Speaker_status = OK
|Speaker_status = OK
|DiskOnChip_status = N/A
|DiskOnChip_status = N/A
Line 128: Line 154:
|WakeOnModem_status = N/A
|WakeOnModem_status = N/A
|WakeOnLAN_status = Untested
|WakeOnLAN_status = Untested
|WakeOnKeyboard_status = Untested
|WakeOnKeyboard_status = OK
|WakeOnMouse_status = Untested
|WakeOnMouse_status = Untested
|Flashrom_status = OK
|Flashrom_status = OK
|Flashrom_comments = MXIC MX25L1606E 2MB SPI Flash
|Flashrom_comments = MXIC MX25L1606E (SO8, soldered) 4MB SPI Flash


}}
}}
== Issue Analysis ==
...


=== Coreboot boot log ===
=== Coreboot boot log ===


See [http://www.coreboot.org/Supported_Motherboards#jetway.2Fnf81-t56n-lf] for a recent log.
See [http://www.coreboot.org/Supported_Motherboards#lenovo.2Fg505s] for a recent log.


{{PD-self}}
{{PD-self}}

Latest revision as of 07:02, 23 March 2018

This page describes how to use coreboot on the Lenovo G505S mainboard.

This page is a work in progress. ACPI is still being worked on, however due to the nature of ACPI it may take some time to get this right.

Taiidan note - I recommend getting the A10 quad core version of this laptop as the lesser dual core models are very slow.

Known Issues

  • S3 Suspend/Resume - You will need a Console verbosity set to at least "BIOS_INFO" or greater for it to work! Coreboot is likely too fast for the Embedded Controller firmware on the S3 resume hot path.
  • S3 Suspend/Resume - Nasty looking dmesg messages seen in Note 2. LKML bug report force_ibs_eilvt_setup().
  • "AGP: Please enable the IOMMU option in the BIOS setup" showing up in dmesg - Pass iommu=noaperture to the kernel boot args to ask the IOMMU not to touch the aperture for AGP.
  • "Re-enabling disabled Topology Extensions Support" showing up in dmesg - See Note 1.

Note 1: Look in src/vendorcode/amd/agesa/f15tn/Proc/CPU/Family/0x15/TN/F15TnMsrTables.c for

 if (PkgType == PACKAGE_TYPE_FM2) {
    CpuMsrData |= BIT54;
 }

this is the wrong package type for us. Fixed in 7671


Note 2: Look in src/vendorcode/amd/agesa/f16kb/Proc/CPU/Family/0x16/KB/F16KbMsrTables.c and src/vendorcode/amd/agesa/f15tn/Proc/CPU/Family/0x15/TN/F15TnMsrTables.c.

Backport fixes that pertain to MSR 0x00000413 and MSR 0xC0000408. The following in seen in dmesg on S3 resume:

[  396.828594] [Firmware Bug]: cpu 0, try to use APIC500 (LVT offset 0) for vector 0xf9, but the register is already in use for vector 0x400 on another cpu
[  396.828596] [Firmware Bug]: cpu 0, failed to setup threshold interrupt for bank 4, block 0 (MSR00000413=0xc000000001000000)
[  396.828597] [Firmware Bug]: cpu 0, try to use APIC500 (LVT offset 0) for vector 0xf9, but the register is already in use for vector 0x400 on another cpu
[  396.828599] [Firmware Bug]: cpu 0, failed to setup threshold interrupt for bank 4, block 1 (MSRC0000408=0xc000000001000000)

Overview

Hardware

  • AMD A-series AMD A10-5750M APU
  • AMD AGESA Hudson part of the chipset, AMD AGESA Hudson southbridge
  • ENE KB9012 EC However we use the ENE932 EC driver in coreboot's tree.

Details

...

  • 1x MXIC MX25L1606E (SO8, soldered) 16 Mbit SPI flash (BIOS)

Building a coreboot image

Make a fresh clone of Coreboot into a empty directory and run:

make crossgcc-i386

Make a cup of tea.. Then run:

make menuconfig

and select Lenovo/G505S under "Mainboard -> Mainboard vendor/model" leaving everything else as defaults. Then finally do,

make

To flash the board with flashrom externally run:

flashrom -p ft2232_spi:type=2232H,port=A -w build/coreboot.rom

and internally run:

flashrom -p internal:laptop=force_I_want_a_brick -w build/coreboot.rom

Status

Has an IOMMU with Interrupt Remapping and graphics support

Device/functionality Status Comments
CPU
CPU works OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
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 }}" | N/A
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
Dual channel support OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
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 XHCI requires blob (so disabled by default)
On-board VGA OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK 64KByte AtomBIOS blob needed
On-board Ethernet OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Qualcomm Atheros QCA8172 Fast Ethernet
On-board Audio OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Basic two channel audio works fine.
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 }}" | N/A
On-board Smartcard reader OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
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 }}" | N/A
On-board Wifi OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board Bluetooth OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board SD card reader OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
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 }}" | OK miniPCIe (populated with Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter)
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 }}" | N/A
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 }}" | OK
PS/2 mouse OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
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 }}" |
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 }}" | N/A
Touchpad OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Fn Hotkeys OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Fingerprint Reader OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Laptop
Docking VGA OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking LAN OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking USB OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking Audio OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking Displayport OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Thinklight OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Webcam OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
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 }}" | Pending What needs to be done here??
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 }}" | WIP Mostly working, needs a good Review!
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
Nonstandard LEDs OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
High precision event timers (HPET) OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
Random number generator (RNG) OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
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 }}" | OK
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 MXIC MX25L1606E (SO8, soldered) 4MB SPI Flash

Coreboot boot log

See [1] for a recent log.

Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.