mirror of
https://github.com/torvalds/linux.git
synced 2026-04-26 18:42:25 -04:00
Add the missing fields of the nvfw_hs_load_header_v2 struct, so that the struct matches the actual contents of the firmware images. nvfw_hs_load_header_v2 is a struct that defines a header for some firmware images used by Nouveau. The current structure definition is incomplete; it omits the last two fields because they are unused. To maintain consistency between Nouveau, OpenRM, and Nova, and to make it easier to support possible future images, we should fully define the struct. Also add a __counted_by tag for the flex array. Signed-off-by: Timur Tabi <ttabi@nvidia.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Lyude Paul <lyude@redhat.com> Link: https://patch.msgid.link/20251010223957.1078525-1-ttabi@nvidia.com
62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
#ifndef __NVFW_HS_H__
|
|
#define __NVFW_HS_H__
|
|
#include <core/os.h>
|
|
struct nvkm_subdev;
|
|
|
|
struct nvfw_hs_header {
|
|
u32 sig_dbg_offset;
|
|
u32 sig_dbg_size;
|
|
u32 sig_prod_offset;
|
|
u32 sig_prod_size;
|
|
u32 patch_loc;
|
|
u32 patch_sig;
|
|
u32 hdr_offset;
|
|
u32 hdr_size;
|
|
};
|
|
|
|
const struct nvfw_hs_header *nvfw_hs_header(struct nvkm_subdev *, const void *);
|
|
|
|
struct nvfw_hs_header_v2 {
|
|
u32 sig_prod_offset;
|
|
u32 sig_prod_size;
|
|
u32 patch_loc;
|
|
u32 patch_sig;
|
|
u32 meta_data_offset;
|
|
u32 meta_data_size;
|
|
u32 num_sig;
|
|
u32 header_offset;
|
|
u32 header_size;
|
|
};
|
|
|
|
const struct nvfw_hs_header_v2 *nvfw_hs_header_v2(struct nvkm_subdev *, const void *);
|
|
|
|
struct nvfw_hs_load_header {
|
|
u32 non_sec_code_off;
|
|
u32 non_sec_code_size;
|
|
u32 data_dma_base;
|
|
u32 data_size;
|
|
u32 num_apps;
|
|
u32 apps[];
|
|
};
|
|
|
|
const struct nvfw_hs_load_header *
|
|
nvfw_hs_load_header(struct nvkm_subdev *, const void *);
|
|
|
|
struct nvfw_hs_load_header_v2 {
|
|
u32 os_code_offset;
|
|
u32 os_code_size;
|
|
u32 os_data_offset;
|
|
u32 os_data_size;
|
|
u32 num_apps;
|
|
struct {
|
|
u32 offset;
|
|
u32 size;
|
|
u32 data_offset;
|
|
u32 data_size;
|
|
} app[] __counted_by(num_apps);
|
|
};
|
|
|
|
const struct nvfw_hs_load_header_v2 *nvfw_hs_load_header_v2(struct nvkm_subdev *, const void *);
|
|
#endif
|