Patchwork [U-Boot] Net: Add Intel E1000 82574L PCIe card support

login
register
mail settings
Submitter Zang Roy-R61911
Date Jan. 18, 2011, 11:55 a.m.
Message ID <1295351719-2687-1-git-send-email-tie-fei.zang@freescale.com>
Download mbox | patch
Permalink /patch/79295/
State Changes Requested
Headers show

Comments

Zang Roy-R61911 - Jan. 18, 2011, 11:55 a.m.
Add Intel E1000 82574L PCIe card support. Test on MPC8544DS
and MPC8572 board.
Add the missing contact information for future support.

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
---

based on commit e1ccf97c5d7651664d37c0c5aa243874b8851b2d
 drivers/net/e1000.c |   35 +++++++++++++++++++++++++++--------
 drivers/net/e1000.h |   11 +++++++++++
 include/pci_ids.h   |    1 +
 3 files changed, 39 insertions(+), 8 deletions(-)
Kumar Gala - Jan. 18, 2011, 3:48 p.m.
On Jan 18, 2011, at 5:55 AM, Roy Zang wrote:

> Add Intel E1000 82574L PCIe card support. Test on MPC8544DS
> and MPC8572 board.
> Add the missing contact information for future support.
> 
> Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
> ---
> 
> based on commit e1ccf97c5d7651664d37c0c5aa243874b8851b2d
> drivers/net/e1000.c |   35 +++++++++++++++++++++++++++--------
> drivers/net/e1000.h |   11 +++++++++++
> include/pci_ids.h   |    1 +
> 3 files changed, 39 insertions(+), 8 deletions(-)

Acked-by: Kumar Gala <galak@kernel.crashing.org>

- k
Wolfgang Denk - Jan. 18, 2011, 10:33 p.m.
Dear Roy Zang,

In message <1295351719-2687-1-git-send-email-tie-fei.zang@freescale.com> you wrote:
> Add Intel E1000 82574L PCIe card support. Test on MPC8544DS
> and MPC8572 board.
> Add the missing contact information for future support.
> 
> Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
> ---
> 
> based on commit e1ccf97c5d7651664d37c0c5aa243874b8851b2d
>  drivers/net/e1000.c |   35 +++++++++++++++++++++++++++--------
>  drivers/net/e1000.h |   11 +++++++++++
>  include/pci_ids.h   |    1 +
>  3 files changed, 39 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
> index 5f390bd..a545cd1 100644
> --- a/drivers/net/e1000.c
> +++ b/drivers/net/e1000.c
> @@ -40,6 +40,10 @@ tested on both gig copper and gig fiber boards
>   *  Copyright (C) Linux Networx.
>   *  Massive upgrade to work with the new intel gigabit NICs.
>   *  <ebiederman at lnxi dot com>
> + *
> + *  Copyright 2009, 2011 Freescale Semiconductor, Inc.
> + *  Authors: Roy Zang <tie-fei.zang@freescale.com>
> + *     - Add PCI Express card support in Jul. 2009
>   */

Jul. 2009 ???

> diff --git a/drivers/net/e1000.h b/drivers/net/e1000.h
> index eb0804b..4c60b70 100644
> --- a/drivers/net/e1000.h
> +++ b/drivers/net/e1000.h
> @@ -24,12 +24,18 @@
>    Linux NICS <linux.nics@intel.com>
>    Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
>  
> +
>  *******************************************************************************/

Please drop the additional blank line

> +/* Copyright 2009, 2011 Freescale Semiconductor, Inc.
> + * Authors: Roy Zang <tie-fei.zang@freescale.com>
> + *       - Add PCI Express card support in Jul. 2009
> + */

If you really insist on adding this, thenmove it up into the header.
What what exactly do you claim Copyright for - for these 4 lines of
"code"?

Also, is this really  Jul. 2009?


Best regards,

Wolfgang Denk
Kumar Gala - Jan. 18, 2011, 10:42 p.m.
On Jan 18, 2011, at 4:33 PM, Wolfgang Denk wrote:

> Dear Roy Zang,
> 
> In message <1295351719-2687-1-git-send-email-tie-fei.zang@freescale.com> you wrote:
>> Add Intel E1000 82574L PCIe card support. Test on MPC8544DS
>> and MPC8572 board.
>> Add the missing contact information for future support.
>> 
>> Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
>> ---
>> 
>> based on commit e1ccf97c5d7651664d37c0c5aa243874b8851b2d
>> drivers/net/e1000.c |   35 +++++++++++++++++++++++++++--------
>> drivers/net/e1000.h |   11 +++++++++++
>> include/pci_ids.h   |    1 +
>> 3 files changed, 39 insertions(+), 8 deletions(-)
>> 
>> diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
>> index 5f390bd..a545cd1 100644
>> --- a/drivers/net/e1000.c
>> +++ b/drivers/net/e1000.c
>> @@ -40,6 +40,10 @@ tested on both gig copper and gig fiber boards
>>  *  Copyright (C) Linux Networx.
>>  *  Massive upgrade to work with the new intel gigabit NICs.
>>  *  <ebiederman at lnxi dot com>
>> + *
>> + *  Copyright 2009, 2011 Freescale Semiconductor, Inc.
>> + *  Authors: Roy Zang <tie-fei.zang@freescale.com>
>> + *     - Add PCI Express card support in Jul. 2009
>>  */
> 
> Jul. 2009 ???
> 
>> diff --git a/drivers/net/e1000.h b/drivers/net/e1000.h
>> index eb0804b..4c60b70 100644
>> --- a/drivers/net/e1000.h
>> +++ b/drivers/net/e1000.h
>> @@ -24,12 +24,18 @@
>>   Linux NICS <linux.nics@intel.com>
>>   Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
>> 
>> +
>> *******************************************************************************/
> 
> Please drop the additional blank line
> 
>> +/* Copyright 2009, 2011 Freescale Semiconductor, Inc.
>> + * Authors: Roy Zang <tie-fei.zang@freescale.com>
>> + *       - Add PCI Express card support in Jul. 2009
>> + */
> 
> If you really insist on adding this, thenmove it up into the header.
> What what exactly do you claim Copyright for - for these 4 lines of
> "code"?
> 
> Also, is this really  Jul. 2009?
> 

I think Roy is referencing the following commit in which he added support for numerous e1000 PCIe variants:

commit aa0707897c49c330b7d6b8d8362e44f60f224732
Author: Roy Zang <tie-fei.zang@freescale.com>
Date:   Fri Jul 31 13:34:02 2009 +0800

    Add Intel E1000 PCIE card support

- k
Wolfgang Denk - Jan. 18, 2011, 10:56 p.m.
Dear Kumar Gala,

In message <7DE856F6-E8EB-43BB-B641-60D84E33A26C@kernel.crashing.org> you wrote:
> 
> >> + * Authors: Roy Zang <tie-fei.zang@freescale.com>
> >> + *       - Add PCI Express card support in Jul. 2009
> >> + */
> > 
> > If you really insist on adding this, thenmove it up into the header.
> > What what exactly do you claim Copyright for - for these 4 lines of
> > "code"?
> > 
> > Also, is this really  Jul. 2009?
> > 
>
> I think Roy is referencing the following commit in which he added
> support for numerous e1000 PCIe variants:
>
> commit aa0707897c49c330b7d6b8d8362e44f60f224732
> Author: Roy Zang <tie-fei.zang@freescale.com>
> Date:   Fri Jul 31 13:34:02 2009 +0800
>
>     Add Intel E1000 PCIE card support

That was then, and now is now.  I don't see what that old commit has
to do with the current one?

Best regards,

Wolfgang Denk
Zang Roy-R61911 - Jan. 19, 2011, 3:42 a.m.
> -----Original Message-----
> From: Wolfgang Denk [mailto:wd@denx.de]
> Sent: Wednesday, January 19, 2011 6:33 AM
> To: Zang Roy-R61911
> Cc: u-boot@lists.denx.de; Gala Kumar-B11780
> Subject: Re: [U-Boot] [PATCH] Net: Add Intel E1000 82574L PCIe card support
> 
> Dear Roy Zang,
> 
> In message <1295351719-2687-1-git-send-email-tie-fei.zang@freescale.com> you
> wrote:
> > Add Intel E1000 82574L PCIe card support. Test on MPC8544DS
> > and MPC8572 board.
> > Add the missing contact information for future support.
> >
> > Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
> > ---
[snip]

> > diff --git a/drivers/net/e1000.h b/drivers/net/e1000.h
> > index eb0804b..4c60b70 100644
> > --- a/drivers/net/e1000.h
> > +++ b/drivers/net/e1000.h
> > @@ -24,12 +24,18 @@
> >    Linux NICS <linux.nics@intel.com>
> >    Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
> >
> > +
> >
> ******************************************************************************
> */
> 
> Please drop the additional blank line
> 
> > +/* Copyright 2009, 2011 Freescale Semiconductor, Inc.
> > + * Authors: Roy Zang <tie-fei.zang@freescale.com>
> > + *       - Add PCI Express card support in Jul. 2009
> > + */
> 
> If you really insist on adding this, thenmove it up into the header.


In fact, my original internal code put it to the header, but when I check it with checkpatch.pl, I will get a warning such as:
WARNING: please, no spaces at the start of a line
#156: FILE: drivers/net/e1000.h:5:
+  Copyright 2011 Freescale Semiconductor, Inc.$

How to balance?
Thanks.
Roy

Patch

diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 5f390bd..a545cd1 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -40,6 +40,10 @@  tested on both gig copper and gig fiber boards
  *  Copyright (C) Linux Networx.
  *  Massive upgrade to work with the new intel gigabit NICs.
  *  <ebiederman at lnxi dot com>
+ *
+ *  Copyright 2009, 2011 Freescale Semiconductor, Inc.
+ *  Authors: Roy Zang <tie-fei.zang@freescale.com>
+ *     - Add PCI Express card support in Jul. 2009
  */
 
 #include "e1000.h"
@@ -100,6 +104,7 @@  static struct pci_device_id supported[] = {
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82573E},
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82573E_IAMT},
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82573L},
+	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82574L},
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82546GB_QUAD_COPPER_KSP3},
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80003ES2LAN_COPPER_DPT},
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_80003ES2LAN_SERDES_DPT},
@@ -331,7 +336,7 @@  static boolean_t e1000_is_onboard_nvm_eeprom(struct e1000_hw *hw)
 	if (hw->mac_type == e1000_ich8lan)
 		return FALSE;
 
-	if (hw->mac_type == e1000_82573) {
+	if (hw->mac_type == e1000_82573 || hw->mac_type == e1000_82574) {
 		eecd = E1000_READ_REG(hw, EECD);
 
 		/* Isolate bits 15 & 16 */
@@ -364,7 +369,7 @@  e1000_acquire_eeprom(struct e1000_hw *hw)
 		return -E1000_ERR_SWFW_SYNC;
 	eecd = E1000_READ_REG(hw, EECD);
 
-	if (hw->mac_type != e1000_82573) {
+	if (hw->mac_type != e1000_82573 || hw->mac_type != e1000_82574) {
 		/* Request EEPROM Access */
 		if (hw->mac_type > e1000_82544) {
 			eecd |= E1000_EECD_REQ;
@@ -498,6 +503,7 @@  static int32_t e1000_init_eeprom_params(struct e1000_hw *hw)
 		eeprom->use_eewr = FALSE;
 		break;
 	case e1000_82573:
+	case e1000_82574:
 		eeprom->type = e1000_eeprom_spi;
 		eeprom->opcode_bits = 8;
 		eeprom->delay_usec = 1;
@@ -1317,6 +1323,9 @@  e1000_set_mac_type(struct e1000_hw *hw)
 	case E1000_DEV_ID_82573L:
 		hw->mac_type = e1000_82573;
 		break;
+	case E1000_DEV_ID_82574L:
+		hw->mac_type = e1000_82574;
+		break;
 	case E1000_DEV_ID_80003ES2LAN_COPPER_SPT:
 	case E1000_DEV_ID_80003ES2LAN_SERDES_SPT:
 	case E1000_DEV_ID_80003ES2LAN_COPPER_DPT:
@@ -1487,6 +1496,7 @@  e1000_initialize_hardware_bits(struct e1000_hw *hw)
 			E1000_WRITE_REG(hw, TARC1, reg_tarc1);
 			break;
 		case e1000_82573:
+		case e1000_82574:
 			reg_ctrl_ext = E1000_READ_REG(hw, CTRL_EXT);
 			reg_ctrl_ext &= ~(1 << 23);
 			reg_ctrl_ext |= (1 << 22);
@@ -1728,12 +1738,11 @@  e1000_init_hw(struct eth_device *nic)
 			| E1000_TXDCTL_FULL_TX_DESC_WB;
 		E1000_WRITE_REG(hw, TXDCTL1, ctrl);
 		break;
-	}
-
-	if (hw->mac_type == e1000_82573) {
-		uint32_t gcr = E1000_READ_REG(hw, GCR);
-		gcr |= E1000_GCR_L1_ACT_WITHOUT_L0S_RX;
-		E1000_WRITE_REG(hw, GCR, gcr);
+	case e1000_82573:
+	case e1000_82574:
+		reg_data = E1000_READ_REG(hw, GCR);
+		reg_data |= E1000_GCR_L1_ACT_WITHOUT_L0S_RX;
+		E1000_WRITE_REG(hw, GCR, reg_data);
 	}
 
 #if 0
@@ -1812,6 +1821,7 @@  e1000_setup_link(struct eth_device *nic)
 		switch (hw->mac_type) {
 		case e1000_ich8lan:
 		case e1000_82573:
+		case e1000_82574:
 			hw->fc = e1000_fc_full;
 			break;
 		default:
@@ -4560,6 +4570,9 @@  static int e1000_set_phy_type (struct e1000_hw *hw)
 			hw->phy_type = e1000_phy_gg82563;
 			break;
 		}
+	case BME1000_E_PHY_ID:
+		hw->phy_type = e1000_phy_bm ;
+		break;
 		/* Fall Through */
 	default:
 		/* Should never have loaded on this device */
@@ -4646,6 +4659,10 @@  e1000_detect_gig_phy(struct e1000_hw *hw)
 		if (hw->phy_id == M88E1111_I_PHY_ID)
 			match = TRUE;
 		break;
+	case e1000_82574:
+		if (hw->phy_id == BME1000_E_PHY_ID)
+			match = TRUE;
+		break;
 	case e1000_80003es2lan:
 		if (hw->phy_id == GG82563_E_PHY_ID)
 			match = TRUE;
@@ -4710,6 +4727,7 @@  e1000_set_media_type(struct e1000_hw *hw)
 			break;
 		case e1000_ich8lan:
 		case e1000_82573:
+		case e1000_82574:
 			/* The STATUS_TBIMODE bit is reserved or reused
 			 * for the this device.
 			 */
@@ -5125,6 +5143,7 @@  void e1000_get_bus_type(struct e1000_hw *hw)
 	case e1000_82571:
 	case e1000_82572:
 	case e1000_82573:
+	case e1000_82574:
 	case e1000_80003es2lan:
 		hw->bus_type = e1000_bus_type_pci_express;
 		break;
diff --git a/drivers/net/e1000.h b/drivers/net/e1000.h
index eb0804b..4c60b70 100644
--- a/drivers/net/e1000.h
+++ b/drivers/net/e1000.h
@@ -24,12 +24,18 @@ 
   Linux NICS <linux.nics@intel.com>
   Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
 
+
 *******************************************************************************/
 
 /* e1000_hw.h
  * Structures, enums, and macros for the MAC
  */
 
+/* Copyright 2009, 2011 Freescale Semiconductor, Inc.
+ * Authors: Roy Zang <tie-fei.zang@freescale.com>
+ *       - Add PCI Express card support in Jul. 2009
+ */
+
 #ifndef _E1000_HW_H_
 #define _E1000_HW_H_
 
@@ -81,6 +87,7 @@  typedef enum {
 	e1000_82571,
 	e1000_82572,
 	e1000_82573,
+	e1000_82574,
 	e1000_80003es2lan,
 	e1000_ich8lan,
 	e1000_num_macs
@@ -200,6 +207,7 @@  typedef enum {
 	e1000_phy_gg82563,
 	e1000_phy_igp_3,
 	e1000_phy_ife,
+	e1000_phy_bm,
 	e1000_phy_undefined = 0xFF
 } e1000_phy_type;
 
@@ -286,6 +294,7 @@  struct e1000_phy_stats {
 #define E1000_DEV_ID_82573E              0x108B
 #define E1000_DEV_ID_82573E_IAMT         0x108C
 #define E1000_DEV_ID_82573L              0x109A
+#define E1000_DEV_ID_82574L              0x10D3
 #define E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3 0x10B5
 #define E1000_DEV_ID_80003ES2LAN_COPPER_DPT     0x1096
 #define E1000_DEV_ID_80003ES2LAN_SERDES_DPT     0x1098
@@ -2417,6 +2426,8 @@  struct e1000_hw {
 #define L1LXT971A_PHY_ID   0x001378E0
 #define GG82563_E_PHY_ID   0x01410CA0
 
+#define BME1000_E_PHY_ID     0x01410CB0
+
 /* Miscellaneous PHY bit definitions. */
 #define PHY_PREAMBLE			0xFFFFFFFF
 #define PHY_SOF				0x01
diff --git a/include/pci_ids.h b/include/pci_ids.h
index cb8398d..02a6c6e 100644
--- a/include/pci_ids.h
+++ b/include/pci_ids.h
@@ -1853,6 +1853,7 @@ 
 #define PCI_DEVICE_ID_INTEL_82573E              0x108B
 #define PCI_DEVICE_ID_INTEL_82573E_IAMT         0x108C
 #define PCI_DEVICE_ID_INTEL_82573L              0x109A
+#define PCI_DEVICE_ID_INTEL_82574L              0x10D3
 #define PCI_DEVICE_ID_INTEL_82546GB_QUAD_COPPER_KSP3 0x10B5
 #define PCI_DEVICE_ID_INTEL_80003ES2LAN_COPPER_DPT     0x1096
 #define PCI_DEVICE_ID_INTEL_80003ES2LAN_SERDES_DPT     0x1098