Home | History | Annotate | Line # | Download | only in nvfw
      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