Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/solenv/buck/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 1 kB image not shown  

Quelle  xor.h   Sprache: unbekannt

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * 440SPe's XOR engines support header file
 *
 * 2006-2009 (C) DENX Software Engineering.
 *
 * Author: Yuri Tikhonov <yur@emcraft.com>
 */


#ifndef _PPC440SPE_XOR_H
#define _PPC440SPE_XOR_H

#include <linux/types.h>

/* Number of XOR engines available on the contoller */
#define XOR_ENGINES_NUM  1

/* Number of operands supported in the h/w */
#define XOR_MAX_OPS  16

/*
 * XOR Command Block Control Register bits
 */

#define XOR_CBCR_LNK_BIT        (1<<31) /* link present */
#define XOR_CBCR_TGT_BIT        (1<<30) /* target present */
#define XOR_CBCR_CBCE_BIT       (1<<29) /* command block compete enable */
#define XOR_CBCR_RNZE_BIT       (1<<28) /* result not zero enable */
#define XOR_CBCR_XNOR_BIT       (1<<15) /* XOR/XNOR */
#define XOR_CDCR_OAC_MSK        (0x7F)  /* operand address count */

/*
 * XORCore Status Register bits
 */

#define XOR_SR_XCP_BIT  (1<<31) /* core processing */
#define XOR_SR_ICB_BIT  (1<<17) /* invalid CB */
#define XOR_SR_IC_BIT  (1<<16) /* invalid command */
#define XOR_SR_IPE_BIT  (1<<15) /* internal parity error */
#define XOR_SR_RNZ_BIT  (1<<2) /* result not Zero */
#define XOR_SR_CBC_BIT  (1<<1) /* CB complete */
#define XOR_SR_CBLC_BIT  (1<<0) /* CB list complete */

/*
 * XORCore Control Set and Reset Register bits
 */

#define XOR_CRSR_XASR_BIT (1<<31) /* soft reset */
#define XOR_CRSR_XAE_BIT (1<<30) /* enable */
#define XOR_CRSR_RCBE_BIT (1<<29) /* refetch CB enable */
#define XOR_CRSR_PAUS_BIT (1<<28) /* pause */
#define XOR_CRSR_64BA_BIT (1<<27) /* 64/32 CB format */
#define XOR_CRSR_CLP_BIT (1<<25) /* continue list processing */

/*
 * XORCore Interrupt Enable Register
 */

#define XOR_IE_ICBIE_BIT (1<<17) /* Invalid Command Block IRQ Enable */
#define XOR_IE_ICIE_BIT  (1<<16) /* Invalid Command IRQ Enable */
#define XOR_IE_RPTIE_BIT (1<<14) /* Read PLB Timeout Error IRQ Enable */
#define XOR_IE_CBCIE_BIT (1<<1) /* CB complete interrupt enable */
#define XOR_IE_CBLCI_BIT (1<<0) /* CB list complete interrupt enable */

/*
 * XOR Accelerator engine Command Block Type
 */

struct xor_cb {
 /*
 * Basic 64-bit format XOR CB (Table 19-1, p.463, 440spe_um_1_22.pdf)
 */

 u32 cbc;  /* control */
 u32 cbbc;  /* byte count */
 u32 cbs;  /* status */
 u8 pad0[4]; /* reserved */
 u32 cbtah;  /* target address high */
 u32 cbtal;  /* target address low */
 u32 cblah;  /* link address high */
 u32 cblal;  /* link address low */
 struct {
  u32 h;
  u32 l;
 } __attribute__ ((packed)) ops[16];
} __attribute__ ((packed));

/*
 * XOR hardware registers Table 19-3, UM 1.22
 */

struct xor_regs {
 u32 op_ar[16][2]; /* operand address[0]-high,[1]-low registers */
 u8 pad0[352]; /* reserved */
 u32 cbcr;  /* CB control register */
 u32 cbbcr;  /* CB byte count register */
 u32 cbsr;  /* CB status register */
 u8 pad1[4]; /* reserved */
 u32 cbtahr;  /* operand target address high register */
 u32 cbtalr;  /* operand target address low register */
 u32 cblahr;  /* CB link address high register */
 u32 cblalr;  /* CB link address low register */
 u32 crsr;  /* control set register */
 u32 crrr;  /* control reset register */
 u32 ccbahr;  /* current CB address high register */
 u32 ccbalr;  /* current CB address low register */
 u32 plbr;  /* PLB configuration register */
 u32 ier;  /* interrupt enable register */
 u32 pecr;  /* parity error count register */
 u32 sr;  /* status register */
 u32 revidr;  /* revision ID register */
};

#endif /* _PPC440SPE_XOR_H */

Messung V0.5
C=46 H=100 G=77

[ Dauer der Verarbeitung: 0.5 Sekunden  (vorverarbeitet)  ]