Re: [PATCH v10 02/10] gpu: nova-core: falcon: add constant for memory block alignment
From: Eliot Courtney
Date: Thu Mar 05 2026 - 20:43:11 EST
On Sun Mar 1, 2026 at 11:03 PM JST, Alexandre Courbot wrote:
> Falcon memory blocks are 256 bytes in size. This is a hard constant on
> all models.
>
> This value was hardcoded, so turn it into a documented constant. It will
> also become useful with the PIO loading code.
>
> Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
> ---
> drivers/gpu/nova-core/falcon.rs | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon.rs
> index 8d444cf9d55c..31217cd3a795 100644
> --- a/drivers/gpu/nova-core/falcon.rs
> +++ b/drivers/gpu/nova-core/falcon.rs
> @@ -25,6 +25,7 @@
> falcon::hal::LoadMethod,
> gpu::Chipset,
> num::{
> + self,
> FromSafeCast,
> IntoSafeCast, //
> },
> @@ -36,6 +37,9 @@
> mod hal;
> pub(crate) mod sec2;
>
> +/// Alignment (in bytes) of falcon memory blocks.
> +pub(crate) const MEM_BLOCK_ALIGNMENT: usize = 256;
> +
> // TODO[FPRI]: Replace with `ToPrimitive`.
> macro_rules! impl_from_enum_to_u8 {
> ($enum_type:ty) => {
> @@ -423,7 +427,7 @@ fn dma_wr(
> target_mem: FalconMem,
> load_offsets: FalconLoadTarget,
> ) -> Result {
> - const DMA_LEN: u32 = 256;
> + const DMA_LEN: u32 = num::usize_into_u32::<{ MEM_BLOCK_ALIGNMENT }>();
>
> // For IMEM, we want to use the start offset as a virtual address tag for each page, since
> // code addresses in the firmware (and the boot vector) are virtual.
Reviewed-by: Eliot Courtney <ecourtney@xxxxxxxxxx>