Group: Hardware/Components/GPUs/nvidia

From LibrePlanet
Jump to: navigation, search
(How to help)
m
 
(5 intermediate revisions by 3 users not shown)
Line 11: Line 11:
 
! Existing projects that could be leveraged to fix the problem
 
! Existing projects that could be leveraged to fix the problem
 
|-
 
|-
| GPU firmwares/microcodes
+
| GPU peripheral software
| colspan=5 | Free firwmare are generated in the Linux driver for many GPUs. However:
+
| colspan=5 | Free peripheral software is generated in the Linux driver for many GPUs. However:
* Some GPUs are probably still missing free firmware like for the Tegra K1
+
* Some GPUs are probably still missing free peripheral software like for the Tegra K1
* The NV110 family (Maxwell) and more recent require signed firmwares for the GPU power management processor.
+
* The NV110 family (Maxwell) and more recent require signed peripheral software for the GPU power management processor.
 
|-
 
|-
 
| Bytecode: This bytecode is part of the Video BIOS and is parsed and executed by the Linux driver
 
| Bytecode: This bytecode is part of the Video BIOS and is parsed and executed by the Linux driver
Line 22: Line 22:
 
| ?
 
| ?
 
|
 
|
| Replace the nonfree bytecode by a free one.
+
|  
 +
* Replace the nonfree bytecode by a free one.
 +
* or use "via per-chip static tables" like for the tegra<ref>See the [https://archive.fosdem.org/2015/schedule/event/tegra/attachments/slides/692/export/events/attachments/tegra/slides/692/FOSDEM_2015.pdf FOSDEM_2015.pdf] presentation for more details. The Tegra K1 has no bytecode (as it has no video BIOS).</ref>
 
|  
 
|  
 
|-
 
|-
Line 31: Line 33:
 
| Implement a free Video BIOS replacement either as standalone replacement or in Coreboot and Libreboot.
 
| Implement a free Video BIOS replacement either as standalone replacement or in Coreboot and Libreboot.
 
|  
 
|  
* There is a free Video BIOS replacement in Coreboot for many Intel GPUs. While its meant to support Intel GPUs, it may be a good idea to leverage some of the code and architecture. It may also be a good idea to instead implement it as a standalone Video BIOS replacement, as standalone Radeon GPUs do exist, whereas standalone Intel GPU don't at the time of writing.
+
* There is a free Video BIOS replacement in Coreboot for many Intel GPUs. While its meant to support Intel GPUs, it may be a good idea to leverage some of the code and architecture. It may also be a good idea to instead implement it as a standalone Video BIOS replacement, as standalone Radeon GPUs do exist, whereas the few standalone Intel GPUs cannot be freed at the time of writing.
 
* TODO: List Radeon Video BIOS Replacement projects and their freedom issues (check if the compiler is free)
 
* TODO: List Radeon Video BIOS Replacement projects and their freedom issues (check if the compiler is free)
 
* TODO: Look if there are some projects for Nvidia GPUs.
 
* TODO: Look if there are some projects for Nvidia GPUs.
 
|}
 
|}
 +
 +
== References ==
 +
<references/>
  
 
== How to help ==
 
== How to help ==
Line 42: Line 47:
  
 
Here are some relatively small tasks that could help:
 
Here are some relatively small tasks that could help:
* Migrate the information in [[Group:Hardware/ReverseEngineering#Desktops_and_laptops_GPUs|ReverseEngineering#Desktops_and_laptops_GPUs]] here and make theses section point to this article for Nvidia GPUs
+
* Migrate the information in [[Group:Hardware/ReverseEngineering#Desktops_and_laptops_GPUs|ReverseEngineering#Desktops_and_laptops_GPUs]] here and make that section point to this article for Nvidia GPUs
 
* Help completing the table in the introduction section
 
* Help completing the table in the introduction section
  
 
== External links ==
 
== External links ==
 
* [https://nouveau.freedesktop.org/wiki/ The nouveau project web page]
 
* [https://nouveau.freedesktop.org/wiki/ The nouveau project web page]

Latest revision as of 06:53, 14 June 2024

Introduction

Nvidia GPUs have several freedom issues that are referenced on the table below.

Nonfree software Effects without the nonfree software or workarounds Workaround Workaround consequences Fix Existing projects that could be leveraged to fix the problem
GPU peripheral software Free peripheral software is generated in the Linux driver for many GPUs. However:
  • Some GPUs are probably still missing free peripheral software like for the Tegra K1
  • The NV110 family (Maxwell) and more recent require signed peripheral software for the GPU power management processor.
Bytecode: This bytecode is part of the Video BIOS and is parsed and executed by the Linux driver
  • The nouveau driver probably doesn't load
  • The boot software (BIOS, UEFI) may not be able to initialize the display. Untested.
?
  • Replace the nonfree bytecode by a free one.
  • or use "via per-chip static tables" like for the tegra[1]
The Video BIOS Use Libreboot or Coreboot with SeaBIOS, put the Video BIOS in memory but don't execute it The display is initialized very late, when the nouveau driver loads, if the bytecode tables are in the right memory area. Implement a free Video BIOS replacement either as standalone replacement or in Coreboot and Libreboot.
  • There is a free Video BIOS replacement in Coreboot for many Intel GPUs. While its meant to support Intel GPUs, it may be a good idea to leverage some of the code and architecture. It may also be a good idea to instead implement it as a standalone Video BIOS replacement, as standalone Radeon GPUs do exist, whereas the few standalone Intel GPUs cannot be freed at the time of writing.
  • TODO: List Radeon Video BIOS Replacement projects and their freedom issues (check if the compiler is free)
  • TODO: Look if there are some projects for Nvidia GPUs.

References

  1. See the FOSDEM_2015.pdf presentation for more details. The Tegra K1 has no bytecode (as it has no video BIOS).

How to help

Documenting all the freedom issues in depth is a lot of work for one person.

Hopefully it can be broken in many small tasks, so it's easy to help by making a tiny part of the work.

Here are some relatively small tasks that could help:

External links