Originally posted by torsionbar28
View Post
Announcement
Collapse
No announcement yet.
NVIDIA BIOS Signature Lock Broken - What Caused Open-Source Pains For Years
Collapse
X
-
I never fully understood the situation around NVIDIA firmware, maybe someone here can elucidate.
I understand that the firmware is signed so only NVIDIA-blessed code will run, but why can't noveau load the official firmware and use it? Did the folks at noveau code their own firmware before firmware signing?
It should in theory be possible to make a open-source driver that loads the official firmware and talks to it in the same way the official one does right? I can't see what would make it impossible (other than the amount of work involved).
Comment
-
Originally posted by dp_alvarez View PostI never fully understood the situation around NVIDIA firmware, maybe someone here can elucidate.
I understand that the firmware is signed so only NVIDIA-blessed code will run, but why can't noveau load the official firmware and use it? Did the folks at noveau code their own firmware before firmware signing?
It should in theory be possible to make a open-source driver that loads the official firmware and talks to it in the same way the official one does right? I can't see what would make it impossible (other than the amount of work involved).
Comment
-
Originally posted by dp_alvarez View Post[...] why can't noveau load the official firmware and use it? Did the folks at noveau code their own firmware before firmware signing?
It should in theory be possible to make a open-source driver that loads the official firmware and talks to it in the same way the official one does right? I can't see what would make it impossible (other than the amount of work involved).
Other then that, loading the GPU firmware was becoming too complex without documentation, at the time when NVIDIA introduced the signed firmware. It was a long sequence and not just a copy (read and write) operation. Although NVIDIA eventually did help nouveau with the correct loading sequence for the GPU to enter secure mode, where authenticated firmware can then be loaded.
But at the time, nouveau developers also explained that reusing the proprietary firmware now requires testing / fixing / reverse-engineering on a per-model basis, so for every specific model of GTX 1080 for example, produced by all AIB partners (also remember the mobile variants in laptops...).
So even with proprietary firmware, nouveau still had to know "is this the cheaper card that can only boost to 1600MHz, or is it the good one that can go to 1750MHz" ? This is a simple example (GPU-Z can actually read the boost clock), but there are more timings and limits to control like this. And there is no way to ask the video card "how long can you sustain this new power level ?" or "for how long can the voltage be raised to this value ?" or "how fast can you switch to the next higher or lower power when needed ?"
I did not understand these details, must be related to the lack of hardware documentation, but it had to do with timings and data tables in the vBIOS, that would ultimately provide answers to the above questions. But they were in a different format for each card, undocumented, and use different formulas for each (specific to the electrical components used). Even for the same video card model, units sold far apart in time can be built with different capacitors inside for example, and have different values and timings for those parts in the vBIOS tables, and they need to be re-engineered again.
My own guess is it is technically possible for a driver like nouveau to do this, it is just too much work. And there is no documentation, plus no motivation to do such work, since the GPUs were clearly locked-down by NVIDIA to prevent this sort of use.
Comment
-
Originally posted by justinkb View PostLet's be honest, nouveau never was that good, even for GPUs which weren't locked down
But then remember it had to rely on reverse-engineering for development. And when NVIDIA locked-down the GPUs, nouveau struggled to gain any interest, it was in a way abandoned.
Comment
-
Originally posted by erniv2 View Post[...] the new UEFI vBIOS is called GOP or something like that wich should also be a standard somewhere, and linux can grab it with the EFI simple framebuffer driver, there is no need for a hardware specific driver to boot a system, the driver is there to access special hardware accelerated features, wich in the case of nouveau fails cause it cant access the reclocking and or gpu shaders etc.
I still think some VESA / GOP mode can be used, for the shortest amount of time, for booting Linux, but to solve a different problem of ever-growing firmware size in the initrd image.
Comment
-
Originally posted by bug77 View Post
I'm not 100% up to speed with these things, but I believe nouveau already does that. The problem nouveau faces is wrt reclocking: because custom models have various power profiles, nouveau cannot reliably decide how to change the clock speeds once everything is up an running. There's no interface for reading that info, it's all on a per model basis.
Comment
-
Still not clear if the new vBIOS tools actually allow vBIOS modding, or just cross-flashing. Can they brute-force the signature somehow, to allow modding ?
But with vBIOS modding, I would love to see a way to enable ReBAR on RTX 2000 series, like it can be done with motherboard UEFI.
Any modders out there can find a way to do that for my RTX 2080 Ti X Trio?
Comment
Comment