mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 09:57:08 +03:00
- Update PMU version to support r370 - flcn_bl_dmem_desc_v1 params update to support PMU bootloader - PMU_UNIT_CLK value update JIRA DNVGPU-116 Change-Id: Ic4096e4a5ea55ca6b7c72670061e55b4719e0895 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/1212834 (cherry picked from commit 32257231733303b0859230719f3857ad2d9d8820) Reviewed-on: http://git-master/r/1227289 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> GVS: Gerrit_Virtual_Submit
83 lines
2.4 KiB
C
83 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms and conditions of the GNU General Public License,
|
|
* version 2, as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*/
|
|
|
|
#ifndef __ACR_GM206_H_
|
|
#define __ACR_GM206_H_
|
|
|
|
#include "gm20b/acr_gm20b.h"
|
|
|
|
struct loader_config_v1 {
|
|
u32 reserved;
|
|
u32 dma_idx;
|
|
struct falc_u64 code_dma_base;
|
|
u32 code_size_total;
|
|
u32 code_size_to_load;
|
|
u32 code_entry_point;
|
|
struct falc_u64 data_dma_base;
|
|
u32 data_size;
|
|
struct falc_u64 overlay_dma_base;
|
|
u32 argc;
|
|
u32 argv;
|
|
};
|
|
|
|
struct flcn_bl_dmem_desc_v1 {
|
|
u32 reserved[4]; /*Should be the first element..*/
|
|
u32 signature[4]; /*Should be the first element..*/
|
|
u32 ctx_dma;
|
|
struct falc_u64 code_dma_base;
|
|
u32 non_sec_code_off;
|
|
u32 non_sec_code_size;
|
|
u32 sec_code_off;
|
|
u32 sec_code_size;
|
|
u32 code_entry_point;
|
|
struct falc_u64 data_dma_base;
|
|
u32 data_size;
|
|
u32 argc;
|
|
u32 argv;
|
|
};
|
|
|
|
/*!
|
|
* Union of all supported structures used by bootloaders.
|
|
*/
|
|
union flcn_bl_generic_desc_v1 {
|
|
struct flcn_bl_dmem_desc_v1 bl_dmem_desc_v1;
|
|
struct loader_config_v1 loader_cfg_v1;
|
|
};
|
|
|
|
/*!
|
|
* LSFM Managed Ucode Image
|
|
* next : Next image the list, NULL if last.
|
|
* wpr_header : WPR header for this ucode image
|
|
* lsb_header : LSB header for this ucode image
|
|
* bl_gen_desc : Bootloader generic desc structure for this ucode image
|
|
* bl_gen_desc_size : Sizeof bootloader desc structure for this ucode image
|
|
* full_ucode_size : Surface size required for final ucode image
|
|
* ucode_img : Ucode image info
|
|
*/
|
|
struct lsfm_managed_ucode_img_v1 {
|
|
struct lsfm_managed_ucode_img_v1 *next;
|
|
struct lsf_wpr_header wpr_header;
|
|
struct lsf_lsb_header lsb_header;
|
|
union flcn_bl_generic_desc_v1 bl_gen_desc;
|
|
u32 bl_gen_desc_size;
|
|
u32 full_ucode_size;
|
|
struct flcn_ucode_img ucode_img;
|
|
};
|
|
|
|
void gm206_init_secure_pmu(struct gpu_ops *gops);
|
|
int gm206_alloc_blob_space(struct gk20a *g,
|
|
size_t size, struct mem_desc *mem);
|
|
void gm206_wpr_info(struct gk20a *g, struct wpr_carveout_info *inf);
|
|
|
|
#endif /*__ACR_GM206_H_*/
|