Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  mcb-internal.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __MCB_INTERNAL
#define __MCB_INTERNAL

#include <linux/types.h>

#define PCI_VENDOR_ID_MEN  0x1a88
#define PCI_DEVICE_ID_MEN_CHAMELEON 0x4d45
#define CHAMELEONV2_MAGIC  0xabce
#define CHAM_HEADER_SIZE  0x200

enum chameleon_descriptor_type {
 CHAMELEON_DTYPE_GENERAL = 0x0,
 CHAMELEON_DTYPE_BRIDGE = 0x1,
 CHAMELEON_DTYPE_CPU = 0x2,
 CHAMELEON_DTYPE_BAR = 0x3,
 CHAMELEON_DTYPE_END = 0xf,
};

enum chameleon_bus_type {
 CHAMELEON_BUS_WISHBONE,
 CHAMELEON_BUS_AVALON,
 CHAMELEON_BUS_LPC,
 CHAMELEON_BUS_ISA,
};

/**
 * struct chameleon_fpga_header
 *
 * @revision: Revison of Chameleon table in FPGA
 * @model: Chameleon table model ASCII char
 * @minor: Revision minor
 * @bus_type: Bus type (usually %CHAMELEON_BUS_WISHBONE)
 * @magic: Chameleon header magic number (0xabce for version 2)
 * @reserved: Reserved
 * @filename: Filename of FPGA bitstream
 */

struct chameleon_fpga_header {
 u8 revision;
 char model;
 u8 minor;
 u8 bus_type;
 u16 magic;
 u16 reserved;
 /* This one has no '\0' at the end!!! */
 char filename[CHAMELEON_FILENAME_LEN];
} __packed;
#define HEADER_MAGIC_OFFSET 0x4

/**
 * struct chameleon_gdd - Chameleon General Device Descriptor
 *
 * @irq: the position in the FPGA's IRQ controller vector
 * @rev: the revision of the variant's implementation
 * @var: the variant of the IP core
 * @dev: the device  the IP core is
 * @dtype: device descriptor type
 * @bar: BAR offset that must be added to module offset
 * @inst: the instance number of the device, 0 is first instance
 * @group: the group the device belongs to (0 = no group)
 * @reserved: reserved
 * @offset: beginning of the address window of desired module
 * @size: size of the module's address window
 */

struct chameleon_gdd {
 __le32 reg1;
 __le32 reg2;
 __le32 offset;
 __le32 size;

} __packed;

/* GDD Register 1 fields */
#define GDD_IRQ(x) ((x) & 0x1f)
#define GDD_REV(x) (((x) >> 5) & 0x3f)
#define GDD_VAR(x) (((x) >> 11) & 0x3f)
#define GDD_DEV(x) (((x) >> 18) & 0x3ff)
#define GDD_DTY(x) (((x) >> 28) & 0xf)

/* GDD Register 2 fields */
#define GDD_BAR(x) ((x) & 0x7)
#define GDD_INS(x) (((x) >> 3) & 0x3f)
#define GDD_GRP(x) (((x) >> 9) & 0x3f)

/**
 * struct chameleon_bdd - Chameleon Bridge Device Descriptor
 *
 * @irq: the position in the FPGA's IRQ controller vector
 * @rev: the revision of the variant's implementation
 * @var: the variant of the IP core
 * @dev: the device  the IP core is
 * @dtype: device descriptor type
 * @bar: BAR offset that must be added to module offset
 * @inst: the instance number of the device, 0 is first instance
 * @dbar: destination bar from the bus _behind_ the bridge
 * @chamoff: offset within the BAR of the source bus
 * @offset:
 * @size:
 */

struct chameleon_bdd {
 unsigned int irq:6;
 unsigned int rev:6;
 unsigned int var:6;
 unsigned int dev:10;
 unsigned int dtype:4;
 unsigned int bar:3;
 unsigned int inst:6;
 unsigned int dbar:3;
 unsigned int group:6;
 unsigned int reserved:14;
 u32 chamoff;
 u32 offset;
 u32 size;
} __packed;

struct chameleon_bar {
 u32 addr;
 u32 size;
};

#define BAR_CNT(x) ((x) & 0x07)
#define CHAMELEON_BAR_MAX 6
#define BAR_DESC_SIZE(x) ((x) * sizeof(struct chameleon_bar) + sizeof(__le32))

int chameleon_parse_cells(struct mcb_bus *bus, phys_addr_t mapbase,
     void __iomem *base);

#endif

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

¤ 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge