summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2003-05-25 08:17:28 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-05-25 08:17:28 -0700
commitbc6d45201d66a4040bab7c8ae88520e9d1f76924 (patch)
tree0a009542622411c8cda6a8117cd6e11aa9c0d1c5 /include
parent947fc42fd58707a66cd37277aae2fe9d347647cd (diff)
parent4133231a3cf44901df8c50ec071c0f1b8c9e32f6 (diff)
Merge bk://kernel.bkbits.net/davem/net-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
Diffstat (limited to 'include')
-rw-r--r--include/asm-m68knommu/m5282sim.h35
-rw-r--r--include/asm-m68knommu/mcfdma.h6
-rw-r--r--include/asm-m68knommu/mcfpit.h63
-rw-r--r--include/asm-m68knommu/mcfsim.h6
-rw-r--r--include/asm-m68knommu/mcfuart.h32
-rw-r--r--include/linux/if_bonding.h91
-rw-r--r--include/linux/if_vlan.h1
-rw-r--r--include/linux/skbuff.h1
8 files changed, 175 insertions, 60 deletions
diff --git a/include/asm-m68knommu/m5282sim.h b/include/asm-m68knommu/m5282sim.h
new file mode 100644
index 000000000000..977a24fc3f4f
--- /dev/null
+++ b/include/asm-m68knommu/m5282sim.h
@@ -0,0 +1,35 @@
+/****************************************************************************/
+
+/*
+ * m5282sim.h -- ColdFire 5282 System Integration Module support.
+ *
+ * (C) Copyright 2003, Greg Ungerer (gerg@snapgear.com)
+ */
+
+/****************************************************************************/
+#ifndef m5282sim_h
+#define m5282sim_h
+/****************************************************************************/
+
+#include <linux/config.h>
+
+/*
+ * Define the 5282 SIM register set addresses.
+ */
+#define MCFICM_INTC0 0x0c00 /* Base for Interrupt Ctrl 0 */
+#define MCFICM_INTC1 0x0d00 /* Base for Interrupt Ctrl 0 */
+#define MCFINTC_IPRH 0x00 /* Interrupt pending 32-63 */
+#define MCFINTC_IPRL 0x04 /* Interrupt pending 1-31 */
+#define MCFINTC_IMRH 0x08 /* Interrupt mask 32-63 */
+#define MCFINTC_IMRL 0x0c /* Interrupt mask 1-31 */
+#define MCFINTC_INTFRCH 0x10 /* Interrupt force 32-63 */
+#define MCFINTC_INTFRCL 0x14 /* Interrupt force 1-31 */
+#define MCFINTC_IRLR 0x18 /* */
+#define MCFINTC_IACKL 0x19 /* */
+#define MCFINTC_ICR0 0x40 /* Base ICR register */
+
+#define MCFINT_UART0 13 /* Interrupt number for UART0 */
+#define MCFINT_PIT1 55 /* Interrupt number for PIT1 */
+
+/****************************************************************************/
+#endif /* m5282sim_h */
diff --git a/include/asm-m68knommu/mcfdma.h b/include/asm-m68knommu/mcfdma.h
index 8cb3727e1b51..98fadce0a6e9 100644
--- a/include/asm-m68knommu/mcfdma.h
+++ b/include/asm-m68knommu/mcfdma.h
@@ -21,6 +21,12 @@
#define MCFDMA_BASE1 0x240 /* Base address of DMA 1 */
#elif defined(CONFIG_M5272)
#define MCFDMA_BASE0 0x0e0 /* Base address of DMA 0 */
+#elif defined(CONFIG_M5282)
+/* These are relative to the IPSBAR, not MBAR */
+#define MCFDMA_BASE0 0x100 /* Base address of DMA 0 */
+#define MCFDMA_BASE1 0x140 /* Base address of DMA 1 */
+#define MCFDMA_BASE2 0x180 /* Base address of DMA 2 */
+#define MCFDMA_BASE3 0x1C0 /* Base address of DMA 3 */
#elif defined(CONFIG_M5249) || defined(CONFIG_M5307) || defined(CONFIG_M5407)
#define MCFDMA_BASE0 0x300 /* Base address of DMA 0 */
#define MCFDMA_BASE1 0x340 /* Base address of DMA 1 */
diff --git a/include/asm-m68knommu/mcfpit.h b/include/asm-m68knommu/mcfpit.h
new file mode 100644
index 000000000000..76ccfc2f0fa1
--- /dev/null
+++ b/include/asm-m68knommu/mcfpit.h
@@ -0,0 +1,63 @@
+/****************************************************************************/
+
+/*
+ * mcfpit.h -- ColdFire internal PIT timer support defines.
+ *
+ * (C) Copyright 2003, Greg Ungerer (gerg@snapgear.com)
+ */
+
+/****************************************************************************/
+#ifndef mcfpit_h
+#define mcfpit_h
+/****************************************************************************/
+
+#include <linux/config.h>
+
+/*
+ * Get address specific defines for the 5282.
+ */
+#define MCFPIT_BASE1 0x00150000 /* Base address of TIMER1 */
+#define MCFPIT_BASE2 0x00160000 /* Base address of TIMER2 */
+#define MCFPIT_BASE3 0x00170000 /* Base address of TIMER3 */
+#define MCFPIT_BASE4 0x00180000 /* Base address of TIMER4 */
+
+
+/*
+ * Define the PIT timer register set addresses.
+ */
+struct mcfpit {
+ unsigned short pcsr; /* PIT control and status */
+ unsigned short pmr; /* PIT modulus register */
+ unsigned short pcntr; /* PIT count register */
+} __attribute__((packed));
+
+/*
+ * Bit definitions for the PIT Control and Status register.
+ */
+#define MCFPIT_PCSR_CLK1 0x0000 /* System clock divisor */
+#define MCFPIT_PCSR_CLK2 0x0100 /* System clock divisor */
+#define MCFPIT_PCSR_CLK4 0x0200 /* System clock divisor */
+#define MCFPIT_PCSR_CLK8 0x0300 /* System clock divisor */
+#define MCFPIT_PCSR_CLK16 0x0400 /* System clock divisor */
+#define MCFPIT_PCSR_CLK32 0x0500 /* System clock divisor */
+#define MCFPIT_PCSR_CLK64 0x0600 /* System clock divisor */
+#define MCFPIT_PCSR_CLK128 0x0700 /* System clock divisor */
+#define MCFPIT_PCSR_CLK256 0x0800 /* System clock divisor */
+#define MCFPIT_PCSR_CLK512 0x0900 /* System clock divisor */
+#define MCFPIT_PCSR_CLK1024 0x0a00 /* System clock divisor */
+#define MCFPIT_PCSR_CLK2048 0x0b00 /* System clock divisor */
+#define MCFPIT_PCSR_CLK4096 0x0c00 /* System clock divisor */
+#define MCFPIT_PCSR_CLK8192 0x0d00 /* System clock divisor */
+#define MCFPIT_PCSR_CLK16384 0x0e00 /* System clock divisor */
+#define MCFPIT_PCSR_CLK32768 0x0f00 /* System clock divisor */
+#define MCFPIT_PCSR_DOZE 0x0040 /* Clock run in doze mode */
+#define MCFPIT_PCSR_HALTED 0x0020 /* Clock run in halt mode */
+#define MCFPIT_PCSR_OVW 0x0010 /* Overwrite PIT counter now */
+#define MCFPIT_PCSR_PIE 0x0008 /* Enable PIT interrupt */
+#define MCFPIT_PCSR_PIF 0x0004 /* PIT interrupt flag */
+#define MCFPIT_PCSR_RLD 0x0002 /* Reload counter */
+#define MCFPIT_PCSR_EN 0x0001 /* Enable PIT */
+#define MCFPIT_PCSR_DISABLE 0x0000 /* Disable PIT */
+
+/****************************************************************************/
+#endif /* mcfpit_h */
diff --git a/include/asm-m68knommu/mcfsim.h b/include/asm-m68knommu/mcfsim.h
index c408a513e8a4..27d6cb696815 100644
--- a/include/asm-m68knommu/mcfsim.h
+++ b/include/asm-m68knommu/mcfsim.h
@@ -3,7 +3,7 @@
/*
* mcfsim.h -- ColdFire System Integration Module support.
*
- * (C) Copyright 1999-2002, Greg Ungerer (gerg@snapgear.com)
+ * (C) Copyright 1999-2003, Greg Ungerer (gerg@snapgear.com)
* (C) Copyright 2000, Lineo Inc. (www.lineo.com)
*/
@@ -15,7 +15,7 @@
#include <linux/config.h>
/*
- * Include 5204, 5206, 5249, 5272, 5307 or 5407 specific addresses.
+ * Include 5204, 5206, 5249, 5272, 5282, 5307 or 5407 specific addresses.
*/
#if defined(CONFIG_M5204)
#include <asm/m5204sim.h>
@@ -25,6 +25,8 @@
#include <asm/m5249sim.h>
#elif defined(CONFIG_M5272)
#include <asm/m5272sim.h>
+#elif defined(CONFIG_M5282)
+#include <asm/m5282sim.h>
#elif defined(CONFIG_M5307)
#include <asm/m5307sim.h>
#elif defined(CONFIG_M5407)
diff --git a/include/asm-m68knommu/mcfuart.h b/include/asm-m68knommu/mcfuart.h
index 18201f8a230f..07a7eca83542 100644
--- a/include/asm-m68knommu/mcfuart.h
+++ b/include/asm-m68knommu/mcfuart.h
@@ -3,7 +3,7 @@
/*
* mcfuart.h -- ColdFire internal UART support defines.
*
- * (C) Copyright 1999-2002, Greg Ungerer (gerg@snapgear.com)
+ * (C) Copyright 1999-2003, Greg Ungerer (gerg@snapgear.com)
* (C) Copyright 2000, Lineo Inc. (www.lineo.com)
*/
@@ -29,13 +29,17 @@
#define MCFUART_BASE1 0x140 /* Base address of UART1 */
#define MCFUART_BASE2 0x180 /* Base address of UART2 */
#endif
+#elif defined(CONFIG_M5282)
+#define MCFUART_BASE1 0x200 /* Base address of UART1 */
+#define MCFUART_BASE2 0x240 /* Base address of UART2 */
+#define MCFUART_BASE3 0x280 /* Base address of UART3 */
#elif defined(CONFIG_M5249) || defined(CONFIG_M5307) || defined(CONFIG_M5407)
#if defined(CONFIG_NETtel) || defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3)
#define MCFUART_BASE1 0x200 /* Base address of UART1 */
-#define MCFUART_BASE2 0x1c0 /* Base address of UART2 */
+#define MCFUART_BASE2 0x1c0 /* Base address of UART2 */
#else
#define MCFUART_BASE1 0x1c0 /* Base address of UART1 */
-#define MCFUART_BASE2 0x200 /* Base address of UART2 */
+#define MCFUART_BASE2 0x200 /* Base address of UART2 */
#endif
#endif
@@ -55,7 +59,13 @@
#define MCFUART_UIMR 0x14 /* Interrupt Mask (w) */
#define MCFUART_UBG1 0x18 /* Baud Rate MSB (r/w) */
#define MCFUART_UBG2 0x1c /* Baud Rate LSB (r/w) */
+#ifdef CONFIG_M5272
+#define MCFUART_UTF 0x28 /* Transmitter FIFO (r/w) */
+#define MCFUART_URF 0x2c /* Receiver FIFO (r/w) */
+#define MCFUART_UFPD 0x30 /* Frac Prec. Divider (r/w) */
+#else
#define MCFUART_UIVR 0x30 /* Interrupt Vector (r/w) */
+#endif
#define MCFUART_UIPR 0x34 /* Input Port (r) */
#define MCFUART_UOP1 0x38 /* Output Port Bit Set (w) */
#define MCFUART_UOP0 0x3c /* Output Port Bit Reset (w) */
@@ -170,5 +180,21 @@
#define MCFUART_UIR_RXREADY 0x02 /* Receiver ready */
#define MCFUART_UIR_TXREADY 0x01 /* Transmitter ready */
+#ifdef CONFIG_M5272
+/*
+ * Define bit flags in the Transmitter FIFO Register (UTF).
+ */
+#define MCFUART_UTF_TXB 0x1f /* Transmitter data level */
+#define MCFUART_UTF_FULL 0x20 /* Transmitter fifo full */
+#define MCFUART_UTF_TXS 0xc0 /* Transmitter status */
+
+/*
+ * Define bit flags in the Receiver FIFO Register (URF).
+ */
+#define MCFUART_URF_RXB 0x1f /* Receiver data level */
+#define MCFUART_URF_FULL 0x20 /* Receiver fifo full */
+#define MCFUART_URF_RXS 0xc0 /* Receiver status */
+#endif
+
/****************************************************************************/
#endif /* mcfuart_h */
diff --git a/include/linux/if_bonding.h b/include/linux/if_bonding.h
index 1733b0e28cbc..4419670188d2 100644
--- a/include/linux/if_bonding.h
+++ b/include/linux/if_bonding.h
@@ -11,18 +11,38 @@
* This software may be used and distributed according to the terms
* of the GNU Public License, incorporated herein by reference.
*
+ * 2003/03/18 - Amir Noam <amir.noam at intel dot com>
+ * - Added support for getting slave's speed and duplex via ethtool.
+ * Needed for 802.3ad and other future modes.
+ *
+ * 2003/03/18 - Tsippy Mendelson <tsippy.mendelson at intel dot com> and
+ * Shmulik Hen <shmulik.hen at intel dot com>
+ * - Enable support of modes that need to use the unique mac address of
+ * each slave.
+ *
+ * 2003/03/18 - Tsippy Mendelson <tsippy.mendelson at intel dot com> and
+ * Amir Noam <amir.noam at intel dot com>
+ * - Moved driver's private data types to bonding.h
+ *
+ * 2003/03/18 - Amir Noam <amir.noam at intel dot com>,
+ * Tsippy Mendelson <tsippy.mendelson at intel dot com> and
+ * Shmulik Hen <shmulik.hen at intel dot com>
+ * - Added support for IEEE 802.3ad Dynamic link aggregation mode.
+ *
+ * 2003/05/01 - Amir Noam <amir.noam at intel dot com>
+ * - Added ABI version control to restore compatibility between
+ * new/old ifenslave and new/old bonding.
*/
#ifndef _LINUX_IF_BONDING_H
#define _LINUX_IF_BONDING_H
-#ifdef __KERNEL__
-#include <linux/timer.h>
#include <linux/if.h>
-#include <linux/proc_fs.h>
-#endif /* __KERNEL__ */
-
#include <linux/types.h>
+#include <linux/if_ether.h>
+
+/* userland - kernel ABI version (2003/05/08) */
+#define BOND_ABI_VERSION 1
/*
* We can remove these ioctl definitions in 2.5. People should use the
@@ -41,6 +61,9 @@
#define BOND_MODE_ACTIVEBACKUP 1
#define BOND_MODE_XOR 2
#define BOND_MODE_BROADCAST 3
+#define BOND_MODE_8023AD 4
+#define BOND_MODE_TLB 5
+#define BOND_MODE_ALB 6 /* TLB + RLB (receive load balancing) */
/* each slave's link has 4 states */
#define BOND_LINK_UP 0 /* link is up and running */
@@ -58,11 +81,6 @@
#define BOND_MULTICAST_ACTIVE 1
#define BOND_MULTICAST_ALL 2
-struct bond_parm_tbl {
- char *modename;
- int mode;
-};
-
typedef struct ifbond {
__s32 bond_mode;
__s32 num_slaves;
@@ -78,52 +96,15 @@ typedef struct ifslave
__u32 link_failure_count;
} ifslave;
-#ifdef __KERNEL__
-typedef struct slave {
- struct slave *next;
- struct slave *prev;
- struct net_device *dev;
- short delay;
- unsigned long jiffies;
- char link; /* one of BOND_LINK_XXXX */
- char state; /* one of BOND_STATE_XXXX */
- unsigned short original_flags;
- u32 link_failure_count;
-} slave_t;
-
-/*
- * Here are the locking policies for the two bonding locks:
- *
- * 1) Get bond->lock when reading/writing slave list.
- * 2) Get bond->ptrlock when reading/writing bond->current_slave.
- * (It is unnecessary when the write-lock is put with bond->lock.)
- * 3) When we lock with bond->ptrlock, we must lock with bond->lock
- * beforehand.
- */
-typedef struct bonding {
- slave_t *next;
- slave_t *prev;
- slave_t *current_slave;
- slave_t *primary_slave;
- slave_t *current_arp_slave;
- __s32 slave_cnt;
- rwlock_t lock;
- rwlock_t ptrlock;
- struct timer_list mii_timer;
- struct timer_list arp_timer;
- struct net_device_stats *stats;
-#ifdef CONFIG_PROC_FS
- struct proc_dir_entry *bond_proc_dir;
- struct proc_dir_entry *bond_proc_info_file;
-#endif /* CONFIG_PROC_FS */
- struct bonding *next_bond;
- struct net_device *device;
- struct dev_mc_list *mc_list;
- unsigned short flags;
-} bonding_t;
-#endif /* __KERNEL__ */
+struct ad_info {
+ __u16 aggregator_id;
+ __u16 ports;
+ __u16 actor_key;
+ __u16 partner_key;
+ __u8 partner_system[ETH_ALEN];
+};
-#endif /* _LINUX_BOND_H */
+#endif /* _LINUX_IF_BONDING_H */
/*
* Local variables:
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index 026cf2d5b20b..6cb10ed07188 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -148,6 +148,7 @@ static inline int __vlan_hwaccel_rx(struct sk_buff *skb,
{
struct net_device_stats *stats;
+ skb->real_dev = skb->dev;
skb->dev = grp->vlan_devices[vlan_tag & VLAN_VID_MASK];
if (skb->dev == NULL) {
kfree_skb(skb);
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 6b8ab6887236..4367ef3643e5 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -190,6 +190,7 @@ struct sk_buff {
struct sock *sk;
struct timeval stamp;
struct net_device *dev;
+ struct net_device *real_dev;
union {
struct tcphdr *th;