162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci#ifndef __NVFW_HS_H__ 362306a36Sopenharmony_ci#define __NVFW_HS_H__ 462306a36Sopenharmony_ci#include <core/os.h> 562306a36Sopenharmony_cistruct nvkm_subdev; 662306a36Sopenharmony_ci 762306a36Sopenharmony_cistruct nvfw_hs_header { 862306a36Sopenharmony_ci u32 sig_dbg_offset; 962306a36Sopenharmony_ci u32 sig_dbg_size; 1062306a36Sopenharmony_ci u32 sig_prod_offset; 1162306a36Sopenharmony_ci u32 sig_prod_size; 1262306a36Sopenharmony_ci u32 patch_loc; 1362306a36Sopenharmony_ci u32 patch_sig; 1462306a36Sopenharmony_ci u32 hdr_offset; 1562306a36Sopenharmony_ci u32 hdr_size; 1662306a36Sopenharmony_ci}; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciconst struct nvfw_hs_header *nvfw_hs_header(struct nvkm_subdev *, const void *); 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistruct nvfw_hs_header_v2 { 2162306a36Sopenharmony_ci u32 sig_prod_offset; 2262306a36Sopenharmony_ci u32 sig_prod_size; 2362306a36Sopenharmony_ci u32 patch_loc; 2462306a36Sopenharmony_ci u32 patch_sig; 2562306a36Sopenharmony_ci u32 meta_data_offset; 2662306a36Sopenharmony_ci u32 meta_data_size; 2762306a36Sopenharmony_ci u32 num_sig; 2862306a36Sopenharmony_ci u32 header_offset; 2962306a36Sopenharmony_ci u32 header_size; 3062306a36Sopenharmony_ci}; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciconst struct nvfw_hs_header_v2 *nvfw_hs_header_v2(struct nvkm_subdev *, const void *); 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_cistruct nvfw_hs_load_header { 3562306a36Sopenharmony_ci u32 non_sec_code_off; 3662306a36Sopenharmony_ci u32 non_sec_code_size; 3762306a36Sopenharmony_ci u32 data_dma_base; 3862306a36Sopenharmony_ci u32 data_size; 3962306a36Sopenharmony_ci u32 num_apps; 4062306a36Sopenharmony_ci u32 apps[]; 4162306a36Sopenharmony_ci}; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciconst struct nvfw_hs_load_header * 4462306a36Sopenharmony_cinvfw_hs_load_header(struct nvkm_subdev *, const void *); 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_cistruct nvfw_hs_load_header_v2 { 4762306a36Sopenharmony_ci u32 os_code_offset; 4862306a36Sopenharmony_ci u32 os_code_size; 4962306a36Sopenharmony_ci u32 os_data_offset; 5062306a36Sopenharmony_ci u32 os_data_size; 5162306a36Sopenharmony_ci u32 num_apps; 5262306a36Sopenharmony_ci struct { 5362306a36Sopenharmony_ci u32 offset; 5462306a36Sopenharmony_ci u32 size; 5562306a36Sopenharmony_ci } app[]; 5662306a36Sopenharmony_ci}; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciconst struct nvfw_hs_load_header_v2 *nvfw_hs_load_header_v2(struct nvkm_subdev *, const void *); 5962306a36Sopenharmony_ci#endif 60