162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2020-2023 Intel Corporation 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef __IVPU_FW_H__ 762306a36Sopenharmony_ci#define __IVPU_FW_H__ 862306a36Sopenharmony_ci 962306a36Sopenharmony_cistruct ivpu_device; 1062306a36Sopenharmony_cistruct ivpu_bo; 1162306a36Sopenharmony_cistruct vpu_boot_params; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct ivpu_fw_info { 1462306a36Sopenharmony_ci const struct firmware *file; 1562306a36Sopenharmony_ci const char *name; 1662306a36Sopenharmony_ci struct ivpu_bo *mem; 1762306a36Sopenharmony_ci struct ivpu_bo *mem_shave_nn; 1862306a36Sopenharmony_ci struct ivpu_bo *mem_log_crit; 1962306a36Sopenharmony_ci struct ivpu_bo *mem_log_verb; 2062306a36Sopenharmony_ci u64 runtime_addr; 2162306a36Sopenharmony_ci u32 runtime_size; 2262306a36Sopenharmony_ci u64 image_load_offset; 2362306a36Sopenharmony_ci u32 image_size; 2462306a36Sopenharmony_ci u32 shave_nn_size; 2562306a36Sopenharmony_ci u64 entry_point; /* Cold or warm boot entry point for next boot */ 2662306a36Sopenharmony_ci u64 cold_boot_entry_point; 2762306a36Sopenharmony_ci u32 trace_level; 2862306a36Sopenharmony_ci u32 trace_destination_mask; 2962306a36Sopenharmony_ci u64 trace_hw_component_mask; 3062306a36Sopenharmony_ci}; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciint ivpu_fw_init(struct ivpu_device *vdev); 3362306a36Sopenharmony_civoid ivpu_fw_fini(struct ivpu_device *vdev); 3462306a36Sopenharmony_ciint ivpu_fw_load(struct ivpu_device *vdev); 3562306a36Sopenharmony_civoid ivpu_fw_boot_params_setup(struct ivpu_device *vdev, struct vpu_boot_params *bp); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_cistatic inline bool ivpu_fw_is_cold_boot(struct ivpu_device *vdev) 3862306a36Sopenharmony_ci{ 3962306a36Sopenharmony_ci return vdev->fw->entry_point == vdev->fw->cold_boot_entry_point; 4062306a36Sopenharmony_ci} 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#endif /* __IVPU_FW_H__ */ 43