/* SPDX-License-Identifier: GPL-2.0-only */ /* Altera TSE SGDMA and MSGDMA Linux driver * Copyright (C) 2014 Altera Corporation. All rights reserved
*/
/* bit 0: error * bit 1: length error * bit 2: crc error * bit 3: truncated error * bit 4: phy error * bit 5: collision error * bit 6: reserved * bit 7: status eop for recv case
*/
u8 status;
/* bit 0: eop * bit 1: read_fixed * bit 2: write fixed * bits 3,4,5,6: Channel (always 0) * bit 7: hardware owned
*/
u8 control;
} __packed;
/* Channel is always 0, so just zero initialize it */
#define SGDMA_CONTROL_HW_OWNED BIT(7)
/* SGDMA register space */ struct sgdma_csr { /* bit 0: error * bit 1: eop * bit 2: descriptor completed * bit 3: chain completed * bit 4: busy * remainder reserved
*/
u32 status;
u32 pad1[3];
/* bit 0: interrupt on error * bit 1: interrupt on eop * bit 2: interrupt after every descriptor * bit 3: interrupt after last descrip in a chain * bit 4: global interrupt enable * bit 5: starts descriptor processing * bit 6: stop core on dma error * bit 7: interrupt on max descriptors * bits 8-15: max descriptors to generate interrupt * bit 16: Software reset * bit 17: clears owned by hardware if 0, does not clear otherwise * bit 18: enables descriptor polling mode * bit 19-26: clocks before polling again * bit 27-30: reserved * bit 31: clear interrupt
*/
u32 control;
u32 pad2[3];
u32 next_descrip;
u32 pad3[3];
};
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.