Lines Matching refs:fw_hdr
35 #define IVPU_FW_CHECK_API(vdev, fw_hdr, name, min_major) \ argument
36 ivpu_fw_check_api(vdev, fw_hdr, #name, \
68 ivpu_fw_check_api(struct ivpu_device *vdev, const struct vpu_firmware_header *fw_hdr, in ivpu_fw_check_api() argument
72 u16 major = (u16)(fw_hdr->api_version[index] >> 16); in ivpu_fw_check_api()
73 u16 minor = (u16)(fw_hdr->api_version[index]); in ivpu_fw_check_api()
93 const struct vpu_firmware_header *fw_hdr = (const void *)fw->file->data; in ivpu_fw_parse() local
101 if (fw_hdr->header_version != VPU_FW_HEADER_VERSION) { in ivpu_fw_parse()
102 ivpu_err(vdev, "Invalid firmware header version: %u\n", fw_hdr->header_version); in ivpu_fw_parse()
106 runtime_addr = fw_hdr->boot_params_load_address; in ivpu_fw_parse()
107 runtime_size = fw_hdr->runtime_size; in ivpu_fw_parse()
108 image_load_addr = fw_hdr->image_load_address; in ivpu_fw_parse()
109 image_size = fw_hdr->image_size; in ivpu_fw_parse()
133 if (fw_hdr->shave_nn_fw_size > FW_SHAVE_NN_MAX_SIZE) { in ivpu_fw_parse()
134 ivpu_err(vdev, "SHAVE NN firmware is too big: %u\n", fw_hdr->shave_nn_fw_size); in ivpu_fw_parse()
138 if (fw_hdr->entry_point < image_load_addr || in ivpu_fw_parse()
139 fw_hdr->entry_point >= image_load_addr + image_size) { in ivpu_fw_parse()
140 ivpu_err(vdev, "Invalid entry point: 0x%llx\n", fw_hdr->entry_point); in ivpu_fw_parse()
144 fw_hdr->header_version, fw_hdr->image_format); in ivpu_fw_parse()
145 ivpu_dbg(vdev, FW_BOOT, "FW version: %s\n", (char *)fw_hdr + VPU_FW_HEADER_SIZE); in ivpu_fw_parse()
147 if (IVPU_FW_CHECK_API(vdev, fw_hdr, BOOT, 3)) in ivpu_fw_parse()
149 if (IVPU_FW_CHECK_API(vdev, fw_hdr, JSM, 3)) in ivpu_fw_parse()
156 fw->shave_nn_size = PAGE_ALIGN(fw_hdr->shave_nn_fw_size); in ivpu_fw_parse()
158 fw->cold_boot_entry_point = fw_hdr->entry_point; in ivpu_fw_parse()