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