On 8/25/25 9:07 PM, Alexandre Courbot wrote: > From: Alistair Popple <apop...@nvidia.com> > > Interacting with the GSP currently requires using definitions from C > header files. Rust definitions for the types needed for Nova core will > be generated using the Rust bindgen tool. This patch adds the base > module to allow inclusion of the generated bindings. The generated > bindings themselves are added by subsequent patches when they are first > used. > > Currently we only intend to support a single firmware version, 570.144, > with these bindings. Longer term we intend to move to a more stable GSP > interface that isn't tied to specific firmware versions. > > [acour...@nvidia.com: adapt the bindings module comment a bit.] > > Signed-off-by: Alistair Popple <apop...@nvidia.com> > Signed-off-by: Alexandre Courbot <acour...@nvidia.com> > --- > drivers/gpu/nova-core/nova_core.rs | 1 + > drivers/gpu/nova-core/nvfw.rs | 3 +++ > drivers/gpu/nova-core/nvfw/r570_144.rs | 29 > +++++++++++++++++++++++++ > drivers/gpu/nova-core/nvfw/r570_144_bindings.rs | 1 + > 4 files changed, 34 insertions(+) >
Reviewed-by: John Hubbard <jhubb...@nvidia.com> thanks, -- John Hubbard > diff --git a/drivers/gpu/nova-core/nova_core.rs > b/drivers/gpu/nova-core/nova_core.rs > index > fffcaee2249fe6cd7f55a7291c1e44be42e791d9..db197498b0b7b1ff9234ef6645a4ea5ff44bd285 > 100644 > --- a/drivers/gpu/nova-core/nova_core.rs > +++ b/drivers/gpu/nova-core/nova_core.rs > @@ -10,6 +10,7 @@ > mod gfw; > mod gpu; > mod gsp; > +mod nvfw; > mod regs; > mod util; > mod vbios; > diff --git a/drivers/gpu/nova-core/nvfw.rs b/drivers/gpu/nova-core/nvfw.rs > new file mode 100644 > index > 0000000000000000000000000000000000000000..7c5baccc34a2387c30e51f93d3ae039b14b6b83a > --- /dev/null > +++ b/drivers/gpu/nova-core/nvfw.rs > @@ -0,0 +1,3 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +mod r570_144; > diff --git a/drivers/gpu/nova-core/nvfw/r570_144.rs > b/drivers/gpu/nova-core/nvfw/r570_144.rs > new file mode 100644 > index > 0000000000000000000000000000000000000000..2e7bba80fa8b9c5fcb4e26887825d2cca3f7b6b7 > --- /dev/null > +++ b/drivers/gpu/nova-core/nvfw/r570_144.rs > @@ -0,0 +1,29 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +//! Firmware bindings. > +//! > +//! Imports the generated bindings by `bindgen`. > +//! > +//! This module may not be directly used. Please abstract or re-export the > needed symbols in the > +//! parent module instead. > + > +#![cfg_attr(test, allow(deref_nullptr))] > +#![cfg_attr(test, allow(unaligned_references))] > +#![cfg_attr(test, allow(unsafe_op_in_unsafe_fn))] > +#![allow( > + dead_code, > + unused_imports, > + clippy::all, > + clippy::undocumented_unsafe_blocks, > + clippy::ptr_as_ptr, > + clippy::ref_as_ptr, > + missing_docs, > + non_camel_case_types, > + non_upper_case_globals, > + non_snake_case, > + improper_ctypes, > + unreachable_pub, > + unsafe_op_in_unsafe_fn > +)] > +use kernel::ffi; > +include!("r570_144_bindings.rs"); > diff --git a/drivers/gpu/nova-core/nvfw/r570_144_bindings.rs > b/drivers/gpu/nova-core/nvfw/r570_144_bindings.rs > new file mode 100644 > index > 0000000000000000000000000000000000000000..cec5940325151e407aa90128a35cb683afd436d7 > --- /dev/null > +++ b/drivers/gpu/nova-core/nvfw/r570_144_bindings.rs > @@ -0,0 +1 @@ > +// SPDX-License-Identifier: GPL-2.0 >