1 /* SPDX-License-Identifier: MIT */ 2 #ifndef __NVFW_FLCN_H__ 3 #define __NVFW_FLCN_H__ 4 #include <core/os.h> 5 struct nvkm_subdev; 6 7 struct loader_config { 8 u32 dma_idx; 9 u32 code_dma_base; 10 u32 code_size_total; 11 u32 code_size_to_load; 12 u32 code_entry_point; 13 u32 data_dma_base; 14 u32 data_size; 15 u32 overlay_dma_base; 16 u32 argc; 17 u32 argv; 18 u32 code_dma_base1; 19 u32 data_dma_base1; 20 u32 overlay_dma_base1; 21 }; 22 23 void 24 loader_config_dump(struct nvkm_subdev *, const struct loader_config *); 25 26 struct loader_config_v1 { 27 u32 reserved; 28 u32 dma_idx; 29 u64 code_dma_base; 30 u32 code_size_total; 31 u32 code_size_to_load; 32 u32 code_entry_point; 33 u64 data_dma_base; 34 u32 data_size; 35 u64 overlay_dma_base; 36 u32 argc; 37 u32 argv; 38 } __packed; 39 40 void 41 loader_config_v1_dump(struct nvkm_subdev *, const struct loader_config_v1 *); 42 43 struct flcn_bl_dmem_desc { 44 u32 reserved[4]; 45 u32 signature[4]; 46 u32 ctx_dma; 47 u32 code_dma_base; 48 u32 non_sec_code_off; 49 u32 non_sec_code_size; 50 u32 sec_code_off; 51 u32 sec_code_size; 52 u32 code_entry_point; 53 u32 data_dma_base; 54 u32 data_size; 55 u32 code_dma_base1; 56 u32 data_dma_base1; 57 }; 58 59 void 60 flcn_bl_dmem_desc_dump(struct nvkm_subdev *, const struct flcn_bl_dmem_desc *); 61 62 struct flcn_bl_dmem_desc_v1 { 63 u32 reserved[4]; 64 u32 signature[4]; 65 u32 ctx_dma; 66 u64 code_dma_base; 67 u32 non_sec_code_off; 68 u32 non_sec_code_size; 69 u32 sec_code_off; 70 u32 sec_code_size; 71 u32 code_entry_point; 72 u64 data_dma_base; 73 u32 data_size; 74 } __packed; 75 76 void flcn_bl_dmem_desc_v1_dump(struct nvkm_subdev *, 77 const struct flcn_bl_dmem_desc_v1 *); 78 79 struct flcn_bl_dmem_desc_v2 { 80 u32 reserved[4]; 81 u32 signature[4]; 82 u32 ctx_dma; 83 u64 code_dma_base; 84 u32 non_sec_code_off; 85 u32 non_sec_code_size; 86 u32 sec_code_off; 87 u32 sec_code_size; 88 u32 code_entry_point; 89 u64 data_dma_base; 90 u32 data_size; 91 u32 argc; 92 u32 argv; 93 } __packed; 94 95 void flcn_bl_dmem_desc_v2_dump(struct nvkm_subdev *, 96 const struct flcn_bl_dmem_desc_v2 *); 97 #endif 98