/* * Intel IXP4xx Ethernet driver for Linux * * Copyright (C) 2007 Krzysztof Halasa <khc@pm.waw.pl> * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License * as published by the Free Software Foundation. * * Ethernet port config (0x00 is not present on IXP42X): * * logical port 0x00 0x10 0x20 * NPE 0 (NPE-A) 1 (NPE-B) 2 (NPE-C) * physical PortId 2 0 1 * TX queue 23 24 25 * RX-free queue 26 27 28 * TX-done queue is always 31, per-port RX and TX-ready queues are configurable * * * Queue entries: * bits 0 -> 1 - NPE ID (RX and TX-done) * bits 0 -> 2 - priority (TX, per 802.1D) * bits 3 -> 4 - port ID (user-set?) * bits 5 -> 31 - physical descriptor address */#include<linux/delay.h>#include<linux/dma-mapping.h>#include<linux/dmapool.h>#include<linux/etherdevice.h>#include<linux/io.h>#include<linux/kernel.h>#include<linux/net_tstamp.h>#include<linux/phy.h>#include<linux/platform_device.h>#include<linux/ptp_classify.h>#include<linux/slab.h>#include<linux/module.h>#include<mach/ixp46x_ts.h>#include<mach/npe.h>#include<mach/qmgr.h>#define DEBUG_DESC 0#define DEBUG_RX 0#define DEBUG_TX 0#define DEBUG_PKT_BYTES 0#define DEBUG_MDIO 0#define DEBUG_CLOSE 0#define DRV_NAME "ixp4xx_eth"#define MAX_NPES 3#define RX_DESCS 64 /* also length of all RX queues */#define TX_DESCS 16 /* also length of all TX queues */
<