Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/media/pci/intel/ipu6/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  ipu6-cpd.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (C) 2015--2024 Intel Corporation */

#ifndef IPU6_CPD_H
#define IPU6_CPD_H

struct ipu6_device;
struct ipu6_bus_device;

#define IPU6_CPD_SIZE_OF_FW_ARCH_VERSION 7
#define IPU6_CPD_SIZE_OF_SYSTEM_VERSION  11
#define IPU6_CPD_SIZE_OF_COMPONENT_NAME  12

#define IPU6_CPD_METADATA_EXTN_TYPE_IUNIT 0x10

#define IPU6_CPD_METADATA_IMAGE_TYPE_RESERVED  0
#define IPU6_CPD_METADATA_IMAGE_TYPE_BOOTLOADER  1
#define IPU6_CPD_METADATA_IMAGE_TYPE_MAIN_FIRMWARE 2

#define IPU6_CPD_PKG_DIR_PSYS_SERVER_IDX 0
#define IPU6_CPD_PKG_DIR_ISYS_SERVER_IDX 1

#define IPU6_CPD_PKG_DIR_CLIENT_PG_TYPE  3

#define IPU6_CPD_METADATA_HASH_KEY_SIZE  48
#define IPU6SE_CPD_METADATA_HASH_KEY_SIZE 32

struct ipu6_cpd_module_data_hdr {
 u32 hdr_len;
 u32 endian;
 u32 fw_pkg_date;
 u32 hive_sdk_date;
 u32 compiler_date;
 u32 target_platform_type;
 u8 sys_ver[IPU6_CPD_SIZE_OF_SYSTEM_VERSION];
 u8 fw_arch_ver[IPU6_CPD_SIZE_OF_FW_ARCH_VERSION];
 u8 rsvd[2];
} __packed;

/*
 * ipu6_cpd_hdr structure updated as the chksum and
 * sub_partition_name is unused on host side
 * CSE layout version 1.6 for IPU6SE (hdr_len = 0x10)
 * CSE layout version 1.7 for IPU6 (hdr_len = 0x14)
 */

struct ipu6_cpd_hdr {
 u32 hdr_mark;
 u32 ent_cnt;
 u8 hdr_ver;
 u8 ent_ver;
 u8 hdr_len;
} __packed;

struct ipu6_cpd_ent {
 u8 name[IPU6_CPD_SIZE_OF_COMPONENT_NAME];
 u32 offset;
 u32 len;
 u8 rsvd[4];
} __packed;

struct ipu6_cpd_metadata_cmpnt_hdr {
 u32 id;
 u32 size;
 u32 ver;
} __packed;

struct ipu6_cpd_metadata_cmpnt {
 struct ipu6_cpd_metadata_cmpnt_hdr hdr;
 u8 sha2_hash[IPU6_CPD_METADATA_HASH_KEY_SIZE];
 u32 entry_point;
 u32 icache_base_offs;
 u8 attrs[16];
} __packed;

struct ipu6se_cpd_metadata_cmpnt {
 struct ipu6_cpd_metadata_cmpnt_hdr hdr;
 u8 sha2_hash[IPU6SE_CPD_METADATA_HASH_KEY_SIZE];
 u32 entry_point;
 u32 icache_base_offs;
 u8 attrs[16];
} __packed;

struct ipu6_cpd_metadata_extn {
 u32 extn_type;
 u32 len;
 u32 img_type;
 u8 rsvd[16];
} __packed;

struct ipu6_cpd_client_pkg_hdr {
 u32 prog_list_offs;
 u32 prog_list_size;
 u32 prog_desc_offs;
 u32 prog_desc_size;
 u32 pg_manifest_offs;
 u32 pg_manifest_size;
 u32 prog_bin_offs;
 u32 prog_bin_size;
} __packed;

int ipu6_cpd_create_pkg_dir(struct ipu6_bus_device *adev, const void *src);
void ipu6_cpd_free_pkg_dir(struct ipu6_bus_device *adev);
int ipu6_cpd_validate_cpd_file(struct ipu6_device *isp, const void *cpd_file,
          unsigned long cpd_file_size);
#endif /* IPU6_CPD_H */

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

¤ Dauer der Verarbeitung: 0.12 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.