accel/habanalabs: keep explicit size of reserved memory for FW
authorTomer Tayar <ttayar@habana.ai>
Tue, 30 Jan 2024 07:57:32 +0000 (09:57 +0200)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 26 Feb 2024 07:47:27 +0000 (09:47 +0200)
The reserved memory for FW is currently saved in an ASIC property in
units of MB, just like the value that comes from FW.
Except the fact that it is not clear from the property's name, it means
also that a calculation to actual size is required everywhere that it is
used.
Modify the property to hold the size in bytes.

Signed-off-by: Tomer Tayar <ttayar@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Reviewed-by: Carl Vanderlip <quic_carlv@quicinc.com>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/accel/habanalabs/common/firmware_if.c
drivers/accel/habanalabs/common/habanalabs.h

index 4f7079411570652309aaaf4267918809b0479dca..4bd02778a970c4feae970350bbddb625894b82fb 100644 (file)
@@ -2724,7 +2724,7 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev,
 
        if (hdev->asic_prop.support_dynamic_resereved_fw_size)
                hdev->asic_prop.reserved_fw_mem_size =
-                               le32_to_cpu(fw_loader->dynamic_loader.comm_desc.rsvd_mem_size_mb);
+                       le32_to_cpu(fw_loader->dynamic_loader.comm_desc.rsvd_mem_size_mb) * SZ_1M;
 
        if (!(hdev->fw_components & FW_TYPE_BOOT_CPU)) {
                struct lkd_fw_binning_info *binning_info;
index d85e1d12a309fce506208156590a1d5e1f2fdf0f..48f0f3eea1ef0611fd57a96db7a0e28ca5b3ac98 100644 (file)
@@ -650,7 +650,7 @@ struct hl_hints_range {
  * @glbl_err_max_cause_num: global err max cause number.
  * @hbw_flush_reg: register to read to generate HBW flush. value of 0 means HBW flush is
  *                 not supported.
- * @reserved_fw_mem_size: size in MB of dram memory reserved for FW.
+ * @reserved_fw_mem_size: size of dram memory reserved for FW.
  * @collective_first_sob: first sync object available for collective use
  * @collective_first_mon: first monitor available for collective use
  * @sync_stream_first_sob: first sync object available for sync stream use