Zhang, HongX C wrote:
> Hitoshi,
>
> I sent e1000e driver with BMC fixed to you two days ago.
> Have you received it yet?
>
> --henry
>
>
>
> -----Original Message-----
> From: Brandeburg, Jesse 
> Sent: Friday, August 08, 2008 8:26 AM
> To: Hitoshi Mitake
> Cc: e1000-devel@lists.sourceforge.net
> Subject: RE: [E1000-devel] [PATCH] Temporary solution for problem,e1000e
> breaking IPMI
>
> We have someone working on your problem, my hope is that he will be able
> to email you a test patch today.
>
> Jesse
>
> -----Original Message-----
> From: Hitoshi Mitake [mailto:[EMAIL PROTECTED] 
> Sent: Friday, August 08, 2008 3:06 AM
> To: Brandeburg, Jesse
> Cc: e1000-devel@lists.sourceforge.net
> Subject: Re: [E1000-devel] [PATCH] Temporary solution for problem,e1000e
> breaking IPMI
>
> Jesse
>
> Thanks for you replying. And sorry my lazy replying.
>
> I've missed the way to add this flag as a module parameter.
> So I wrote a patch to add a new module parameter.
> Parameter name is HwCrcStrip, this is boolean value.
> I named to be similar to other parameters.
>
> This is patch.
> I think this is smarter than previous patch.
> If you like it, please use.
>
> Hitoshi
>
> Index: e1000e-0.4.1.7/src/e1000.h
> ===================================================================
> --- e1000e-0.4.1.7.orig/src/e1000.h    2008-08-08 18:35:23.062686528
> +0900
> +++ e1000e-0.4.1.7/src/e1000.h    2008-08-08 18:38:43.080686442 +0900
> @@ -319,6 +319,7 @@
>      unsigned int flags;
>      u32 *config_space;
>      u32 stats_freq_us;        /* stats update freq (microseconds) */
> +    unsigned int hw_crc_strip;        /* hardware crc stripping enabled
>
> flag */
>  };
>  
>  struct e1000_info {
> Index: e1000e-0.4.1.7/src/netdev.c
> ===================================================================
> --- e1000e-0.4.1.7.orig/src/netdev.c    2008-08-08 18:35:23.709686288
> +0900
> +++ e1000e-0.4.1.7/src/netdev.c    2008-08-08 18:35:37.696686311 +0900
> @@ -2730,7 +2730,8 @@
>          rctl |= E1000_RCTL_LPE;
>  
>      /* Enable hardware CRC frame stripping */
> -    rctl |= E1000_RCTL_SECRC;
> +    if(adapter->hw_crc_strip)
> +        rctl |= E1000_RCTL_SECRC;
>  
>      /* Setup buffer sizes */
>      rctl &= ~E1000_RCTL_SZ_4096;
> Index: e1000e-0.4.1.7/src/param.c
> ===================================================================
> --- e1000e-0.4.1.7.orig/src/param.c    2008-08-08 18:35:23.738686202
> +0900
> +++ e1000e-0.4.1.7/src/param.c    2008-08-08 18:53:09.413686307 +0900
> @@ -160,6 +160,15 @@
>   */
>  E1000_PARAM(KumeranLockLoss, "Enable Kumeran lock loss workaround");
>  
> +/*
> + * Hardware CRC Stripping
> + *
> + * Valid Range: 0, 1
> + *
> + * Default Value: 1 (enabled)
> + */
> +E1000_PARAM(HwCrcStrip, "Hardware CRC Stripping");
> +
>  struct e1000_option {
>      enum { enable_option, range_option, list_option } type;
>      const char *name;
> @@ -444,4 +453,20 @@
>                                         opt.def);
>          }
>      }
> +    { /* Hardware CRC Stripping */
> +        const struct e1000_option opt = {
> +            .type = enable_option,
> +            .name = "Hardware CRC Stripping",
> +            .err  = "defaulting to Enabled",
> +            .def  = OPTION_ENABLED
> +        };
> +
> +        if (num_HwCrcStrip > bd) {
> +            unsigned int hw_crc_strip = HwCrcStrip[bd];
> +            e1000_validate_option(&hw_crc_strip, &opt, adapter);
> +            adapter->hw_crc_strip = hw_crc_strip;
> +        } else {
> +            adapter->hw_crc_strip = opt.def;
> +        }
> +    }
>  }
> Index: e1000e-0.4.1.7/README
> ===================================================================
> --- e1000e-0.4.1.7.orig/README    2008-08-08 18:35:22.820686218 +0900
> +++ e1000e-0.4.1.7/README    2008-08-08 18:45:26.343686419 +0900
> @@ -332,6 +332,17 @@
>  interrupt order is MSI-X, MSI, Legacy.  If specifying MSI (IntMode=1)
>  interrupts, only MSI and Legacy will be attempted.
>  
> +HwCrcStrip
> +-------
> +Valid Range: 0-1 (0 is disabled, 1 is enabled)
> +Default Value: 1
> +
> +If this parameter is 1, e1000e driver uses hardware CRC stripping
> function,
> +if is 0, driver doesn't use the function.
> +
> +For example, when you want to use IPMI, hardware CRC stripping function
> is
> +conflict with that. So you should make hw_crc_strip 0.
> +
>  
>  Additional Configurations
>  =========================
>
>
> Brandeburg, Jesse wrote:
>   
>> would you accept a module option that did the same thing?  We could
>>     
> also
>   
>> add the kernel option so that you could change the default in the
>>     
> driver
>   
>> at compile time.  Seems like both would be a good solution.
>>
>> I have a similar report from another user, he proposed a module option
>> fix_broken_bmc
>>
>> There is a better patch that works in all cases when disabling
>>     
> hardware
>   
>> CRC stripping, but it is more complex than your solution.  It would be
>> essentially reverting git-commit
>> 140a74802894e9db57e5cd77ccff77e590ece5f3 [1]
>>
>> how about we call it
>>
>> hw_crc_strip=0
>>
>> it would be a module parameter similar to all the other parameters.
>>     
> We
>   
>> actually could enable ethtool to support this kind of change, since it
>> probably is a generic problem, and is definitely an ethernet control.
>> That would be a future effort however.
>>
>> Jesse
>>
>> [1] http://tinyurl.com/5qte88
>>
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] On Behalf Of
>>     
> Hitoshi
>   
>> Mitake
>> Sent: Wednesday, July 23, 2008 11:11 PM
>> To: e1000-devel@lists.sourceforge.net
>> Subject: [E1000-devel] [PATCH] Temporary solution for problem,e1000e
>> breaking IPMI
>>
>> Hi.
>>
>> My name is Hitoshi Mitake, nice to meet you.
>> I'm a Japanese part-time enginner of Cluster Computing, Inc. ( 
>> http://clustcom.com/ )
>> At first, please excuse my broken English.
>>
>> I'm getting in a bind with the problem that
>> hardware CRC frame stripping of e1000e breaks IPMI transmission.
>> I found this problem was discussed in this mailing list a few times
>> before.
>>
>>
>>     
> http://sourceforge.net/mailarchive/forum.php?thread_name=20080616211636.
>   
>> GA5179%40develbox.linuxbox.cz&forum_name=e1000-devel
>>
>>     
> http://sourceforge.net/mailarchive/forum.php?thread_name=200806092007.58
>   
>> 402.arekm%40maven.pl&forum_name=e1000-devel
>>
>> So I wrote a little patch, this make users to be able to choose
>> to use hardware CRC frame stripping function or not from menuconfig of
>>     
>
>   
>> kernel.
>> It seems that hardware CRC stripping function don't have to be enabled
>>     
>
>   
>> any time.
>>
>> I know this isn't a radical way to solve the problem.
>> But some people(including me) may glad if this patch is in kernel
>>     
> source
>   
>> tree.
>>
>> As a temporary solution, please use this.
>> When you use this, apply to 2.6.26-rc10.
>>
>> This is the patch:
>> diff -r 005282133715 drivers/net/Kconfig
>> --- a/drivers/net/Kconfig    Thu Jul 24 12:03:12 2008 +0900
>> +++ b/drivers/net/Kconfig    Thu Jul 24 13:38:34 2008 +0900
>> @@ -1954,6 +1954,13 @@
>>        To compile this driver as a module, choose M here. The module
>>        will be called e1000e.
>>  
>> +config E1000E_DISABLE_HWCRCSTRIP
>> +    bool "Disabling e1000e hardware crc frame stripping"
>> +    depends on E1000E
>> +    help
>> +      Say Y if you don't want e1000e to enable hardware crc frame 
>> stripping.
>> +      This may help you if you want to use IPMI.
>> +
>>  config IP1000
>>      tristate "IP1000 Gigabit Ethernet support"
>>      depends on PCI && EXPERIMENTAL
>> diff -r 005282133715 drivers/net/e1000e/netdev.c
>> --- a/drivers/net/e1000e/netdev.c    Thu Jul 24 12:03:12 2008 +0900
>> +++ b/drivers/net/e1000e/netdev.c    Thu Jul 24 13:38:35 2008 +0900
>> @@ -1972,8 +1972,10 @@
>>      else
>>          rctl |= E1000_RCTL_LPE;
>>  
>> +#ifndef CONFIG_E1000E_DISABLE_HWCRCSTRIP
>>      /* Enable hardware CRC frame stripping */
>>      rctl |= E1000_RCTL_SECRC;
>> +#endif    /* !CONFIG_E1000E_DISABLE_HWCRCSTRIP */
>>  
>>      /* Setup buffer sizes */
>>      rctl &= ~E1000_RCTL_SZ_4096;
>>
>>
>>
>>     
> ------------------------------------------------------------------------
>   
>> -
>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>> challenge
>> Build the coolest Linux based applications with Moblin SDK & win great
>> prizes
>> Grand prize is a trip for two to an Open Source event anywhere in the
>> world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> E1000-devel mailing list
>> E1000-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/e1000-devel
>>   
>>     
>
>   
Henry,

I've missed your mail, sorry...

I tested your bmc.tar.bz2, and it looks work well.
I can use IPMI and normal transmission togather.
My testing environment is,
motherborad: SuperMicro X7SBi
NIC: Intel 82573V + Intel 82573L PCI-E Gigabit Controllers

http://www.supermicro.com/products/motherboard/Xeon3000/3210/X7SBi.cfm

Thanks very much.
Hitoshi


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel

Reply via email to