mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
- VIC RISC-V EB boot support - Programming sequence modification needed for Thor - Reloc block linear addressing not needed for t264 Bug 4132685 Signed-off-by: Santosh BS <santoshb@nvidia.com> Change-Id: I8ad47cce31cfd06020e33d3457a0d674a11e4d49
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2022, NVIDIA Corporation.
|
|
*/
|
|
|
|
#ifndef DRM_TEGRA_RISCV_H
|
|
#define DRM_TEGRA_RISCV_H
|
|
|
|
struct tegra_drm_riscv_descriptor {
|
|
u32 manifest_offset;
|
|
u32 code_offset;
|
|
u32 code_size;
|
|
u32 data_offset;
|
|
u32 data_size;
|
|
};
|
|
|
|
struct tegra_drm_riscv_firmware {
|
|
/* Firmware after it is read but not loaded */
|
|
const struct firmware *firmware;
|
|
|
|
/* Raw firmware data */
|
|
dma_addr_t iova;
|
|
dma_addr_t phys;
|
|
void *virt;
|
|
size_t size;
|
|
};
|
|
|
|
struct tegra_drm_riscv {
|
|
/* User initializes */
|
|
struct device *dev;
|
|
void __iomem *regs;
|
|
|
|
struct tegra_drm_riscv_firmware firmware;
|
|
struct tegra_drm_riscv_descriptor bl_desc;
|
|
struct tegra_drm_riscv_descriptor os_desc;
|
|
};
|
|
|
|
int tegra_drm_riscv_read_descriptors(struct tegra_drm_riscv *riscv);
|
|
int tegra_drm_riscv_boot_bootrom(struct tegra_drm_riscv *riscv, phys_addr_t image_address,
|
|
u32 gscid, const struct tegra_drm_riscv_descriptor *desc);
|
|
int tegra_drm_riscv_init(struct tegra_drm_riscv *riscv);
|
|
void tegra_drm_riscv_exit(struct tegra_drm_riscv *riscv);
|
|
int tegra_drm_riscv_read_firmware(struct tegra_drm_riscv *riscv, const char *firmware_name);
|
|
int tegra_drm_riscv_load_firmware(struct tegra_drm_riscv *riscv);
|
|
int tegra_drm_riscv_boot_external(struct tegra_drm_riscv *riscv);
|
|
|
|
#endif
|