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