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