Board:lenovo/t530: Difference between revisions
Eocallaghan (talk | contribs) mNo edit summary |
No edit summary |
||
(25 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
== 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 == | == Status == | ||
[[Intel_Native_Raminit]] has it's own status page. | |||
{{Status| | |||
|CPU_status = OK | |||
|CPU_comments = | |||
|CPU_L1_status = OK | |||
|CPU_L1_comments = Always on | |||
|CPU_L2_status = OK | |||
|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 | |||
|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 | |||
|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 | |||
}} | |||
== | == 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 == | == Flashing == | ||
[[File:T530_SPI_chips.jpg|thumb|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: | 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) | * Descriptor (12K) | ||
* ME firmware (5M-12K) | * ME firmware (5M-12K) | ||
* GbE firmware | |||
* System flash (7M) | * 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: | Proceeds as follows: | ||
* Turn off your laptop, remove battery and AC adapter. | * Turn off your laptop, remove battery and AC adapter. | ||
* | * Dismantle machine. | ||
* Connect | * 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 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 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 | dd of=top.rom bs=1M if=build/coreboot.rom skip=8 | ||
Then use flashrom to flash top.rom. | |||
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=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 }}" | OK | |||||||
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 | Native | ||||||
Dual channel support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
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 | |||||||
On-board VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | BIOS/console: works. | ||||||
On-board Ethernet | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
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 }}" | Untested | |||||||
On-board Bluetooth | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
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 }}" | OK | |||||||
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 | |||||||
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 }}" | OK | |||||||
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 }}" | N/A | |||||||
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 }}" | OK | |||||||
Touchpad | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Fn Hotkeys | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Fingerprint Reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Laptop | ||||||||
Docking VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Docking LAN | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Docking USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Docking Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Docking Displayport | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Thinklight | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Webcam | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
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 }}" | OK | Disabled early. | ||||||
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 }}" | Untested | |||||||
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 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
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.