Hello,
I have had partial success with flashing my T60. After the first flash the laptop re-booted OK, but the screen is completely black. Fiddling with the backlight buttons doesn't have any effect. Fortunately, I can connect via ssh so I am not locked out.
I believe that my mistake was to put my ATI VGA bios into coreboot rather than SeaBIOS. I have now corrected this but I can't flash the updated version. For the first flash I used the following command:
./flashrom/i686/flashrom_lenovobios_sst -p internal -w coreboot.rom
I got loads of errors as mentioned in the instructions, but it seemed to work. Since I now want to do another flash I have followed the instructions and used this simpler command:
./flashrom/i686/flashrom -p internal -w coreboot.rom
I get the following error:
flashrom v0.9.8-unknown on Linux 3.10.0-229.4.2.el7.x86_64 (x86_64) flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK. coreboot table found at 0xbfea0000. ======================================================================== WARNING! You seem to be running flashrom on an unsupported laptop. Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See the manpage and http://www.flashrom.org/Laptops for details.
If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== Aborting. Error: Programmer initialization failed.
I have tried flashrom, flashrom_lenovobios_sst and flashrom_lenovobios_macronix and get the same error every time. I have also tried re-flashing the current working but blank screen bios and that won't go in either.
Suggestions gratefully received.
On 27.06.2015 15:20, Richard Simpson wrote:
Hello,
I have had partial success with flashing my T60. After the first flash the laptop re-booted OK, but the screen is completely black. Fiddling with the backlight buttons doesn't have any effect. Fortunately, I can connect via ssh so I am not locked out.
I believe that my mistake was to put my ATI VGA bios into coreboot rather than SeaBIOS. I have now corrected this but I can't flash the updated version. For the first flash I used the following command:
./flashrom/i686/flashrom_lenovobios_sst -p internal -w coreboot.rom
I got loads of errors as mentioned in the instructions, but it seemed to work. Since I now want to do another flash I have followed the instructions and used this simpler command:
./flashrom/i686/flashrom -p internal -w coreboot.rom
I get the following error:
flashrom v0.9.8-unknown on Linux 3.10.0-229.4.2.el7.x86_64 (x86_64) flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK. coreboot table found at 0xbfea0000. ======================================================================== WARNING! You seem to be running flashrom on an unsupported laptop. Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See the manpage and http://www.flashrom.org/Laptops for details.
If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== Aborting. Error: Programmer initialization failed.
I have tried flashrom, flashrom_lenovobios_sst and flashrom_lenovobios_macronix and get the same error every time. I have also tried re-flashing the current working but blank screen bios and that won't go in either.
Suggestions gratefully received.
flashrom -p internal:laptop=force_I_want_a_brick -w coreboot.rom
That should work.
Then take care of bucts again.
Regards, Carl-Daniel
Carl-Daniel,
Thanks. Despite the scary nature of the command and my lack of actual desire for a brick, that seems to have worked to get the new bios in. Sadly the screen is still black. I have created a separate thread to ask about that rather different problem.
Richard Simpson
On 27/06/15 19:26, Carl-Daniel Hailfinger wrote:
On 27.06.2015 15:20, Richard Simpson wrote:
Hello,
I have had partial success with flashing my T60. After the first flash the laptop re-booted OK, but the screen is completely black. Fiddling with the backlight buttons doesn't have any effect. Fortunately, I can connect via ssh so I am not locked out.
I believe that my mistake was to put my ATI VGA bios into coreboot rather than SeaBIOS. I have now corrected this but I can't flash the updated version. For the first flash I used the following command:
./flashrom/i686/flashrom_lenovobios_sst -p internal -w coreboot.rom
I got loads of errors as mentioned in the instructions, but it seemed to work. Since I now want to do another flash I have followed the instructions and used this simpler command:
./flashrom/i686/flashrom -p internal -w coreboot.rom
I get the following error:
flashrom v0.9.8-unknown on Linux 3.10.0-229.4.2.el7.x86_64 (x86_64) flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK. coreboot table found at 0xbfea0000. ======================================================================== WARNING! You seem to be running flashrom on an unsupported laptop. Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See the manpage and http://www.flashrom.org/Laptops for details.
If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== Aborting. Error: Programmer initialization failed.
I have tried flashrom, flashrom_lenovobios_sst and flashrom_lenovobios_macronix and get the same error every time. I have also tried re-flashing the current working but blank screen bios and that won't go in either.
Suggestions gratefully received.
flashrom -p internal:laptop=force_I_want_a_brick -w coreboot.rom
That should work.
Then take care of bucts again.
Regards, Carl-Daniel
Hello,
I have finally successfully flashed the BIOS on my T60 with coreboot. Sadly, my ATI controlled screen remains completely black. Fortunately I can still get in via ssh. Here is what I can deduce so far.
lspci says: 01:00.0 0300: 1002:7145 (prog-if 00 [VGA controller]) Subsystem: 1002:0000 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 16 Region 0: Memory at e0000000 (32-bit, prefetchable) [size=128M] Region 1: I/O ports at 4000 [size=256] Region 2: Memory at ec120000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at ec100000 [disabled] [size=128K] Capabilities: <access denied> Kernel driver in use: radeon
The vgabios which I extracted from the factory bios reports as follows:
Image 1: PCI Expansion ROM Header: Signature: 0x55aa (Ok) CPU unique data: 0x7e 0xe9 0x6f 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Pointer to PCI Data Structure: 0x0230
PCI Data Structure: Signature: 0x50434952 'PCIR' (Ok) Vendor ID: 0x1002 Device ID: 0x7145 Vital Product Data: 0x0000 PCI Data Structure Length: 0x0018 (24 bytes) PCI Data Structure Revision: 0x00 Class Code: 0x030000 (VGA Display controller) Image Length: 0x007e blocks (64512 bytes) Revision Level of Code/Data: 0x090c Code Type: 0x00 (Intel x86) Last-Image Flag: 0x80 (last image in rom) Reserved: 0x0000
Platform specific data for x86 compliant option rom: Initialization Size: 0x7e (64512 bytes) Entry point for INIT function: 0x275
This looks like the right VGA BIOS to me.
Once I have added it to the coreboot image I can check the contents as follows:
coreboot.rom: 2048 kB, bootblocksize 952, romsize 2097152, offset 0x0 alignment: 64 bytes, architecture: x86
Name Offset Type Size cmos.default 0x0 cmos_default 256 cmos_layout.bin 0x140 cmos_layout 1824 fallback/dsdt.aml 0x8c0 raw 12037 cpu_microcode_blob.bin 0x3800 microcode 94208 etc/ps2-keyboard-spinup 0x1a880 raw 8 config 0x1a8c0 raw 4046 revision 0x1b8c0 raw 571 (empty) 0x1bb40 null 17432 fallback/romstage 0x1ff80 stage 36524 fallback/ramstage 0x28ec0 stage 53635 fallback/payload 0x36080 payload 55837 pci1002,7145.rom 0x43b00 raw 64512 (empty) 0x53740 null 1754264
I would be most grateful for any suggestions as to where I might be going wring or further diagnostics.
Thanks,
Richard Simpson
On 27.06.2015 23:39, Richard Simpson wrote:
Hello,
I have finally successfully flashed the BIOS on my T60 with coreboot. Sadly, my ATI controlled screen remains completely black. Fortunately I can still get in via ssh. Here is what I can deduce so far.+
AFAICS you have exactly the same T60 as I have.
lspci says: 01:00.0 0300: 1002:7145 (prog-if 00 [VGA controller]) Subsystem: 1002:0000 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 16 Region 0: Memory at e0000000 (32-bit, prefetchable) [size=128M] Region 1: I/O ports at 4000 [size=256] Region 2: Memory at ec120000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at ec100000 [disabled] [size=128K] Capabilities: <access denied> Kernel driver in use: radeon
The vgabios which I extracted from the factory bios
Ah yes. Bad idea. AFAIK the factory BIOS patches the VGA optionrom at runtime with the correct values for the LVDS panel. This means you either have to patch the VGA optionrom yourself or you have to extract the VGA optionrom from the memory of the running system. If you extract it from memory, please note that the runtime patching causes the checksum to be incorrect, and you either have to fix the checksum or tell SeaBIOS to ignore the checksum.
reports as follows:
Image 1: PCI Expansion ROM Header: Signature: 0x55aa (Ok) CPU unique data: 0x7e 0xe9 0x6f 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Pointer to PCI Data Structure: 0x0230
PCI Data Structure: Signature: 0x50434952 'PCIR' (Ok) Vendor ID: 0x1002 Device ID: 0x7145 Vital Product Data: 0x0000 PCI Data Structure Length: 0x0018 (24 bytes) PCI Data Structure Revision: 0x00 Class Code: 0x030000 (VGA Display controller) Image Length: 0x007e blocks (64512 bytes) Revision Level of Code/Data: 0x090c Code Type: 0x00 (Intel x86) Last-Image Flag: 0x80 (last image in rom) Reserved: 0x0000
Platform specific data for x86 compliant option rom: Initialization Size: 0x7e (64512 bytes) Entry point for INIT function: 0x275
This looks like the right VGA BIOS to me.
Once I have added it to the coreboot image I can check the contents as follows:
coreboot.rom: 2048 kB, bootblocksize 952, romsize 2097152, offset 0x0 alignment: 64 bytes, architecture: x86
Name Offset Type Size cmos.default 0x0 cmos_default 256 cmos_layout.bin 0x140 cmos_layout 1824 fallback/dsdt.aml 0x8c0 raw 12037 cpu_microcode_blob.bin 0x3800 microcode 94208 etc/ps2-keyboard-spinup 0x1a880 raw 8 config 0x1a8c0 raw 4046 revision 0x1b8c0 raw 571 (empty) 0x1bb40 null 17432 fallback/romstage 0x1ff80 stage 36524 fallback/ramstage 0x28ec0 stage 53635 fallback/payload 0x36080 payload 55837 pci1002,7145.rom 0x43b00 raw 64512 (empty) 0x53740 null 1754264
I would be most grateful for any suggestions as to where I might be going wring or further diagnostics.
On the first coreboot try I had a black screen as well on my T60 (ATI graphics). Funnily enough, the external VGA worked. Could you check if that's the case for you?
Regards, Carl-Daniel
Carl-Daniel,
I have to say that knowing that you have the same T60 and that it is working is a big moral boost!
Yes, the VGA port is working.
Can you possibly expand on your instructions below?
1) You suggest that I patch the option ROM myself. Where would I find instructions on how to do this?
2) If I decide that I need to extract it from a running system then I presume that I need to re-flash the factory BIOS. Can I just do this with the same flashrom command that I used to flash coreboot?
3) On this page (http://www.coreboot.org/VGA_support) two ways of getting the video BIOS from a running system are listed ('Retrieval via Linux kernel' and 'Extraction from mapped memory'). Does it matter which one I try?
4) Can you be a lot more specific about what I should do about the checksum?
Apologies if all these instructions are in the Wiki and I have been too dumb to find them.
Regards,
Richard
On 27/06/15 23:19, Carl-Daniel Hailfinger wrote:
On 27.06.2015 23:39, Richard Simpson wrote:
Hello,
I have finally successfully flashed the BIOS on my T60 with coreboot. Sadly, my ATI controlled screen remains completely black. Fortunately I can still get in via ssh. Here is what I can deduce so far.+
AFAICS you have exactly the same T60 as I have.
lspci says: 01:00.0 0300: 1002:7145 (prog-if 00 [VGA controller]) Subsystem: 1002:0000 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 16 Region 0: Memory at e0000000 (32-bit, prefetchable) [size=128M] Region 1: I/O ports at 4000 [size=256] Region 2: Memory at ec120000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at ec100000 [disabled] [size=128K] Capabilities: <access denied> Kernel driver in use: radeon
The vgabios which I extracted from the factory bios
Ah yes. Bad idea. AFAIK the factory BIOS patches the VGA optionrom at runtime with the correct values for the LVDS panel. This means you either have to patch the VGA optionrom yourself or you have to extract the VGA optionrom from the memory of the running system. If you extract it from memory, please note that the runtime patching causes the checksum to be incorrect, and you either have to fix the checksum or tell SeaBIOS to ignore the checksum.
reports as follows:
Image 1: PCI Expansion ROM Header: Signature: 0x55aa (Ok) CPU unique data: 0x7e 0xe9 0x6f 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Pointer to PCI Data Structure: 0x0230
PCI Data Structure: Signature: 0x50434952 'PCIR' (Ok) Vendor ID: 0x1002 Device ID: 0x7145 Vital Product Data: 0x0000 PCI Data Structure Length: 0x0018 (24 bytes) PCI Data Structure Revision: 0x00 Class Code: 0x030000 (VGA Display controller) Image Length: 0x007e blocks (64512 bytes) Revision Level of Code/Data: 0x090c Code Type: 0x00 (Intel x86) Last-Image Flag: 0x80 (last image in rom) Reserved: 0x0000
Platform specific data for x86 compliant option rom: Initialization Size: 0x7e (64512 bytes) Entry point for INIT function: 0x275
This looks like the right VGA BIOS to me.
Once I have added it to the coreboot image I can check the contents as follows:
coreboot.rom: 2048 kB, bootblocksize 952, romsize 2097152, offset 0x0 alignment: 64 bytes, architecture: x86
Name Offset Type Size cmos.default 0x0 cmos_default 256 cmos_layout.bin 0x140 cmos_layout 1824 fallback/dsdt.aml 0x8c0 raw 12037 cpu_microcode_blob.bin 0x3800 microcode 94208 etc/ps2-keyboard-spinup 0x1a880 raw 8 config 0x1a8c0 raw 4046 revision 0x1b8c0 raw 571 (empty) 0x1bb40 null 17432 fallback/romstage 0x1ff80 stage 36524 fallback/ramstage 0x28ec0 stage 53635 fallback/payload 0x36080 payload 55837 pci1002,7145.rom 0x43b00 raw 64512 (empty) 0x53740 null 1754264
I would be most grateful for any suggestions as to where I might be going wring or further diagnostics.
On the first coreboot try I had a black screen as well on my T60 (ATI graphics). Funnily enough, the external VGA worked. Could you check if that's the case for you?
Regards, Carl-Daniel
Hi Richard,
On 28.06.2015 12:58, Richard Simpson wrote:
I have to say that knowing that you have the same T60 and that it is working is a big moral boost!
Imagine how I felt when it happened to me. Fortunately that was at a coreboot developer meeting and we had the tools to recover in case it wouldn't have worked.
Yes, the VGA port is working.
Can you possibly expand on your instructions below?
- You suggest that I patch the option ROM myself. Where would I find
instructions on how to do this?
I had hoped that the option ROM patching was straightforward, e.g. having LVDS data or somesuch in there. Comparing hexdumps of a memory-extracted and a biosimage-extracted option ROM showed me that while the differences are clearly visible, their meaning is not obvious (it's not EDID). So this method is probably not going to fly.
- If I decide that I need to extract it from a running system then I
presume that I need to re-flash the factory BIOS. Can I just do this with the same flashrom command that I used to flash coreboot?
You can do this with the same flashrom command you used to flash the image a second time. Please don't use bucts for flashing back from coreboot to factory BIOS, you only need it in the BIOS->coreboot direction. That said, I think Vladimir Serbinenko (phcoder) had a trick on how to modify the original BIOS so that bucts wouldn't be needed any more in either direction.
Łukasz Dmitrowski is one of our GSoC students and part of his project is to try to make such stuff easier in the future. He needs data for that, though. Richard, could you please collect the following data (as root) from the system while it's running the factory BIOS? lspci -nnvvvxxxx dmidecode video BIOS via both extraction methods (please make sure that we can find out which is which) superiotool -deV dmesg /var/log/Xorg.0.log (name may be a bit different, I want a log file from Xorg running on the machine while the factory BIOS is active) flashrom dump of the factory BIOS
Please don't send that data to the mailing list, I'll provide some space for you to upload it.
- On this page (http://www.coreboot.org/VGA_support) two ways of
getting the video BIOS from a running system are listed ('Retrieval via Linux kernel' and 'Extraction from mapped memory'). Does it matter which one I try?
AFAICS the images you get should be identical. Better check them to make sure.
- Can you be a lot more specific about what I should do about the checksum?
Either let SeaBIOS ignore the checksum: # cbfstool build/coreboot.rom add-int -i 0 -n etc/optionroms-checksum Or you correct the checksum of the option ROM itself. IIRC there is some tool to do that, but I coudln't find it in my bash history.
Apologies if all these instructions are in the Wiki and I have been too dumb to find them.
Not sure if all of this is in the wiki. If you think anything is missing, please tell me so I can add it.
Regards, Carl-Daniel
On 27/06/15 23:19, Carl-Daniel Hailfinger wrote:
On 27.06.2015 23:39, Richard Simpson wrote:
I have finally successfully flashed the BIOS on my T60 with coreboot. Sadly, my ATI controlled screen remains completely black. Fortunately I can still get in via ssh. Here is what I can deduce so far.+
AFAICS you have exactly the same T60 as I have.
lspci says: 01:00.0 0300: 1002:7145 (prog-if 00 [VGA controller]) [...] The vgabios which I extracted from the factory bios
Ah yes. Bad idea. AFAIK the factory BIOS patches the VGA optionrom at runtime with the correct values for the LVDS panel. This means you either have to patch the VGA optionrom yourself or you have to extract the VGA optionrom from the memory of the running system. If you extract it from memory, please note that the runtime patching causes the checksum to be incorrect, and you either have to fix the checksum or tell SeaBIOS to ignore the checksum.
Carl-Daniel,
I am back in the factory BIOS. I have gathered the data for Łukasz and can upload it as soon as you send me a location.
For some reason I couldn't get the option ROM via the Linux kernel, but only from the mapped memory. Basically, there didn't seem to be any rom file in the relevant /sys directory. See below:
[rsimpson@newpercy Libreboot]$ lspci -tv -[0000:00]-+-00.0 Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub +-01.0-[01]----00.0 Advanced Micro Devices, Inc. [AMD/ATI] RV515/M54 [Mobility Radeon X1400] +-1b.0 Intel Corporation NM10/ICH7 Family High Definition Audio Controller +-1c.0-[02]----00.0 Intel Corporation 82573L Gigabit Ethernet Controller +-1c.1-[03]----00.0 Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection +-1c.2-[04-0b]-- +-1c.3-[0c-13]-- +-1d.0 Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 +-1d.1 Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 +-1d.2 Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 +-1d.3 Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 +-1d.7 Intel Corporation NM10/ICH7 Family USB2 EHCI Controller +-1e.0-[15-18]----00.0 Texas Instruments PCI1510 PC card Cardbus Controller +-1f.0 Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge +-1f.1 Intel Corporation 82801G (ICH7 Family) IDE Controller +-1f.2 Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] -1f.3 Intel Corporation NM10/ICH7 Family SMBus Controller [rsimpson@newpercy Libreboot]$ ls /sys/devices/pci0000:00/0000:00:01.0/ 0000:00:01.0:pcie01 config driver local_cpus pci_bus resource vendor 0000:00:01.0:pcie08 consistent_dma_mask_bits enable modalias power subsystem 0000:01:00.0 d3cold_allowed firmware_node msi_bus remove subsystem_device broken_parity_status device irq msi_irqs rescan subsystem_vendor class dma_mask_bits local_cpulist numa_node reset uevent [rsimpson@newpercy Libreboot]$
I'll try switching back to coreboot later today.
Cheers,
Richard
On 28/06/15 13:45, Carl-Daniel Hailfinger wrote:
Hi Richard,
On 28.06.2015 12:58, Richard Simpson wrote:
I have to say that knowing that you have the same T60 and that it is working is a big moral boost!
Imagine how I felt when it happened to me. Fortunately that was at a coreboot developer meeting and we had the tools to recover in case it wouldn't have worked.
Yes, the VGA port is working.
Can you possibly expand on your instructions below?
- You suggest that I patch the option ROM myself. Where would I find
instructions on how to do this?
I had hoped that the option ROM patching was straightforward, e.g. having LVDS data or somesuch in there. Comparing hexdumps of a memory-extracted and a biosimage-extracted option ROM showed me that while the differences are clearly visible, their meaning is not obvious (it's not EDID). So this method is probably not going to fly.
- If I decide that I need to extract it from a running system then I
presume that I need to re-flash the factory BIOS. Can I just do this with the same flashrom command that I used to flash coreboot?
You can do this with the same flashrom command you used to flash the image a second time. Please don't use bucts for flashing back from coreboot to factory BIOS, you only need it in the BIOS->coreboot direction. That said, I think Vladimir Serbinenko (phcoder) had a trick on how to modify the original BIOS so that bucts wouldn't be needed any more in either direction.
Łukasz Dmitrowski is one of our GSoC students and part of his project is to try to make such stuff easier in the future. He needs data for that, though. Richard, could you please collect the following data (as root) from the system while it's running the factory BIOS? lspci -nnvvvxxxx dmidecode video BIOS via both extraction methods (please make sure that we can find out which is which) superiotool -deV dmesg /var/log/Xorg.0.log (name may be a bit different, I want a log file from Xorg running on the machine while the factory BIOS is active) flashrom dump of the factory BIOS
Please don't send that data to the mailing list, I'll provide some space for you to upload it.
- On this page (http://www.coreboot.org/VGA_support) two ways of
getting the video BIOS from a running system are listed ('Retrieval via Linux kernel' and 'Extraction from mapped memory'). Does it matter which one I try?
AFAICS the images you get should be identical. Better check them to make sure.
- Can you be a lot more specific about what I should do about the checksum?
Either let SeaBIOS ignore the checksum: # cbfstool build/coreboot.rom add-int -i 0 -n etc/optionroms-checksum Or you correct the checksum of the option ROM itself. IIRC there is some tool to do that, but I coudln't find it in my bash history.
Apologies if all these instructions are in the Wiki and I have been too dumb to find them.
Not sure if all of this is in the wiki. If you think anything is missing, please tell me so I can add it.
Regards, Carl-Daniel
On 27/06/15 23:19, Carl-Daniel Hailfinger wrote:
On 27.06.2015 23:39, Richard Simpson wrote:
I have finally successfully flashed the BIOS on my T60 with coreboot. Sadly, my ATI controlled screen remains completely black. Fortunately I can still get in via ssh. Here is what I can deduce so far.+
AFAICS you have exactly the same T60 as I have.
lspci says: 01:00.0 0300: 1002:7145 (prog-if 00 [VGA controller]) [...] The vgabios which I extracted from the factory bios
Ah yes. Bad idea. AFAIK the factory BIOS patches the VGA optionrom at runtime with the correct values for the LVDS panel. This means you either have to patch the VGA optionrom yourself or you have to extract the VGA optionrom from the memory of the running system. If you extract it from memory, please note that the runtime patching causes the checksum to be incorrect, and you either have to fix the checksum or tell SeaBIOS to ignore the checksum.
So, can someone remind me, is there no native graphics for the T60? I could have sworn we got there last time we met. Or even in Berlin.
ron
On Sun, Jun 28, 2015 at 7:52 AM Richard Simpson coreboot@huskydog.org.uk wrote:
Carl-Daniel,
I am back in the factory BIOS. I have gathered the data for Łukasz and can upload it as soon as you send me a location.
For some reason I couldn't get the option ROM via the Linux kernel, but only from the mapped memory. Basically, there didn't seem to be any rom file in the relevant /sys directory. See below:
[rsimpson@newpercy Libreboot]$ lspci -tv -[0000:00]-+-00.0 Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub +-01.0-[01]----00.0 Advanced Micro Devices, Inc. [AMD/ATI] RV515/M54 [Mobility Radeon X1400] +-1b.0 Intel Corporation NM10/ICH7 Family High Definition Audio Controller +-1c.0-[02]----00.0 Intel Corporation 82573L Gigabit Ethernet Controller +-1c.1-[03]----00.0 Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection +-1c.2-[04-0b]-- +-1c.3-[0c-13]-- +-1d.0 Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 +-1d.1 Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 +-1d.2 Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 +-1d.3 Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 +-1d.7 Intel Corporation NM10/ICH7 Family USB2 EHCI Controller +-1e.0-[15-18]----00.0 Texas Instruments PCI1510 PC card Cardbus Controller +-1f.0 Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge +-1f.1 Intel Corporation 82801G (ICH7 Family) IDE Controller +-1f.2 Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] -1f.3 Intel Corporation NM10/ICH7 Family SMBus Controller [rsimpson@newpercy Libreboot]$ ls /sys/devices/pci0000:00/0000:00:01.0/ 0000:00:01.0:pcie01 config driver local_cpus pci_bus resource vendor 0000:00:01.0:pcie08 consistent_dma_mask_bits enable modalias power subsystem 0000:01:00.0 d3cold_allowed firmware_node msi_bus remove subsystem_device broken_parity_status device irq msi_irqs rescan subsystem_vendor class dma_mask_bits local_cpulist numa_node reset uevent [rsimpson@newpercy Libreboot]$
I'll try switching back to coreboot later today.
Cheers,
Richard
On 28/06/15 13:45, Carl-Daniel Hailfinger wrote:
Hi Richard,
On 28.06.2015 12:58, Richard Simpson wrote:
I have to say that knowing that you have the same T60 and that it is working is a big moral boost!
Imagine how I felt when it happened to me. Fortunately that was at a coreboot developer meeting and we had the tools to recover in case it wouldn't have worked.
Yes, the VGA port is working.
Can you possibly expand on your instructions below?
- You suggest that I patch the option ROM myself. Where would I find
instructions on how to do this?
I had hoped that the option ROM patching was straightforward, e.g. having LVDS data or somesuch in there. Comparing hexdumps of a memory-extracted and a biosimage-extracted option ROM showed me that while the differences are clearly visible, their meaning is not obvious (it's not EDID). So this method is probably not going to fly.
- If I decide that I need to extract it from a running system then I
presume that I need to re-flash the factory BIOS. Can I just do this with the same flashrom command that I used to flash coreboot?
You can do this with the same flashrom command you used to flash the image a second time. Please don't use bucts for flashing back from coreboot to factory BIOS, you only need it in the BIOS->coreboot
direction.
That said, I think Vladimir Serbinenko (phcoder) had a trick on how to modify the original BIOS so that bucts wouldn't be needed any more in either direction.
Łukasz Dmitrowski is one of our GSoC students and part of his project is to try to make such stuff easier in the future. He needs data for that, though. Richard, could you please collect the following data (as root) from the system while it's running the factory BIOS? lspci -nnvvvxxxx dmidecode video BIOS via both extraction methods (please make sure that we can find out which is which) superiotool -deV dmesg /var/log/Xorg.0.log (name may be a bit different, I want a log file from Xorg running on the machine while the factory BIOS is active) flashrom dump of the factory BIOS
Please don't send that data to the mailing list, I'll provide some space for you to upload it.
- On this page (http://www.coreboot.org/VGA_support) two ways of
getting the video BIOS from a running system are listed ('Retrieval via Linux kernel' and 'Extraction from mapped memory'). Does it matter which one I try?
AFAICS the images you get should be identical. Better check them to make sure.
- Can you be a lot more specific about what I should do about the
checksum?
Either let SeaBIOS ignore the checksum: # cbfstool build/coreboot.rom add-int -i 0 -n etc/optionroms-checksum Or you correct the checksum of the option ROM itself. IIRC there is some tool to do that, but I coudln't find it in my bash history.
Apologies if all these instructions are in the Wiki and I have been too dumb to find them.
Not sure if all of this is in the wiki. If you think anything is missing, please tell me so I can add it.
Regards, Carl-Daniel
On 27/06/15 23:19, Carl-Daniel Hailfinger wrote:
On 27.06.2015 23:39, Richard Simpson wrote:
I have finally successfully flashed the BIOS on my T60 with coreboot. Sadly, my ATI controlled screen remains completely black.
Fortunately I
can still get in via ssh. Here is what I can deduce so far.+
AFAICS you have exactly the same T60 as I have.
lspci says: 01:00.0 0300: 1002:7145 (prog-if 00 [VGA controller]) [...] The vgabios which I extracted from the factory bios
Ah yes. Bad idea. AFAIK the factory BIOS patches the VGA optionrom at runtime with the correct values for the LVDS panel. This means you either have to patch the VGA optionrom yourself or you have to extract the VGA optionrom from the memory of the running system. If you extract it from memory, please note that the runtime patching causes the checksum to be incorrect, and you either have to fix the checksum or tell SeaBIOS to ignore the checksum.
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Huzzah, it works! My T60 with ATI graphics is now booting coreboot and SeaBIOS and I have BUCTS set back to 0.
Thank you, Carl-Daniel, for your prompt assistance. I can now proceed to install my final operating system.
I bought a T60 because I read that it was one of the easiest coreboot laptops. I dread to think how I would have managed with a difficult one :-)
On 28/06/15 15:51, Richard Simpson wrote:
Carl-Daniel,
I am back in the factory BIOS. I have gathered the data for Łukasz and can upload it as soon as you send me a location.
For some reason I couldn't get the option ROM via the Linux kernel, but only from the mapped memory. Basically, there didn't seem to be any rom file in the relevant /sys directory. See below:
[rsimpson@newpercy Libreboot]$ lspci -tv -[0000:00]-+-00.0 Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub +-01.0-[01]----00.0 Advanced Micro Devices, Inc. [AMD/ATI] RV515/M54 [Mobility Radeon X1400] +-1b.0 Intel Corporation NM10/ICH7 Family High Definition Audio Controller +-1c.0-[02]----00.0 Intel Corporation 82573L Gigabit Ethernet Controller +-1c.1-[03]----00.0 Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection +-1c.2-[04-0b]-- +-1c.3-[0c-13]-- +-1d.0 Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 +-1d.1 Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 +-1d.2 Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 +-1d.3 Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 +-1d.7 Intel Corporation NM10/ICH7 Family USB2 EHCI Controller +-1e.0-[15-18]----00.0 Texas Instruments PCI1510 PC card Cardbus Controller +-1f.0 Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge +-1f.1 Intel Corporation 82801G (ICH7 Family) IDE Controller +-1f.2 Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] -1f.3 Intel Corporation NM10/ICH7 Family SMBus Controller [rsimpson@newpercy Libreboot]$ ls /sys/devices/pci0000:00/0000:00:01.0/ 0000:00:01.0:pcie01 config driver local_cpus pci_bus resource vendor 0000:00:01.0:pcie08 consistent_dma_mask_bits enable modalias power subsystem 0000:01:00.0 d3cold_allowed firmware_node msi_bus remove subsystem_device broken_parity_status device irq msi_irqs rescan subsystem_vendor class dma_mask_bits local_cpulist numa_node reset uevent [rsimpson@newpercy Libreboot]$
I'll try switching back to coreboot later today.
Cheers,
Richard
On 28/06/15 13:45, Carl-Daniel Hailfinger wrote:
Hi Richard,
On 28.06.2015 12:58, Richard Simpson wrote:
I have to say that knowing that you have the same T60 and that it is working is a big moral boost!
Imagine how I felt when it happened to me. Fortunately that was at a coreboot developer meeting and we had the tools to recover in case it wouldn't have worked.
Yes, the VGA port is working.
Can you possibly expand on your instructions below?
- You suggest that I patch the option ROM myself. Where would I find
instructions on how to do this?
I had hoped that the option ROM patching was straightforward, e.g. having LVDS data or somesuch in there. Comparing hexdumps of a memory-extracted and a biosimage-extracted option ROM showed me that while the differences are clearly visible, their meaning is not obvious (it's not EDID). So this method is probably not going to fly.
- If I decide that I need to extract it from a running system then I
presume that I need to re-flash the factory BIOS. Can I just do this with the same flashrom command that I used to flash coreboot?
You can do this with the same flashrom command you used to flash the image a second time. Please don't use bucts for flashing back from coreboot to factory BIOS, you only need it in the BIOS->coreboot direction. That said, I think Vladimir Serbinenko (phcoder) had a trick on how to modify the original BIOS so that bucts wouldn't be needed any more in either direction.
Łukasz Dmitrowski is one of our GSoC students and part of his project is to try to make such stuff easier in the future. He needs data for that, though. Richard, could you please collect the following data (as root) from the system while it's running the factory BIOS? lspci -nnvvvxxxx dmidecode video BIOS via both extraction methods (please make sure that we can find out which is which) superiotool -deV dmesg /var/log/Xorg.0.log (name may be a bit different, I want a log file from Xorg running on the machine while the factory BIOS is active) flashrom dump of the factory BIOS
Please don't send that data to the mailing list, I'll provide some space for you to upload it.
- On this page (http://www.coreboot.org/VGA_support) two ways of
getting the video BIOS from a running system are listed ('Retrieval via Linux kernel' and 'Extraction from mapped memory'). Does it matter which one I try?
AFAICS the images you get should be identical. Better check them to make sure.
- Can you be a lot more specific about what I should do about the checksum?
Either let SeaBIOS ignore the checksum: # cbfstool build/coreboot.rom add-int -i 0 -n etc/optionroms-checksum Or you correct the checksum of the option ROM itself. IIRC there is some tool to do that, but I coudln't find it in my bash history.
Apologies if all these instructions are in the Wiki and I have been too dumb to find them.
Not sure if all of this is in the wiki. If you think anything is missing, please tell me so I can add it.
Regards, Carl-Daniel
On 27/06/15 23:19, Carl-Daniel Hailfinger wrote:
On 27.06.2015 23:39, Richard Simpson wrote:
I have finally successfully flashed the BIOS on my T60 with coreboot. Sadly, my ATI controlled screen remains completely black. Fortunately I can still get in via ssh. Here is what I can deduce so far.+
AFAICS you have exactly the same T60 as I have.
lspci says: 01:00.0 0300: 1002:7145 (prog-if 00 [VGA controller]) [...] The vgabios which I extracted from the factory bios
Ah yes. Bad idea. AFAIK the factory BIOS patches the VGA optionrom at runtime with the correct values for the LVDS panel. This means you either have to patch the VGA optionrom yourself or you have to extract the VGA optionrom from the memory of the running system. If you extract it from memory, please note that the runtime patching causes the checksum to be incorrect, and you either have to fix the checksum or tell SeaBIOS to ignore the checksum.