Difference between revisions of "Board:lenovo/t530"

From coreboot
Jump to: navigation, search
(Flashing)
 
(21 intermediate revisions by 4 users not shown)
Line 19: Line 19:
 
             +-1f.2  8086:1e03
 
             +-1f.2  8086:1e03
 
             \-1f.3  8086:1e22
 
             \-1f.3  8086:1e22
 +
 +
== Proprietary components status ==
 +
* CPU Microcode (optional)
 +
* ME(Management Engine) => 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)
  
 
== Status ==
 
== Status ==
Thanks for your interest in Lenovo T530 port.
+
[[Intel_Native_Raminit]] has it's own status page.
Issues:
 
* EHCI output failure after sysagent
 
* no S3
 
* no MRC cache
 
* MRC needs watchdog
 
* yellow USB port isn't powered in power-off state.
 
  
(Tested on X230 *not tested* on the T530):
+
{{Status|
* RAM module combinations of 8G+8G
 
* USB (both 2.0 and 3.0 ports)
 
* Video (both internal and VGA)
 
* Expresscard slot (including hotplugging)
 
* Sound (integrated speakers, integrated mic, external headphones, external mic)
 
* LAN
 
* mini-PCIe slots (both wlan and wwan)
 
* Linux (through GRUB-as-payload)
 
* Windows (through GRUB-as-payload loading SeaBIOS image from disk; you have to use extracted VGA blob, dumped from memory isn't good enough)
 
* SD card slot
 
* Thermal management
 
* Fingerprint reader.
 
* Webcam
 
* Keyboard backlight
 
* Thinklight.
 
* bluetooth
 
* dock
 
* msata (fixed in commit c8f54a1109072706e2fa091dc9ab4ad3eb057b42)
 
Not tested:
 
* mini displayport (probably works)
 
  
== Proprietary components status ==
+
|CPU_status = OK
* CPU Microcode (optional)
+
|CPU_comments =
* VGA option rom
+
|CPU_L1_status = OK
* MRC
+
|CPU_L1_comments = Always on
* ME(Management Engine) => you do not have to touch it(just leave it where it is)
+
|CPU_L2_status = OK
* EC(Embedded Controller) =>  you do not have to touch it(just leave it where it is)
+
|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 = OK
 +
|SATA_status = OK
 +
|SATA_comments =
 +
|Onboard_SCSI_status = N/A
 +
|USB_status = OK
 +
|USB_comments =  
 +
|Onboard_VGA_status = OK
 +
|Onboard_VGA_comments = BIOS/console: works.
 +
|Onboard_ethernet_status = OK
 +
|Onboard_audio_status = OK
 +
|Onboard_audio_comments = Basic two channel audio works fine.
 +
|Onboard_modem_status = N/A
 +
|Onboard_firewire_status = N/A
 +
|Smartcard_status = N/A
 +
|Onboard_CF_status = N/A
 +
|Onboard_PCMCIA_status = N/A
 +
|Onboard_Wifi_status = Untested
 +
|Onboard_Bluetooth_status = Untested
 +
 
 +
|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 = OK
 +
|PCI_cards_comments =
 +
|PCIE_x1_status = OK
 +
|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 = OK
 +
|PS2_mouse_status = OK
 +
|Game_port_status = N/A
 +
|IR_status = N/A
 +
|IR_comments =
 +
|Speaker_status = OK
 +
|DiskOnChip_status = N/A
 +
 
 +
|Trackpoint_status = OK
 +
|Touchpad_status = OK
 +
|FnHotkeys_status = OK
 +
|Fingerprint_status = OK
  
== GPIO layout ==
+
|Docking_VGA_status = OK
 +
|Docking_LAN_status = OK
 +
|Docking_USB_status = OK
 +
|Docking_Audio_status = Untested
 +
|Docking_Displayport_status = Untested
 +
|Thinklight_status = OK
 +
|Webcam_status = OK
  
This information should not be considered reliable in any way, shape or form
+
|Sensors_status = OK
 +
|Sensors_comments =
 +
|Watchdog_status = OK
 +
|Watchdog_comments = Disabled early.
 +
|SMBus_status = OK
 +
|CAN_bus_status = N/A
 +
|CPUfreq_status = OK
 +
|Powersave_status = N/A
 +
|ACPI_status = WIP
 +
|ACPI_comments = Mostly working, needs a good Review!
 +
|Reboot_status = OK
 +
|Poweroff_status = OK
 +
|Suspend_status = OK
 +
|Poweroff_comments =
 +
|LEDs_status = N/A
 +
|HPET_status = OK
 +
|RNG_status = OK
 +
|WakeOnModem_status = N/A
 +
|WakeOnLAN_status = Untested
 +
|WakeOnKeyboard_status = Untested
 +
|WakeOnMouse_status = Untested
 +
|Flashrom_status = OK
 +
|Flashrom_comments = MXIC MX25L3206E 4MB SPI Flash
  
* GPIO57 - OUT - controls..
+
}}
  
== General Purpose Events layout ==
+
== Building Firmware ==
 +
Please have a look at [[Intel_Sandybridge_Build_Tutorial]].
  
* GPE? - EC SCI
+
== Nvidia GPU ==
* GPE? - EC SMI
+
State of dual graphics on Lenovo Notebooks: [[Board:lenovo/Nvidia_Optimus]]
  
 
== Flashing ==
 
== Flashing ==
Line 77: Line 155:
 
* Descriptor (12K)
 
* Descriptor (12K)
 
* ME firmware (5M-12K)
 
* ME firmware (5M-12K)
 +
* GbE firmware
 
* System flash (7M)
 
* System flash (7M)
  
ME firmware is not readable.
+
The 'Descriptor' region locks the flash and so you need to flash externally. ME firmware region is not readable from the CPU.
Vendor firmware locks the flash and so you need to flash externally (unless until someone figures out a way around it).
+
 
 +
More precisely:
 +
 
 +
  0x54: 0x00000000 FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only.
 +
  0x58: 0x0bff0500 FREG1: BIOS region (0x00500000-0x00bfffff) is read-write.
 +
  0x5C: 0x04ff0003 FREG2: Warning: Management Engine region (0x00003000-0x004fffff) is locked.
 +
  0x60: 0x00020001 FREG3: Gigabit Ethernet region (0x00001000-0x00002fff) is read-write
 +
 
 +
=== Outline ===
  
 
Proceeds as follows:
 
Proceeds as follows:
 
* Turn off your laptop, remove battery and AC adapter.
 
* Turn off your laptop, remove battery and AC adapter.
* Remove the keyboard.
+
* Dismantle machine.
* Connect your external SPI flasher to the top SPI chip which is under palm resting space, on left side of the board. It's a 4M chip. IF you've chosen CBFS_SIZE 4M or smaller that's the only chip you need to reflash.
+
* Connect external SPI flasher to the 4MB chip.
  
I recommend using SOIC clip. Depending on the flasher you use, you may have to use separate
+
Remark: You will need a SOIC clip to connect an external SPI programmer.
3.3V source. Make sure not to feed more than 3.3V ot the chip. I used
+
 
buspirate as flasher and 3.3V power lines from another computer.
+
=== Flashing Process ===
 +
 
 +
1.) Read out the flash to make a backup '''Twice''', compare to ensure they match and then save a
 +
copy of it on external media:
  
* Read the flash. Twice. Compare the files to be sure. Save a copy of it on
 
external media.
 
 
  flashrom -p <yourprogrammer> -r flash.bin
 
  flashrom -p <yourprogrammer> -r flash.bin
 
  flashrom -p <yourprogrammer> -r flash2.bin
 
  flashrom -p <yourprogrammer> -r flash2.bin
 
  diff flash.bin flash2.bin
 
  diff flash.bin flash2.bin
  
If they don't match, do not proceed. If the file is 8M, you're flashing wrong chip, connect to the right one.
+
'''If they don't match, do not proceed and if the file size is 8M you are flashing the wrong chip.'''
 +
 
 +
2.) Since you have to write only top 4M out of the 12M coreboot.rom, first split out those 4M by:
  
* Write the flash. Since you have to write only top 4M, first split out those 4M:
 
 
   dd of=top.rom bs=1M if=build/coreboot.rom skip=8
 
   dd of=top.rom bs=1M if=build/coreboot.rom skip=8
  
* Use flashrom to flash top.rom.
+
Then use flashrom to flash top.rom.
 
 
If you have trouble reading the chip successfully,
 
the most common problems are
 
*insufficient power supply
 
*bad contacts
 
*too long wires
 
*bad pinout
 
The cable shipped with buspirate was too long, and needed to be trimmed.
 
 
 
See also [http://flashrom.org/ISP In-System Programming]
 

Latest revision as of 13:39, 31 December 2017

Specification

The machine has:

- Chipset: Intel QM77
- GPU's: Intel Integrated HD Graphics
       : Discrete NVIDIA NVS 5400M (1 GB VRAM) with Optimus Technology

and pci configuration of:

-[0000:00]-+-00.0  8086:0154
           +-02.0  8086:0166
           +-16.0  8086:1e3a
           +-19.0  8086:1502
           +-1a.0  8086:1e2d
           +-1b.0  8086:1e20
           +-1c.0-[02]----00.0  1180:e823
           +-1c.1-[03]----00.0  8086:4238
           +-1c.2-[04-0b]--
           +-1d.0  8086:1e26
           +-1f.0  8086:1e55
           +-1f.2  8086:1e03
           \-1f.3  8086:1e22

Proprietary components status

  • CPU Microcode (optional)
  • ME(Management Engine) => 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)

Status

Intel_Native_Raminit has it's own status page.

Device/functionality Status Comments
CPU
CPU works OK
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 OK BIOS/console: works.
On-board Ethernet OK
On-board Audio OK Basic two channel audio works fine.
On-board Modem N/A
On-board FireWire N/A
On-board Smartcard reader N/A
On-board CompactFlash N/A
On-board PCMCIA N/A
On-board Wifi Untested
On-board Bluetooth Untested
On-board SD card reader N/A
Add-on slots/cards
ISA add-on cards N/A
Audio/Modem-Riser (AMR/CNR) cards N/A
PCI add-on cards OK
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 OK
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 OK
PS/2 mouse OK
Game port N/A
Infrared N/A
PC speaker OK
DiskOnChip N/A
Input
Trackpoint OK
Touchpad OK
Fn Hotkeys OK
Fingerprint Reader OK
Laptop
Docking VGA OK
Docking LAN OK
Docking USB OK
Docking Audio Untested
Docking Displayport Untested
Thinklight OK
Webcam OK
Miscellaneous
Sensors / fan control OK
Hardware watchdog OK Disabled early.
SMBus OK
CAN bus N/A
CPU frequency scaling OK
Other powersaving features N/A
ACPI WIP Mostly working, needs a good Review!
Reboot OK
Poweroff OK
Suspend OK
Nonstandard LEDs N/A
High precision event timers (HPET) OK
Random number generator (RNG) OK
Wake on modem ring N/A
Wake on LAN Untested
Wake on keyboard Untested
Wake on mouse Untested
TPM Unknown
Flashrom OK MXIC MX25L3206E 4MB SPI Flash

Building Firmware

Please have a look at Intel_Sandybridge_Build_Tutorial.

Nvidia GPU

State of dual graphics on Lenovo Notebooks: Board:lenovo/Nvidia_Optimus

Flashing

Location of the SPI chips

T530 has 2 flash chips of 8M and 4M. They're concatenated to one virtual flash chip of 12M which is itself subdivided in roughly in 4 parts:

  • Descriptor (12K)
  • ME firmware (5M-12K)
  • GbE firmware
  • System flash (7M)

The 'Descriptor' region locks the flash and so you need to flash externally. ME firmware region is not readable from the CPU.

More precisely:

 0x54: 0x00000000 FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only.
 0x58: 0x0bff0500 FREG1: BIOS region (0x00500000-0x00bfffff) is read-write.
 0x5C: 0x04ff0003 FREG2: Warning: Management Engine region (0x00003000-0x004fffff) is locked.
 0x60: 0x00020001 FREG3: Gigabit Ethernet region (0x00001000-0x00002fff) is read-write

Outline

Proceeds as follows:

  • Turn off your laptop, remove battery and AC adapter.
  • Dismantle machine.
  • Connect external SPI flasher to the 4MB chip.

Remark: You will need a SOIC clip to connect an external SPI programmer.

Flashing Process

1.) Read out the flash to make a backup Twice, compare to ensure they match and then save a copy of it on external media:

flashrom -p <yourprogrammer> -r flash.bin
flashrom -p <yourprogrammer> -r flash2.bin
diff flash.bin flash2.bin

If they don't match, do not proceed and if the file size is 8M you are flashing the wrong chip.

2.) Since you have to write only top 4M out of the 12M coreboot.rom, first split out those 4M by:

 dd of=top.rom bs=1M if=build/coreboot.rom skip=8

Then use flashrom to flash top.rom.