brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 40d9d17 Raw
48 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (C) 2020-2023 Intel Corporation4 */5 6#ifndef __IVPU_FW_H__7#define __IVPU_FW_H__8 9struct ivpu_device;10struct ivpu_bo;11struct vpu_boot_params;12 13struct ivpu_fw_info {14	const struct firmware *file;15	const char *name;16	struct ivpu_bo *mem;17	struct ivpu_bo *mem_shave_nn;18	struct ivpu_bo *mem_log_crit;19	struct ivpu_bo *mem_log_verb;20	u64 runtime_addr;21	u32 runtime_size;22	u64 image_load_offset;23	u32 image_size;24	u32 shave_nn_size;25	u64 entry_point; /* Cold or warm boot entry point for next boot */26	u64 cold_boot_entry_point;27	u32 trace_level;28	u32 trace_destination_mask;29	u64 trace_hw_component_mask;30	u32 dvfs_mode;31	u32 primary_preempt_buf_size;32	u32 secondary_preempt_buf_size;33	u64 read_only_addr;34	u32 read_only_size;35};36 37int ivpu_fw_init(struct ivpu_device *vdev);38void ivpu_fw_fini(struct ivpu_device *vdev);39void ivpu_fw_load(struct ivpu_device *vdev);40void ivpu_fw_boot_params_setup(struct ivpu_device *vdev, struct vpu_boot_params *bp);41 42static inline bool ivpu_fw_is_cold_boot(struct ivpu_device *vdev)43{44	return vdev->fw->entry_point == vdev->fw->cold_boot_entry_point;45}46 47#endif /* __IVPU_FW_H__ */48