Lines Matching refs:fw_hdr

37 #define IVPU_FW_CHECK_API_COMPAT(vdev, fw_hdr, name, min_major) \  argument
38 ivpu_fw_check_api(vdev, fw_hdr, #name, \
44 #define IVPU_FW_CHECK_API_VER_LT(vdev, fw_hdr, name, major, minor) \ argument
45 ivpu_fw_check_api_ver_lt(vdev, fw_hdr, #name, VPU_##name##_API_VER_INDEX, major, minor)
95 ivpu_fw_check_api(struct ivpu_device *vdev, const struct vpu_firmware_header *fw_hdr, in ivpu_fw_check_api() argument
99 u16 major = (u16)(fw_hdr->api_version[index] >> 16); in ivpu_fw_check_api()
100 u16 minor = (u16)(fw_hdr->api_version[index]); in ivpu_fw_check_api()
118 ivpu_fw_check_api_ver_lt(struct ivpu_device *vdev, const struct vpu_firmware_header *fw_hdr, in ivpu_fw_check_api_ver_lt() argument
121 u16 fw_major = (u16)(fw_hdr->api_version[index] >> 16); in ivpu_fw_check_api_ver_lt()
122 u16 fw_minor = (u16)(fw_hdr->api_version[index]); in ivpu_fw_check_api_ver_lt()
141 const struct vpu_firmware_header *fw_hdr = (const void *)fw->file->data; in ivpu_fw_parse() local
149 if (fw_hdr->header_version != VPU_FW_HEADER_VERSION) { in ivpu_fw_parse()
150 ivpu_err(vdev, "Invalid firmware header version: %u\n", fw_hdr->header_version); in ivpu_fw_parse()
154 runtime_addr = fw_hdr->boot_params_load_address; in ivpu_fw_parse()
155 runtime_size = fw_hdr->runtime_size; in ivpu_fw_parse()
156 image_load_addr = fw_hdr->image_load_address; in ivpu_fw_parse()
157 image_size = fw_hdr->image_size; in ivpu_fw_parse()
181 if (fw_hdr->shave_nn_fw_size > FW_SHAVE_NN_MAX_SIZE) { in ivpu_fw_parse()
182 ivpu_err(vdev, "SHAVE NN firmware is too big: %u\n", fw_hdr->shave_nn_fw_size); in ivpu_fw_parse()
186 if (fw_hdr->entry_point < image_load_addr || in ivpu_fw_parse()
187 fw_hdr->entry_point >= image_load_addr + image_size) { in ivpu_fw_parse()
188 ivpu_err(vdev, "Invalid entry point: 0x%llx\n", fw_hdr->entry_point); in ivpu_fw_parse()
192 fw_hdr->header_version, fw_hdr->image_format); in ivpu_fw_parse()
195 (const char *)fw_hdr + VPU_FW_HEADER_SIZE); in ivpu_fw_parse()
197 if (IVPU_FW_CHECK_API_COMPAT(vdev, fw_hdr, BOOT, 3)) in ivpu_fw_parse()
199 if (IVPU_FW_CHECK_API_COMPAT(vdev, fw_hdr, JSM, 3)) in ivpu_fw_parse()
206 fw->shave_nn_size = PAGE_ALIGN(fw_hdr->shave_nn_fw_size); in ivpu_fw_parse()
208 fw->cold_boot_entry_point = fw_hdr->entry_point; in ivpu_fw_parse()
217 fw->primary_preempt_buf_size = fw_hdr->preemption_buffer_1_size; in ivpu_fw_parse()
218 fw->secondary_preempt_buf_size = fw_hdr->preemption_buffer_2_size; in ivpu_fw_parse()
220 if (fw_hdr->ro_section_start_address && !is_within_range(fw_hdr->ro_section_start_address, in ivpu_fw_parse()
221 fw_hdr->ro_section_size, in ivpu_fw_parse()
222 fw_hdr->image_load_address, in ivpu_fw_parse()
223 fw_hdr->image_size)) { in ivpu_fw_parse()
225 fw_hdr->ro_section_start_address, fw_hdr->ro_section_size); in ivpu_fw_parse()
229 fw->read_only_addr = fw_hdr->ro_section_start_address; in ivpu_fw_parse()
230 fw->read_only_size = fw_hdr->ro_section_size; in ivpu_fw_parse()
251 const struct vpu_firmware_header *fw_hdr = (const void *)vdev->fw->file->data; in ivpu_fw_init_wa() local
253 if (IVPU_FW_CHECK_API_VER_LT(vdev, fw_hdr, BOOT, 3, 17) || in ivpu_fw_init_wa()