Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/nfc/nfcmrvl/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quellcode-Bibliothek fw_dnld.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Marvell NFC driver: Firmware downloader
 *
 * Copyright (C) 2015, Marvell International Ltd.
 */


#ifndef __NFCMRVL_FW_DNLD_H__
#define __NFCMRVL_FW_DNLD_H__

#include <linux/workqueue.h>

#define NFCMRVL_FW_MAGIC  0x88888888

#define NCI_OP_PROP_BOOT_CMD  0x3A

#define NCI_CORE_LC_PROP_FW_DL  0xFD
#define NCI_CORE_LC_CONNID_PROP_FW_DL 0x02

#define HELPER_CMD_ENTRY_POINT  0x04
#define HELPER_CMD_PACKET_FORMAT 0xA5
#define HELPER_ACK_PACKET_FORMAT 0x5A
#define HELPER_RETRY_REQUESTED  (1 << 15)

struct nfcmrvl_private;

struct nfcmrvl_fw_uart_config {
 uint8_t flow_control;
 uint32_t baudrate;
} __packed;

struct nfcmrvl_fw_i2c_config {
 uint32_t clk;
} __packed;

struct nfcmrvl_fw_spi_config {
 uint32_t clk;
} __packed;

struct nfcmrvl_fw_binary_config {
 uint32_t offset;
 union {
  void *config;
  struct nfcmrvl_fw_uart_config uart;
  struct nfcmrvl_fw_i2c_config i2c;
  struct nfcmrvl_fw_spi_config spi;
  uint8_t reserved[64];
 };
} __packed;

struct nfcmrvl_fw {
 uint32_t magic;
 uint32_t ref_clock;
 uint32_t phy;
 struct nfcmrvl_fw_binary_config bootrom;
 struct nfcmrvl_fw_binary_config helper;
 struct nfcmrvl_fw_binary_config firmware;
 uint8_t reserved[64];
} __packed;

struct nfcmrvl_fw_dnld {
 char name[NFC_FIRMWARE_NAME_MAXSIZE + 1];
 const struct firmware *fw;

 const struct nfcmrvl_fw *header;
 const struct nfcmrvl_fw_binary_config *binary_config;

 int state;
 int substate;
 int offset;
 int chunk_len;

 struct workqueue_struct *rx_wq;
 struct work_struct rx_work;
 struct sk_buff_head rx_q;

 struct timer_list timer;
};

int nfcmrvl_fw_dnld_init(struct nfcmrvl_private *priv);
void nfcmrvl_fw_dnld_deinit(struct nfcmrvl_private *priv);
void nfcmrvl_fw_dnld_abort(struct nfcmrvl_private *priv);
int nfcmrvl_fw_dnld_start(struct nci_dev *ndev, const char *firmware_name);
void nfcmrvl_fw_dnld_recv_frame(struct nfcmrvl_private *priv,
    struct sk_buff *skb);

#endif

Messung V0.5
C=96 H=92 G=93

¤ 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.0.1Bemerkung:  ¤

*Bot Zugriff






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.