mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 10:11:38 -04:00
gpu: nova-core: move brom_params and boot_addr to FalconFirmware
These methods are relevant no matter the loading method used, thus move them to the common `FalconFirmware` trait. Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260306-turing_prep-v11-5-8f0042c5d026@nvidia.com Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
This commit is contained in:
@@ -367,12 +367,6 @@ pub(crate) trait FalconDmaLoadable {
|
||||
|
||||
/// Returns the load parameters for `DMEM`.
|
||||
fn dmem_load_params(&self) -> FalconDmaLoadTarget;
|
||||
|
||||
/// Returns the parameters to write into the BROM registers.
|
||||
fn brom_params(&self) -> FalconBromParams;
|
||||
|
||||
/// Returns the start address of the firmware.
|
||||
fn boot_addr(&self) -> u32;
|
||||
}
|
||||
|
||||
/// Trait for a falcon firmware.
|
||||
@@ -381,6 +375,12 @@ pub(crate) trait FalconDmaLoadable {
|
||||
pub(crate) trait FalconFirmware {
|
||||
/// Engine on which this firmware is to be loaded.
|
||||
type Target: FalconEngine;
|
||||
|
||||
/// Returns the parameters to write into the BROM registers.
|
||||
fn brom_params(&self) -> FalconBromParams;
|
||||
|
||||
/// Returns the start address of the firmware.
|
||||
fn boot_addr(&self) -> u32;
|
||||
}
|
||||
|
||||
/// Contains the base parameters common to all Falcon instances.
|
||||
|
||||
@@ -414,6 +414,10 @@ fn imem_ns_load_params(&self) -> Option<FalconDmaLoadTarget> {
|
||||
fn dmem_load_params(&self) -> FalconDmaLoadTarget {
|
||||
self.dmem_load_target.clone()
|
||||
}
|
||||
}
|
||||
|
||||
impl FalconFirmware for BooterFirmware {
|
||||
type Target = Sec2;
|
||||
|
||||
fn brom_params(&self) -> FalconBromParams {
|
||||
self.brom_params.clone()
|
||||
@@ -427,7 +431,3 @@ fn boot_addr(&self) -> u32 {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl FalconFirmware for BooterFirmware {
|
||||
type Target = Sec2;
|
||||
}
|
||||
|
||||
@@ -196,6 +196,10 @@ fn imem_ns_load_params(&self) -> Option<FalconDmaLoadTarget> {
|
||||
fn dmem_load_params(&self) -> FalconDmaLoadTarget {
|
||||
self.desc.dmem_load_params()
|
||||
}
|
||||
}
|
||||
|
||||
impl FalconFirmware for FwsecFirmware {
|
||||
type Target = Gsp;
|
||||
|
||||
fn brom_params(&self) -> FalconBromParams {
|
||||
FalconBromParams {
|
||||
@@ -210,10 +214,6 @@ fn boot_addr(&self) -> u32 {
|
||||
}
|
||||
}
|
||||
|
||||
impl FalconFirmware for FwsecFirmware {
|
||||
type Target = Gsp;
|
||||
}
|
||||
|
||||
impl FirmwareObject<FwsecFirmware, Unsigned> {
|
||||
fn new_fwsec(bios: &Vbios, cmd: FwsecCommand) -> Result<Self> {
|
||||
let desc = bios.fwsec_image().header()?;
|
||||
|
||||
Reference in New Issue
Block a user