On Thu Aug 7, 2025 at 4:07 PM JST, Philipp Stanner wrote:
> The Nova GPU driver has a sub-website on the Rust-for-Linux website
> which so far was missing from the respective section in MAINTAINERS.
>
> Add the Nova website.
>
> Signed-off-by: Philipp Stanner
Staging this for inclusion into nova-
nment into a non-overflowing operation, and check that the requested
transfer remains into the limits of the DMA object. This also allows us
to remove a DMA-specific constant in the fwsec code.
Signed-off-by: Alexandre Courbot
---
This came up as I was writing the next iteration of the `Alig
Now that the vbios code uses a non-bound `Device` instance, store an
`ARef` to it at construction time so we can use it for logging without
having to carry an extra argument on every method for that sole purpose.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/firmware/fwsec.rs | 8
ad of having all their methods take an extra `dev` argument.
Removing this argument streamlines the code a bit.
Signed-off-by: Alexandre Courbot
---
Alexandre Courbot (2):
gpu: nova-core: vbios: replace pci::Device with device::Device
gpu: nova-core: vbios: store reference to Device
The passed pci::Device is exclusively used for logging purposes, so it
can be replaced by a regular device::Device, which allows us to remove
the `as_ref()` indirections at each logging site.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/gpu.rs | 2 +-
drivers/gpu/nova-core
On Mon Jul 28, 2025 at 10:25 PM JST, Steven Price wrote:
> On 28/07/2025 12:43, Alexandre Courbot wrote:
>> On Mon Jul 28, 2025 at 4:51 PM JST, Steven Price wrote:
>>> On 28/07/2025 05:59, Alexandre Courbot wrote:
>>>> Hi Daniel, thanks for the review!
>>>&g
On Sun Jul 27, 2025 at 6:48 PM JST, Rhys Lloyd wrote:
> Separating the header allows the use of `size_of::()`
> instead of the magic number 4.
>
> Signed-off-by: Rhys Lloyd
> ---
> drivers/gpu/nova-core/vbios.rs | 56 +-
> 1 file changed, 35 insertions(+), 21 delet
On Mon Jul 28, 2025 at 4:51 PM JST, Steven Price wrote:
> On 28/07/2025 05:59, Alexandre Courbot wrote:
>> Hi Daniel, thanks for the review!
>>
>> On Sat Jul 26, 2025 at 1:14 AM JST, Daniel Almeida wrote:
>>> Hi Alex. Thank you and John for working on this in g
On Sat Jul 26, 2025 at 4:12 AM JST, Daniel Almeida wrote:
>> macro_rules! register {
>> // Creates a register at a fixed offset of the MMIO space.
>> ($name:ident @ $offset:literal $(, $comment:literal)? { $($fields:tt)* }
>> ) => {
>> @@ -187,6 +238,35 @@ macro_rules! register {
>>
On Sat Jul 26, 2025 at 3:56 AM JST, Daniel Almeida wrote:
> Hi Alex,
>
>> On 18 Jul 2025, at 04:26, Alexandre Courbot wrote:
>>
>> The relative registers are currently very unsafe to use: callers can
>> specify any constant as the base address for access, m
On Sat Jul 26, 2025 at 2:03 AM JST, Daniel Almeida wrote:
>
>
>> On 18 Jul 2025, at 04:26, Alexandre Courbot wrote:
>>
>> The OFFSET const is an I/O property, and having to pass it to the
>> @common rule makes it impossible to make I/O optional, as we want to get
Hi Daniel, thanks for the review!
On Sat Jul 26, 2025 at 1:14 AM JST, Daniel Almeida wrote:
> Hi Alex. Thank you and John for working on this in general. It will be useful
> for the whole ecosystem! :)
>
>> On 18 Jul 2025, at 04:26, Alexandre Courbot wrote:
>>
On Fri Jul 18, 2025 at 4:36 PM JST, Rhys Lloyd wrote:
> Use the offset_of macro for each struct field, annotate the
> `PmuLookupTableHeader` struct with `#[repr(C)]` attribute,
> and add a TODO message to use FromBytes when available.
>
> Signed-off-by: Rhys Lloyd
> ---
> drivers/gpu/nova-core/vb
On Fri Jul 18, 2025 at 4:36 PM JST, Rhys Lloyd wrote:
> Annotate the PmuLookupTableEntry with an `#[repr(C, packed)]` attribute.
> Removes another magic number by making the struct the same size as
> the data it needs to read, allowing the use of
> `size_of::()`
>
> Signed-off-by: Rhys Lloyd
Look
On Fri Jul 18, 2025 at 4:36 PM JST, Rhys Lloyd wrote:
> 12 is identical to the value of `size_of::()`,
> so use the latter instead.
>
> Signed-off-by: Rhys Lloyd
Looking good - I'll push this to nova-next unless someone complains.
Thanks!
On Sat Jul 19, 2025 at 5:23 AM JST, John Hubbard wrote:
> On 7/18/25 12:26 AM, Alexandre Courbot wrote:
> ...
>> diff --git a/drivers/gpu/nova-core/falcon/gsp.rs
>> b/drivers/gpu/nova-core/falcon/gsp.rs
>> index
>> 0db9f94036
On Sat Jul 19, 2025 at 4:05 AM JST, Boqun Feng wrote:
> On Fri, Jul 18, 2025 at 04:26:07PM +0900, Alexandre Courbot wrote:
>> A space was missing between arguments in this invocation.
>>
>
> It's obvious up to driver and Nova folks, but I feel this commit better
> fo
Add support for declaring arrays of registers available from a variable
base. This is effectively a combination of the relative and array
registers features.
nova-core does not make much use of this yet, but it will become helpful
to have for GSP boot.
Signed-off-by: Alexandre Courbot
FUSE registers are an array of 16 consecutive registers. Use the
newly available register array feature to define them properly and
improve the code using them.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon/hal/ga102.rs | 33 ++-
drivers/gpu/nova
-checking is effective for array accesses performed with
a constant. For cases where the index cannot be known at compile time,
`try_` variants of the accessors are also made available that return
`EINVAL` if the access is out-of-bounds.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core
us to reuse the
captured field information partially to provide better `Debug` and
`Default` implementations in following patches.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 42 +++-
1 file changed, 32 insertions(+), 10 deletions
a relative register, and, since the valid bases are all known at
compile-time, also guarantees that all I/O accesses are done within the
valid bounds of the I/O range.
Signed-off-by: Alexandre Courbot
---
Documentation/gpu/nova/core/todo.rst | 1 -
drivers/gpu/nova-core/falcon.rs
registers
definitions to assign a distinct `PFalcon2Base` base address to each
falcon engine.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon.rs | 7 ++-
drivers/gpu/nova-core/falcon/gsp.rs | 6 +-
drivers/gpu/nova-core/falcon/sec2.rs | 6 +-
drivers/gpu/nova
These methods should always be inlined, so use the strongest compiler
hint that exists to maximize the chance they will indeed be.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a
Reword parts of the documentation that were a bit heavy to read, and
harmonize/fix the examples.
The relative registers section is about to be redesigned and its
documentation rewritten, so do not touch this part.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 24
The `$type` metavariable is not used in the @leaf_accessor rule, so
remove it.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova-core/regs
The `Default` implementation of a register should be the aggregate of
the default values of all its fields, and not simply be zeroed.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 26 +++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff
.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova-core/regs/macros.rs
index
f0942dc29210f703fddd4d86b758173f75b3477a
Now that we have an internal rule to dispatch field information where
needed, use it to generate a better `Debug` implementation where the raw
hexadecimal value of the register is displayed, as well as the `Debug`
values of its individual fields.
Signed-off-by: Alexandre Courbot
---
drivers/gpu
Add the missing doccomments for these accessors, as having a bit of
inline documentation is always helpful.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova
Fix a few documentation inconsistencies, and harmonize indentation where
possible.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 34 +-
1 file changed, 9 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/nova-core/regs
Relative registers are always accessed using a literal base, meaning
their validity can always be checked at compile-time. Thus remove the
`try_` accessors that have no purpose.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 38
The OFFSET const is an I/O property, and having to pass it to the
@common rule makes it impossible to make I/O optional, as we want to get
to eventually.
Thus, move OFFSET to the I/O impl block so it is not needed by the
@common rule anymore.
Signed-off-by: Alexandre Courbot
---
drivers/gpu
break up a
run-on sentence, for clarity.
Cc: Alexandre Courbot
Cc: Danilo Krummrich
Signed-off-by: John Hubbard
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 14 +++---
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/nova
` the field's range constant to avoid the
name collision.
Reported-by: Timur Tabi
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs.rs| 4 ++--
drivers/gpu/nova-core/regs/macros.rs | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/nova
A space was missing between arguments in this invocation.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova-core/regs/macros.rs
index
ive slices instead of NVIDIA's
OpenRM format,
- ... and proper suitability assessment by other driver contributors.
These should be trivial compared to the work that is done in this
series.
Signed-off-by: Alexandre Courbot
---
Changes in v2:
- Improve documentation and add layout diagram f
On Sun Jul 13, 2025 at 11:51 AM JST, Rhys Lloyd wrote:
> data is sliced from 2..6, but the bounds check data.len() < 5
> does not satisfy those bounds.
>
> Fixes: 47c4846e4319 ("gpu: nova-core: vbios: Add support for FWSEC ucode
> extraction")
>
> Signed-off-by: Rhys Lloyd
Applied to nova-next,
On Mon Jul 14, 2025 at 7:43 PM JST, Rhys Lloyd wrote:
> 12 is identical to the value of `size_of::()`,
> so use the latter instead.
>
> Signed-off-by: Rhys Lloyd
> ---
> drivers/gpu/nova-core/vbios.rs | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/nova-core/v
On Mon Jul 14, 2025 at 7:43 PM JST, Rhys Lloyd wrote:
> Separating the header allows the use of `size_of::()`
> instead of the magic number 4.
>
> Signed-off-by: Rhys Lloyd
> ---
> drivers/gpu/nova-core/vbios.rs | 56 +-
> 1 file changed, 35 insertions(+), 21 delet
On Tue Jul 15, 2025 at 12:22 AM JST, Joel Fernandes wrote:
>
>
> On 7/14/2025 10:53 AM, Alice Ryhl wrote:
>> On Mon, Jul 14, 2025 at 4:49 PM Joel Fernandes wrote:
>>>
>>> Hello, Rhys,
>>>
>>> On Mon, Jul 14, 2025 at 04:02:23AM -0700, Rhys Lloyd wrote:
Instead of the data field containing a u3
On Sun Jul 13, 2025 at 11:51 AM JST, Rhys Lloyd wrote:
> Introduce an associated constant `MIN_LEN` for each struct that checks
> the length of the input data in its constructor against a magic number.
>
> Signed-off-by: Rhys Lloyd
As I mentioned in [1], I think this would be better addressed by
Rhys Lloyd
> ---
> Changes in v2:
Since this is a v2, the message subject should have read "[PATCH v2]".
You can achieve this by passing `-v 2` to git format-patch.
No need to resend, just pointing it out for next time. :)
For the fix in itself,
Reviewed-by: Alexandre Courbot
From: Joel Fernandes
Add explanation of fwsec with diagrams. This helps clarify how the
nova-core falcon boot works.
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
Documentation/gpu/nova/core/fwsec.rst | 181 ++
Documentation/gpu/nova
Nouveau
code.
Signed-off-by: Joel Fernandes
Reviewed-by: Bagas Sanjaya
Signed-off-by: Alexandre Courbot
---
Documentation/gpu/nova/core/falcon.rst | 158 +
Documentation/gpu/nova/index.rst | 1 +
2 files changed, 159 insertions(+)
diff --git a
: Alexandre Courbot
---
Documentation/gpu/nova/core/devinit.rst | 61 +
Documentation/gpu/nova/index.rst| 1 +
2 files changed, 62 insertions(+)
diff --git a/Documentation/gpu/nova/core/devinit.rst
b/Documentation/gpu/nova/core/devinit.rst
new file mode
ff-by: Alexandre Courbot
---
Documentation/gpu/nova/core/vbios.rst | 181 ++
Documentation/gpu/nova/index.rst | 1 +
2 files changed, 182 insertions(+)
diff --git a/Documentation/gpu/nova/core/vbios.rst
b/Documentation/gpu/nova/core/vbios.rst
new file mode 1
From: Joel Fernandes
Add documentation strings, comments and AES mode for completeness
to the Falcon signatures.
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon.rs | 29 ++---
1 file changed, 22 insertions(+), 7
The second form is preferred, and there was no reason to use the first.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs.rs | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs
index
From: Joel Fernandes
sysmembar is a critical operation that the GSP falcon needs to perform
in the reset sequence. Add some code comments to clarify.
[acour...@nvdidia.com: move relevant documentation to SysmemFlush type]
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
g/all/db0i8wah970b.25d3s59ayf...@nvidia.com/
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
Changes in v4:
- Convert `/*` comments into `//`.
- Fix missing slashes in doccomments and minor typos.
- Move some less-important paragraphs to notes in the RST files.
- Link to v3:
Fernandes
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/gfw.rs | 39 +++
drivers/gpu/nova-core/regs.rs | 14 --
2 files changed, 47 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/nova-core/gfw.rs b/drivers/gpu/nova-core/gfw.rs
On Sun Jul 6, 2025 at 10:42 PM JST, Miguel Ojeda wrote:
> On Wed, Jul 2, 2025 at 1:04 PM Alexandre Courbot wrote:
>>
>> +// Check that FWSEC has lowered its protection level before reading
>> the GFW_BOOT status.
>
> `GFW_BOOT` (another one below), since it
Add support for declaring arrays of registers available from a variable
base. This is effectively a combination of the relative and array
registers features.
nova-core does not make much use of this yet, but it will become helpful
to have for GSP boot.
Signed-off-by: Alexandre Courbot
FUSE registers are an array of 16 consecutive registers. Use the
newly available register array feature to define them properly and
improve the code using them.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon/hal/ga102.rs | 33 ++-
drivers/gpu/nova
a relative register, and, since the valid bases are all known at
compile-time, also guarantees that all I/O accesses are done within the
valid bounds of the I/O range.
Signed-off-by: Alexandre Courbot
---
Documentation/gpu/nova/core/todo.rst | 1 -
drivers/gpu/nova-core/falcon.rs
-checking is effective for array accesses performed with
a constant. For cases where the index cannot be known at compile time,
`try_` variants of the accessors are also made available that return
`EINVAL` if the access is out-of-bounds.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core
registers
definitions to assign a distinct `PFalcon2Base` base address to each
falcon engine.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon.rs | 7 ++-
drivers/gpu/nova-core/falcon/gsp.rs | 6 +-
drivers/gpu/nova-core/falcon/sec2.rs | 6 +-
drivers/gpu/nova
These methods should always be inlined, so use the strongest compiler
hint that exists to maximize the chance they will indeed be.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a
.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova-core/regs/macros.rs
index
97895800ff7031d287b3bbd03a00b1ca71014aa8
The `Default` implementation of a register should be the aggregate of
the default values of all its fields, and not simply be zeroed.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 26 +++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff
Now that we have an internal rule to dispatch field information where
needed, use it to generate a better `Debug` implementation where the raw
hexadecimal value of the register is displayed, as well as the `Debug`
values of its individual fields.
Signed-off-by: Alexandre Courbot
---
drivers/gpu
Add the missing doccomments for these accessors, as having a bit of
inline documentation is always helpful.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova
us to reuse the
captured field information partially to provide better `Debug` and
`Default` implementations in following patches.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 42 +++-
1 file changed, 32 insertions(+), 10 deletions
Fix a few documentation inconsistencies, and harmonize indentation where
possible.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 34 +-
1 file changed, 9 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/nova-core/regs
The OFFSET const is an I/O property, and having to pass it to the
@common rule makes it impossible to make I/O optional, as we want to get
to eventually.
Thus, move OFFSET to the I/O impl block so it is not needed by the
@common rule anymore.
Signed-off-by: Alexandre Courbot
---
drivers/gpu
Relative registers are always accessed using a literal base, meaning
their validity can always be checked at compile-time. Thus remove the
`try_` accessors that have no purpose.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 38
The `$type` metavariable is not used in the @leaf_accessor rule, so
remove it.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova-core/regs
The provided example had its matching closing parentheses missing. Also
simplify the example itself and reword the explanation a bit.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu
A space was missing between arguments in this invocation.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/nova-core/regs/macros.rs
b/drivers/gpu/nova-core/regs/macros.rs
index
break up a
run-on sentence, for clarity.
Cc: Alexandre Courbot
Cc: Danilo Krummrich
Signed-off-by: John Hubbard
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/regs/macros.rs | 14 +++---
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/nova
ive slices instead of NVIDIA's
OpenRM format,
- ... and proper suitability assessment by other driver contributors.
These should be trivial compared to the work that is done in this
series.
Signed-off-by: Alexandre Courbot
---
Alexandre Courbot (17):
gpu: nova-core: register: fix
From: Joel Fernandes
Add explanation of fwsec with diagrams. This helps clarify how the
nova-core falcon boot works.
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
Documentation/gpu/nova/core/fwsec.rst | 182 ++
Documentation/gpu/nova
Nouveau
code.
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
Documentation/gpu/nova/core/falcon.rst | 158 +
Documentation/gpu/nova/index.rst | 1 +
2 files changed, 159 insertions(+)
diff --git a/Documentation/gpu/nova/core/falcon.rst
From: Joel Fernandes
sysmembar is a critical operation that the GSP falcon needs to perform
in the reset sequence. Add some code comments to clarify.
[acour...@nvdidia.com: move relevant documentation to SysmemFlush type]
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
From: Joel Fernandes
devinit is mentioned in the code. This patch explains it so it is clear
what it does. devinit is not only essential at boot-time, but also at
runtime due to suspend-resume and things like re-clocking.
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
ff-by: Alexandre Courbot
---
Documentation/gpu/nova/core/vbios.rst | 180 ++
Documentation/gpu/nova/index.rst | 1 +
2 files changed, 181 insertions(+)
diff --git a/Documentation/gpu/nova/core/vbios.rst
b/Documentation/gpu/nova/core/vbios.rst
new file mode 1
From: Joel Fernandes
Add documentation strings, comments and AES mode for completeness
to the Falcon signatures.
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon.rs | 29 ++---
1 file changed, 22 insertions(+), 7
g/all/db0i8wah970b.25d3s59ayf...@nvidia.com/
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
Changes in v3:
- Rebase on top of latest nova-next.
- Reorganize patches a bit and use standard prefixes.
- Convert diagrams to only use ASCII characters (thanks Bagas!).
- Move sysm
Fernandes
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/gfw.rs | 39 +++
drivers/gpu/nova-core/regs.rs | 16 ++--
2 files changed, 49 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/nova-core/gfw.rs b/drivers/gpu/nova-core/gfw.rs
On Tue Jul 1, 2025 at 12:43 AM JST, Danilo Krummrich wrote:
> On 6/24/25 4:56 AM, Alexandre Courbot wrote:
>> On Tue Jun 24, 2025 at 6:01 AM JST, Danilo Krummrich wrote:
>>> There's one thing that would be nice to fix subsequently, which is properly
>>> resettin
On Mon Jun 30, 2025 at 7:37 PM JST, Danilo Krummrich wrote:
> On 5/3/25 6:07 AM, Joel Fernandes wrote:
>> Hello,
>>
>> Please find attached initial documentation for nova-core mainly about the
>> vbios
>> and boot process. It helps build an understanding of the boot code. All the
>> information i
On Tue Jun 24, 2025 at 10:23 PM JST, Danilo Krummrich wrote:
> Implement From for u32 for all enum types used within the register!()
> macro.
>
> This avoids a conflict with [1] as reported in [2].
>
> Cc: Alexandre Courbot
> Cc: Miguel Ojeda
> Link:
> https://lore.k
On Tue Jun 24, 2025 at 10:23 PM JST, Danilo Krummrich wrote:
> Fix all warnings caused by `clippy::cast_lossless`, which is going to be
> enabled by [1].
>
> Cc: Alexandre Courbot
> Cc: Miguel Ojeda
> Link:
> https://lore.kernel.org/r/20250615-ptr-as-ptr-v12-5-f43b
The kernel's `Delta` type was not available when the `wait_on` function
was introduced. Now that it is, switch to it as it is more compact than
`Duration` and cannot panic.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon.rs | 12 ++--
drivers/gpu/nova
On Tue Jun 24, 2025 at 6:01 AM JST, Danilo Krummrich wrote:
> There's one thing that would be nice to fix subsequently, which is properly
> resetting the GPU. Currently, it needs a power cycle to be able to probe
> successfully after unbinding the driver.
Yes, what I usually do is the following af
Some of the firmwares need to be patched at load-time with a signature.
Add a couple of types and traits that sub-modules can use to implement
this behavior, while ensuring that the correct kind of signature is
applied to the firmware.
Reviewed-by: Lyude Paul
Signed-off-by: Alexandre Courbot
(Write protected
region) before the Booter runs on the SEC2 processor.
Tested on my Ampere GA102 and boot is successful.
[applied changes by Alex Courbot for fwsec signatures]
[acour...@nvidia.com: remove now-unneeded Devres acquisition]
Cc: Alexandre Courbot
Cc: John Hubbard
Cc: Shirish Baskaran
On Thu Jun 19, 2025 at 4:24 AM JST, Benno Lossin wrote:
> On Mon Jun 16, 2025 at 8:41 AM CEST, Alexandre Courbot wrote:
>> On Sun Jun 15, 2025 at 4:16 AM JST, Benno Lossin wrote:
>>> On Thu Jun 12, 2025 at 4:01 PM CEST, Alexandre Courbot wrote:
>>>>
: Alexandre Courbot
---
drivers/gpu/nova-core/fb.rs | 70
drivers/gpu/nova-core/fb/hal.rs | 12 +-
drivers/gpu/nova-core/fb/hal/ga100.rs | 12 ++
drivers/gpu/nova-core/fb/hal/ga102.rs | 36 +
drivers/gpu/nova-core/fb/hal/tu102
With all the required pieces in place, load FWSEC-FRTS onto the GSP
falcon, run it, and check that it successfully carved out the WPR2
region out of framebuffer memory.
Reviewed-by: Lyude Paul
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/falcon.rs | 3 --
drivers/gpu
: Alexandre Courbot
---
Documentation/gpu/nova/core/todo.rst | 107 --
drivers/gpu/nova-core/dma.rs | 2 +-
drivers/gpu/nova-core/driver.rs | 2 +-
drivers/gpu/nova-core/falcon.rs | 8 ++-
drivers/gpu/nova-core/falcon/hal
x27;s fields]
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/dma.rs| 3 -
drivers/gpu/nova-core/firmware.rs | 3 +-
drivers/gpu/nova-core/firmware/fwsec.rs | 398
drivers/gpu/nova-core/gpu.rs| 15 +-
drivers/gpu/nova
the
GSP and SEC2 Falcons that will be required to perform that dance and
boot the GSP.
Thanks to Ben Skeggs for pointing out an important bug in the memory
scrubbing code that could lead to a race condition and ultimately a
failure to boot the GSP!
Reviewed-by: Lyude Paul
Signed-off-by: Alexandre
Tabi]
[applied changes related to code reorg, prints etc from Danilo Krummrich]
[acour...@nvidia.com: fix clippy warnings, read_more() function]
Cc: Alexandre Courbot
Cc: John Hubbard
Cc: Shirish Baskaran
Cc: Alistair Popple
Cc: Timur Tabi
Cc: Ben Skeggs
Signed-off-by: Alexandre Courbot
From: Joel Fernandes
The PMU table in the FWSEC image has to be located to locate the start
of the Falcon ucode in the same or another FWSEC image. Add support for
the same.
Signed-off-by: Joel Fernandes
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/vbios.rs | 179
Upon reset, the GPU executes the GFW (GPU Firmware) in order to
initialize its base parameters such as clocks. The driver must ensure
that this step is completed before using the hardware.
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/gfw.rs | 41
: Alexandre Courbot
---
drivers/gpu/nova-core/fb.rs | 66 +++
drivers/gpu/nova-core/fb/hal.rs | 31
drivers/gpu/nova-core/fb/hal/ga100.rs | 45
drivers/gpu/nova-core/fb/hal/tu102.rs | 42
FWSEC-FRTS is the first firmware we need to run on the GSP falcon in
order to initiate the GSP boot process. Introduce the structure that
describes it.
Reviewed-by: Lyude Paul
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/firmware.rs | 45 +++
1
Since we will need to allocate lots of distinct memory chunks to be
shared between GPU and CPU, introduce a type dedicated to that. It is a
light wrapper around CoherentAllocation.
Reviewed-by: Lyude Paul
Signed-off-by: Alexandre Courbot
---
drivers/gpu/nova-core/dma.rs | 61
1 - 100 of 697 matches
Mail list logo