Difference between revisions of "Board:lenovo/g505s"

From coreboot
Jump to navigation Jump to search
m (buyin advice)
 
(14 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!
* 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.
                      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 31: Line 53:
  make
  make


To flash the board with '''flashrom''' run:
To flash the board with '''flashrom''' externally run:
  flashrom -p ft2232_spi:type=2232H,port=A -c "MX25L1605A/MX25L1606E" -w build/coreboot.rom
  flashrom -p ft2232_spi:type=2232H,port=A -w build/coreboot.rom
''assuming'' you have a SPI flasher setup.
and internally run:
flashrom -p internal:laptop=force_I_want_a_brick -w build/coreboot.rom


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


{{Status|
{{Status|
Line 56: Line 81:
|RAM_DDR2_status = N/A
|RAM_DDR2_status = N/A
|RAM_DDR3_status = OK
|RAM_DDR3_status = OK
|RAM_DDR3_comments = Tested with 4GB two-rank module.
|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.