| b6cfba43 | 06-Apr-2026 |
Miguel Ojeda <ojeda@kernel.org> |
rust: bump Clippy's MSRV and clean `incompatible_msrv` allows
Following the Rust compiler bump, we can now update Clippy's MSRV we set in the configuration, which will improve the diagnostics it gen
rust: bump Clippy's MSRV and clean `incompatible_msrv` allows
Following the Rust compiler bump, we can now update Clippy's MSRV we set in the configuration, which will improve the diagnostics it generates.
Thus do so and clean a few of the `allow`s that are not needed anymore.
Reviewed-by: Tamir Duberstein <tamird@kernel.org> Acked-by: Danilo Krummrich <dakr@kernel.org> Reviewed-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260405235309.418950-7-ojeda@kernel.org Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
| a7a080bb | 31-Mar-2026 |
David Carlier <devnexen@gmail.com> |
gpu: nova-core: fix missing colon in SEC2 boot debug message
The SEC2 mailbox debug output formats MBOX1 without a colon separator, producing "MBOX10xdead" instead of "MBOX1: 0xdead". The GSP debug
gpu: nova-core: fix missing colon in SEC2 boot debug message
The SEC2 mailbox debug output formats MBOX1 without a colon separator, producing "MBOX10xdead" instead of "MBOX1: 0xdead". The GSP debug message a few lines above uses the correct format.
Fixes: 5949d419c193 ("gpu: nova-core: gsp: Boot GSP") Signed-off-by: David Carlier <devnexen@gmail.com> Link: https://patch.msgid.link/20260331103744.605683-1-devnexen@gmail.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 6b9a10d6 | 04-Apr-2026 |
John Hubbard <jhubbard@nvidia.com> |
gpu: nova-core: vbios: use from_le_bytes() for PCI ROM header parsing
Clippy fires two clippy::precedence warnings on the manual byte-shifting expression: warning: operator precedence can trip the
gpu: nova-core: vbios: use from_le_bytes() for PCI ROM header parsing
Clippy fires two clippy::precedence warnings on the manual byte-shifting expression: warning: operator precedence can trip the unwary --> drivers/gpu/nova-core/vbios.rs:511:17 | 511 | / u32::from(data[29]) << 24 512 | | | u32::from(data[28]) << 16 513 | | | u32::from(data[27]) << 8 | |______________________________________________^
Clear the warnings by replacing manual byte-shifting with u32::from_le_bytes(). Using from_le_bytes() is also a tiny code improvement, because it uses less code and is clearer about the intent.
Signed-off-by: John Hubbard <jhubbard@nvidia.com> Link: https://patch.msgid.link/20260404212831.78971-2-jhubbard@nvidia.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
show more ...
|
| de0aca13 | 01-Apr-2026 |
Eliot Courtney <ecourtney@nvidia.com> |
gpu: nova-core: bitfield: fix broken Default implementation
The current implementation does not actually set the default values for the fields in the bitfield.
Fixes: 3fa145bef533 ("gpu: nova-core:
gpu: nova-core: bitfield: fix broken Default implementation
The current implementation does not actually set the default values for the fields in the bitfield.
Fixes: 3fa145bef533 ("gpu: nova-core: register: generate correct `Default` implementation") Signed-off-by: Eliot Courtney <ecourtney@nvidia.com> Link: https://patch.msgid.link/20260401-fix-bitfield-v2-1-2fa68c98114a@nvidia.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
show more ...
|
| 0e0ffbcd | 05-Apr-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: falcon: pad firmware DMA object size to required block alignment
Commit a88831502c8f ("gpu: nova-core: falcon: use dma::Coherent") dropped the nova-local `DmaObject` device memory ty
gpu: nova-core: falcon: pad firmware DMA object size to required block alignment
Commit a88831502c8f ("gpu: nova-core: falcon: use dma::Coherent") dropped the nova-local `DmaObject` device memory type for the kernel-global `Coherent` one.
This switch had a side-effect: `DmaObject` always aligned the requested size to `PAGE_SIZE`, and also reported that adjusted size when queried. `Coherent`, on the other hand, does page-align allocation sizes but only allows CPU access on the exact size provided by the caller.
This change runs into a limitation of falcon DMA copies, namely that DMA accesses are done on blocks of exactly 256 bytes. If the provided data does not have a length that is a multiple of 256, `dma_wr` returns an error.
It was expected that all firmwares would present the proper adjusted size, but this is not the case at least on my GA107:
NovaCore 0000:08:00.0: DMA transfer goes beyond range of DMA object NovaCore 0000:08:00.0: Failed to load FWSEC firmware: EINVAL NovaCore 0000:08:00.0: probe with driver NovaCore failed with error -22
Fix this by padding the `Coherent`'s size to `MEM_BLOCK_ALIGNMENT` (i.e. 256) when allocating it and filling it with zeroes, before copying the firmware on top of it.
Fixes: a88831502c8f ("gpu: nova-core: falcon: use dma::Coherent") Reviewed-by: John Hubbard <jhubbard@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Link: https://patch.msgid.link/20260405-falcon-dma-roundup-v2-1-4af5b2ff9c16@nvidia.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
show more ...
|
| 8e6c3478 | 04-Apr-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: gsp: fix undefined behavior in command queue code
`driver_read_area` and `driver_write_area` are internal methods that return slices containing the area of the command queue buffer t
gpu: nova-core: gsp: fix undefined behavior in command queue code
`driver_read_area` and `driver_write_area` are internal methods that return slices containing the area of the command queue buffer that the driver has exclusive read or write access, respectively.
While their returned value is correct and safe to use, internally they temporarily create a reference to the whole command-buffer slice, including GSP-owned regions. These regions can change without notice, and thus creating a slice to them, even if never accessed, is undefined behavior.
Fix this by making these methods create slices to valid regions only.
Fixes: 75f6b1de8133 ("gpu: nova-core: gsp: Add GSP command queue bindings and handling") Reported-by: Danilo Krummrich <dakr@kernel.org> Closes: https://lore.kernel.org/all/DH47AVPEKN06.3BERUSJIB4M1R@kernel.org/ Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260404-cmdq-ub-fix-v5-1-53d21f4752f5@nvidia.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
show more ...
|
| 7c50d748 | 26-Mar-2026 |
John Hubbard <jhubbard@nvidia.com> |
gpu: nova-core: firmware: factor out an elf_str() function
Factor out a chunk of complexity into a new subroutine. This is an incremental step in adding ELF32 support to the existing ELF64 section s
gpu: nova-core: firmware: factor out an elf_str() function
Factor out a chunk of complexity into a new subroutine. This is an incremental step in adding ELF32 support to the existing ELF64 section support, for handling GPU firmware.
Signed-off-by: John Hubbard <jhubbard@nvidia.com> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260326013902.588242-9-jhubbard@nvidia.com [acourbot: use fuller prefix in commit message.] Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| b3d24269 | 26-Mar-2026 |
John Hubbard <jhubbard@nvidia.com> |
gpu: nova-core: firmware: move firmware image parsing code to firmware.rs
Up until now, only the GSP required parsing of its firmware headers. However, upcoming support for Hopper/Blackwell+ adds an
gpu: nova-core: firmware: move firmware image parsing code to firmware.rs
Up until now, only the GSP required parsing of its firmware headers. However, upcoming support for Hopper/Blackwell+ adds another firmware image (FMC), along with another format (ELF32).
Therefore, the current ELF64 section parsing support needs to be moved up a level, so that both of the above can use it.
There are no functional changes. This is pure code movement.
Reviewed-by: Gary Guo <gary@garyguo.net> Signed-off-by: John Hubbard <jhubbard@nvidia.com> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260326013902.588242-8-jhubbard@nvidia.com [acourbot: use fuller prefix in commit message.] Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| e10dcb9d | 26-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: firmware: gsp: use dma::Coherent for level0 table
Replace the nova-core local `DmaObject` with a `CoherentBox` that can fulfill the same role.
Since `CoherentBox` is more flexible t
gpu: nova-core: firmware: gsp: use dma::Coherent for level0 table
Replace the nova-core local `DmaObject` with a `CoherentBox` that can fulfill the same role.
Since `CoherentBox` is more flexible than `DmaObject`, we can use the native `u64` type for page table entries instead of messing with bytes.
The `dma` module becomes unused with that change, so remove it as well.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260327-b4-nova-dma-removal-v2-7-616e1d0b5cb3@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 371db8bc | 26-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: firmware: gsp: use dma::Coherent for signatures
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Re
gpu: nova-core: firmware: gsp: use dma::Coherent for signatures
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260327-b4-nova-dma-removal-v2-6-616e1d0b5cb3@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| c1c79e3b | 26-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: fb: use dma::CoherentHandle
Replace the nova-core local `DmaObject` with a `CoherentHandle` that can fulfill the same role.
Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: htt
gpu: nova-core: fb: use dma::CoherentHandle
Replace the nova-core local `DmaObject` with a `CoherentHandle` that can fulfill the same role.
Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260327-b4-nova-dma-removal-v2-5-616e1d0b5cb3@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| a8883150 | 26-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: falcon: use dma::Coherent
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Danilo Krum
gpu: nova-core: falcon: use dma::Coherent
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260327-b4-nova-dma-removal-v2-4-616e1d0b5cb3@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 1f9283af | 26-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: firmware: fwsec: use dma::Coherent
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Da
gpu: nova-core: firmware: fwsec: use dma::Coherent
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260327-b4-nova-dma-removal-v2-3-616e1d0b5cb3@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 308eb645 | 26-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: firmware: riscv: use dma::Coherent
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Da
gpu: nova-core: firmware: riscv: use dma::Coherent
Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role.
Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260327-b4-nova-dma-removal-v2-2-616e1d0b5cb3@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 2278f97b | 25-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: remove `io::` qualifier to register macro invocations
The kernel's `register` macro would clash with nova-core's own version if it was imported directly, so it was accessed through i
gpu: nova-core: remove `io::` qualifier to register macro invocations
The kernel's `register` macro would clash with nova-core's own version if it was imported directly, so it was accessed through its `io` module during the conversion phase.
Now that nova-core's `register` macro doesn't exist anymore, we can import and use it directly without risk of name collision.
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260325-b4-nova-register-v4-9-bdf172f0f6ca@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 38f7e545 | 25-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: convert falcon registers to kernel register macro
Convert all PFALCON, PFALCON2 and PRISCV registers to use the kernel's register macro and update the code accordingly.
Because they
gpu: nova-core: convert falcon registers to kernel register macro
Convert all PFALCON, PFALCON2 and PRISCV registers to use the kernel's register macro and update the code accordingly.
Because they rely on the same types to implement relative registers, they need to be updated in lockstep.
nova-core's local register macro is now unused, so remove it.
Reviewed-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260325-b4-nova-register-v4-8-bdf172f0f6ca@nvidia.com [acourbot@nvidia.com: remove unused import.] Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 02ade255 | 25-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: convert PDISP registers to kernel register macro
Convert all PDISP registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtn
gpu: nova-core: convert PDISP registers to kernel register macro
Convert all PDISP registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260325-b4-nova-register-v4-7-bdf172f0f6ca@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 1a8f58c5 | 25-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: convert FUSE registers to kernel register macro
Convert all FUSE registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtney
gpu: nova-core: convert FUSE registers to kernel register macro
Convert all FUSE registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260325-b4-nova-register-v4-6-bdf172f0f6ca@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| ffabad08 | 25-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: convert GC6 registers to kernel register macro
Convert all GC6 registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtney@n
gpu: nova-core: convert GC6 registers to kernel register macro
Convert all GC6 registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260325-b4-nova-register-v4-5-bdf172f0f6ca@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 79738589 | 25-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: convert PFB registers to kernel register macro
Convert all PFB registers to use the kernel's register macro and update the code accordingly.
NV_PGSP_QUEUE_HEAD was somehow caught in
gpu: nova-core: convert PFB registers to kernel register macro
Convert all PFB registers to use the kernel's register macro and update the code accordingly.
NV_PGSP_QUEUE_HEAD was somehow caught in the PFB section, so move it to its own section and convert it as well.
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260325-b4-nova-register-v4-4-bdf172f0f6ca@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|
| 4e7588dc | 25-Mar-2026 |
Alexandre Courbot <acourbot@nvidia.com> |
gpu: nova-core: convert PBUS registers to kernel register macro
Convert all PBUS registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtney
gpu: nova-core: convert PBUS registers to kernel register macro
Convert all PBUS registers to use the kernel's register macro and update the code accordingly.
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260325-b4-nova-register-v4-3-bdf172f0f6ca@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
show more ...
|