Resync with broadcom drivers 5.100.138.20 and utilities.
[tomato.git] / release / src-rt / include / bcmgmacrxh.h
bloba8b3196579c2b895e2e5bcca9f59c15a711c880c
1 /*
2 * Hardware-specific Receive Data Header for the
3 * Broadcom Home Networking Division
4 * BCM47XX GbE cores.
6 * Copyright (C) 2010, Broadcom Corporation
7 * All Rights Reserved.
8 *
9 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
10 * the contents of this file may not be disclosed to third parties, copied
11 * or duplicated in any form, in whole or in part, without the prior
12 * written permission of Broadcom Corporation.
13 * $Id: bcmgmacrxh.h,v 13.1 2008-07-18 00:29:07 Exp $
16 #ifndef _bcmgmacrxh_h_
17 #define _bcmgmacrxh_h_
20 * The Ethernet GMAC core returns an 8-byte Receive Frame Data Header
21 * with every frame consisting of
22 * 16 bits of frame length, followed by
23 * 16 bits of GMAC rx descriptor info, followed by 32bits of undefined.
25 typedef volatile struct {
26 uint16 len;
27 uint16 flags;
28 uint16 pad[12];
29 } bcmgmacrxh_t;
31 #define RXHDR_LEN 28 /* Header length */
33 #define GRXF_DT_MASK ((uint16)0xf) /* data type */
34 #define GRXF_DT_SHIFT 12
35 #define GRXF_DC_MASK ((uint16)0xf) /* (num descr to xfer the frame) - 1 */
36 #define GRXF_DC_SHIFT 8
37 #define GRXF_OVF ((uint16)1 << 7) /* overflow error occured */
38 #define GRXF_OVERSIZE ((uint16)1 << 4) /* frame size > rxmaxlength */
39 #define GRXF_CRC ((uint16)1 << 3) /* crc error */
40 #define GRXF_VLAN ((uint16)1 << 2) /* vlan tag detected */
41 #define GRXF_PT_MASK ((uint16)3) /* packet type 0 - Unicast,
42 * 1 - Multicast, 2 - Broadcast
45 #endif /* _bcmgmacrxh_h_ */