TP xx20 Stock Bios Modding/ Coreboot für IVB Support

Omicron

New member
Registriert
15 Aug. 2016
Beiträge
4
I apologize for posting this in English, but I figured this would be more understandable than trying to translate my text from Google. Did anyone ever get Ivy Bridge working on the T420 BIOS? There are some posts earlier in this thread which talk about it and issues with testing, but nothing else since.

If I understand, the main change in the BIOS is adding the HD4000 graphics switch statement, and possibly adding microcodes for the Ivy Bridge processors. I would try to do this on my own using the new 1.48 BIOS, but I am not even sure where to start, or what tools are used. I would prefer the original BIOS over trying to fight with compiling Coreboot/Seabios.

Thank you anyone who can understand this, and any future replies. I'd post on English forums, but only you guys seem to care enough about older Thinkpads to actually work on modding BIOSes for them.
 
You guessed right, there is a BIOS with a new VBIOS. I tried to run this BIOS on my T420 and put a i5-3230m in it. But it didnt started. The microcode was missing. There is no modded original BIOS with the new microcode yet.
 
So try Coreboot, but you need a hardware flasher for doing this. My try few month ago failed because my test clip was bullshit, so I can't tell you if this works: My idea was to replace the bios part of dumped flash with coreboot (both are 3M in size) with UEFI-tool and flash the modded one back.
 
Das is vllt. ne dumme Frage, aber fehlt dem Bios-Mod dann nur(?) noch der Ivy-Microcode um die CPU's zu unterstützen?
Persöhnlich habe ich die Transplantation des Microcodes für meinen LGA775-LGA771 Xeon mod für meinen Desktop gemacht.
Bis zu Sandy/Ivy sind natürlich einige Biosgenerationen vergangen, aber die eigentliche Transplantation des Microcodes sollte doch ähnlich ablaufen, oder?
Ich habe mich natürlich noch nicht nach dem entsprechenden Microcode umgeschaut :facepalm:
Ich frage nur zum Verständnis.
MfG
 
Korrekt. Dazu wird jemand mit externer Flashmöglichkeit, einem entsprechenden Testgerät und den sonst so relevanten Teilen (z.B. CPU) benötigt.
 
Today I flashed coreboot, everything worked except for internet connection (wifi, ethernet and so a usb wifi dongle, can see network but are unable to connect) .This is probably related to my specific linux distro (ubuntu gnome) considering that it worked with a xubuntu live but not on a gnubuntu live. I was not able to solve the connection problem, so I Decided to switch back to manufactor bios. Well, Not exactly. Following this how-to ( http://thinkwiki.de/UEFI_BIOS_T420_BIOS_Structure ), I flashed the bios modded 1:46 withAdvanced menu and VBIOS 2170 (I was still stucked at 1:37). So the good things are did with a cheap USB programmer ( ch341a, you can find it for ~ 5 euros) you can read and flash the Entire bios (All which is good in case you need to recover from brick) and combined with easy tools (flashrom) you can flash Directly Either coreboot or modded bios. My little advice is to buy a chip similar to the original (ie ~ 5 euros on ebay) to learn how to use the flasher before you open your laptop. The bad thing is did disassembling and reassembling the laptop takes time ... I ordered a IVB cpu on ebay, so in next weeks I will try to install again coreboot in order to make it work, but if we have a good candidate I can therefore try a modded stock to see what happens. If It could be useful, i can write a little tutorial to describe the flash did surgery I used. BTW I've run some graphic benchmarks with the modded bios (and VBIOS), but results Seems to be 10-15% worse than stock 1.37. I want to investigate more.
 
@florio I tried building coreboot multiple times, how did you proceed? I attempted iruatpku's method based on his working revision + cherry picked commit from around June, and also just the newest master branch from today.
Could you share your .config file? Or did you use a prebuilt rom? Also could you please take a picture of the SOIC8 BIOS chip on the motherboard? I can't find one on the net and my T420 is still in production use for a bit so I can't take it apart yet.
I have an i5 3320m (currently in a spare HP 8470p) for testing, but the goal should be using the much more powerful ivy quads.
Also does the coreboot BIOS menu (SeaBIOS?) have advanced power management options like Turbo configuration or TDP cap, like the 1.47 Mod-BIOS has? That would be very helpful for the cheaper 45W quads.
-----
Coreboot hat vor nicht langer Zeit weitere patches fuer das T420 erhalten, ich wuerde das gerne mal testen zum sehen ob Ivy damit funktioniert. Wenn ja, und es TDP caps o.Ae. gibt, waere die beste Loesung einen billigen 45W Ivy Quad (3630qm oder so) zu verbauen und manuell zu limitieren, statt einem viel teureren 3632qm/-12qm.

Mein 2670qm war zwar ein lustiges experiment, hat die Akkulaufzeit bei meinen Arbeiten (viel mit VMs fuer C# Entwicklung unter Linux, viel Java Zeug compilieren) aber so aufgefressen dass ich ihn wieder rausgenommen hab.
Der Quad laeuft 24/7 in meinem Home Server (ein weiterer T420 natuerlich) mit 16GB RAM super stabil als Hypervisor - die vielen Threads machen ihn dafuer perfekt. Er steckt immer am Strom und zieht im Idle nur ~25W, und hat einen eingebauten UPS Battery backup. Unglaublich was diese Laptops alles leisten koennen...
 
@waltibaba: Der Bios-chip befindet sich unter derm Trackpad. D.h. du muss das Mainboard jedes mal komplett ausbauen, um mit einem externen Flasher das Bios zu flashen.

Da ich in nächster Zeit auch viel mit dem Hardware flasher arbeite, werde ich mit nem dremel einen Zugang zum Bios chip in den Frame schneiden. Zum Glück hab ich ein Opfermainboard mit Kühler und Frame gefunden.

Ich habe mir zum Ziel gesetzt, das Stock Bios für die IVY's zu modden. Aber ich bin noch nicht sehr weit gekommen, da die verfügbaren Tools (UBU und MMTool 4.5) eigentlich nicht dafür ausgelegt sind und nur low level infos bieten. Aber ich bleibe weiter dran.
 
First of all, worse benchmarks with new 2170 vbios seems to be related to higher ambient temperature ( summer vs winter tests ).
Then:
@waltibaba as ramius said, the chip is under the magnesium frame, so it's actually under the trackpad, but you have to dismantle the whole laptop to find it. Another way to flash the chip externally it' using the debug heades which is just close to the chip. A clever way to act may be solder wires to it in order to have a maintanaince port always usable without disassembling everything. A guy on reddit did it, while I was' t able to solder, maybe because of the too big solder, but probably because I' m not good at soldering...
Here a ( bad ) pic that I' ve taken yesterday during the flash operation:
attachment.php





For compiling and flashing coreboot, you may follow this guide. If you want you can also use iruatpku prebuilt rom, which is "fully" functional also with an IVB cpu, and apply it to the guide instead of your build.
As hardware, I used a cheap ch341a programmer, which is fully supported in the last release of flashrom. Coreboot does't provide any post bios options by default, so I don't think there is a way to change settings on the go. Maybe you can do something installing tianocore as payload, anyway for those questions is better ask to experts, also on irc channel #coreboot on freenode.

My experience with coreboot and IVB:
Yesterday I' ve installed a 3360m on my t420, using iruatpku's build because mine was giving some display issues.

pros: cpu it' s way cooler, around 8 degrees on idle and 10 on full load. This could be very useful for those who want to install quads. Score in graphics benchmark are ~50% higher. With hardware acceleration on( vaapi ), cpu was around 5% of use watching a fullhd video.
so so: Power consumption. Idling and with little loads was higher. Nothing dramatic, it was ~1W more than stock, while on full load it was 20-30% less than stock. Considering that one of my goal was to extend battery life in office scenario, it was a little disappointing for me..

cons: No tp-smapi module. Strange software behaviour:no way to connect to the internet ( it' s probably related my configuration on ubuntu because it works with some live distros, but still it doesn't happens on stock bios). Launching rstudio made cpu stuck on 70% usage, something that was never happen before, and that was a deal breaker to me cause I need it.

So, for the third time I'm back to stock bios. I' ve to admit that the experience has made me a very fast disassembler-reassembler...
Based on my experience, it' s maybe too early to use coreboot on this machine if your goal it's normal daily use.
That said, IVB on t420 works, so if we find a way to make it works with a modded stock bios, this could lead to big improvements.

@ramius Is there a way we can help you for the modded bios?

PS: It could be nice to set a group for studying how original bios is made. PM if you' re interested. (ok: group has been created )
 

Anhänge

  • IMG_20160907_210309133.jpg
    IMG_20160907_210309133.jpg
    254,1 KB · Aufrufe: 321
Zuletzt bearbeitet:
@florio
Keep in mind I'm strictly talking about the stock bios, as I've no experience with coreboot.
Cause the reported issues with internet and win7 are a deal breaker for me right now.
But honestly I would abandon Stock Bios as soon as coreboot works for daily driving ^^

Basicly we need to disect the whole bios by hand.
UBU and MMTool are the standard tools for modding Uefi Bios in the community and are pretty much useless.
attachment.php
attachment.php


Both tools can be used to extract single modules of the bios. But of course everything is in HEX
So right now I'm trying to figure out what is what.

The biosmods forum has some threads on whitlisting and unlocking ram. But as I have understand the process, it's all Hex-editing.
For the LGA775-771 Mod swapping the microcode was pretty straightforward.
But in the uefi there's no module named microcode, so I'm digging for hints.
And I'm not sure if the T430 has the same structure as the T420.
The most recent Bios of the T430 has two files sized 12mb and 8mb. The T420 has three bios files each sized 8mb.
So I still have a lot to figure out^^

- - - Beitrag zusammengeführt - - -

Florio and me have stared a dropbox folder for modding the Bios.
We're both equiped with hardware flashers and I have a spare motherboard for testing.
So everyone who is willing to contribute, send a PM and I'll invite you.

Florio und meine wenigkeit haben eine dropbox-gruppe eröffnet um das Bios mal etwas näher zu untersuchen.
Wir beide sind mit hardware flashern ausgerüstet und ich habe sogar ein opfer motherboard zum testen.
So alle die erfahrung haben und etwas beitragen möchten, schickt mir ne PM und ich lad euch ein.

Cheers! und schönen Tag noch! :D
 

Anhänge

  • UBU1.PNG
    UBU1.PNG
    60,4 KB · Aufrufe: 310
  • MMTool1.PNG
    MMTool1.PNG
    38,4 KB · Aufrufe: 309
Ich habe mich auch mal mit dem Thema auseinandergesetzt. Wie weiter oben schon erwähnt, werden insgesamt drei Komponenten benötigt: Neue Microcodes, neues VGA-Bios und eine Weiche für HD3000/HD4000, da die PCI IDs unterschiedlich sind. Neue Microcodes und das VGA-Bios habe ich bereits eingefügt, aber ich scheitere zur Zeit an der Weiche, hierzu muss die entsprechende EFI-Anwendung neu erstellt werden. Das ist leider ein ziemlich zeitraubender Prozess - guter erste Anlaufpunkt ist uefireverse.

In der Zwischenzeit habe ich mir ein funktionierendes Coreboot-Bios zusammengesteckt, mit dem ich jetzt erfolgreich und alltagstauglich ein T520 mit i5-3320M betreibe. Getestet habe ich Xubuntu, Windows 7 und Windows 10. Aus rein akademischen Gründen werde ich aber trotzdem gelegentlich an dem Mod-Bios weiterarbeiten.

Edit: hier ist meine .config. Entsprechend der Anleitung müssen die einzelnen Blobs extrahiert werden und von irgendwo her braucht man noch das Ivy Bridge VGA-Bios (im Zweifelsfall aus dem T530-Bios rausschneiden). Die Pfade in der Config müssen dann angepasst werden.
Wichtig: Der Init-Timeout für die Tastatur wurde verdoppelt, da diese ab und zu mal eine Gedenksekunde braucht und deshalb für Seabios nicht rechtzeitig initalisiert ist.

Für Mitglieder aus der Nähe kann ich auch anbieten, Coreboot zu bauen und zu flashen.
 
Zuletzt bearbeitet:
I will try to reflash coreboot asap with new configuration file, currently I can' t because my soic clip is broken :/

As for stock bios, i think it is crucial to work at least on sainit , because it' s probably there where bios choose which vga ( and so graphicmem ) initialize. In fact, based on intel docs, this is basically what happens:
attachment.php

Also looking at t420's ad t430's sainitdxe modules, you can easily note a difference: two $VBT ( video bios table ) occurrences on t430's, one in t420's, as in the IVB-SNB one it has to redirect to different vbt depending on which cpu/gpu is found.
t420:
attachment.php

t430:
attachment.php

Also in t430, in two modules just before ivbgopdxe and snbgopdxe, you find again $VBT occurence, so it' s probably where sainitdxe links, and those are actuals video table. It' s very interesting noting that those two modules are almost identical, except for few strings and a clear architecture reference:
attachment.php


So, what I think is that in order to obtain a bios for ivb, we' ve to work on this. Imho it' s probably very difficult to implement both IVB and SNB compatiblity in t420 bios, because lacking of free space would lead in changing all references if you try to insert new modules, while it could be way easier try to switch SNB with IVB instructions once we figured out exactly where initialization happens.
What we have to hope is that there are not cpu blocking instructions, as is for wifi.
 

Anhänge

  • inteluefi.png
    inteluefi.png
    85,3 KB · Aufrufe: 406
  • sainitdxevbt_t420.png
    sainitdxevbt_t420.png
    50,2 KB · Aufrufe: 403
  • sainitvbtdxe_t430.png
    sainitvbtdxe_t430.png
    107,9 KB · Aufrufe: 404
  • meld.jpg
    meld.jpg
    274 KB · Aufrufe: 396
In the T430 you can run sandy Bridge CPUs. So somehow it is possible...
 
x30-devices use a combined Sandy Bridge/Ivy Bridge VGA bios and load the appropriate parts using separate branches somewhere in the init code (SaInitDxe.efi). This behavior needs to be adapted.
 
Exactly. What I think is that switch configuration files from snb to ivb in t420 bios it' s probably easier than insert the necessary code to have compatibilty with both cpus as happens in *30 devices. Which of course it's somehow possible, but yet hard to do.
Or maybe a crazy way to proceed could be to use the t430 bios ( so that you have all the work done ) and change all its various hardware related modules with those taken in t420's bios.
 
We dont need compatibility. If firmware works, I will flash it. Then change CPU. Boot. :) Keep it simple.
 
Zuletzt bearbeitet:
WOW :thumbsup:
gibts nen extra Thread für den Bios Mod?

und geht das auch mit nem T420 i5,i7QM ?
 
so is there a guide of what we should change - hex edit, sandry bridge to ivy bridge codes, in order to produce a working bios with ivy bridge CPU support??? I will still use this bios: Lenovo_ThinkPad_T420_83ET76WW-83uj28us_NWL_LEN21_ADV_RAM_Speedo_AES_vBios-2170.zip which I think is the best there is.

We still have to add CPU microcode support and GPU microcode support in sandy bridge bios don't we????
 
We just need to add the CPU Microcode, because in the newest Modbios there is the updated VBIOS with support for the HD4000.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben