Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/media/platform/amphion/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 4 kB image not shown  

Quelle  vpu_imx8q.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright 2020-2021 NXP
 */


#ifndef _AMPHION_VPU_IMX8Q_H
#define _AMPHION_VPU_IMX8Q_H

#define SCB_XREG_SLV_BASE                               0x00000000
#define SCB_SCB_BLK_CTRL                                0x00070000
#define SCB_BLK_CTRL_XMEM_RESET_SET                     0x00000090
#define SCB_BLK_CTRL_CACHE_RESET_SET                    0x000000A0
#define SCB_BLK_CTRL_CACHE_RESET_CLR                    0x000000A4
#define SCB_BLK_CTRL_SCB_CLK_ENABLE_SET                 0x00000100

#define XMEM_CONTROL                                    0x00041000

#define MC_CACHE_0_BASE     0x00060000
#define MC_CACHE_1_BASE     0x00068000

#define DEC_MFD_XREG_SLV_BASE                           0x00180000
#define ENC_MFD_XREG_SLV_0_BASE    0x00800000
#define ENC_MFD_XREG_SLV_1_BASE    0x00A00000

#define MFD_HIF                                         0x0001C000
#define MFD_HIF_MSD_REG_INTERRUPT_STATUS                0x00000018
#define MFD_SIF                                         0x0001D000
#define MFD_SIF_CTRL_STATUS                             0x000000F0
#define MFD_SIF_INTR_STATUS                             0x000000F4
#define MFD_MCX                                         0x00020800
#define MFD_MCX_OFF                                     0x00000020
#define MFD_PIX_IF     0x00020000

#define MFD_BLK_CTRL                                    0x00030000
#define MFD_BLK_CTRL_MFD_SYS_RESET_SET                  0x00000000
#define MFD_BLK_CTRL_MFD_SYS_RESET_CLR                  0x00000004
#define MFD_BLK_CTRL_MFD_SYS_CLOCK_ENABLE_SET           0x00000100
#define MFD_BLK_CTRL_MFD_SYS_CLOCK_ENABLE_CLR           0x00000104

#define VID_API_NUM_STREAMS    8
#define VID_API_MAX_BUF_PER_STR    3
#define VID_API_MAX_NUM_MVC_VIEWS   4
#define MEDIAIP_MAX_NUM_MALONES    2
#define MEDIAIP_MAX_NUM_MALONE_IRQ_PINS   2
#define MEDIAIP_MAX_NUM_WINDSORS   1
#define MEDIAIP_MAX_NUM_WINDSOR_IRQ_PINS  2
#define MEDIAIP_MAX_NUM_CMD_IRQ_PINS   2
#define MEDIAIP_MAX_NUM_MSG_IRQ_PINS   1
#define MEDIAIP_MAX_NUM_TIMER_IRQ_PINS   4
#define MEDIAIP_MAX_NUM_TIMER_IRQ_SLOTS   4

#define WINDSOR_PAL_IRQ_PIN_L    0x4
#define WINDSOR_PAL_IRQ_PIN_H    0x5

struct vpu_rpc_system_config {
 u32 cfg_cookie;

 u32 num_malones;
 u32 malone_base_addr[MEDIAIP_MAX_NUM_MALONES];
 u32 hif_offset[MEDIAIP_MAX_NUM_MALONES];
 u32 malone_irq_pin[MEDIAIP_MAX_NUM_MALONES][MEDIAIP_MAX_NUM_MALONE_IRQ_PINS];
 u32 malone_irq_target[MEDIAIP_MAX_NUM_MALONES][MEDIAIP_MAX_NUM_MALONE_IRQ_PINS];

 u32 num_windsors;
 u32 windsor_base_addr[MEDIAIP_MAX_NUM_WINDSORS];
 u32 windsor_irq_pin[MEDIAIP_MAX_NUM_WINDSORS][MEDIAIP_MAX_NUM_WINDSOR_IRQ_PINS];
 u32 windsor_irq_target[MEDIAIP_MAX_NUM_WINDSORS][MEDIAIP_MAX_NUM_WINDSOR_IRQ_PINS];

 u32 cmd_irq_pin[MEDIAIP_MAX_NUM_CMD_IRQ_PINS];
 u32 cmd_irq_target[MEDIAIP_MAX_NUM_CMD_IRQ_PINS];

 u32 msg_irq_pin[MEDIAIP_MAX_NUM_MSG_IRQ_PINS];
 u32 msg_irq_target[MEDIAIP_MAX_NUM_MSG_IRQ_PINS];

 u32 sys_clk_freq;
 u32 num_timers;
 u32 timer_base_addr;
 u32 timer_irq_pin[MEDIAIP_MAX_NUM_TIMER_IRQ_PINS];
 u32 timer_irq_target[MEDIAIP_MAX_NUM_TIMER_IRQ_PINS];
 u32 timer_slots[MEDIAIP_MAX_NUM_TIMER_IRQ_SLOTS];

 u32 gic_base_addr;
 u32 uart_base_addr;

 u32 dpv_base_addr;
 u32 dpv_irq_pin;
 u32 dpv_irq_target;

 u32 pixif_base_addr;

 u32 pal_trace_level;
 u32 pal_trace_destination;

 u32 pal_trace_level1;
 u32 pal_trace_destination1;

 u32 heap_base;
 u32 heap_size;

 u32 cache_base_addr[2];
};

int vpu_imx8q_setup_dec(struct vpu_dev *vpu);
int vpu_imx8q_setup_enc(struct vpu_dev *vpu);
int vpu_imx8q_setup(struct vpu_dev *vpu);
int vpu_imx8q_reset(struct vpu_dev *vpu);
int vpu_imx8q_set_system_cfg_common(struct vpu_rpc_system_config *config, u32 regs, u32 core_id);
int vpu_imx8q_boot_core(struct vpu_core *core);
int vpu_imx8q_get_power_state(struct vpu_core *core);
int vpu_imx8q_on_firmware_loaded(struct vpu_core *core);
int vpu_imx8q_check_memory_region(dma_addr_t base, dma_addr_t addr, u32 size);
bool vpu_imx8q_check_codec(enum vpu_core_type type);
bool vpu_imx8q_check_fmt(enum vpu_core_type type, u32 pixelfmt);

#endif

Messung V0.5
C=97 H=96 G=96

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.